diff --git a/gradle.properties b/gradle.properties index 0c0021d3..1ecf5662 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,5 +19,5 @@ org.gradle.daemon=false # Dependencies modmenu_version=2.0.0-beta.7 kirin_version=1.8.6-1.17-rc1-SNAPSHOT - hd_skins_version=6.4.4-1.17-rc1-SNAPSHOT + hd_skins_version=6.4.5-1.17-rc1-SNAPSHOT mson_version=1.3.2-1.17-rc1-SNAPSHOT diff --git a/src/main/java/com/minelittlepony/api/model/ModelAttributes.java b/src/main/java/com/minelittlepony/api/model/ModelAttributes.java index 0252004d..65a933cc 100644 --- a/src/main/java/com/minelittlepony/api/model/ModelAttributes.java +++ b/src/main/java/com/minelittlepony/api/model/ModelAttributes.java @@ -32,6 +32,10 @@ public class ModelAttributes { * True if the model is rotated 90degs (players) */ public boolean isHorizontal; + /** + * True if the model is using riptide (players) + */ + public boolean isRiptide; /** * True if the model is swimming under water. */ @@ -98,6 +102,7 @@ public class ModelAttributes { isGoingFast = (isFlying && hasWings) || isGliding; isGoingFast &= zMotion > 0.4F; + isGoingFast |= entity.isUsingRiptide(); motionLerp = MathUtil.clampLimit(zMotion * 30, 1); @@ -123,6 +128,7 @@ public class ModelAttributes { isGliding = entity.isFallFlying(); isSwimming = mode == Mode.THIRD_PERSON && pony.isSwimming(entity); isSwimmingRotated = isSwimming && (entity instanceof PlayerEntity || entity instanceof Swimmer); + isRiptide = entity.isUsingRiptide(); isHorizontal = isSwimming; isRidingInteractive = pony.isRidingInteractive(entity); interpolatorId = entity.getUuid(); diff --git a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java index 7f550ea1..0a5cf821 100644 --- a/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java +++ b/src/main/java/com/minelittlepony/client/model/AbstractPonyModel.java @@ -645,7 +645,7 @@ public abstract class AbstractPonyModel extends ClientPo @Override public void transform(BodyPart part, MatrixStack stack) { - if (attributes.isSleeping) { + if (attributes.isSleeping || attributes.isRiptide) { stack.multiply(Vec3f.POSITIVE_X.getDegreesQuaternion(90)); stack.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(180)); } diff --git a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java index 527befab..3c373451 100644 --- a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java +++ b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java @@ -121,7 +121,7 @@ public class EquineRenderManager(this)); addLayer(new PassengerFeature<>(this, context)); addLayer(new GearFeature<>(this)); + addFeature(new TridentRiptideFeatureRenderer<>(this, context.getModelLoader())); + addFeature(new StuckStingersFeatureRenderer<>(this)); } @SuppressWarnings({"unchecked", "rawtypes"})