mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Add config to use no-tick vd for tracker (#195)
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Kerllenevich <me@notom3ga.me>
|
||||
Date: Sat, 13 Mar 2021 17:21:49 -0500
|
||||
Subject: [PATCH] Use no-tick-view-distance for tracker
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
index d7a17689ce44ccb8281906fb6ac7ba2ae53161e5..11140f89cb2b1837aa09a77d4f4fa8eb6ffbebbb 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
@@ -213,7 +213,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
com.destroystokyo.paper.util.misc.PlayerAreaMap trackMap = this.playerEntityTrackerTrackMaps[i];
|
||||
int trackRange = this.entityTrackerTrackRanges[i];
|
||||
|
||||
- trackMap.add(player, chunkX, chunkZ, Math.min(trackRange, this.getEffectiveViewDistance()));
|
||||
+ trackMap.add(player, chunkX, chunkZ, Math.min(trackRange, player.world.purpurConfig.useNoTickForTracker ? this.getEffectiveNoTickViewDistance() : this.getEffectiveViewDistance())); // Purpur
|
||||
}
|
||||
// Paper end - use distance map to optimise entity tracker
|
||||
// Paper start - optimise PlayerChunkMap#isOutsideRange
|
||||
@@ -268,7 +268,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
com.destroystokyo.paper.util.misc.PlayerAreaMap trackMap = this.playerEntityTrackerTrackMaps[i];
|
||||
int trackRange = this.entityTrackerTrackRanges[i];
|
||||
|
||||
- trackMap.update(player, chunkX, chunkZ, Math.min(trackRange, this.getEffectiveViewDistance()));
|
||||
+ trackMap.update(player, chunkX, chunkZ, Math.min(trackRange, player.world.purpurConfig.useNoTickForTracker ? this.getEffectiveNoTickViewDistance() : this.getEffectiveViewDistance())); // Purpur
|
||||
}
|
||||
// Paper end - use distance map to optimise entity tracker
|
||||
// Paper start - optimise PlayerChunkMap#isOutsideRange
|
||||
@@ -2541,7 +2541,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
|
||||
double vec3d_dy = entityplayer.locY() - this.tracker.locY();
|
||||
double vec3d_dz = entityplayer.locZ() - this.tracker.locZ();
|
||||
// Paper end - remove allocation of Vec3D here
|
||||
- int i = Math.min(this.b(), (PlayerChunkMap.this.viewDistance - 1) * 16);
|
||||
+ int i = Math.min(this.b(), entityplayer.world.purpurConfig.useNoTickForTracker ? PlayerChunkMap.this.getEffectiveNoTickViewDistance() * 16 : (PlayerChunkMap.this.viewDistance - 1) * 16); // Purpur
|
||||
boolean flag = vec3d_dx >= (double) (-i) && vec3d_dx <= (double) i && vec3d_dz >= (double) (-i) && vec3d_dz <= (double) i && this.tracker.a(entityplayer); // Paper - remove allocation of Vec3D here
|
||||
|
||||
if (flag) {
|
||||
@@ -2557,7 +2557,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially
|
||||
PlayerChunk playerchunk = PlayerChunkMap.this.trackerGetVisibleChunk(chunkcoordintpair); // Airplane
|
||||
|
||||
if (playerchunk != null && playerchunk.getSendingChunk() != null) { // Paper - no-tick view distance
|
||||
- flag1 = PlayerChunkMap.someDistanceCalculation(x, z, entityplayer, false) <= PlayerChunkMap.this.viewDistance;
|
||||
+ flag1 = PlayerChunkMap.someDistanceCalculation(x, z, entityplayer, false) <= Math.max(PlayerChunkMap.this.viewDistance, PlayerChunkMap.this.noTickViewDistance); // Purpur
|
||||
// Airplane end
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
index 45c5b7b9e7b207e25d80c008a87b06b91e81668b..3a69b31335d296e0ede1bb5bc10976a41e840a57 100644
|
||||
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
||||
@@ -284,6 +284,7 @@ public class PurpurWorldConfig {
|
||||
public int animalBreedingCooldownSeconds = 0;
|
||||
public boolean creativeOnePunch = false;
|
||||
public boolean playerSleepNearMonsters = false;
|
||||
+
|
||||
private void miscGameplayMechanicsSettings() {
|
||||
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
|
||||
alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative);
|
||||
@@ -1975,4 +1976,9 @@ public class PurpurWorldConfig {
|
||||
baseCrystalExplosionEffect = Explosion.Effect.DESTROY;
|
||||
}
|
||||
}
|
||||
+
|
||||
+ public boolean useNoTickForTracker = false;
|
||||
+ private void trackerSettings() {
|
||||
+ useNoTickForTracker = getBoolean("tracker.use-no-tick-distance-for-range", useNoTickForTracker);
|
||||
+ }
|
||||
}
|
||||
Reference in New Issue
Block a user