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
|
||||
index a97a2a8492f3858e3b622d26768b4d819c9b47a7..44aaaa87d63a2a2287f89feaa431ca0e80da3dab 100644
|
||||
index a97a2a8492f3858e3b622d26768b4d819c9b47a7..15b1eeebb0a30ca0500066f091ba66b988e9105d 100644
|
||||
--- a/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
||||
+++ b/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
||||
@@ -1885,6 +1885,7 @@ public final class CollisionUtil {
|
||||
@@ -24,14 +24,16 @@ index a97a2a8492f3858e3b622d26768b4d819c9b47a7..44aaaa87d63a2a2287f89feaa431ca0e
|
||||
final ChunkSource chunkSource = world.getChunkSource();
|
||||
|
||||
for (int currChunkZ = minChunkZ; currChunkZ <= maxChunkZ; ++currChunkZ) {
|
||||
@@ -1954,6 +1956,13 @@ public final class CollisionUtil {
|
||||
@@ -1954,6 +1956,15 @@ public final class CollisionUtil {
|
||||
continue;
|
||||
}
|
||||
|
||||
+ // Sakura start - load chunks on movement
|
||||
+ if (addTicket && chunk.movementTicketNeedsUpdate() && chunkSource instanceof net.minecraft.server.level.ServerChunkCache chunkCache) {
|
||||
+ 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();
|
||||
+ }
|
||||
+ // 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
|
||||
index 194db5ff2a473b10fded4491c1173d420f46424d..c09658eb8c2824ac0c887f94771d9b467ecab8b1 100644
|
||||
index 668f1681433d626248c49b82890aeb92b967ed3b..7414c6b4439456561f14dc0054c60fd2673ab786 100644
|
||||
--- a/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
||||
+++ b/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
||||
@@ -1908,6 +1908,7 @@ public final class CollisionUtil {
|
||||
@@ -24,7 +24,7 @@ index 194db5ff2a473b10fded4491c1173d420f46424d..c09658eb8c2824ac0c887f94771d9b46
|
||||
final ChunkSource chunkSource = world.getChunkSource();
|
||||
|
||||
for (int currChunkZ = minChunkZ; currChunkZ <= maxChunkZ; ++currChunkZ) {
|
||||
@@ -1999,7 +2001,7 @@ public final class CollisionUtil {
|
||||
@@ -2001,7 +2003,7 @@ public final class CollisionUtil {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ index 194db5ff2a473b10fded4491c1173d420f46424d..c09658eb8c2824ac0c887f94771d9b46
|
||||
final int sectionAdjust = !hasSpecial ? 1 : 0;
|
||||
|
||||
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);
|
||||
if (useEntityCollisionShape) {
|
||||
blockCollision = collisionShape.getCollisionShape(blockData, world, mutablePos);
|
||||
@@ -46,7 +46,7 @@ index 194db5ff2a473b10fded4491c1173d420f46424d..c09658eb8c2824ac0c887f94771d9b46
|
||||
blockCollision = blockData.getCollisionShape(world, mutablePos, collisionShape);
|
||||
}
|
||||
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
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -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
|
||||
index c09658eb8c2824ac0c887f94771d9b467ecab8b1..2fb1db04c0f4f6f18502815707d9567ded1fcce6 100644
|
||||
index 7414c6b4439456561f14dc0054c60fd2673ab786..8a98181a9c6cc5aa659ad5036a15cb780aa6cb13 100644
|
||||
--- a/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
||||
+++ b/ca/spottedleaf/moonrise/patches/collisions/CollisionUtil.java
|
||||
@@ -1943,6 +1943,7 @@ public final class CollisionUtil {
|
||||
@@ -16,7 +16,7 @@ index c09658eb8c2824ac0c887f94771d9b467ecab8b1..2fb1db04c0f4f6f18502815707d9567d
|
||||
|
||||
// special cases:
|
||||
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 int sectionAdjust = !hasSpecial ? 1 : 0;
|
||||
|
||||
Reference in New Issue
Block a user