diff --git a/src/main/java/com/minelittlepony/client/render/DebugBoundingBoxRenderer.java b/src/main/java/com/minelittlepony/client/render/DebugBoundingBoxRenderer.java index 106809ed..0c2c95b4 100644 --- a/src/main/java/com/minelittlepony/client/render/DebugBoundingBoxRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/DebugBoundingBoxRenderer.java @@ -7,7 +7,6 @@ import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.WorldRenderer; import net.minecraft.client.render.entity.EntityRenderer; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.client.util.math.Vector3f; import net.minecraft.entity.LivingEntity; import net.minecraft.util.math.Box; import net.minecraft.util.math.MathHelper; @@ -18,9 +17,10 @@ import com.minelittlepony.pony.IPony; public final class DebugBoundingBoxRenderer { public static void render(IPony pony, EntityRenderer renderer, T entity, MatrixStack stack, VertexConsumerProvider renderContext, float tickDelta) { - MinecraftClient mc = MinecraftClient.getInstance(); - if (!mc.getEntityRenderManager().shouldRenderHitboxes() || entity.squaredDistanceTo(mc.player) > 70) { + MinecraftClient client = MinecraftClient.getInstance(); + + if (!client.getEntityRenderManager().shouldRenderHitboxes() || entity.isInvisible() || client.hasReducedDebugInfo()) { return; } @@ -29,10 +29,6 @@ public final class DebugBoundingBoxRenderer { stack.push(); stack.translate(-offset.x, -offset.y, -offset.z); - float yaw = MathHelper.lerp(tickDelta, entity.prevBodyYaw, entity.bodyYaw); - - stack.multiply(Vector3f.NEGATIVE_Y.getDegreesQuaternion(yaw)); - Box boundingBox = pony.getComputedBoundingBox(entity); Vec3d pos = entity.getPos(); diff --git a/src/main/java/com/minelittlepony/client/render/entity/PlayerPonyRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/PlayerPonyRenderer.java index ff7d1ffe..f291d93f 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/PlayerPonyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/PlayerPonyRenderer.java @@ -83,15 +83,12 @@ public class PlayerPonyRenderer extends PlayerEntityRenderer implements IPonyRen @Override public void render(AbstractClientPlayerEntity entity, float entityYaw, float tickDelta, MatrixStack stack, VertexConsumerProvider renderContext, int lightUv) { - manager.preRenderCallback(entity, stack, tickDelta); shadowSize = manager.getShadowScale(); super.render(entity, entityYaw, tickDelta, stack, renderContext, lightUv); - DebugBoundingBoxRenderer.render(manager.getPony(entity), this, entity, stack, renderContext, tickDelta); // Translate the shadow position after everything is done // (shadows are drawn after us) - // TODO: Get a proper shadow renderer going if (!entity.hasVehicle() && !entity.isSleeping()) { float yaw = MathHelper.lerpAngleDegrees(tickDelta, entity.prevBodyYaw, entity.bodyYaw); float l = entity.getWidth() / 2 * manager.getPony(entity).getMetadata().getSize().getScaleFactor(); @@ -102,6 +99,15 @@ public class PlayerPonyRenderer extends PlayerEntityRenderer implements IPonyRen } + @Override + protected void setupTransforms(AbstractClientPlayerEntity entity, MatrixStack stack, float ageInTicks, float rotationYaw, float partialTicks) { + manager.preRenderCallback(entity, stack, partialTicks); + rotationYaw = manager.getRenderYaw(entity, rotationYaw, partialTicks); + super.setupTransforms(entity, stack, ageInTicks, rotationYaw, partialTicks); + + manager.applyPostureTransform(entity, stack, rotationYaw, partialTicks); + } + @Override public boolean shouldRender(AbstractClientPlayerEntity entity, Frustum camera, double camX, double camY, double camZ) { if (entity.isSleeping() && entity == MinecraftClient.getInstance().player) { @@ -151,14 +157,6 @@ public class PlayerPonyRenderer extends PlayerEntityRenderer implements IPonyRen stack.pop(); } - @Override - protected void setupTransforms(AbstractClientPlayerEntity entity, MatrixStack stack, float ageInTicks, float rotationYaw, float partialTicks) { - rotationYaw = manager.getRenderYaw(entity, rotationYaw, partialTicks); - super.setupTransforms(entity, stack, ageInTicks, rotationYaw, partialTicks); - - manager.applyPostureTransform(entity, stack, rotationYaw, partialTicks); - } - @Override public Identifier getTexture(AbstractClientPlayerEntity player) { return manager.getPony(player).getTexture(); diff --git a/src/main/java/com/minelittlepony/client/render/entity/PonyRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/PonyRenderer.java index 65be6914..a1dc0b9b 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/PonyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/PonyRenderer.java @@ -56,7 +56,13 @@ public abstract class PonyRenderer @Override public void render(T entity, float entityYaw, float tickDelta, MatrixStack stack, VertexConsumerProvider renderContext, int lightUv) { - manager.preRenderCallback(entity, stack, tickDelta); + super.render(entity, entityYaw, tickDelta, stack, renderContext, lightUv); + DebugBoundingBoxRenderer.render(manager.getPony(entity), this, entity, stack, renderContext, tickDelta); + } + + @Override + protected void setupTransforms(T entity, MatrixStack stack, float ageInTicks, float rotationYaw, float partialTicks) { + manager.preRenderCallback(entity, stack, partialTicks); if (getModel() instanceof PlayerEntityModel) { ((PlayerEntityModel)getModel()).setVisible(true); } @@ -65,13 +71,6 @@ public abstract class PonyRenderer stack.translate(0, 0.125D, 0); } - super.render(entity, entityYaw, tickDelta, stack, renderContext, lightUv); - - DebugBoundingBoxRenderer.render(manager.getPony(entity), this, entity, stack, renderContext, tickDelta); - } - - @Override - protected void setupTransforms(T entity, MatrixStack stack, float ageInTicks, float rotationYaw, float partialTicks) { rotationYaw = manager.getRenderYaw(entity, rotationYaw, partialTicks); super.setupTransforms(entity, stack, ageInTicks, rotationYaw, partialTicks);