diff --git a/src/main/java/ru/betterend/mixin/client/ArmorStandRendererMixin.java b/src/main/java/ru/betterend/mixin/client/ArmorStandRendererMixin.java new file mode 100644 index 00000000..7a8b9aca --- /dev/null +++ b/src/main/java/ru/betterend/mixin/client/ArmorStandRendererMixin.java @@ -0,0 +1,25 @@ +package ru.betterend.mixin.client; + +import net.minecraft.client.model.ArmorStandArmorModel; +import net.minecraft.client.renderer.entity.ArmorStandRenderer; +import net.minecraft.client.renderer.entity.EntityRenderDispatcher; +import net.minecraft.client.renderer.entity.LivingEntityRenderer; +import net.minecraft.world.entity.decoration.ArmorStand; +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; +import ru.betterend.client.render.ArmoredElytraLayer; + +@Mixin(ArmorStandRenderer.class) +public abstract class ArmorStandRendererMixin extends LivingEntityRenderer { + + public ArmorStandRendererMixin(EntityRenderDispatcher entityRenderDispatcher, ArmorStandArmorModel entityModel, float f) { + super(entityRenderDispatcher, entityModel, f); + } + + @Inject(method = "*", at = @At("TAIL")) + public void be_addCustomLayer(EntityRenderDispatcher entityRenderDispatcher, CallbackInfo info) { + addLayer(new ArmoredElytraLayer<>(this)); + } +} diff --git a/src/main/java/ru/betterend/mixin/client/HumanoidMobRendererMixin.java b/src/main/java/ru/betterend/mixin/client/HumanoidMobRendererMixin.java new file mode 100644 index 00000000..eab82fea --- /dev/null +++ b/src/main/java/ru/betterend/mixin/client/HumanoidMobRendererMixin.java @@ -0,0 +1,25 @@ +package ru.betterend.mixin.client; + +import net.minecraft.client.model.HumanoidModel; +import net.minecraft.client.renderer.entity.EntityRenderDispatcher; +import net.minecraft.client.renderer.entity.HumanoidMobRenderer; +import net.minecraft.client.renderer.entity.MobRenderer; +import net.minecraft.world.entity.Mob; +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; +import ru.betterend.client.render.ArmoredElytraLayer; + +@Mixin(HumanoidMobRenderer.class) +public abstract class HumanoidMobRendererMixin> extends MobRenderer { + + public HumanoidMobRendererMixin(EntityRenderDispatcher entityRenderDispatcher, M entityModel, float f) { + super(entityRenderDispatcher, entityModel, f); + } + + @Inject(method = "*", at = @At("TAIL")) + public void be_addCustomLayer(EntityRenderDispatcher entityRenderDispatcher, M humanoidModel, float f, float g, float h, float i, CallbackInfo info) { + addLayer(new ArmoredElytraLayer<>(this)); + } +} diff --git a/src/main/java/ru/betterend/mixin/client/PlayerRendererMixin.java b/src/main/java/ru/betterend/mixin/client/PlayerRendererMixin.java index 557b0699..d435dd52 100644 --- a/src/main/java/ru/betterend/mixin/client/PlayerRendererMixin.java +++ b/src/main/java/ru/betterend/mixin/client/PlayerRendererMixin.java @@ -21,6 +21,6 @@ public abstract class PlayerRendererMixin extends LivingEntityRenderer(PlayerRenderer.class.cast(this))); + addLayer(new ArmoredElytraLayer<>(this)); } } diff --git a/src/main/resources/betterend.mixins.client.json b/src/main/resources/betterend.mixins.client.json index de7b097c..be0ed49a 100644 --- a/src/main/resources/betterend.mixins.client.json +++ b/src/main/resources/betterend.mixins.client.json @@ -8,6 +8,8 @@ "ClientPlayNetworkHandlerMixin", "NamespaceResourceManagerMixin", "EnchantingTableBlockMixin", + "HumanoidMobRendererMixin", + "ArmorStandRendererMixin", "BackgroundRendererMixin", "ClientRecipeBookMixin", "ModelVariantMapMixin",