From 7328d0c43d135edcd8a63f525f5f7817da6b2a6f Mon Sep 17 00:00:00 2001 From: Sollace Date: Sun, 15 Dec 2024 17:19:18 +0100 Subject: [PATCH] Backport fixes for head position when riding/sitting --- .../client/mixin/MixinPlayerEntity.java | 5 ++--- .../client/render/EquineRenderManager.java | 22 +++++++++++++++++-- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/minelittlepony/client/mixin/MixinPlayerEntity.java b/src/main/java/com/minelittlepony/client/mixin/MixinPlayerEntity.java index 5e7eb444..4552cdf5 100644 --- a/src/main/java/com/minelittlepony/client/mixin/MixinPlayerEntity.java +++ b/src/main/java/com/minelittlepony/client/mixin/MixinPlayerEntity.java @@ -24,12 +24,11 @@ abstract class MixinPlayerEntity implements RegistrationHandler { @ModifyReturnValue(method = "getBaseDimensions(Lnet/minecraft/entity/EntityPose;)Lnet/minecraft/entity/EntityDimensions;", at = @At("RETURN")) private EntityDimensions modifyEyeHeight(EntityDimensions dimensions, EntityPose pose) { - float factor = syncedPony.getCachedPonyData().size().eyeHeightFactor(); - return factor == 1 ? dimensions : dimensions.withEyeHeight(dimensions.eyeHeight() * factor); + return getSyncedPony().modifyEyeHeight((PlayerEntity)(Object)this, dimensions, pose); } @Inject(method = "tick()V", at = @At("TAIL")) private void onTick(CallbackInfo info) { - syncedPony.synchronize((PlayerEntity)(Object)this); + getSyncedPony().synchronize((PlayerEntity)(Object)this); } } diff --git a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java index 2d6fe1d1..3ce0a5f0 100644 --- a/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java +++ b/src/main/java/com/minelittlepony/client/render/EquineRenderManager.java @@ -21,7 +21,7 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.Frustum; import net.minecraft.client.render.entity.model.EntityModel; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.*; import net.minecraft.entity.player.PlayerEntity; import org.jetbrains.annotations.Nullable; @@ -154,6 +154,7 @@ public class EquineRenderManager> lastPonyData = PonyDataLoader.NULL; @Nullable private Pony lastTransmittedPony; + private boolean seated; public Pony getCachedPony() { return lastRenderedPony; @@ -163,15 +164,32 @@ public class EquineRenderManager