mirror of
https://github.com/Samsuik/Sakura.git
synced 2025-12-19 14:59:30 +00:00
Fix load chunks on movement
This commit is contained in:
@@ -5,7 +5,7 @@ Subject: [PATCH] Load Chunks on Movement
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java b/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
diff --git a/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java b/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
||||||
index a97a2a8492f3858e3b622d26768b4d819c9b47a7..44aaaa87d63a2a2287f89feaa431ca0e80da3dab 100644
|
index a97a2a8492f3858e3b622d26768b4d819c9b47a7..15b1eeebb0a30ca0500066f091ba66b988e9105d 100644
|
||||||
--- a/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
--- a/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
||||||
+++ b/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
+++ b/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
||||||
@@ -1885,6 +1885,7 @@ public final class CollisionUtil {
|
@@ -1885,6 +1885,7 @@ public final class CollisionUtil {
|
||||||
@@ -24,14 +24,16 @@ index a97a2a8492f3858e3b622d26768b4d819c9b47a7..44aaaa87d63a2a2287f89feaa431ca0e
|
|||||||
final ChunkSource chunkSource = world.getChunkSource();
|
final ChunkSource chunkSource = world.getChunkSource();
|
||||||
|
|
||||||
for (int currChunkZ = minChunkZ; currChunkZ <= maxChunkZ; ++currChunkZ) {
|
for (int currChunkZ = minChunkZ; currChunkZ <= maxChunkZ; ++currChunkZ) {
|
||||||
@@ -1954,6 +1956,13 @@ public final class CollisionUtil {
|
@@ -1954,6 +1956,15 @@ public final class CollisionUtil {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ // Sakura start - load chunks on movement
|
+ // Sakura start - load chunks on movement
|
||||||
+ if (addTicket && chunk.movementTicketNeedsUpdate() && chunkSource instanceof net.minecraft.server.level.ServerChunkCache chunkCache) {
|
+ if (addTicket && chunk.movementTicketNeedsUpdate() && chunkSource instanceof net.minecraft.server.level.ServerChunkCache chunkCache) {
|
||||||
+ final long chunkKey = ca.spottedleaf.moonrise.common.util.CoordinateUtils.getChunkKey(currChunkX, currChunkZ);
|
+ final long chunkKey = ca.spottedleaf.moonrise.common.util.CoordinateUtils.getChunkKey(currChunkX, currChunkZ);
|
||||||
+ chunkCache.chunkMap.getDistanceManager().moonrise$getChunkHolderManager().addTicketAtLevel(net.minecraft.server.level.TicketType.ENTITY_MOVEMENT, currChunkX, currChunkZ, 31, chunkKey);
|
+ chunkCache.chunkMap.getDistanceManager().moonrise$getChunkHolderManager().addTicketAtLevel(
|
||||||
|
+ net.minecraft.server.level.TicketType.ENTITY_MOVEMENT, currChunkX, currChunkZ, 31, null
|
||||||
|
+ );
|
||||||
+ chunk.updatedMovementTicket();
|
+ chunk.updatedMovementTicket();
|
||||||
+ }
|
+ }
|
||||||
+ // Sakura end - load chunks on movement
|
+ // Sakura end - load chunks on movement
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Collide with non-solid blocks
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java b/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
diff --git a/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java b/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
||||||
index 194db5ff2a473b10fded4491c1173d420f46424d..c09658eb8c2824ac0c887f94771d9b467ecab8b1 100644
|
index 668f1681433d626248c49b82890aeb92b967ed3b..7414c6b4439456561f14dc0054c60fd2673ab786 100644
|
||||||
--- a/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
--- a/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
||||||
+++ b/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
+++ b/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
||||||
@@ -1908,6 +1908,7 @@ public final class CollisionUtil {
|
@@ -1908,6 +1908,7 @@ public final class CollisionUtil {
|
||||||
@@ -24,7 +24,7 @@ index 194db5ff2a473b10fded4491c1173d420f46424d..c09658eb8c2824ac0c887f94771d9b46
|
|||||||
final ChunkSource chunkSource = world.getChunkSource();
|
final ChunkSource chunkSource = world.getChunkSource();
|
||||||
|
|
||||||
for (int currChunkZ = minChunkZ; currChunkZ <= maxChunkZ; ++currChunkZ) {
|
for (int currChunkZ = minChunkZ; currChunkZ <= maxChunkZ; ++currChunkZ) {
|
||||||
@@ -1999,7 +2001,7 @@ public final class CollisionUtil {
|
@@ -2001,7 +2003,7 @@ public final class CollisionUtil {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ index 194db5ff2a473b10fded4491c1173d420f46424d..c09658eb8c2824ac0c887f94771d9b46
|
|||||||
final int sectionAdjust = !hasSpecial ? 1 : 0;
|
final int sectionAdjust = !hasSpecial ? 1 : 0;
|
||||||
|
|
||||||
final PalettedContainer<BlockState> blocks = section.states;
|
final PalettedContainer<BlockState> blocks = section.states;
|
||||||
@@ -2038,6 +2040,11 @@ public final class CollisionUtil {
|
@@ -2040,6 +2042,11 @@ public final class CollisionUtil {
|
||||||
mutablePos.set(blockX, blockY, blockZ);
|
mutablePos.set(blockX, blockY, blockZ);
|
||||||
if (useEntityCollisionShape) {
|
if (useEntityCollisionShape) {
|
||||||
blockCollision = collisionShape.getCollisionShape(blockData, world, mutablePos);
|
blockCollision = collisionShape.getCollisionShape(blockData, world, mutablePos);
|
||||||
@@ -46,7 +46,7 @@ index 194db5ff2a473b10fded4491c1173d420f46424d..c09658eb8c2824ac0c887f94771d9b46
|
|||||||
blockCollision = blockData.getCollisionShape(world, mutablePos, collisionShape);
|
blockCollision = blockData.getCollisionShape(world, mutablePos, collisionShape);
|
||||||
}
|
}
|
||||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||||
index 162062200a4ffa7bc669093779377f0d8d83172e..d61ac5aae3deb9bd145787351fb85051d4ff1aed 100644
|
index e9f9e7b2fdd0472c50f3f9042e450f25d13b6bd9..6c76e7d25b094415ff785735a5ba508bae3f2368 100644
|
||||||
--- a/net/minecraft/world/entity/Entity.java
|
--- a/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/net/minecraft/world/entity/Entity.java
|
+++ b/net/minecraft/world/entity/Entity.java
|
||||||
@@ -531,6 +531,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -531,6 +531,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Optimise block counting for cannon entities
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java b/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
diff --git a/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java b/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
||||||
index c09658eb8c2824ac0c887f94771d9b467ecab8b1..2fb1db04c0f4f6f18502815707d9567ded1fcce6 100644
|
index 7414c6b4439456561f14dc0054c60fd2673ab786..8a98181a9c6cc5aa659ad5036a15cb780aa6cb13 100644
|
||||||
--- a/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
--- a/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
||||||
+++ b/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
+++ b/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
||||||
@@ -1943,6 +1943,7 @@ public final class CollisionUtil {
|
@@ -1943,6 +1943,7 @@ public final class CollisionUtil {
|
||||||
@@ -16,7 +16,7 @@ index c09658eb8c2824ac0c887f94771d9b467ecab8b1..2fb1db04c0f4f6f18502815707d9567d
|
|||||||
|
|
||||||
// special cases:
|
// special cases:
|
||||||
if (minBlockY > maxBlockY) {
|
if (minBlockY > maxBlockY) {
|
||||||
@@ -2003,15 +2004,19 @@ public final class CollisionUtil {
|
@@ -2005,15 +2006,19 @@ public final class CollisionUtil {
|
||||||
|
|
||||||
final boolean hasSpecial = !fullBlocks && ((BlockCountingChunkSection)section).moonrise$hasSpecialCollidingBlocks(); // Sakura - collide with non-solid blocks
|
final boolean hasSpecial = !fullBlocks && ((BlockCountingChunkSection)section).moonrise$hasSpecialCollidingBlocks(); // Sakura - collide with non-solid blocks
|
||||||
final int sectionAdjust = !hasSpecial ? 1 : 0;
|
final int sectionAdjust = !hasSpecial ? 1 : 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user