From ca8d290870b1c4724b21f1e9bf460a90296da694 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Fri, 11 Aug 2023 19:45:19 -0400 Subject: [PATCH 1/5] Message wording change --- common/src/main/resources/assets/modernfix/lang/en_us.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/src/main/resources/assets/modernfix/lang/en_us.json b/common/src/main/resources/assets/modernfix/lang/en_us.json index 5f32b072..bf6eb29f 100644 --- a/common/src/main/resources/assets/modernfix/lang/en_us.json +++ b/common/src/main/resources/assets/modernfix/lang/en_us.json @@ -7,7 +7,7 @@ "modernfix.perf_mod_warning": "It is recommended to install the mods, but the warning(s) can be disabled in the ModernFix config.", "modernfix.config": "ModernFix mixin config", "modernfix.config.done_restart": "Done (restart required)", - "modernfix.message.reload_config": "Run /mfrc after changing configs on disk for them to take effect.", + "modernfix.message.reload_config": "A mod config file change was detected. To prevent loading files that aren't done saving, reloading must be triggered by running /mfrc.", "modernfix.option.on": "on", "modernfix.option.off": "off", "modernfix.option.disabled": "disabled", From 05e74f4141a4c270930c30a39ae8eda7d3c69243 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sat, 12 Aug 2023 11:18:41 -0400 Subject: [PATCH 2/5] Add warning when launched with Continuity and dynamic resources is on --- .../modernfix/ModernFixPreLaunchFabric.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/fabric/src/main/java/org/embeddedt/modernfix/ModernFixPreLaunchFabric.java b/fabric/src/main/java/org/embeddedt/modernfix/ModernFixPreLaunchFabric.java index 068cad51..dd803867 100644 --- a/fabric/src/main/java/org/embeddedt/modernfix/ModernFixPreLaunchFabric.java +++ b/fabric/src/main/java/org/embeddedt/modernfix/ModernFixPreLaunchFabric.java @@ -1,6 +1,9 @@ package org.embeddedt.modernfix; +import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.entrypoint.PreLaunchEntrypoint; +import net.fabricmc.loader.impl.gui.FabricGuiEntry; +import net.fabricmc.loader.impl.gui.FabricStatusTree; import org.embeddedt.modernfix.core.ModernFixMixinPlugin; import org.embeddedt.modernfix.fabric.mappings.MappingsClearer; import org.embeddedt.modernfix.fabric.spark.SparkLaunchProfiler; @@ -19,5 +22,18 @@ public class ModernFixPreLaunchFabric implements PreLaunchEntrypoint { if(ModernFixMixinPlugin.instance.isOptionEnabled("perf.clear_fabric_mapping_tables.MappingsClearer")) { MappingsClearer.clear(); } + + // Prevent launching with Continuity when dynamic resources is on + if(ModernFixMixinPlugin.instance.isOptionEnabled("perf.dynamic_resources.ContinuityCheck") + && FabricLoader.getInstance().isModLoaded("continuity")) { + CommonModUtil.runWithoutCrash(() -> { + FabricGuiEntry.displayError("Compatibility warning", null, tree -> { + FabricStatusTree.FabricStatusTab crashTab = tree.addTab("Warning"); + crashTab.node.addMessage("Continuity and ModernFix's dynamic resources option are not compatible before Minecraft 1.19.4.", FabricStatusTree.FabricTreeWarningLevel.ERROR); + crashTab.node.addMessage("Remove Continuity or disable dynamic resources in the ModernFix config.", FabricStatusTree.FabricTreeWarningLevel.ERROR); + tree.tabs.removeIf(tab -> tab != crashTab); + }, true); + }, "display Continuity warning"); + } } } From 21ee0dc1cfd53b9f2dc9ff82906e1fadaa95b09b Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sat, 12 Aug 2023 11:28:07 -0400 Subject: [PATCH 3/5] Add warning for Connectedness and dynamic resources --- .../main/resources/assets/modernfix/lang/en_us.json | 1 + .../modernfix/forge/init/ModernFixClientForge.java | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/common/src/main/resources/assets/modernfix/lang/en_us.json b/common/src/main/resources/assets/modernfix/lang/en_us.json index bf6eb29f..eafb38d0 100644 --- a/common/src/main/resources/assets/modernfix/lang/en_us.json +++ b/common/src/main/resources/assets/modernfix/lang/en_us.json @@ -4,6 +4,7 @@ "modernfix.jei_load": "Loading JEI, this may take a while", "modernfix.no_lazydfu": "LazyDFU is not installed. If Minecraft needs to update game data from an older version, there may be noticeable lag.", "modernfix.no_ferritecore": "FerriteCore is not installed. Memory usage will be very high.", + "modernfix.connectedness_dynresources": "Connectedness and ModernFix's dynamic resources option are not compatible. Remove Connectedness or disable dynamic resources in the ModernFix config.", "modernfix.perf_mod_warning": "It is recommended to install the mods, but the warning(s) can be disabled in the ModernFix config.", "modernfix.config": "ModernFix mixin config", "modernfix.config.done_restart": "Done (restart required)", diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/init/ModernFixClientForge.java b/forge/src/main/java/org/embeddedt/modernfix/forge/init/ModernFixClientForge.java index 60ac7521..0b3ce1b9 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/init/ModernFixClientForge.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/init/ModernFixClientForge.java @@ -14,14 +14,14 @@ import net.minecraftforge.event.TickEvent; import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.ExtensionPoint; -import net.minecraftforge.fml.ModLoadingContext; +import net.minecraftforge.fml.*; import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.common.ObfuscationReflectionHelper; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.server.FMLServerStartedEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import org.embeddedt.modernfix.ModernFixClient; +import org.embeddedt.modernfix.core.ModernFixMixinPlugin; import org.embeddedt.modernfix.forge.config.NightConfigFixer; import org.embeddedt.modernfix.screen.ModernFixConfigScreen; @@ -45,7 +45,12 @@ public class ModernFixClientForge { private void clientSetup(FMLClientSetupEvent event) { configKey = new KeyMapping("key.modernfix.config", KeyConflictContext.UNIVERSAL, InputConstants.UNKNOWN, "key.modernfix"); ClientRegistry.registerKeyBinding(configKey); - + if(ModernFixMixinPlugin.instance.isOptionEnabled("perf.dynamic_resources.ConnectednessCheck") + && ModList.get().isLoaded("connectedness")) { + event.enqueueWork(() -> { + ModLoader.get().addWarning(new ModLoadingWarning(ModLoadingContext.get().getActiveContainer().getModInfo(), ModLoadingStage.SIDED_SETUP, "modernfix.connectedness_dynresoruces")); + }); + } } @SubscribeEvent From b5b46888af96bbd0569ac75633f997d9878e77e5 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sat, 12 Aug 2023 11:32:00 -0400 Subject: [PATCH 4/5] Change resource key name Easier to add typo here than fix typo in the other file and deal with merge conflicts --- common/src/main/resources/assets/modernfix/lang/en_us.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/src/main/resources/assets/modernfix/lang/en_us.json b/common/src/main/resources/assets/modernfix/lang/en_us.json index eafb38d0..3afbc788 100644 --- a/common/src/main/resources/assets/modernfix/lang/en_us.json +++ b/common/src/main/resources/assets/modernfix/lang/en_us.json @@ -4,7 +4,7 @@ "modernfix.jei_load": "Loading JEI, this may take a while", "modernfix.no_lazydfu": "LazyDFU is not installed. If Minecraft needs to update game data from an older version, there may be noticeable lag.", "modernfix.no_ferritecore": "FerriteCore is not installed. Memory usage will be very high.", - "modernfix.connectedness_dynresources": "Connectedness and ModernFix's dynamic resources option are not compatible. Remove Connectedness or disable dynamic resources in the ModernFix config.", + "modernfix.connectedness_dynresoruces": "Connectedness and ModernFix's dynamic resources option are not compatible. Remove Connectedness or disable dynamic resources in the ModernFix config.", "modernfix.perf_mod_warning": "It is recommended to install the mods, but the warning(s) can be disabled in the ModernFix config.", "modernfix.config": "ModernFix mixin config", "modernfix.config.done_restart": "Done (restart required)", From d1c9be89000a552d15ab1bf1851a1047b64259d6 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sat, 12 Aug 2023 11:41:04 -0400 Subject: [PATCH 5/5] Clean up warnings --- build.gradle | 5 +++++ .../mixin/perf/dynamic_block_codecs/StateHolderMixin.java | 2 +- .../BlockElementFaceDeserializerMixin.java | 2 +- .../mixin/perf/dynamic_resources/ItemModelShaperMixin.java | 3 +++ .../perf/mojang_registry_size/MappedRegistryMixin.java | 2 +- .../embeddedt/modernfix/registry/DirectStorageBiMap.java | 1 + .../faster_command_suggestions/SuggestionsBuilderMixin.java | 2 +- .../mixin/perf/resourcepacks/ModNioResourcePackMixin.java | 4 ++-- .../bugfix/ctm_resourceutil_cme/ResourceUtilMixin.java | 2 +- .../mixin/bugfix/preserve_early_window_pos/WindowMixin.java | 2 +- .../bugfix/starlight_emptiness/StarLightEngineMixin.java | 4 ++-- .../perf/dynamic_resources/ItemModelMesherForgeMixin.java | 5 ++++- .../dynamic_resources/ctm/CTMPackReloadListenerMixin.java | 6 +++++- .../mixin/perf/dynamic_resources/rs/ClientSetupMixin.java | 2 +- .../supermartijncore/ClientRegistrationHandlerMixin.java | 2 +- .../perf/rewrite_registry/ForgeRegistrySnapshotMixin.java | 4 ++-- 16 files changed, 32 insertions(+), 16 deletions(-) diff --git a/build.gradle b/build.gradle index 0df67a03..904b8102 100644 --- a/build.gradle +++ b/build.gradle @@ -95,6 +95,11 @@ allprojects { url 'https://maven.terraformersmc.com/releases' } } + gradle.projectsEvaluated { + tasks.withType(JavaCompile) { + options.compilerArgs << "-Werror" + } + } } configure(subprojects.findAll {it.name == "common" || it.name == "forge" || it.name == "fabric"}) { diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_block_codecs/StateHolderMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_block_codecs/StateHolderMixin.java index 7455fcbb..540c7495 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_block_codecs/StateHolderMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_block_codecs/StateHolderMixin.java @@ -36,7 +36,7 @@ public class StateHolderMixin { } }); - @Redirect(method = "codec", at = @At(value = "INVOKE", target = "Lcom/mojang/serialization/Codec;dispatch(Ljava/lang/String;Ljava/util/function/Function;Ljava/util/function/Function;)Lcom/mojang/serialization/Codec;")) + @Redirect(method = "codec", at = @At(value = "INVOKE", target = "Lcom/mojang/serialization/Codec;dispatch(Ljava/lang/String;Ljava/util/function/Function;Ljava/util/function/Function;)Lcom/mojang/serialization/Codec;", remap = false)) private static > Codec obtainCodec(Codec codec, String typeKey, Function type, Function> codecFn, Codec codecMethodArg, Function stateSupplier) { return codec.dispatch(typeKey, type, block -> { if(block instanceof Block) { diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/BlockElementFaceDeserializerMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/BlockElementFaceDeserializerMixin.java index 2cd4a853..17404372 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/BlockElementFaceDeserializerMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/BlockElementFaceDeserializerMixin.java @@ -16,7 +16,7 @@ import java.lang.reflect.Type; public class BlockElementFaceDeserializerMixin { @Redirect(method = "deserialize(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lnet/minecraft/client/renderer/block/model/BlockElementFace;", - at = @At(value = "INVOKE", target = "Lcom/google/gson/JsonDeserializationContext;deserialize(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;)Ljava/lang/Object;", ordinal = 0)) + at = @At(value = "INVOKE", target = "Lcom/google/gson/JsonDeserializationContext;deserialize(Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;)Ljava/lang/Object;", ordinal = 0, remap = false)) private Object skipUvsForInitialLoad(JsonDeserializationContext context, JsonElement element, Type type) { return UVController.useDummyUv.get() ? UVController.dummyUv : context.deserialize(element, type); } diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ItemModelShaperMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ItemModelShaperMixin.java index 66a183f0..bd4609cf 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ItemModelShaperMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ItemModelShaperMixin.java @@ -48,6 +48,7 @@ public abstract class ItemModelShaperMixin { } /** + * @author embeddedt * @reason Get the stored location for that item and meta, and get the model * from that location from the model manager. **/ @@ -58,6 +59,7 @@ public abstract class ItemModelShaperMixin { } /** + * @author embeddedt * @reason Don't get all models during init (with dynamic loading, that would * generate them all). Just store location instead. **/ @@ -67,6 +69,7 @@ public abstract class ItemModelShaperMixin { } /** + * @author embeddedt * @reason Disable cache rebuilding (with dynamic loading, that would generate * all models). **/ diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/mojang_registry_size/MappedRegistryMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/mojang_registry_size/MappedRegistryMixin.java index ad9adc3c..2b9cf966 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/mojang_registry_size/MappedRegistryMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/mojang_registry_size/MappedRegistryMixin.java @@ -15,7 +15,7 @@ public class MappedRegistryMixin { */ @Redirect( method = "registerMapping(ILnet/minecraft/resources/ResourceKey;Ljava/lang/Object;Lcom/mojang/serialization/Lifecycle;Z)Ljava/lang/Object;", - at = @At(value = "INVOKE", target = "Lit/unimi/dsi/fastutil/objects/ObjectList;size(I)V") + at = @At(value = "INVOKE", target = "Lit/unimi/dsi/fastutil/objects/ObjectList;size(I)V", remap = false) ) private void setSizeSmart(ObjectList list, int size) { if(list instanceof ObjectArrayList && size > list.size()) { diff --git a/common/src/main/java/org/embeddedt/modernfix/registry/DirectStorageBiMap.java b/common/src/main/java/org/embeddedt/modernfix/registry/DirectStorageBiMap.java index 68717081..9aa1442a 100644 --- a/common/src/main/java/org/embeddedt/modernfix/registry/DirectStorageBiMap.java +++ b/common/src/main/java/org/embeddedt/modernfix/registry/DirectStorageBiMap.java @@ -9,6 +9,7 @@ import java.util.function.BiConsumer; import java.util.function.Function; import java.util.stream.Collectors; +@SuppressWarnings("unchecked") public class DirectStorageBiMap implements BiMap { private final Function keyGetter; private final BiConsumer keySetter; diff --git a/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/faster_command_suggestions/SuggestionsBuilderMixin.java b/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/faster_command_suggestions/SuggestionsBuilderMixin.java index e27b0480..435508d2 100644 --- a/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/faster_command_suggestions/SuggestionsBuilderMixin.java +++ b/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/faster_command_suggestions/SuggestionsBuilderMixin.java @@ -17,7 +17,7 @@ public class SuggestionsBuilderMixin { @Unique private static final int MAX_SUGGESTIONS = 10000; - @Shadow @Final @Mutable + @Shadow(remap = false) @Final @Mutable private List result; @Redirect(method = "*", at = @At(value = "INVOKE", target = "Ljava/util/List;add(Ljava/lang/Object;)Z"), require = 0) diff --git a/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/resourcepacks/ModNioResourcePackMixin.java b/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/resourcepacks/ModNioResourcePackMixin.java index 89d0681e..40358925 100644 --- a/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/resourcepacks/ModNioResourcePackMixin.java +++ b/fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/resourcepacks/ModNioResourcePackMixin.java @@ -23,10 +23,10 @@ import java.util.Set; public abstract class ModNioResourcePackMixin implements ICachingResourcePack { @Shadow public abstract Set getNamespaces(PackType type); - @Shadow @Final private Path basePath; + @Shadow(remap = false) @Final private Path basePath; private PackResourcesCacheEngine cacheEngine; - @Inject(method = "", at = @At("RETURN")) + @Inject(method = "", at = @At("RETURN"), remap = false) private void cacheResources(CallbackInfo ci) { invalidateCache(); PackResourcesCacheEngine.track(this); diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/ctm_resourceutil_cme/ResourceUtilMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/ctm_resourceutil_cme/ResourceUtilMixin.java index 7e5e41b2..26844d70 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/ctm_resourceutil_cme/ResourceUtilMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/ctm_resourceutil_cme/ResourceUtilMixin.java @@ -20,7 +20,7 @@ import java.util.concurrent.ConcurrentMap; @ClientOnlyMixin @SuppressWarnings({"rawtypes", "unchecked"}) public class ResourceUtilMixin { - @Shadow @Final @Mutable + @Shadow(remap = false) @Final @Mutable private static Map metadataCache; /** diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/preserve_early_window_pos/WindowMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/preserve_early_window_pos/WindowMixin.java index 85702c55..837e3358 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/preserve_early_window_pos/WindowMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/preserve_early_window_pos/WindowMixin.java @@ -60,7 +60,7 @@ public class WindowMixin { * Grab the original width/height from the window and inject them into our state variables. */ @SuppressWarnings("unchecked") - @Redirect(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraftforge/fml/loading/progress/EarlyProgressVisualization;handOffWindow(Ljava/util/function/IntSupplier;Ljava/util/function/IntSupplier;Ljava/util/function/Supplier;Ljava/util/function/LongSupplier;)J"), require = 0) + @Redirect(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraftforge/fml/loading/progress/EarlyProgressVisualization;handOffWindow(Ljava/util/function/IntSupplier;Ljava/util/function/IntSupplier;Ljava/util/function/Supplier;Ljava/util/function/LongSupplier;)J", remap = false), require = 0) private long performHandoff(EarlyProgressVisualization instance, IntSupplier width, IntSupplier height, Supplier title, LongSupplier monitor, WindowEventHandler arg, ScreenManager arg2, DisplayData arg3) { Object visualizer = getEarlyProgressVisualizer(); if(visualizer != null && defaultDisplayData(arg3)) { diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/starlight_emptiness/StarLightEngineMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/starlight_emptiness/StarLightEngineMixin.java index e50f321d..4973adf9 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/starlight_emptiness/StarLightEngineMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/starlight_emptiness/StarLightEngineMixin.java @@ -17,11 +17,11 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; public abstract class StarLightEngineMixin { @Shadow protected abstract LevelChunkSection getChunkSection(int chunkX, int chunkY, int chunkZ); - @Shadow @Final protected int minSection; + @Shadow(remap = false) @Final protected int minSection; @Inject(method = "handleEmptySectionChanges(Lnet/minecraft/world/level/chunk/LightChunkGetter;Lnet/minecraft/world/level/chunk/ChunkAccess;[Ljava/lang/Boolean;Z)[Z", at = @At(value = "INVOKE", target = "Lca/spottedleaf/starlight/common/light/StarLightEngine;setEmptinessMapCache(II[Z)V", - shift = At.Shift.AFTER)) + shift = At.Shift.AFTER, remap = false)) private void lazyInitMapIfNeeded(LightChunkGetter lightAccess, ChunkAccess chunk, Boolean[] emptinessChanges, boolean unlit, CallbackInfoReturnable cir) { final int chunkX = chunk.getPos().x; final int chunkZ = chunk.getPos().z; diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ItemModelMesherForgeMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ItemModelMesherForgeMixin.java index 9fab54c9..d5792df3 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ItemModelMesherForgeMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ItemModelMesherForgeMixin.java @@ -20,7 +20,7 @@ import java.util.Map; @Mixin(net.minecraftforge.client.ItemModelMesherForge.class) @ClientOnlyMixin public abstract class ItemModelMesherForgeMixin extends ItemModelShaper { - @Shadow @Final @Mutable private Map, ModelResourceLocation> locations; + @Shadow(remap = false) @Final @Mutable private Map, ModelResourceLocation> locations; private Map, ModelResourceLocation> overrideLocations; @@ -48,6 +48,7 @@ public abstract class ItemModelMesherForgeMixin extends ItemModelShaper { } /** + * @author embeddedt * @reason Get the stored location for that item and meta, and get the model * from that location from the model manager. **/ @@ -59,6 +60,7 @@ public abstract class ItemModelMesherForgeMixin extends ItemModelShaper { } /** + * @author embeddedt * @reason Don't get all models during init (with dynamic loading, that would * generate them all). Just store location instead. **/ @@ -69,6 +71,7 @@ public abstract class ItemModelMesherForgeMixin extends ItemModelShaper { } /** + * @author embeddedt * @reason Disable cache rebuilding (with dynamic loading, that would generate * all models). **/ diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ctm/CTMPackReloadListenerMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ctm/CTMPackReloadListenerMixin.java index 4c8cc031..095c122b 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ctm/CTMPackReloadListenerMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ctm/CTMPackReloadListenerMixin.java @@ -35,7 +35,7 @@ import java.util.function.Predicate; @ClientOnlyMixin public abstract class CTMPackReloadListenerMixin implements ModernFixClientIntegration { /* caches the original render checks */ - @Shadow @Final private static Map, Predicate> blockRenderChecks; + @Shadow(remap = false) @Final private static Map, Predicate> blockRenderChecks; private static Map, Predicate> renderCheckOverrides = new ConcurrentHashMap<>(); @@ -50,6 +50,10 @@ public abstract class CTMPackReloadListenerMixin implements ModernFixClientInteg ModernFixClient.CLIENT_INTEGRATIONS.add(this); } + /** + * @author embeddedt + * @reason handle layer changes dynamically + */ @Overwrite(remap = false) private void refreshLayerHacks() { renderCheckOverrides.clear(); diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/rs/ClientSetupMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/rs/ClientSetupMixin.java index 26cf83b0..0ee9ff6d 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/rs/ClientSetupMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/rs/ClientSetupMixin.java @@ -20,7 +20,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @RequiresMod("refinedstorage") @ClientOnlyMixin public class ClientSetupMixin { - @Shadow @Final private BakedModelOverrideRegistry bakedModelOverrideRegistry; + @Shadow(remap = false) @Final private BakedModelOverrideRegistry bakedModelOverrideRegistry; @Inject(method = "", at = @At("RETURN")) private void addDynamicListener(CallbackInfo ci) { diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/supermartijncore/ClientRegistrationHandlerMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/supermartijncore/ClientRegistrationHandlerMixin.java index e4cc3781..12e235a9 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/supermartijncore/ClientRegistrationHandlerMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/supermartijncore/ClientRegistrationHandlerMixin.java @@ -31,7 +31,7 @@ import java.util.stream.Stream; @RequiresMod("supermartijn642corelib") @ClientOnlyMixin public class ClientRegistrationHandlerMixin { - @Shadow @Final private List>, Function>> modelOverwrites; + @Shadow(remap = false) @Final private List>, Function>> modelOverwrites; private Map> modelOverwritesByLocation = new Object2ObjectOpenHashMap<>(); diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/rewrite_registry/ForgeRegistrySnapshotMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/rewrite_registry/ForgeRegistrySnapshotMixin.java index a538a112..b8dbf343 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/rewrite_registry/ForgeRegistrySnapshotMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/rewrite_registry/ForgeRegistrySnapshotMixin.java @@ -19,9 +19,9 @@ import java.util.Set; @Mixin(ForgeRegistry.Snapshot.class) @IgnoreOutsideDev public class ForgeRegistrySnapshotMixin { - @Shadow @Final @Mutable public Map ids; + @Shadow(remap = false) @Final @Mutable public Map ids; - @Shadow @Final @Mutable public Set dummied; + @Shadow(remap = false) @Final @Mutable public Set dummied; /** * The only good reason to use tree maps here is to keep the order the same. But we are tracking IDs