StatFormatter.java

net.minecraft.stats.StatFormatter

信息

  • 全限定名:net.minecraft.stats.StatFormatter
  • 类型:public interface
  • 包:net.minecraft.stats
  • 源码路径:src/main/java/net/minecraft/stats/StatFormatter.java
  • 起始行号:L8
  • 职责:

    TODO

字段/常量

  • DECIMAL_FORMAT

    • 类型: DecimalFormat
    • 修饰符: package-private
    • 源码定位: L9
    • 说明:

      TODO

  • DEFAULT

    • 类型: StatFormatter
    • 修饰符: package-private
    • 源码定位: L10
    • 说明:

      TODO

  • DIVIDE_BY_TEN

    • 类型: StatFormatter
    • 修饰符: package-private
    • 源码定位: L11
    • 说明:

      TODO

  • DISTANCE

    • 类型: StatFormatter
    • 修饰符: package-private
    • 源码定位: L12
    • 说明:

      TODO

  • TIME

    • 类型: StatFormatter
    • 修饰符: package-private
    • 源码定位: L21
    • 说明:

      TODO

内部类/嵌套类型

构造器

方法

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

String format(int value) @ L38

  • 方法名:format
  • 源码定位:L38
  • 返回类型:String
  • 修饰符:package-private

参数:

  • value: int

说明:

TODO

代码

public interface StatFormatter {
    DecimalFormat DECIMAL_FORMAT = new DecimalFormat("########0.00", DecimalFormatSymbols.getInstance(Locale.ROOT));
    StatFormatter DEFAULT = NumberFormat.getIntegerInstance(Locale.US)::format;
    StatFormatter DIVIDE_BY_TEN = value -> DECIMAL_FORMAT.format(value * 0.1);
    StatFormatter DISTANCE = cm -> {
        double meters = cm / 100.0;
        double kilometers = meters / 1000.0;
        if (kilometers > 0.5) {
            return DECIMAL_FORMAT.format(kilometers) + " km";
        } else {
            return meters > 0.5 ? DECIMAL_FORMAT.format(meters) + " m" : cm + " cm";
        }
    };
    StatFormatter TIME = value -> {
        double seconds = value / 20.0;
        double minutes = seconds / 60.0;
        double hours = minutes / 60.0;
        double days = hours / 24.0;
        double years = days / 365.0;
        if (years > 0.5) {
            return DECIMAL_FORMAT.format(years) + " y";
        } else if (days > 0.5) {
            return DECIMAL_FORMAT.format(days) + " d";
        } else if (hours > 0.5) {
            return DECIMAL_FORMAT.format(hours) + " h";
        } else {
            return minutes > 0.5 ? DECIMAL_FORMAT.format(minutes) + " min" : seconds + " s";
        }
    };
 
    String format(int value);
}

引用的其他类

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