From 8cc5785e862a980b3f8a862d49c8b520ebccf09e Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sun, 9 Jul 2023 20:38:35 -0400 Subject: [PATCH] Port dynres change to 1.19.4+ --- .../mixin/perf/dynamic_resources/ModelBakeryMixin.java | 4 +++- .../forge/mixin/perf/dynamic_resources/ModelBakeryMixin.java | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/dynamic_resources/ModelBakeryMixin.java b/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/dynamic_resources/ModelBakeryMixin.java index 8163fccd..5fc086a7 100644 --- a/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/dynamic_resources/ModelBakeryMixin.java +++ b/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/dynamic_resources/ModelBakeryMixin.java @@ -66,6 +66,8 @@ public abstract class ModelBakeryMixin implements IExtendedModelBakery { @Shadow public abstract void loadTopLevel(ModelResourceLocation modelResourceLocation); + @Shadow public abstract UnbakedModel getModel(ResourceLocation resourceLocation); + private Cache loadedBakedModels; private Cache loadedModels; @@ -255,7 +257,7 @@ public abstract class ModelBakeryMixin implements IExtendedModelBakery { UnbakedModel result = smallLoadingCache.getOrDefault(modelLocation, iunbakedmodel); try { // required as some mods (e.g. EBE) call bake directly on the returned model, without resolving parents themselves - result.getMaterials(this::getModel, new HashSet<>()); + result.resolveParents(this::getModel); } catch(RuntimeException ignored) {} // We are done with loading, so clear this cache to allow GC of any unneeded models if(mfix$nestedLoads == 0) diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ModelBakeryMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ModelBakeryMixin.java index 677bfce1..bcf37bd9 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ModelBakeryMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ModelBakeryMixin.java @@ -63,6 +63,9 @@ public abstract class ModelBakeryMixin implements IExtendedModelBakery { @Shadow @Final @Mutable private BlockColors blockColors; @Shadow @Final private static Logger LOGGER; + + @Shadow public abstract UnbakedModel getModel(ResourceLocation resourceLocation); + private Cache loadedBakedModels; private Cache loadedModels; @@ -236,7 +239,7 @@ public abstract class ModelBakeryMixin implements IExtendedModelBakery { UnbakedModel result = smallLoadingCache.getOrDefault(modelLocation, iunbakedmodel); try { // required as some mods (e.g. EBE) call bake directly on the returned model, without resolving parents themselves - result.getMaterials(this::getModel, new HashSet<>()); + result.resolveParents(this::getModel); } catch(RuntimeException ignored) {} // We are done with loading, so clear this cache to allow GC of any unneeded models if(mfix$nestedLoads == 0)