From 16269ee144ebb31dea9cf304ecb23f344d7ac71c Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Tue, 25 Apr 2023 09:51:04 -0400 Subject: [PATCH] Tweak dynamic resources injection point to prevent Connectedness crash --- .../mixin/perf/dynamic_resources/ModelBakeryMixin.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 7b1d6769..a41640fa 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 @@ -39,6 +39,7 @@ import org.apache.commons.lang3.tuple.Triple; import org.embeddedt.modernfix.ModernFix; import org.embeddedt.modernfix.duck.IExtendedModelBakery; import org.embeddedt.modernfix.dynamicresources.*; +import org.objectweb.asm.Opcodes; import org.slf4j.Logger; import org.spongepowered.asm.mixin.*; import org.spongepowered.asm.mixin.injection.At; @@ -101,15 +102,16 @@ public abstract class ModelBakeryMixin implements IExtendedModelBakery { @Shadow public abstract UnbakedModel getModel(ResourceLocation modelLocation); + @Shadow @Final @Mutable private BlockColors blockColors; private Cache, BakedModel> loadedBakedModels; private Cache loadedModels; private HashMap smallLoadingCache = new HashMap<>(); - @Redirect(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraftforge/client/model/geometry/GeometryLoaderManager;init()V", remap = false)) - private void replaceTopLevelBakedModels() { - GeometryLoaderManager.init(); + @Redirect(method = "", at = @At(value = "FIELD", opcode = Opcodes.PUTFIELD, target = "Lnet/minecraft/client/resources/model/ModelBakery;blockColors:Lnet/minecraft/client/color/block/BlockColors;")) + private void replaceTopLevelBakedModels(ModelBakery bakery, BlockColors val) { + this.blockColors = val; this.loadedBakedModels = CacheBuilder.newBuilder() .expireAfterAccess(3, TimeUnit.MINUTES) .maximumSize(1000)