--- a/net/minecraft/server/level/ChunkMap.java +++ b/net/minecraft/server/level/ChunkMap.java @@ -134,7 +_,7 @@ public final ChunkMap.DistanceManager distanceManager; private final String storageName; private final PlayerMap playerMap = new PlayerMap(); - public final Int2ObjectMap entityMap = new Int2ObjectOpenHashMap<>(); + public final Int2ObjectMap entityMap = new me.samsuik.sakura.utils.collections.TrackedEntityChunkMap(); // Sakura - optimised tracked entity map private final Long2ByteMap chunkTypeCache = new Long2ByteOpenHashMap(); // Paper - rewrite chunk system public int serverViewDistance; @@ -1330,7 +_,10 @@ double vec3_dz = player.getZ() - this.entity.getZ(); // Paper end - remove allocation of Vec3D here int playerViewDistance = ChunkMap.this.getPlayerViewDistance(player); - double d = Math.min(this.getEffectiveRange(), playerViewDistance * 16); + // Sakura start - entity tracking range modifier + final double visibleRange = this.getEffectiveRange() * player.trackingRangeModifier; + final double d = Math.min(visibleRange, playerViewDistance * 16); + // Sakura end - entity tracking range modifier double d1 = vec3_dx * vec3_dx + vec3_dz * vec3_dz; // Paper double d2 = d * d; // Paper start - Configurable entity tracking range by Y