mirror of
https://github.com/Samsuik/Sakura.git
synced 2025-12-19 23:09:32 +00:00
24 lines
1.5 KiB
Diff
24 lines
1.5 KiB
Diff
--- a/net/minecraft/server/level/ChunkMap.java
|
|
+++ b/net/minecraft/server/level/ChunkMap.java
|
|
@@ -134,7 +_,7 @@
|
|
public final AtomicInteger tickingGenerated = new AtomicInteger(); // Paper - public
|
|
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();
|
|
// Paper - rewrite chunk system
|
|
public int serverViewDistance;
|
|
@@ -1287,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
|