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:
Aikar
2017-11-11 18:47:30 -05:00
parent 9650c9dddc
commit 41afad51da
5 changed files with 215 additions and 14 deletions

View File

@@ -1086,7 +1086,7 @@ index c00aee885..b3356b40f 100644
public void addWhitelist(GameProfile gameprofile) {
diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java
index 74e3f42cd..2580a4cf6 100644
index 74e3f42cd..66a80a776 100644
--- a/src/main/java/net/minecraft/server/StructureGenerator.java
+++ b/src/main/java/net/minecraft/server/StructureGenerator.java
@@ -0,0 +0,0 @@
@@ -1107,7 +1107,7 @@ index 74e3f42cd..2580a4cf6 100644
public StructureGenerator() {}
+ public String getName() { return a(); } // Paper // OBF HELPER
+ public String getName() { return a(); } // Paper // OBFHELPER
public abstract String a();
protected final synchronized void a(World world, final int i, final int j, int k, int l, ChunkSnapshot chunksnapshot) {