diff --git a/src/main/java/ru/bclib/interfaces/BlockModelProvider.java b/src/main/java/ru/bclib/interfaces/BlockModelProvider.java index 5b4a6a86..3b6f0f71 100644 --- a/src/main/java/ru/bclib/interfaces/BlockModelProvider.java +++ b/src/main/java/ru/bclib/interfaces/BlockModelProvider.java @@ -41,7 +41,6 @@ public interface BlockModelProvider extends ItemModelProvider { } else { BCLib.LOGGER.warning("Error loading model: {}", modelId); - modelCache.put(modelId, modelCache.get(MISSING_MODEL_LOCATION)); } } } diff --git a/src/main/java/ru/bclib/mixin/client/ModelBakeryMixin.java b/src/main/java/ru/bclib/mixin/client/ModelBakeryMixin.java index f3951497..b8e4c123 100644 --- a/src/main/java/ru/bclib/mixin/client/ModelBakeryMixin.java +++ b/src/main/java/ru/bclib/mixin/client/ModelBakeryMixin.java @@ -25,6 +25,7 @@ import ru.bclib.interfaces.BlockModelProvider; import ru.bclib.interfaces.ItemModelProvider; import java.util.Map; +import java.util.Set; @Mixin(ModelBakery.class) public abstract class ModelBakeryMixin { @@ -34,20 +35,22 @@ public abstract class ModelBakeryMixin { @Final @Shadow private Map topLevelModels; - - //private Map cache = Maps.newHashMap(); - //private Map topLevel = Maps.newHashMap(); + @Final + @Shadow + private Set loadingStack; @Inject( method = "*", at = @At( value = "INVOKE_STRING", - target = "Lnet/minecraft/util/profiling/ProfilerFiller;popPush(Ljava/lang/String;)V", - args = "ldc=static_definitions", + target = "Lnet/minecraft/util/profiling/ProfilerFiller;push(Ljava/lang/String;)V", + args = "ldc=missing_model", shift = Shift.BEFORE ) ) private void bclib_initCustomModels(ResourceManager resourceManager, BlockColors blockColors, ProfilerFiller profiler, int mipmap, CallbackInfo info) { + System.out.println("Cache size 1: " + unbakedCache.size()); + Map cache = Maps.newConcurrentMap(); Map topLevel = Maps.newConcurrentMap(); @@ -102,6 +105,12 @@ public abstract class ModelBakeryMixin { } }); + System.out.println("Cache size 2: " + unbakedCache.size()); + + cache.values().forEach(model -> { + loadingStack.addAll(model.getDependencies()); + }); + topLevelModels.putAll(topLevel); unbakedCache.putAll(cache); }