DebugEntryHeightmap.java

net.minecraft.client.gui.components.debug.DebugEntryHeightmap

信息

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

    TODO

字段/常量

  • HEIGHTMAP_NAMES

    • 类型: Map<Heightmap.Types,String>
    • 修饰符: private static final
    • 源码定位: L20
    • 说明:

      TODO

  • GROUP

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

      TODO

内部类/嵌套类型

构造器

方法

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

public void display(DebugScreenDisplayer displayer, Level serverOrClientLevel, LevelChunk clientChunk, LevelChunk serverChunk) @ L38

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

参数:

  • displayer: DebugScreenDisplayer
  • serverOrClientLevel: Level
  • clientChunk: LevelChunk
  • serverChunk: LevelChunk

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class DebugEntryHeightmap implements DebugScreenEntry {
    private static final Map<Heightmap.Types, String> HEIGHTMAP_NAMES = Maps.newEnumMap(
        Map.of(
            Heightmap.Types.WORLD_SURFACE_WG,
            "SW",
            Heightmap.Types.WORLD_SURFACE,
            "S",
            Heightmap.Types.OCEAN_FLOOR_WG,
            "OW",
            Heightmap.Types.OCEAN_FLOOR,
            "O",
            Heightmap.Types.MOTION_BLOCKING,
            "M",
            Heightmap.Types.MOTION_BLOCKING_NO_LEAVES,
            "ML"
        )
    );
    private static final Identifier GROUP = Identifier.withDefaultNamespace("heightmaps");
 
    @Override
    public void display(DebugScreenDisplayer displayer, @Nullable Level serverOrClientLevel, @Nullable LevelChunk clientChunk, @Nullable LevelChunk serverChunk) {
        Minecraft minecraft = Minecraft.getInstance();
        Entity entity = minecraft.getCameraEntity();
        if (entity != null && minecraft.level != null && clientChunk != null) {
            BlockPos feetPos = entity.blockPosition();
            List<String> result = new ArrayList<>();
            StringBuilder heightmaps = new StringBuilder("CH");
 
            for (Heightmap.Types type : Heightmap.Types.values()) {
                if (type.sendToClient()) {
                    heightmaps.append(" ").append(HEIGHTMAP_NAMES.get(type)).append(": ").append(clientChunk.getHeight(type, feetPos.getX(), feetPos.getZ()));
                }
            }
 
            result.add(heightmaps.toString());
            heightmaps.setLength(0);
            heightmaps.append("SH");
 
            for (Heightmap.Types typex : Heightmap.Types.values()) {
                if (typex.keepAfterWorldgen()) {
                    heightmaps.append(" ").append(HEIGHTMAP_NAMES.get(typex)).append(": ");
                    if (serverChunk != null) {
                        heightmaps.append(serverChunk.getHeight(typex, feetPos.getX(), feetPos.getZ()));
                    } else {
                        heightmaps.append("??");
                    }
                }
            }
 
            result.add(heightmaps.toString());
            displayer.addToGroup(GROUP, result);
        }
    }
}

引用的其他类