CollisionBoxRenderer.java

net.minecraft.client.renderer.debug.CollisionBoxRenderer

信息

  • 全限定名:net.minecraft.client.renderer.debug.CollisionBoxRenderer
  • 类型:public class
  • 包:net.minecraft.client.renderer.debug
  • 源码路径:src/main/java/net/minecraft/client/renderer/debug/CollisionBoxRenderer.java
  • 起始行号:L19
  • 实现:DebugRenderer.SimpleDebugRenderer
  • 职责:

    TODO

字段/常量

  • minecraft

    • 类型: Minecraft
    • 修饰符: private final
    • 源码定位: L20
    • 说明:

      TODO

  • lastUpdateTime

    • 类型: double
    • 修饰符: private
    • 源码定位: L21
    • 说明:

      TODO

  • shapes

    • 类型: List<VoxelShape>
    • 修饰符: private
    • 源码定位: L22
    • 说明:

      TODO

内部类/嵌套类型

构造器

public CollisionBoxRenderer(Minecraft minecraft) @ L24

  • 构造器名:CollisionBoxRenderer
  • 源码定位:L24
  • 修饰符:public

参数:

  • minecraft: Minecraft

说明:

TODO

方法

下面的方法块按源码顺序生成。

public void emitGizmos(double camX, double camY, double camZ, DebugValueAccess debugValues, Frustum frustum, float partialTicks) @ L28

  • 方法名:emitGizmos
  • 源码定位:L28
  • 返回类型:void
  • 修饰符:public

参数:

  • camX: double
  • camY: double
  • camZ: double
  • debugValues: DebugValueAccess
  • frustum: Frustum
  • partialTicks: float

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class CollisionBoxRenderer implements DebugRenderer.SimpleDebugRenderer {
    private final Minecraft minecraft;
    private double lastUpdateTime = Double.MIN_VALUE;
    private List<VoxelShape> shapes = Collections.emptyList();
 
    public CollisionBoxRenderer(Minecraft minecraft) {
        this.minecraft = minecraft;
    }
 
    @Override
    public void emitGizmos(double camX, double camY, double camZ, DebugValueAccess debugValues, Frustum frustum, float partialTicks) {
        double time = Util.getNanos();
        if (time - this.lastUpdateTime > 1.0E8) {
            this.lastUpdateTime = time;
            Entity cameraEntity = this.minecraft.getCameraEntity();
            this.shapes = ImmutableList.copyOf(cameraEntity.level().getCollisions(cameraEntity, cameraEntity.getBoundingBox().inflate(6.0)));
        }
 
        for (VoxelShape shape : this.shapes) {
            GizmoStyle style = GizmoStyle.stroke(-1);
 
            for (AABB aabb : shape.toAabbs()) {
                Gizmos.cuboid(aabb, style);
            }
        }
    }
}

引用的其他类