diff --git a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgOpenSpellGuiS2C.java b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgOpenSpellGuiS2C.java index 54fb657b..a06e608b 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgOpenSpellGuiS2C.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/msgs/MsgOpenSpellGuiS2C.java @@ -56,11 +56,14 @@ public record MsgOpenSpellGuiS2C(InteractionHand hand, List pat } public static void handle(MsgOpenSpellGuiS2C msg) { - Minecraft.getInstance().execute(() -> { - var mc = Minecraft.getInstance(); - mc.setScreen( - new GuiSpellcasting(msg.hand(), msg.patterns(), msg.stack, msg.ravenmind, - msg.parenCount)); + Minecraft.getInstance().execute(new Runnable() { + @Override + public void run() { + var mc = Minecraft.getInstance(); + mc.setScreen( + new GuiSpellcasting(msg.hand(), msg.patterns(), msg.stack, msg.ravenmind, + msg.parenCount)); + } }); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/mixin/client/MixinPlayerRenderer.java b/Common/src/main/java/at/petrak/hexcasting/mixin/client/MixinPlayerRenderer.java deleted file mode 100644 index 0e51ae77..00000000 --- a/Common/src/main/java/at/petrak/hexcasting/mixin/client/MixinPlayerRenderer.java +++ /dev/null @@ -1,31 +0,0 @@ -package at.petrak.hexcasting.mixin.client; - -import at.petrak.hexcasting.client.model.AltioraLayer; -import net.minecraft.client.model.PlayerModel; -import net.minecraft.client.player.AbstractClientPlayer; -import net.minecraft.client.renderer.entity.EntityRendererProvider; -import net.minecraft.client.renderer.entity.LivingEntityRenderer; -import net.minecraft.client.renderer.entity.player.PlayerRenderer; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -// Mixin is the approach Ears uses -// granted, Ears isn't exactly the paragon of "how to make your average minecraft mod" but still -// IDK another way to do it -@Mixin(PlayerRenderer.class) -public abstract class MixinPlayerRenderer extends LivingEntityRenderer> { - public MixinPlayerRenderer(EntityRendererProvider.Context $$0, PlayerModel $$1, float $$2) { - super($$0, $$1, $$2); - } - - @Inject( - method = "", - at = @At("TAIL") - ) - private void hex$init(EntityRendererProvider.Context erp, boolean slimModel, CallbackInfo ci) { - this.addLayer(new AltioraLayer<>(this, erp.getModelSet())); - } -} diff --git a/Common/src/main/resources/hexplat.mixins.json b/Common/src/main/resources/hexplat.mixins.json index 1d2ac130..ea86439e 100644 --- a/Common/src/main/resources/hexplat.mixins.json +++ b/Common/src/main/resources/hexplat.mixins.json @@ -26,7 +26,6 @@ "accessor.client.AccessorMouseHandler", "accessor.client.AccessorRenderStateShard", "accessor.client.AccessorRenderType", - "client.MixinClientLevel", - "client.MixinPlayerRenderer" + "client.MixinClientLevel" ] } diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricDataGenerators.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricDataGenerators.java index f9249936..6bf53942 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricDataGenerators.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/datagen/HexFabricDataGenerators.java @@ -32,10 +32,10 @@ public class HexFabricDataGenerators implements DataGeneratorEntrypoint { HexAPI.LOGGER.info("Starting Fabric-specific datagen"); var pack = gen.createPack(); + var xtags = IXplatAbstractions.INSTANCE.tags(); pack.addProvider((FabricDataGenerator.Pack.Factory) x -> new HexplatRecipes(x, INGREDIENTS, HexFabricConditionsBuilder::new)); - var xtags = IXplatAbstractions.INSTANCE.tags(); var btagProviderWrapper = new BlockTagProviderWrapper(); // CURSED pack.addProvider((output, lookup) -> { btagProviderWrapper.provider = new HexBlockTagProvider(output, lookup, xtags); diff --git a/Forge/gradle.properties b/Forge/gradle.properties index ac104d8c..8b695f76 100644 --- a/Forge/gradle.properties +++ b/Forge/gradle.properties @@ -1,4 +1,4 @@ -forgeVersion=47.0.1 +forgeVersion=47.0.3 kotlinForForgeVersion=4.3.0 diff --git a/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexClientInitializer.java b/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexClientInitializer.java index 316a0e3b..30e0e2a5 100644 --- a/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexClientInitializer.java +++ b/Forge/src/main/java/at/petrak/hexcasting/forge/ForgeHexClientInitializer.java @@ -4,6 +4,7 @@ import at.petrak.hexcasting.client.ClientTickCounter; import at.petrak.hexcasting.client.RegisterClientStuff; import at.petrak.hexcasting.client.ShiftScrollListener; import at.petrak.hexcasting.client.gui.PatternTooltipComponent; +import at.petrak.hexcasting.client.model.AltioraLayer; import at.petrak.hexcasting.client.model.HexModelLayers; import at.petrak.hexcasting.client.render.HexAdditionalRenderers; import at.petrak.hexcasting.client.render.shader.HexShaders; @@ -14,8 +15,12 @@ import at.petrak.hexcasting.interop.HexInterop; import net.minecraft.client.Minecraft; import net.minecraft.client.color.block.BlockColors; import net.minecraft.client.color.item.ItemColors; +import net.minecraft.client.model.EntityModel; +import net.minecraft.client.model.PlayerModel; import net.minecraft.client.particle.ParticleProvider; import net.minecraft.client.particle.SpriteSet; +import net.minecraft.client.player.AbstractClientPlayer; +import net.minecraft.client.renderer.entity.LivingEntityRenderer; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleType; import net.minecraftforge.client.event.*; @@ -122,4 +127,13 @@ public class ForgeHexClientInitializer { public static void registerEntityLayers(EntityRenderersEvent.RegisterLayerDefinitions evt) { HexModelLayers.init(evt::registerLayerDefinition); } + + @SubscribeEvent + public static void addPlayerLayers(EntityRenderersEvent.AddLayers evt) { + evt.getSkins().forEach(skinName -> { + var skin = (LivingEntityRenderer>) evt.getSkin(skinName); + + skin.addLayer(new AltioraLayer<>(skin, evt.getEntityModels())); + }); + } }