diff --git a/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelLocationCache.java b/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelLocationCache.java index 031fdc0c..5a1bcc8e 100644 --- a/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelLocationCache.java +++ b/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelLocationCache.java @@ -1,5 +1,6 @@ package org.embeddedt.modernfix.dynamicresources; +import com.google.common.collect.ImmutableMap; import com.mojang.datafixers.util.Pair; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import net.minecraft.Util; @@ -10,13 +11,13 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import java.util.ArrayList; +import java.util.Collections; import java.util.Map; import java.util.concurrent.CompletableFuture; public class ModelLocationCache { - private static final Map locationCache = new Object2ObjectOpenHashMap<>(); + private static Map locationCache = Collections.emptyMap(); public static void rebuildLocationCache() { - locationCache.clear(); ArrayList>> futures = new ArrayList<>(); for(Block block : Registry.BLOCK) { block.getStateDefinition().getPossibleStates().forEach((state) -> { @@ -25,10 +26,13 @@ public class ModelLocationCache { }, Util.backgroundExecutor())); }); } + + ImmutableMap.Builder builder = ImmutableMap.builder(); for(CompletableFuture> future : futures) { Pair pair = future.join(); - locationCache.put(pair.getFirst(), pair.getSecond()); + builder.put(pair.getFirst(), pair.getSecond()); } + locationCache = builder.build(); } public static ModelResourceLocation get(BlockState state) {