Improve Structures Checking
Improves performance by keying every chunk thats part of a structure to a hashmap instead of only the first one. This allows us to avoid iterating the entire structures value set to see if a block position is inside of a structure. This should have pretty decent performance improvement to any standard world that has been around for a whilewith lots of structures due to ineffeciencies in how MC stores structures (even unloaded chunks has structured data loaded)
This commit is contained in:
@@ -25,6 +25,19 @@ index 4bbebb25a..c4d9344a7 100644
|
||||
@Nullable
|
||||
public TileEntity a(BlockPosition blockposition, Chunk.EnumTileEntityState chunk_enumtileentitystate) {
|
||||
// CraftBukkit start
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkCoordIntPair.java b/src/main/java/net/minecraft/server/ChunkCoordIntPair.java
|
||||
index 239440888..aafd23beb 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkCoordIntPair.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkCoordIntPair.java
|
||||
@@ -0,0 +0,0 @@ public class ChunkCoordIntPair {
|
||||
this.z = blockposition.getZ() >> 4;
|
||||
}
|
||||
|
||||
+ public static long asLong(final BlockPosition pos) { return a(pos.getX() >> 4, pos.getZ() >> 4); } // Paper - OBFHELPER
|
||||
+ public static long asLong(int x, int z) { return a(x, z); } // Paper - OBFHELPER
|
||||
public static long a(int i, int j) {
|
||||
return (long) i & 4294967295L | ((long) j & 4294967295L) << 32;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/DataPaletteBlock.java b/src/main/java/net/minecraft/server/DataPaletteBlock.java
|
||||
index 1f2fe87b6..2cb462b8e 100644
|
||||
--- a/src/main/java/net/minecraft/server/DataPaletteBlock.java
|
||||
|
||||
Reference in New Issue
Block a user