diff --git a/src/main/java/org/embeddedt/modernfix/mixin/perf/dynamic_resources/ModelBakeryMixin.java b/src/main/java/org/embeddedt/modernfix/mixin/perf/dynamic_resources/ModelBakeryMixin.java index 582698d6..fdeb9197 100644 --- a/src/main/java/org/embeddedt/modernfix/mixin/perf/dynamic_resources/ModelBakeryMixin.java +++ b/src/main/java/org/embeddedt/modernfix/mixin/perf/dynamic_resources/ModelBakeryMixin.java @@ -303,10 +303,17 @@ public abstract class ModelBakeryMixin { } } modelFiles = null; - Function modelGetter = loc -> basicModels.getOrDefault(loc, (BlockModel)this.missingModel); + Function modelGetter = loc -> { + UnbakedModel m = basicModels.get(loc); + /* fallback to vanilla loader if missing */ + return m != null ? m : this.getModel(loc); + }; for(BlockModel model : basicModels.values()) { materialSet.addAll(model.getMaterials(modelGetter, errorSet)); } + /* discard whatever garbage was just produced */ + loadedModels.invalidateAll(); + loadedModels.put(MISSING_MODEL_LOCATION, missingModel); //errorSet.stream().filter(pair -> !pair.getSecond().equals(MISSING_MODEL_LOCATION_STRING)).forEach(pair -> LOGGER.warn("Unable to resolve texture reference: {} in {}", pair.getFirst(), pair.getSecond())); stopwatch.stop(); ModernFix.LOGGER.info("Resolving model textures took " + stopwatch);