13
0
geforkt von Mirrors/Paper

Fix and optimize getChunkCount (#11610)

It was returning ticking chunk count instead of the intended full chunk count.
We can also directly use the size of the fullChunks collection instead of iterating all chunks.
Dieser Commit ist enthalten in:
Jason Penilla 2024-11-11 12:17:36 -07:00
Ursprung 0ad6de76cb
Commit 41085fc8b9
3 geänderte Dateien mit 5 neuen und 10 gelöschten Zeilen

Datei anzeigen

@ -5353,6 +5353,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
private NaturalSpawner.SpawnState lastSpawnState;
+ // Paper start
+ private final ca.spottedleaf.concurrentutil.map.ConcurrentLong2ReferenceChainedHashTable<net.minecraft.world.level.chunk.LevelChunk> fullChunks = new ca.spottedleaf.concurrentutil.map.ConcurrentLong2ReferenceChainedHashTable<>();
+ public int getFullChunksCount() {
+ return this.fullChunks.size();
+ }
+ long chunkFutureAwaitCounter;
+ // Paper end

Datei anzeigen

@ -26281,7 +26281,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
private static final Logger LOGGER = LogUtils.getLogger();
private final DistanceManager distanceManager;
@@ -0,0 +0,0 @@ public class ServerChunkCache extends ChunkSource {
private final ca.spottedleaf.concurrentutil.map.ConcurrentLong2ReferenceChainedHashTable<net.minecraft.world.level.chunk.LevelChunk> fullChunks = new ca.spottedleaf.concurrentutil.map.ConcurrentLong2ReferenceChainedHashTable<>();
}
long chunkFutureAwaitCounter;
// Paper end
+ // Paper start - rewrite chunk system

Datei anzeigen

@ -60,15 +60,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+
+ @Override
+ public int getChunkCount() {
+ int ret = 0;
+
+ for (ChunkHolder chunkHolder : ca.spottedleaf.moonrise.common.util.ChunkSystem.getVisibleChunkHolders(this.world)) {
+ if (chunkHolder.getTickingChunk() != null) {
+ ++ret;
+ }
+ }
+
+ return ret;
+ return this.world.getChunkSource().getFullChunksCount();
+ }
+
+ @Override