From 6e3ae73d89b99bb469d479c4dc5edb6b90c10229 Mon Sep 17 00:00:00 2001 From: Sollace Date: Wed, 29 May 2019 20:46:10 +0200 Subject: [PATCH] Update swimming mechanics to be in line with 1.13 --- src/main/java/com/minelittlepony/client/pony/Pony.java | 6 +++--- .../minelittlepony/client/transform/PostureSwimming.java | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/minelittlepony/client/pony/Pony.java b/src/main/java/com/minelittlepony/client/pony/Pony.java index 76b7828e..357bf702 100644 --- a/src/main/java/com/minelittlepony/client/pony/Pony.java +++ b/src/main/java/com/minelittlepony/client/pony/Pony.java @@ -121,8 +121,8 @@ public class Pony extends Touchable implements IPony { @Override public boolean isPerformingRainboom(LivingEntity entity) { - Vec3d velocity = entity.getVelocity(); - double zMotion = Math.sqrt(velocity.x * velocity.x + velocity.z * velocity.z); + Vec3d motion = entity.getVelocity(); + double zMotion = Math.sqrt(motion.x * motion.x + motion.z * motion.z); return (isFlying(entity) && canFly()) || entity.isFallFlying() & zMotion > 0.4F; } @@ -148,7 +148,7 @@ public class Pony extends Touchable implements IPony { @Override public boolean isSwimming(LivingEntity entity) { - return isFullySubmerged(entity) && !(entity.onGround || entity.isClimbing()); + return entity.isSwimming(); } @Override diff --git a/src/main/java/com/minelittlepony/client/transform/PostureSwimming.java b/src/main/java/com/minelittlepony/client/transform/PostureSwimming.java index 35017aae..07435732 100644 --- a/src/main/java/com/minelittlepony/client/transform/PostureSwimming.java +++ b/src/main/java/com/minelittlepony/client/transform/PostureSwimming.java @@ -3,6 +3,7 @@ package com.minelittlepony.client.transform; import net.minecraft.entity.player.PlayerEntity; import com.minelittlepony.util.math.MathUtil; +import com.mojang.blaze3d.platform.GlStateManager; public class PostureSwimming extends PostureFlight { @@ -16,8 +17,10 @@ public class PostureSwimming extends PostureFlight { @Override protected double calculateIncline(PlayerEntity player, double motionX, double motionY, double motionZ) { - double motionLerp = MathUtil.clampLimit(Math.sqrt(motionX * motionX + motionZ * motionZ) * 30, 1); + double motionLerp = MathUtil.clampLimit(Math.sqrt(motionX * motionX + motionZ * motionZ) * 30, 1) / 2; - return super.calculateIncline(player, motionX, motionY, motionZ) * motionLerp; + GlStateManager.translated(0, 0, -1); + + return 90 + super.calculateIncline(player, motionX, motionY, motionZ) * motionLerp; } }