From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: hayanesuru Date: Tue, 3 Jun 2025 15:41:12 +0900 Subject: [PATCH] optimize structure map diff --git a/net/minecraft/world/level/chunk/ChunkAccess.java b/net/minecraft/world/level/chunk/ChunkAccess.java index 4fd9313ce2c87383685d80e2533b93d5b85a9f41..c9655ab6faf33fca2971629cd819f66da7024240 100644 --- a/net/minecraft/world/level/chunk/ChunkAccess.java +++ b/net/minecraft/world/level/chunk/ChunkAccess.java @@ -76,8 +76,8 @@ public abstract class ChunkAccess implements BiomeManager.NoiseBiomeSource, Ligh protected BlendingData blendingData; public final Map heightmaps = Maps.newEnumMap(Heightmap.Types.class); // Paper - rewrite chunk system - private final Map structureStarts = Maps.newHashMap(); - private final Map structuresRefences = Maps.newHashMap(); + private final Map structureStarts = new it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap<>(); // Leaf - optimize structure map + private final Map structuresRefences = new it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap<>(); // Leaf - optimize structure map protected final Map pendingBlockEntities = Maps.newHashMap(); public final Map blockEntities = new Object2ObjectOpenHashMap<>(); protected final LevelHeightAccessor levelHeightAccessor; @@ -303,7 +303,7 @@ public abstract class ChunkAccess implements BiomeManager.NoiseBiomeSource, Ligh } public Map getAllStarts() { - return Collections.unmodifiableMap(this.structureStarts); + return this.structureStarts; // Leaf - optimize structure map } public void setAllStarts(Map structureStarts) { @@ -319,13 +319,13 @@ public abstract class ChunkAccess implements BiomeManager.NoiseBiomeSource, Ligh @Override public void addReferenceForStructure(Structure structure, long reference) { - this.structuresRefences.computeIfAbsent(structure, key -> new LongOpenHashSet()).add(reference); + this.structuresRefences.computeIfAbsent(structure, key -> new it.unimi.dsi.fastutil.longs.LongArraySet()).add(reference); // Leaf - optimize structure map this.markUnsaved(); } @Override public Map getAllReferences() { - return Collections.unmodifiableMap(this.structuresRefences); + return this.structuresRefences; // Leaf - optimize structure map } @Override