I'm pretty new to modding, and I'm trying to add an alternate skin to foxes but my code does not seem to work, despite throwing no errors. I switched the normal sleeping fox texture with the snowy one, but in-game the sleeping red fox still appears as red, so it seems this code is just doing nothing at all. Any help?
package com.fiopon.bluevox;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraft.client.renderer.entity.EntityRendererManager;
import net.minecraft.client.renderer.entity.MobRenderer;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector3f;
import net.minecraft.entity.passive.FoxEntity;
import net.minecraft.client.renderer.entity.model.FoxModel;
import net.minecraft.tags.EntityTypeTags;
import net.minecraft.entity.Entity;
import com.mojang.blaze3d.matrix.MatrixStack;
@OnlyIn(Dist.CLIENT)
public class RhysFoxRenderer extends MobRenderer<FoxEntity, FoxModel<FoxEntity>> {
private static final ResourceLocation RHYS_FOX = new ResourceLocation("bvox:textures/entity/fox/rhys_fox.png");
private static final ResourceLocation SLEEPING_RHYS_FOX = new ResourceLocation("bvox:textures/entity/fox/rhys_fox_sleep.png");
private static final ResourceLocation FOX = new ResourceLocation("minecraft:textures/entity/fox/fox.png");
private static final ResourceLocation SLEEPING_FOX = new ResourceLocation("minecraft:textures/entity/fox/snow_fox_sleep.png");
private static final ResourceLocation SNOW_FOX = new ResourceLocation("minecraft:textures/entity/fox/snow_fox.png");
private static final ResourceLocation SLEEPING_SNOW_FOX = new ResourceLocation("minecraft:textures/entity/fox/snow_fox_sleep.png");
public RhysFoxRenderer(EntityRendererManager renderManagerIn) {
super(renderManagerIn, new FoxModel<>(), 0.4F);
}
@Override
protected void applyRotations(FoxEntity entityLiving, MatrixStack matrixStackIn, float ageInTicks, float rotationYaw, float partialTicks) {
super.applyRotations(entityLiving, matrixStackIn, ageInTicks, rotationYaw, partialTicks);
if (entityLiving.func_213480_dY() || entityLiving.isStuck()) {
float f = -MathHelper.lerp(partialTicks, entityLiving.prevRotationPitch, entityLiving.rotationPitch);
matrixStackIn.rotate(Vector3f.XP.rotationDegrees(f));
}
}
@Override
public ResourceLocation getEntityTexture(FoxEntity entity) {
if (entity.getVariantType() == FoxEntity.Type.RED) {
if (entity.getPersistentData().getBoolean("isRhys")) {
if( entity.isSleeping()) {
return SLEEPING_RHYS_FOX;
}
else {
return RHYS_FOX;
}
}
else {
if ( entity.isSleeping()) {
return SLEEPING_FOX;
}
else {
return FOX;
}
}
}
else {
if ( entity.isSleeping()) {
return SLEEPING_SNOW_FOX;
}
else {
return SNOW_FOX;
}
}
}
}
Thank you very much if you're able to help in any way.