From 007c5f0d0d44ac1f0eff2abd78c9b9f434cd5881 Mon Sep 17 00:00:00 2001 From: Faboslav Date: Sun, 19 Jan 2025 13:33:35 +0100 Subject: [PATCH] Disable custom illusioner texture when illusioner is disabled --- .../mixin/IllusionerEntityRendererMixin.java | 17 +++++++++++++++++ .../textures/entity/illager/illusioner.png | Bin 2 files changed, 17 insertions(+) rename common/src/main/resources/assets/{minecraft => friendsandfoes}/textures/entity/illager/illusioner.png (100%) diff --git a/common/src/main/java/com/faboslav/friendsandfoes/common/mixin/IllusionerEntityRendererMixin.java b/common/src/main/java/com/faboslav/friendsandfoes/common/mixin/IllusionerEntityRendererMixin.java index 61bc717cc..551a512fc 100644 --- a/common/src/main/java/com/faboslav/friendsandfoes/common/mixin/IllusionerEntityRendererMixin.java +++ b/common/src/main/java/com/faboslav/friendsandfoes/common/mixin/IllusionerEntityRendererMixin.java @@ -10,6 +10,7 @@ import net.minecraft.client.render.entity.model.IllagerEntityModel; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.mob.IllusionerEntity; +import net.minecraft.util.Identifier; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -20,6 +21,8 @@ @Mixin({IllusionerEntityRenderer.class}) public abstract class IllusionerEntityRendererMixin extends IllagerEntityRenderer { + private final Identifier FRIENDSANDFOES_TEXTURE = FriendsAndFoes.makeID("textures/entity/illager/illusioner.png"); + protected IllusionerEntityRendererMixin( EntityRendererFactory.Context ctx, IllagerEntityModel model, @@ -61,4 +64,18 @@ protected void friendsandfoes_isVisible( callbackInfo.setReturnValue(super.isVisible(illusioner)); } } + + @Inject( + at = @At("HEAD"), + method = "getTexture(Lnet/minecraft/entity/mob/IllusionerEntity;)Lnet/minecraft/util/Identifier;", + cancellable = true + ) + protected void friendsandfoes_getTexture( + IllusionerEntity illusionerEntity, + CallbackInfoReturnable cir + ) { + if (FriendsAndFoes.getConfig().enableIllusioner) { + cir.setReturnValue(FRIENDSANDFOES_TEXTURE); + } + } } diff --git a/common/src/main/resources/assets/minecraft/textures/entity/illager/illusioner.png b/common/src/main/resources/assets/friendsandfoes/textures/entity/illager/illusioner.png similarity index 100% rename from common/src/main/resources/assets/minecraft/textures/entity/illager/illusioner.png rename to common/src/main/resources/assets/friendsandfoes/textures/entity/illager/illusioner.png