From 79219d286fc8dbfa38086eb76e020c45fe74ab86 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Fri, 7 Jul 2023 12:34:36 -0400 Subject: [PATCH 1/3] Fix issue with anonymous classes in mixin Related: #151 --- .../dynamicresources/ModelBakeryHelpers.java | 17 +++++++++++++---- .../ae2/RegistrationMixin.java | 13 ++++--------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelBakeryHelpers.java b/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelBakeryHelpers.java index e5a2e52c..fe7cf0d6 100644 --- a/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelBakeryHelpers.java +++ b/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelBakeryHelpers.java @@ -9,10 +9,7 @@ import com.mojang.datafixers.util.Pair; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.client.resources.model.Material; -import net.minecraft.client.resources.model.ModelBakery; -import net.minecraft.client.resources.model.ModelResourceLocation; -import net.minecraft.client.resources.model.UnbakedModel; +import net.minecraft.client.resources.model.*; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.PackResources; import net.minecraft.server.packs.PackType; @@ -24,6 +21,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.Property; import org.embeddedt.modernfix.ModernFix; +import org.embeddedt.modernfix.api.entrypoint.ModernFixClientIntegration; import java.io.IOException; import java.io.InputStream; @@ -32,6 +30,8 @@ import java.nio.charset.StandardCharsets; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -342,4 +342,13 @@ public class ModelBakeryHelpers { } return ImmutableList.copyOf(finalList); } + + public static ModernFixClientIntegration bakedModelWrapper(BiFunction, BakedModel> consumer) { + return new ModernFixClientIntegration() { + @Override + public BakedModel onBakedModelLoad(ResourceLocation location, UnbakedModel baseModel, BakedModel originalModel, ModelState state, ModelBakery bakery) { + return consumer.apply(location, Pair.of(baseModel, originalModel)); + } + }; + } } diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ae2/RegistrationMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ae2/RegistrationMixin.java index bc838d13..2b0f17af 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ae2/RegistrationMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/dynamic_resources/ae2/RegistrationMixin.java @@ -11,7 +11,7 @@ import org.embeddedt.modernfix.ModernFix; import org.embeddedt.modernfix.ModernFixClient; import org.embeddedt.modernfix.annotation.ClientOnlyMixin; import org.embeddedt.modernfix.annotation.RequiresMod; -import org.embeddedt.modernfix.api.entrypoint.ModernFixClientIntegration; +import org.embeddedt.modernfix.dynamicresources.ModelBakeryHelpers; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -30,13 +30,9 @@ public class RegistrationMixin { @Inject(method = "registerClientEvents", at = @At("TAIL"), remap = false) private void doRegisterDynBake(CallbackInfo ci) { customizerField = ObfuscationReflectionHelper.findField(ModelOverrideComponent.class, "customizer"); - ModernFixClient.CLIENT_INTEGRATIONS.add(new ModernFixClientIntegration() { - @Override - public BakedModel onBakedModelLoad(ResourceLocation location, UnbakedModel baseModel, BakedModel originalModel, ModelState state, ModelBakery bakery) { + ModernFixClient.CLIENT_INTEGRATIONS.add(ModelBakeryHelpers.bakedModelWrapper((location, pair) -> { + BakedModel originalModel = pair.getSecond(); if(location.getNamespace().equals(AppEng.MOD_ID)) { - BakedModel m = bakery.bake(ModelBakery.MISSING_MODEL_LOCATION, BlockModelRotation.X0_Y0); - if(originalModel == m) - return originalModel; Iterator components = Api.INSTANCE.definitions().getRegistry().getBootstrapComponents(IModelBakeComponent.class); while(components.hasNext()) { IModelBakeComponent c = components.next(); @@ -55,7 +51,6 @@ public class RegistrationMixin { } } return originalModel; - } - }); + })); } } From 98663fa416df6a8955332c0cd9a374a3e0079e34 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Fri, 7 Jul 2023 12:39:26 -0400 Subject: [PATCH 2/3] Never replace search tree on 1.16 with REI present --- .../forge/mixin/perf/blast_search_trees/MinecraftMixin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/blast_search_trees/MinecraftMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/blast_search_trees/MinecraftMixin.java index b16ac7cc..aff19be1 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/blast_search_trees/MinecraftMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/blast_search_trees/MinecraftMixin.java @@ -21,7 +21,7 @@ public class MinecraftMixin { @Inject(method = "createSearchTrees", at = @At("HEAD"), cancellable = true) private void replaceSearchTrees(CallbackInfo ci) { ci.cancel(); - if(ModList.get().getModFileById("jei") != null) { + if(ModList.get().getModFileById("jei") != null && ModList.get().getModFileById("roughlyenoughitems") == null) { this.searchRegistry.register(SearchRegistry.CREATIVE_NAMES, new JEIBackedSearchTree(false)); this.searchRegistry.register(SearchRegistry.CREATIVE_TAGS, new JEIBackedSearchTree(true)); } else { From 1c0fca8f068f45d24a2b51e27a0b749188045d9b Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Fri, 7 Jul 2023 12:40:46 -0400 Subject: [PATCH 3/3] Spotless --- .../embeddedt/modernfix/dynamicresources/ModelBakeryHelpers.java | 1 - 1 file changed, 1 deletion(-) diff --git a/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelBakeryHelpers.java b/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelBakeryHelpers.java index fe7cf0d6..d8162c4e 100644 --- a/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelBakeryHelpers.java +++ b/common/src/main/java/org/embeddedt/modernfix/dynamicresources/ModelBakeryHelpers.java @@ -30,7 +30,6 @@ import java.nio.charset.StandardCharsets; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.function.BiConsumer; import java.util.function.BiFunction; import java.util.function.Function; import java.util.function.Predicate;