mirror of
https://github.com/MineLittlePony/MineLittlePony.git
synced 2025-02-13 08:14:23 +01:00
Fix rendering issues with the debug bounding boxes
This commit is contained in:
parent
afb38ab71f
commit
b6df11db78
3 changed files with 19 additions and 26 deletions
|
@ -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 <T extends LivingEntity> void render(IPony pony, EntityRenderer<T> 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();
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -56,7 +56,13 @@ public abstract class PonyRenderer<T extends MobEntity, M extends EntityModel<T>
|
|||
|
||||
@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<T extends MobEntity, M extends EntityModel<T>
|
|||
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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue