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 d7dbe7d24a6697be6b5db729f940b16b74838d11..a294e64df092e29aec79429031afce4c97ec28d0 100644 --- a/net/minecraft/world/level/chunk/ChunkAccess.java +++ b/net/minecraft/world/level/chunk/ChunkAccess.java @@ -77,8 +77,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; @@ -304,7 +304,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) { @@ -320,13 +320,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