From 5066c7ad6482263c685cf9b54968f19372da6b93 Mon Sep 17 00:00:00 2001 From: Sollace Date: Mon, 5 Aug 2019 10:49:14 +0200 Subject: [PATCH] Fixed head positioning on Drowned --- .../client/model/AbstractPonyModel.java | 6 +++--- .../client/render/entities/RenderPonyMob.java | 2 ++ .../client/transform/PonyTransformation.java | 16 ++++++++-------- .../minelittlepony/model/ModelAttributes.java | 7 +++++++ 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java index 694e95d8..59cf721f 100644 --- a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java @@ -86,7 +86,7 @@ public abstract class AbstractPonyModel extends ClientPo animateBreathing(ticks); } - if (attributes.isSwimming) { + if (attributes.isSwimmingRotated) { head.setRotationPoint(0, -2, -2); } else { head.setRotationPoint(0, 0, 0); @@ -213,7 +213,7 @@ public abstract class AbstractPonyModel extends ClientPo headPitch = attributes.isSleeping ? 0.1f : headPitch / 57.29578F; - if (attributes.isSwimming) { + if (attributes.isSwimming && attributes.motionPitch != 0) { headPitch -= 0.9F; } @@ -765,7 +765,7 @@ public abstract class AbstractPonyModel extends ClientPo } if (part == BodyPart.HEAD) { - rotatef(attributes.motionPitch, 1, 0, 0); + rotatef(attributes.motionPitch, 1, 0, 0); } PonyTransformation.forSize(getSize()).transform(this, part); diff --git a/src/main/java/com/minelittlepony/client/render/entities/RenderPonyMob.java b/src/main/java/com/minelittlepony/client/render/entities/RenderPonyMob.java index a2d8fa27..7e394fa7 100644 --- a/src/main/java/com/minelittlepony/client/render/entities/RenderPonyMob.java +++ b/src/main/java/com/minelittlepony/client/render/entities/RenderPonyMob.java @@ -67,6 +67,8 @@ public abstract class RenderPonyMob { * True if the model is swimming under water. */ public boolean isSwimming; + /** + * True if the model is swimming, and rotated 90degs (players) + */ + public boolean isSwimmingRotated; + /** * True if the pony is crouching. */ @@ -96,6 +102,7 @@ public class ModelAttributes { isFlying = pony.isFlying(entity); isGliding = entity.isFallFlying(); isSwimming = pony.isSwimming(entity); + isSwimmingRotated = isSwimming && entity instanceof PlayerEntity; hasHeadGear = pony.isWearingHeadgear(entity); isSitting = pony.isRidingInteractive(entity); interpolatorId = entity.getUuid();