9
0
mirror of https://github.com/Samsuik/Sakura.git synced 2025-12-19 23:09:32 +00:00
Files
SakuraMC/sakura-server/minecraft-patches/sources/net/minecraft/server/level/ChunkMap.java.patch
2025-03-30 13:40:09 +01:00

24 lines
1.6 KiB
Diff

--- a/net/minecraft/server/level/ChunkMap.java
+++ b/net/minecraft/server/level/ChunkMap.java
@@ -138,7 +_,7 @@
private final AtomicInteger tickingGenerated = new AtomicInteger();
private final String storageName;
private final PlayerMap playerMap = new PlayerMap();
- public final Int2ObjectMap<ChunkMap.TrackedEntity> entityMap = new Int2ObjectOpenHashMap<>();
+ public final Int2ObjectMap<ChunkMap.TrackedEntity> entityMap = new me.samsuik.sakura.utils.collections.TrackedEntityChunkMap(); // Sakura - optimised tracked entity map
private final Long2ByteMap chunkTypeCache = new Long2ByteOpenHashMap();
private final Long2LongMap nextChunkSaveTime = new Long2LongOpenHashMap();
private final LongSet chunksToEagerlySave = new LongLinkedOpenHashSet();
@@ -1420,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
+ double visibleRange = this.getEffectiveRange() * player.trackingRangeModifier;
+ 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