From a1ba9f27e9ece380e390312c8166f94dc4c44514 Mon Sep 17 00:00:00 2001 From: IThundxr Date: Thu, 30 Nov 2023 11:59:59 -0500 Subject: [PATCH] Remove Mixin cause we eventing all the way today --- .../oddities/module/TinyPotatoModule.java | 16 ++-- .../quark/mixin/client/ModelManagerMixin.java | 28 ------- .../zeta/client/event/load/ZModel.java | 31 +++++++ .../event/load/ZModelBakingCompleted.java | 12 --- .../zetaimplforge/client/ForgeZetaClient.java | 21 ++++- .../client/event/load/ForgeZModel.java | 80 +++++++++++++++++++ .../load/ForgeZModelBakingCompleted.java | 16 ---- src/main/resources/quark.mixins.json | 1 - 8 files changed, 140 insertions(+), 65 deletions(-) delete mode 100644 src/main/java/org/violetmoon/quark/mixin/client/ModelManagerMixin.java create mode 100644 src/main/java/org/violetmoon/zeta/client/event/load/ZModel.java delete mode 100644 src/main/java/org/violetmoon/zeta/client/event/load/ZModelBakingCompleted.java create mode 100644 src/main/java/org/violetmoon/zetaimplforge/client/event/load/ForgeZModel.java delete mode 100644 src/main/java/org/violetmoon/zetaimplforge/client/event/load/ForgeZModelBakingCompleted.java diff --git a/src/main/java/org/violetmoon/quark/addons/oddities/module/TinyPotatoModule.java b/src/main/java/org/violetmoon/quark/addons/oddities/module/TinyPotatoModule.java index 38f66bf786..697653c5a0 100644 --- a/src/main/java/org/violetmoon/quark/addons/oddities/module/TinyPotatoModule.java +++ b/src/main/java/org/violetmoon/quark/addons/oddities/module/TinyPotatoModule.java @@ -2,6 +2,8 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.blockentity.BlockEntityRenderers; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.Resource; @@ -10,13 +12,14 @@ import net.minecraft.world.level.block.entity.BlockEntityType; import org.violetmoon.quark.addons.oddities.block.TinyPotatoBlock; import org.violetmoon.quark.addons.oddities.block.be.TinyPotatoBlockEntity; +import org.violetmoon.quark.addons.oddities.client.model.TinyPotatoModel; import org.violetmoon.quark.addons.oddities.client.render.be.TinyPotatoRenderer; import org.violetmoon.quark.base.Quark; import org.violetmoon.quark.base.config.Config; -import org.violetmoon.quark.mixin.client.ModelManagerMixin; import org.violetmoon.zeta.advancement.ManualTrigger; import org.violetmoon.zeta.client.event.load.ZAddModels; import org.violetmoon.zeta.client.event.load.ZClientSetup; +import org.violetmoon.zeta.client.event.load.ZModel; import org.violetmoon.zeta.event.bus.LoadEvent; import org.violetmoon.zeta.event.load.ZRegister; import org.violetmoon.zeta.module.ZetaLoadModule; @@ -50,10 +53,13 @@ public final void register(ZRegister event) { @ZetaLoadModule(clientReplacement = true) public static class Client extends TinyPotatoModule { - /** - * Moved to {@link ModelManagerMixin} - */ - public void modelBake() { } + @LoadEvent + public void modelBake(ZModel.ModifyBakingResult event) { + ResourceLocation tinyPotato = new ModelResourceLocation(new ResourceLocation("quark", "tiny_potato"), "inventory"); + Map map = event.getModels(); + BakedModel originalPotato = map.get(tinyPotato); + map.put(tinyPotato, new TinyPotatoModel(originalPotato)); + } @LoadEvent public void registerAdditionalModels(ZAddModels event) { diff --git a/src/main/java/org/violetmoon/quark/mixin/client/ModelManagerMixin.java b/src/main/java/org/violetmoon/quark/mixin/client/ModelManagerMixin.java deleted file mode 100644 index 0adcfe813a..0000000000 --- a/src/main/java/org/violetmoon/quark/mixin/client/ModelManagerMixin.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.violetmoon.quark.mixin.client; - -import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.client.resources.model.ModelManager; -import net.minecraft.client.resources.model.ModelResourceLocation; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.profiling.ProfilerFiller; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.violetmoon.quark.addons.oddities.client.model.TinyPotatoModel; -import org.violetmoon.quark.base.Quark; - -import java.util.Map; - -@Mixin(ModelManager.class) -public class ModelManagerMixin { - @Shadow - private Map bakedRegistry; - - @Inject(at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/client/resources/model/ModelBakery;getBakedTopLevelModels()Ljava/util/Map;", shift = At.Shift.AFTER), method = "apply(Lnet/minecraft/client/resources/model/ModelManager$ReloadState;Lnet/minecraft/util/profiling/ProfilerFiller;)V") - private void onModelBake(ModelManager.ReloadState reloadState, ProfilerFiller profilerFiller, CallbackInfo ci) { - ModelResourceLocation key = new ModelResourceLocation(Quark.asResource("tiny_potato"), "inventory"); - bakedRegistry.put(key, new TinyPotatoModel(bakedRegistry.get(key))); - } -} diff --git a/src/main/java/org/violetmoon/zeta/client/event/load/ZModel.java b/src/main/java/org/violetmoon/zeta/client/event/load/ZModel.java new file mode 100644 index 0000000000..1fecd30033 --- /dev/null +++ b/src/main/java/org/violetmoon/zeta/client/event/load/ZModel.java @@ -0,0 +1,31 @@ +package org.violetmoon.zeta.client.event.load; + +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.client.resources.model.ModelBakery; +import net.minecraft.client.resources.model.ModelManager; +import net.minecraft.resources.ResourceLocation; +import net.minecraftforge.client.model.geometry.IGeometryLoader; +import org.violetmoon.zeta.event.bus.IZetaLoadEvent; + +import java.util.Map; + +public interface ZModel extends IZetaLoadEvent { + interface ModifyBakingResult extends ZModel { + Map getModels(); + ModelBakery getModelBakery(); + } + + interface BakingCompleted extends ZModel { + ModelManager getModelManager(); + Map getModels(); + ModelBakery getModelBakery(); + } + + interface RegisterAdditional extends ZModel { + void register(ResourceLocation model); + } + + interface RegisterGeometryLoaders extends ZModel { + void register(String name, IGeometryLoader loader); + } +} diff --git a/src/main/java/org/violetmoon/zeta/client/event/load/ZModelBakingCompleted.java b/src/main/java/org/violetmoon/zeta/client/event/load/ZModelBakingCompleted.java deleted file mode 100644 index e2a07cc4e2..0000000000 --- a/src/main/java/org/violetmoon/zeta/client/event/load/ZModelBakingCompleted.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.violetmoon.zeta.client.event.load; - -import java.util.Map; - -import org.violetmoon.zeta.event.bus.IZetaLoadEvent; - -import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.resources.ResourceLocation; - -public interface ZModelBakingCompleted extends IZetaLoadEvent { - Map getModels(); -} diff --git a/src/main/java/org/violetmoon/zetaimplforge/client/ForgeZetaClient.java b/src/main/java/org/violetmoon/zetaimplforge/client/ForgeZetaClient.java index 20d056bcf5..10c4117a63 100644 --- a/src/main/java/org/violetmoon/zetaimplforge/client/ForgeZetaClient.java +++ b/src/main/java/org/violetmoon/zetaimplforge/client/ForgeZetaClient.java @@ -71,7 +71,10 @@ public void start() { bus.addListener(this::registerItemColors); bus.addListener(this::clientSetup); bus.addListener(this::registerReloadListeners); - bus.addListener(this::modelBake); + bus.addListener(this::modelModifyBakingResult); + bus.addListener(this::modelBakingCompleted); + bus.addListener(this::modelRegisterAdditional); + bus.addListener(this::modelRegisterGeometryLoaders); bus.addListener(this::modelLayers); bus.addListener(this::registerKeybinds); bus.addListener(this::registerAdditionalModels); @@ -135,8 +138,20 @@ public void registerReloadListeners(RegisterClientReloadListenersEvent event) { loadBus.fire(new ZRegisterReloadListeners(event::registerReloadListener), ZRegisterReloadListeners.class); } - public void modelBake(ModelEvent.BakingCompleted event) { - loadBus.fire(new ForgeZModelBakingCompleted(event), ZModelBakingCompleted.class); + public void modelModifyBakingResult(ModelEvent.ModifyBakingResult e) { + loadBus.fire(new ForgeZModel.ModifyBakingResult(e), ZModel.ModifyBakingResult.class); + } + + public void modelBakingCompleted(ModelEvent.BakingCompleted e) { + loadBus.fire(new ForgeZModel.BakingCompleted(e), ZModel.BakingCompleted.class); + } + + public void modelRegisterAdditional(ModelEvent.RegisterAdditional e) { + loadBus.fire(new ForgeZModel.RegisterAdditional(e), ZModel.RegisterAdditional.class); + } + + public void modelRegisterGeometryLoaders(ModelEvent.RegisterGeometryLoaders e) { + loadBus.fire(new ForgeZModel.RegisterGeometryLoaders(e), ZModel.RegisterGeometryLoaders.class); } public void modelLayers(EntityRenderersEvent.AddLayers event) { diff --git a/src/main/java/org/violetmoon/zetaimplforge/client/event/load/ForgeZModel.java b/src/main/java/org/violetmoon/zetaimplforge/client/event/load/ForgeZModel.java new file mode 100644 index 0000000000..fd16cedd35 --- /dev/null +++ b/src/main/java/org/violetmoon/zetaimplforge/client/event/load/ForgeZModel.java @@ -0,0 +1,80 @@ +package org.violetmoon.zetaimplforge.client.event.load; + +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.client.resources.model.ModelBakery; +import net.minecraft.client.resources.model.ModelManager; +import net.minecraft.resources.ResourceLocation; +import net.minecraftforge.client.event.ModelEvent; +import net.minecraftforge.client.model.geometry.IGeometryLoader; +import org.violetmoon.zeta.client.event.load.ZModel; + +import java.util.Map; + +public class ForgeZModel implements ZModel { + public static class ModifyBakingResult extends ForgeZModel implements ZModel.ModifyBakingResult { + private final ModelEvent.ModifyBakingResult e; + + public ModifyBakingResult(ModelEvent.ModifyBakingResult e) { + this.e = e; + } + + @Override + public Map getModels() { + return e.getModels(); + } + + @Override + public ModelBakery getModelBakery() { + return e.getModelBakery(); + } + } + + public static class BakingCompleted extends ForgeZModel implements ZModel.BakingCompleted { + private final ModelEvent.BakingCompleted e; + + public BakingCompleted(ModelEvent.BakingCompleted e) { + this.e = e; + } + + @Override + public ModelManager getModelManager() { + return e.getModelManager(); + } + + @Override + public Map getModels() { + return e.getModels(); + } + + @Override + public ModelBakery getModelBakery() { + return e.getModelBakery(); + } + } + + public static class RegisterAdditional extends ForgeZModel implements ZModel.RegisterAdditional { + private final ModelEvent.RegisterAdditional e; + + public RegisterAdditional(ModelEvent.RegisterAdditional e) { + this.e = e; + } + + @Override + public void register(ResourceLocation model) { + e.register(model); + } + } + + public static class RegisterGeometryLoaders extends ForgeZModel implements ZModel.RegisterGeometryLoaders { + private final ModelEvent.RegisterGeometryLoaders e; + + public RegisterGeometryLoaders(ModelEvent.RegisterGeometryLoaders e) { + this.e = e; + } + + @Override + public void register(String name, IGeometryLoader loader) { + e.register(name, loader); + } + } +} diff --git a/src/main/java/org/violetmoon/zetaimplforge/client/event/load/ForgeZModelBakingCompleted.java b/src/main/java/org/violetmoon/zetaimplforge/client/event/load/ForgeZModelBakingCompleted.java deleted file mode 100644 index 01a887d1f0..0000000000 --- a/src/main/java/org/violetmoon/zetaimplforge/client/event/load/ForgeZModelBakingCompleted.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.violetmoon.zetaimplforge.client.event.load; - -import java.util.Map; - -import org.violetmoon.zeta.client.event.load.ZModelBakingCompleted; - -import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.resources.ResourceLocation; -import net.minecraftforge.client.event.ModelEvent; - -public record ForgeZModelBakingCompleted(ModelEvent.BakingCompleted e) implements ZModelBakingCompleted { - @Override - public Map getModels() { - return e.getModels(); - } -} diff --git a/src/main/resources/quark.mixins.json b/src/main/resources/quark.mixins.json index faed687c78..ab84384d27 100644 --- a/src/main/resources/quark.mixins.json +++ b/src/main/resources/quark.mixins.json @@ -90,7 +90,6 @@ "client.LoomScreenMixin", "client.MinecartSoundInstanceMixin", "client.MinecraftMixin", - "client.ModelManagerMixin", "client.ParrotRendererMixin", "client.PistonTileEntityRendererMixin", "client.RenderBuffersMixin",