diff --git a/src/main/java/com/simibubi/create/content/equipment/armor/CardboardArmorHandler.java b/src/main/java/com/simibubi/create/content/equipment/armor/CardboardArmorHandler.java index c5cc526658..10b52e7411 100644 --- a/src/main/java/com/simibubi/create/content/equipment/armor/CardboardArmorHandler.java +++ b/src/main/java/com/simibubi/create/content/equipment/armor/CardboardArmorHandler.java @@ -34,7 +34,14 @@ public class CardboardArmorHandler { if (!testForStealth(entity)) 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() .isClientSide() && entity instanceof Player p) diff --git a/src/main/java/com/simibubi/create/content/equipment/armor/CardboardArmorHandlerClient.java b/src/main/java/com/simibubi/create/content/equipment/armor/CardboardArmorHandlerClient.java index 98aa1f437e..a0599e0172 100644 --- a/src/main/java/com/simibubi/create/content/equipment/armor/CardboardArmorHandlerClient.java +++ b/src/main/java/com/simibubi/create/content/equipment/armor/CardboardArmorHandlerClient.java @@ -13,9 +13,12 @@ import dev.engine_room.flywheel.lib.model.baked.PartialModel; import net.createmod.catnip.animation.AnimationTickHolder; import net.minecraft.client.CameraType; import net.minecraft.client.Minecraft; +import net.minecraft.client.player.AbstractClientPlayer; import net.minecraft.util.Mth; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.phys.Vec3; + import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.EventPriority; import net.neoforged.bus.api.SubscribeEvent; @@ -54,7 +57,9 @@ public class CardboardArmorHandlerClient { PoseStack ms = event.getPoseStack(); 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() .subtract(player.xo, player.yo, player.zo) @@ -62,11 +67,14 @@ public class CardboardArmorHandlerClient { if (player.onGround()) 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); float interpolatedYaw = Mth.lerp(event.getPartialTick(), player.yRotO, player.getYRot()); + float scale = player.getScale(); + ms.scale(scale, scale, scale); + try { PartialModel model = AllPartialModels.PACKAGES_TO_HIDE_AS.get(getCurrentBoxIndex(player)); PackageRenderer.renderBox(player, interpolatedYaw, ms, event.getMultiBufferSource(),