mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-03-03 14:24:42 +01:00
Fixed the Cardboard Armor's crouch behavior not respecting the player's scale attribute
This commit is contained in:
parent
e0f7030d46
commit
f906e91242
2 changed files with 18 additions and 3 deletions
|
@ -34,7 +34,14 @@ public class CardboardArmorHandler {
|
||||||
if (!testForStealth(entity))
|
if (!testForStealth(entity))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
event.setNewSize(EntityDimensions.fixed(0.6F, 0.8F).withEyeHeight(0.6F));
|
float scale;
|
||||||
|
if(entity instanceof LivingEntity le) {
|
||||||
|
scale = le.getScale();
|
||||||
|
} else {
|
||||||
|
scale = 1.0F;
|
||||||
|
}
|
||||||
|
|
||||||
|
event.setNewSize(EntityDimensions.fixed(0.6F * scale, 0.8F * scale).withEyeHeight(0.6F * scale));
|
||||||
|
|
||||||
if (!entity.level()
|
if (!entity.level()
|
||||||
.isClientSide() && entity instanceof Player p)
|
.isClientSide() && entity instanceof Player p)
|
||||||
|
|
|
@ -13,9 +13,12 @@ import dev.engine_room.flywheel.lib.model.baked.PartialModel;
|
||||||
import net.createmod.catnip.animation.AnimationTickHolder;
|
import net.createmod.catnip.animation.AnimationTickHolder;
|
||||||
import net.minecraft.client.CameraType;
|
import net.minecraft.client.CameraType;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.player.AbstractClientPlayer;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
|
||||||
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
|
||||||
import net.neoforged.api.distmarker.Dist;
|
import net.neoforged.api.distmarker.Dist;
|
||||||
import net.neoforged.bus.api.EventPriority;
|
import net.neoforged.bus.api.EventPriority;
|
||||||
import net.neoforged.bus.api.SubscribeEvent;
|
import net.neoforged.bus.api.SubscribeEvent;
|
||||||
|
@ -54,7 +57,9 @@ public class CardboardArmorHandlerClient {
|
||||||
|
|
||||||
PoseStack ms = event.getPoseStack();
|
PoseStack ms = event.getPoseStack();
|
||||||
ms.pushPose();
|
ms.pushPose();
|
||||||
ms.translate(0, 2 / 16f, 0);
|
|
||||||
|
Vec3 renderOffset = event.getRenderer().getRenderOffset((AbstractClientPlayer)player, event.getPartialTick());
|
||||||
|
ms.translate(0, -renderOffset.y, 0);
|
||||||
|
|
||||||
float movement = (float) player.position()
|
float movement = (float) player.position()
|
||||||
.subtract(player.xo, player.yo, player.zo)
|
.subtract(player.xo, player.yo, player.zo)
|
||||||
|
@ -62,11 +67,14 @@ public class CardboardArmorHandlerClient {
|
||||||
|
|
||||||
if (player.onGround())
|
if (player.onGround())
|
||||||
ms.translate(0,
|
ms.translate(0,
|
||||||
Math.min(Math.abs(Mth.cos((AnimationTickHolder.getRenderTime() % 256) / 2.0f)) * 2 / 16f, movement * 5),
|
Math.min(Math.abs(Mth.cos((AnimationTickHolder.getRenderTime() % 256) / 2.0f)) * -renderOffset.y, movement * 5),
|
||||||
0);
|
0);
|
||||||
|
|
||||||
float interpolatedYaw = Mth.lerp(event.getPartialTick(), player.yRotO, player.getYRot());
|
float interpolatedYaw = Mth.lerp(event.getPartialTick(), player.yRotO, player.getYRot());
|
||||||
|
|
||||||
|
float scale = player.getScale();
|
||||||
|
ms.scale(scale, scale, scale);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
PartialModel model = AllPartialModels.PACKAGES_TO_HIDE_AS.get(getCurrentBoxIndex(player));
|
PartialModel model = AllPartialModels.PACKAGES_TO_HIDE_AS.get(getCurrentBoxIndex(player));
|
||||||
PackageRenderer.renderBox(player, interpolatedYaw, ms, event.getMultiBufferSource(),
|
PackageRenderer.renderBox(player, interpolatedYaw, ms, event.getMultiBufferSource(),
|
||||||
|
|
Loading…
Add table
Reference in a new issue