RaidDebugRenderer.java

net.minecraft.client.renderer.debug.RaidDebugRenderer

信息

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

    TODO

字段/常量

  • MAX_RENDER_DIST

    • 类型: int
    • 修饰符: private static final
    • 源码定位: L19
    • 说明:

      TODO

  • TEXT_SCALE

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

      TODO

  • minecraft

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

      TODO

内部类/嵌套类型

构造器

public RaidDebugRenderer(Minecraft minecraft) @ L23

  • 构造器名:RaidDebugRenderer
  • 源码定位:L23
  • 修饰符:public

参数:

  • minecraft: Minecraft

说明:

TODO

方法

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

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

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

参数:

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

说明:

TODO

private static void highlightRaidCenter(BlockPos raidCenter) @ L39

  • 方法名:highlightRaidCenter
  • 源码定位:L39
  • 返回类型:void
  • 修饰符:private static

参数:

  • raidCenter: BlockPos

说明:

TODO

private static void renderTextOverBlock(String text, BlockPos pos, int color) @ L44

  • 方法名:renderTextOverBlock
  • 源码定位:L44
  • 返回类型:void
  • 修饰符:private static

参数:

  • text: String
  • pos: BlockPos
  • color: int

说明:

TODO

private Camera getCamera() @ L48

  • 方法名:getCamera
  • 源码定位:L48
  • 返回类型:Camera
  • 修饰符:private

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class RaidDebugRenderer implements DebugRenderer.SimpleDebugRenderer {
    private static final int MAX_RENDER_DIST = 160;
    private static final float TEXT_SCALE = 0.64F;
    private final Minecraft minecraft;
 
    public RaidDebugRenderer(Minecraft minecraft) {
        this.minecraft = minecraft;
    }
 
    @Override
    public void emitGizmos(double camX, double camY, double camZ, DebugValueAccess debugValues, Frustum frustum, float partialTicks) {
        BlockPos playerPos = this.getCamera().blockPosition();
        debugValues.forEachChunk(DebugSubscriptions.RAIDS, (chunkPos, raidCenters) -> {
            for (BlockPos raidCenter : raidCenters) {
                if (playerPos.closerThan(raidCenter, 160.0)) {
                    highlightRaidCenter(raidCenter);
                }
            }
        });
    }
 
    private static void highlightRaidCenter(BlockPos raidCenter) {
        Gizmos.cuboid(raidCenter, GizmoStyle.fill(ARGB.colorFromFloat(0.15F, 1.0F, 0.0F, 0.0F)));
        renderTextOverBlock("Raid center", raidCenter, -65536);
    }
 
    private static void renderTextOverBlock(String text, BlockPos pos, int color) {
        Gizmos.billboardText(text, Vec3.atLowerCornerWithOffset(pos, 0.5, 1.3, 0.5), TextGizmo.Style.forColor(color).withScale(0.64F)).setAlwaysOnTop();
    }
 
    private Camera getCamera() {
        return this.minecraft.gameRenderer.getMainCamera();
    }
}

引用的其他类

  • Camera

    • 引用位置: 返回值
  • Minecraft

    • 引用位置: 参数/字段
  • Frustum

    • 引用位置: 参数
  • DebugRenderer

    • 引用位置: 实现
  • BlockPos

    • 引用位置: 参数
  • GizmoStyle

    • 引用位置: 方法调用
    • 关联成员: GizmoStyle.fill()
  • Gizmos

    • 引用位置: 方法调用
    • 关联成员: Gizmos.billboardText(), Gizmos.cuboid()
  • TextGizmo

    • 引用位置: 方法调用
    • 关联成员: TextGizmo.Style.forColor()
  • ARGB

    • 引用位置: 方法调用
    • 关联成员: ARGB.colorFromFloat()
  • DebugValueAccess

    • 引用位置: 参数
  • Vec3

    • 引用位置: 方法调用
    • 关联成员: Vec3.atLowerCornerWithOffset()