Fixed cape offset from the body when lying down

This commit is contained in:
Sollace 2024-12-16 22:40:41 +01:00
parent e9f70d6a6e
commit 7180f22f4f
No known key found for this signature in database
GPG key ID: E52FACE7B5C773DB
3 changed files with 6 additions and 21 deletions

View file

@ -8,7 +8,6 @@ import com.minelittlepony.client.model.entity.EnderStallionModel;
import com.minelittlepony.client.render.entity.feature.GlowingEyesFeature; import com.minelittlepony.client.render.entity.feature.GlowingEyesFeature;
import com.minelittlepony.client.render.entity.feature.HeldItemFeature; import com.minelittlepony.client.render.entity.feature.HeldItemFeature;
import com.minelittlepony.client.render.entity.npc.textures.TextureSupplier; import com.minelittlepony.client.render.entity.npc.textures.TextureSupplier;
import com.minelittlepony.client.render.entity.feature.GlowingEyesFeature.IGlowingRenderer;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.VertexConsumerProvider;
@ -24,7 +23,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.Random; import java.util.Random;
public class EnderStallionRenderer extends PonyRenderer<EndermanEntity, EnderStallionRenderer.State, EnderStallionModel> implements IGlowingRenderer { public class EnderStallionRenderer extends PonyRenderer<EndermanEntity, EnderStallionRenderer.State, EnderStallionModel> {
public static final Identifier ENDERMAN = MineLittlePony.id("textures/entity/enderman/enderman_pony.png"); public static final Identifier ENDERMAN = MineLittlePony.id("textures/entity/enderman/enderman_pony.png");
private static final Identifier EYES = MineLittlePony.id("textures/entity/enderman/enderman_pony_eyes.png"); private static final Identifier EYES = MineLittlePony.id("textures/entity/enderman/enderman_pony_eyes.png");
@ -39,7 +38,7 @@ public class EnderStallionRenderer extends PonyRenderer<EndermanEntity, EnderSta
protected void addFeatures(EntityRendererFactory.Context context) { protected void addFeatures(EntityRendererFactory.Context context) {
addPonyFeature(createHeldItemFeature(context)); addPonyFeature(createHeldItemFeature(context));
addPonyFeature(new StuckArrowsFeatureRenderer<EnderStallionModel>((PonyRenderer)this, context)); addPonyFeature(new StuckArrowsFeatureRenderer<EnderStallionModel>((PonyRenderer)this, context));
addPonyFeature(new GlowingEyesFeature<EnderStallionRenderer.State, EnderStallionModel>(this)); addPonyFeature(new GlowingEyesFeature<EnderStallionRenderer.State, EnderStallionModel>(this, EYES));
} }
@Override @Override
@ -81,11 +80,6 @@ public class EnderStallionRenderer extends PonyRenderer<EndermanEntity, EnderSta
super.render(entity, matrices, vertices, light); super.render(entity, matrices, vertices, light);
} }
@Override
public Identifier getEyeTexture() {
return EYES;
}
public class State extends SkeleponyRenderer.State { public class State extends SkeleponyRenderer.State {
public boolean angry; public boolean angry;
@Nullable @Nullable

View file

@ -52,11 +52,8 @@ public class CapeFeature extends CapeFeatureRenderer {
rendered[0] = true; rendered[0] = true;
matrices.translate(0, 0.34F, 0); matrices.translate(0, 0.34F, 0);
if (((PlayerPonyRenderState)player).getAttributes().isLyingDown) {
matrices.translate(0, -0.05F, 0);
}
model.transform((PlayerPonyRenderState)player, BodyPart.BODY, matrices); model.transform((PlayerPonyRenderState)player, BodyPart.BODY, matrices);
model.getBodyPart(BodyPart.BODY).rotate(matrices); model.body.rotate(matrices);
matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(85)); matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(85));
if (player.baby) { if (player.baby) {
matrices.scale(1.1F, 1.1F, 1.1F); matrices.scale(1.1F, 1.1F, 1.1F);

View file

@ -2,7 +2,6 @@ package com.minelittlepony.client.render.entity.feature;
import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; import net.minecraft.client.render.entity.feature.EyesFeatureRenderer;
import net.minecraft.client.render.entity.feature.FeatureRendererContext;
import net.minecraft.client.render.entity.state.PlayerEntityRenderState; import net.minecraft.client.render.entity.state.PlayerEntityRenderState;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
@ -17,18 +16,13 @@ public class GlowingEyesFeature<
private final RenderLayer layer; private final RenderLayer layer;
@SuppressWarnings({"rawtypes", "unchecked"}) public GlowingEyesFeature(PonyRenderContext<?, S, M> context, Identifier texture) {
public <V extends FeatureRendererContext & PonyRenderContext<?, S, M> & IGlowingRenderer> GlowingEyesFeature(V renderer) { super(context.upcast());
super(renderer); layer = RenderLayer.getEyes(texture);
layer = RenderLayer.getEyes(renderer.getEyeTexture());
} }
@Override @Override
public RenderLayer getEyesTexture() { public RenderLayer getEyesTexture() {
return layer; return layer;
} }
public interface IGlowingRenderer {
Identifier getEyeTexture();
}
} }