Fixed tails and necks rendering on spectator mode players,

fixed spectators missing snouts and ears, and fixed spectators
bodies rotating when flying
This commit is contained in:
Sollace 2024-12-16 22:51:40 +01:00
parent 7180f22f4f
commit 2f0ad4bf3e
No known key found for this signature in database
GPG key ID: E52FACE7B5C773DB
5 changed files with 13 additions and 9 deletions

View file

@ -144,6 +144,7 @@ public class ModelAttributes {
isGoingFast &= zMotion > 0.4F; isGoingFast &= zMotion > 0.4F;
isGoingFast |= entity.isUsingRiptide(); isGoingFast |= entity.isUsingRiptide();
isGoingFast |= entity.isGliding(); isGoingFast |= entity.isGliding();
isGoingFast &= !entity.isSpectator();
motionLerp = MathUtil.clampLimit(zMotion * 30, 1); motionLerp = MathUtil.clampLimit(zMotion * 30, 1);

View file

@ -86,6 +86,7 @@ public abstract class AbstractPonyModel<T extends PonyRenderState> extends Clien
protected void setModelVisibilities(T state) { protected void setModelVisibilities(T state) {
resetPivot(head, neck, leftArm, rightArm, leftLeg, rightLeg); resetPivot(head, neck, leftArm, rightArm, leftLeg, rightLeg);
hat.visible = head.visible && !state.attributes.isHorsey; hat.visible = head.visible && !state.attributes.isHorsey;
neck.visible = body.visible;
if (state.attributes.isHorsey) { if (state.attributes.isHorsey) {
neck.visible = head.visible; neck.visible = head.visible;
} else { } else {

View file

@ -57,8 +57,8 @@ public class PonyEars implements SubModel<PonyRenderState>, MsonModel {
@Override @Override
public void setVisible(boolean visible, PonyRenderState state) { public void setVisible(boolean visible, PonyRenderState state) {
right.visible = visible && !state.race.isHuman(); right.visible = !state.race.isHuman();
left.visible = visible && !state.race.isHuman(); left.visible = !state.race.isHuman();
if (state.attributes.isHorsey) { if (state.attributes.isHorsey) {
left.pivotX = -1; left.pivotX = -1;

View file

@ -39,7 +39,7 @@ public class PonySnout implements SubModel<PonyRenderState>, MsonModel {
@Override @Override
public void setVisible(boolean visible, PonyRenderState state) { public void setVisible(boolean visible, PonyRenderState state) {
visible &= !state.attributes.isHorsey visible = !state.attributes.isHorsey
&& !state.attributes.metadata.race().isHuman() && !state.attributes.metadata.race().isHuman()
&& PonyConfig.getInstance().snuzzles.get(); && PonyConfig.getInstance().snuzzles.get();
Gender gender = state.attributes.metadata.gender(); Gender gender = state.attributes.metadata.gender();

View file

@ -92,6 +92,7 @@ public class PonyTail implements SubModel<PonyRenderState>, MsonModel {
@Override @Override
public void renderPart(MatrixStack stack, VertexConsumer vertices, int overlay, int light, int color) { public void renderPart(MatrixStack stack, VertexConsumer vertices, int overlay, int light, int color) {
if (tail.visible) {
stack.push(); stack.push();
tail.rotate(stack); tail.rotate(stack);
@ -101,6 +102,7 @@ public class PonyTail implements SubModel<PonyRenderState>, MsonModel {
stack.pop(); stack.pop();
} }
}
public static class Segment { public static class Segment {
private final ModelPart tree; private final ModelPart tree;