From d1a1fce7e17d77129bab295a09ca5fc7fbcea1f2 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Wed, 19 Jul 2023 17:08:23 -0400 Subject: [PATCH 1/2] Improve reliability of ItemOverrideBakedModel if not replaced --- .../ItemOverrideBakedModel.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ItemOverrideBakedModel.java b/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ItemOverrideBakedModel.java index bfe9eacf..79b05c96 100644 --- a/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ItemOverrideBakedModel.java +++ b/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ItemOverrideBakedModel.java @@ -1,6 +1,5 @@ package org.embeddedt.modernfix.dynamicresources; -import com.google.common.collect.ImmutableList; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.block.model.ItemOverrides; import net.minecraft.client.renderer.block.model.ItemTransforms; @@ -37,41 +36,41 @@ public class ItemOverrideBakedModel implements BakedModel { @Override public List getQuads(@Nullable BlockState state, @Nullable Direction direction, Random random) { - return ImmutableList.of(); + return getRealModel().getQuads(state, direction, random); } @Override public boolean useAmbientOcclusion() { - return false; + return getRealModel().useAmbientOcclusion(); } @Override public boolean isGui3d() { - return false; + return getRealModel().isGui3d(); } @Override public boolean usesBlockLight() { - return false; + return getRealModel().usesBlockLight(); } @Override public boolean isCustomRenderer() { - return false; + return getRealModel().isCustomRenderer(); } @Override public TextureAtlasSprite getParticleIcon() { - return null; + return getRealModel().getParticleIcon(); } @Override public ItemTransforms getTransforms() { - return ItemTransforms.NO_TRANSFORMS; + return getRealModel().getTransforms(); } @Override public ItemOverrides getOverrides() { - return null; + return getRealModel().getOverrides(); } } From ad60b1dec6b43375b4f57af0e5d0b5bfbe19b10f Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Wed, 19 Jul 2023 17:31:24 -0400 Subject: [PATCH 2/2] Fix timing of dynamic baked model registry handoff --- .../modernfix/dynamicresources/DynamicBakedModelProvider.java | 3 ++- .../fabric/mixin/perf/dynamic_resources/ModelBakeryMixin.java | 1 + .../forge/mixin/perf/dynamic_resources/ModelBakeryMixin.java | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/org/embeddedt/modernfix/dynamicresources/DynamicBakedModelProvider.java b/common/src/main/java/org/embeddedt/modernfix/dynamicresources/DynamicBakedModelProvider.java index 28dd1ca5..9ecb0f2f 100644 --- a/common/src/main/java/org/embeddedt/modernfix/dynamicresources/DynamicBakedModelProvider.java +++ b/common/src/main/java/org/embeddedt/modernfix/dynamicresources/DynamicBakedModelProvider.java @@ -73,7 +73,8 @@ public class DynamicBakedModelProvider implements Map()); - currentInstance = this; + if(currentInstance == null) + currentInstance = this; } public void setMissingModel(BakedModel model) { 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 12c30ce1..5e614c9b 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 @@ -350,6 +350,7 @@ public abstract class ModelBakeryMixin implements IExtendedModelBakery { this.topLevelModels.clear(); this.topLevelModels.put(MISSING_MODEL_LOCATION, this.missingModel); this.smallLoadingCache.clear(); + DynamicBakedModelProvider.currentInstance = (DynamicBakedModelProvider)this.bakedTopLevelModels; } /** 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 9362b008..66ab29ad 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 @@ -203,6 +203,7 @@ public abstract class ModelBakeryMixin implements IExtendedModelBakery { profiler.pop(); // ensure missing model is a permanent override this.bakedTopLevelModels.put(MISSING_MODEL_LOCATION, this.getBakedModel(MISSING_MODEL_LOCATION, BlockModelRotation.X0_Y0, this.atlasSet::getSprite)); + DynamicBakedModelProvider.currentInstance = (DynamicBakedModelProvider)this.bakedTopLevelModels; cir.setReturnValue(atlasSet); }