mirror of
https://github.com/MineLittlePony/MineLittlePony.git
synced 2025-02-13 08:14:23 +01:00
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:
parent
a09500ddaa
commit
0489c4bb21
5 changed files with 25 additions and 18 deletions
|
@ -131,6 +131,7 @@ public class ModelAttributes {
|
|||
isGoingFast &= zMotion > 0.4F;
|
||||
isGoingFast |= entity.isUsingRiptide();
|
||||
isGoingFast |= entity.isFallFlying();
|
||||
isGoingFast &= !entity.isSpectator();
|
||||
|
||||
motionLerp = MathUtil.clampLimit(zMotion * 30, 1);
|
||||
|
||||
|
|
|
@ -115,6 +115,15 @@ public abstract class AbstractPonyModel<T extends LivingEntity> extends ClientPo
|
|||
rightPants.copyTransform(rightLeg);
|
||||
jacket.copyTransform(body);
|
||||
hat.copyTransform(head);
|
||||
|
||||
hat.visible = head.visible && !attributes.isHorsey;
|
||||
neck.visible = body.visible;
|
||||
if (attributes.isHorsey) {
|
||||
neck.visible = head.visible;
|
||||
} else {
|
||||
neck.hidden = !head.visible;
|
||||
}
|
||||
parts.forEach(part -> part.setVisible(body.visible, attributes));
|
||||
}
|
||||
|
||||
protected void setModelAngles(T entity, float limbAngle, float limbSpeed, float animationProgress, float headYaw, float headPitch) {
|
||||
|
@ -539,14 +548,6 @@ public abstract class AbstractPonyModel<T extends LivingEntity> extends ClientPo
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setVisible(boolean visible) {
|
||||
super.setVisible(visible);
|
||||
neck.visible = visible;
|
||||
hat.visible &= !attributes.isHorsey;
|
||||
parts.forEach(part -> part.setVisible(visible, attributes));
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void setArmAngle(Arm arm, MatrixStack matrices) {
|
||||
super.setArmAngle(arm, matrices);
|
||||
|
|
|
@ -6,6 +6,8 @@ import net.minecraft.client.util.math.MatrixStack;
|
|||
import net.minecraft.util.math.MathHelper;
|
||||
|
||||
import com.minelittlepony.api.model.SubModel;
|
||||
import com.minelittlepony.api.pony.meta.Race;
|
||||
import com.minelittlepony.api.config.PonyConfig;
|
||||
import com.minelittlepony.api.model.ModelAttributes;
|
||||
import com.minelittlepony.mson.api.*;
|
||||
import com.minelittlepony.mson.api.model.PartBuilder;
|
||||
|
@ -57,8 +59,9 @@ public class PonyEars implements SubModel, MsonModel {
|
|||
|
||||
@Override
|
||||
public void setVisible(boolean visible, ModelAttributes attributes) {
|
||||
right.visible = visible && !attributes.metadata.race().isHuman();
|
||||
left.visible = visible && !attributes.metadata.race().isHuman();
|
||||
Race race = PonyConfig.getEffectiveRace(attributes.metadata.race());
|
||||
right.visible = !race.isHuman();
|
||||
left.visible = !race.isHuman();
|
||||
|
||||
if (attributes.isHorsey) {
|
||||
left.pivotX = -1;
|
||||
|
|
|
@ -39,8 +39,8 @@ public class PonySnout implements SubModel, MsonModel {
|
|||
|
||||
@Override
|
||||
public void setVisible(boolean visible, ModelAttributes attributes) {
|
||||
visible &= !attributes.isHorsey
|
||||
&& !attributes.metadata.race().isHuman()
|
||||
visible = !attributes.isHorsey
|
||||
&& !PonyConfig.getEffectiveRace(attributes.metadata.race()).isHuman()
|
||||
&& PonyConfig.getInstance().snuzzles.get();
|
||||
Gender gender = attributes.metadata.gender();
|
||||
|
||||
|
|
|
@ -87,14 +87,16 @@ public class PonyTail implements SubModel, MsonModel {
|
|||
|
||||
@Override
|
||||
public void renderPart(MatrixStack stack, VertexConsumer vertices, int overlay, int light, int color, ModelAttributes attributes) {
|
||||
stack.push();
|
||||
tail.rotate(stack);
|
||||
if (tail.visible) {
|
||||
stack.push();
|
||||
tail.rotate(stack);
|
||||
|
||||
for (int i = 0; i < segments.size(); i++) {
|
||||
segments.get(i).render(this, stack, vertices, i, overlay, light, color, attributes);
|
||||
for (int i = 0; i < segments.size(); i++) {
|
||||
segments.get(i).render(this, stack, vertices, i, overlay, light, color, attributes);
|
||||
}
|
||||
|
||||
stack.pop();
|
||||
}
|
||||
|
||||
stack.pop();
|
||||
}
|
||||
|
||||
public static class Segment {
|
||||
|
|
Loading…
Reference in a new issue