DebugEntryTps.java

net.minecraft.client.gui.components.debug.DebugEntryTps

信息

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

    TODO

字段/常量

内部类/嵌套类型

构造器

方法

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

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

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

参数:

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

说明:

TODO

public boolean isAllowed(boolean reducedDebugInfo) @ L65

  • 方法名:isAllowed
  • 源码定位:L65
  • 返回类型:boolean
  • 修饰符:public

参数:

  • reducedDebugInfo: boolean

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class DebugEntryTps implements DebugScreenEntry {
    @Override
    public void display(DebugScreenDisplayer displayer, @Nullable Level serverOrClientLevel, @Nullable LevelChunk clientChunk, @Nullable LevelChunk serverChunk) {
        Minecraft minecraft = Minecraft.getInstance();
        IntegratedServer server = minecraft.getSingleplayerServer();
        ClientPacketListener connectionListener = minecraft.getConnection();
        if (connectionListener != null && serverOrClientLevel != null) {
            Connection connection = connectionListener.getConnection();
            float averageSentPackets = connection.getAverageSentPackets();
            float averageReceivedPackets = connection.getAverageReceivedPackets();
            TickRateManager tickRateManager = serverOrClientLevel.tickRateManager();
            String runStatus;
            if (tickRateManager.isSteppingForward()) {
                runStatus = " (frozen - stepping)";
            } else if (tickRateManager.isFrozen()) {
                runStatus = " (frozen)";
            } else {
                runStatus = "";
            }
 
            String tps;
            if (server != null) {
                ServerTickRateManager serverTickRateManager = server.tickRateManager();
                boolean isSpriting = serverTickRateManager.isSprinting();
                if (isSpriting) {
                    runStatus = " (sprinting)";
                }
 
                String tpsTarget = isSpriting ? "-" : String.format(Locale.ROOT, "%.1f", tickRateManager.millisecondsPerTick());
                tps = String.format(
                    Locale.ROOT,
                    "Integrated server @ %.1f/%s ms%s, %.0f tx, %.0f rx",
                    server.getCurrentSmoothedTickTime(),
                    tpsTarget,
                    runStatus,
                    averageSentPackets,
                    averageReceivedPackets
                );
            } else {
                tps = String.format(
                    Locale.ROOT, "\"%s\" server%s, %.0f tx, %.0f rx", connectionListener.serverBrand(), runStatus, averageSentPackets, averageReceivedPackets
                );
            }
 
            displayer.addLine(tps);
        }
    }
 
    @Override
    public boolean isAllowed(boolean reducedDebugInfo) {
        return true;
    }
}

引用的其他类