From d70480eb175440b2995d9e1283f5fcb70f202fad Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Mon, 8 May 2023 20:16:24 -0400 Subject: [PATCH] More Fabric dynamic model loading improvements --- .../LoaderInstanceMixin.java | 19 +++++++++++++++++++ .../dynamic_resources/ModelBakeryMixin.java | 5 ++++- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/dynamic_resources/LoaderInstanceMixin.java diff --git a/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/dynamic_resources/LoaderInstanceMixin.java b/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/dynamic_resources/LoaderInstanceMixin.java new file mode 100644 index 00000000..5ab99015 --- /dev/null +++ b/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/dynamic_resources/LoaderInstanceMixin.java @@ -0,0 +1,19 @@ +package org.embeddedt.modernfix.fabric.mixin.perf.dynamic_resources; + +import net.fabricmc.fabric.impl.client.model.ModelLoadingRegistryImpl; +import net.minecraft.client.resources.model.ModelBakery; +import org.embeddedt.modernfix.annotation.ClientOnlyMixin; +import org.embeddedt.modernfix.annotation.RequiresMod; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(ModelLoadingRegistryImpl.LoaderInstance.class) +@RequiresMod("fabric-models-v0") +@ClientOnlyMixin +public class LoaderInstanceMixin { + @Redirect(method = "finish", at = @At(value = "FIELD", target = "Lnet/fabricmc/fabric/impl/client/model/ModelLoadingRegistryImpl$LoaderInstance;loader:Lnet/minecraft/client/resources/model/ModelBakery;")) + private void keepLoader(ModelLoadingRegistryImpl.LoaderInstance instance, ModelBakery value) { + /* allow loading models to happen later */ + } +} \ No newline at end of file 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 88384316..82b7ae6e 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 @@ -240,9 +240,12 @@ public abstract class ModelBakeryMixin implements IExtendedModelBakery { "block", "blocks", "cape", + "entity/bed", + "entity/chest", "item", "items", - "pipe" + "pipe", + "ropebridge" }; for(String folder : extraFolders) { Collection textureLocations = this.resourceManager.listResources("textures/" + folder, p -> p.endsWith(".png"));