NarrationThunk.java

net.minecraft.client.gui.narration.NarrationThunk

信息

  • 全限定名:net.minecraft.client.gui.narration.NarrationThunk
  • 类型:public class
  • 包:net.minecraft.client.gui.narration
  • 源码路径:src/main/java/net/minecraft/client/gui/narration/NarrationThunk.java
  • 起始行号:L12
  • 职责:

    TODO

字段/常量

  • contents

    • 类型: T
    • 修饰符: private final
    • 源码定位: L13
    • 说明:

      TODO

  • converter

    • 类型: BiConsumer<Consumer<String>,T>
    • 修饰符: private final
    • 源码定位: L14
    • 说明:

      TODO

  • EMPTY

    • 类型: NarrationThunk<?>
    • 修饰符: public static final
    • 源码定位: L15
    • 说明:

      TODO

内部类/嵌套类型

构造器

private NarrationThunk(T contents, BiConsumer<Consumer<String>,T> converter) @ L17

  • 构造器名:NarrationThunk
  • 源码定位:L17
  • 修饰符:private

参数:

  • contents: T
  • converter: BiConsumer<Consumer,T>

说明:

TODO

方法

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

public static NarrationThunk<?> from(String text) @ L22

  • 方法名:from
  • 源码定位:L22
  • 返回类型:NarrationThunk<?>
  • 修饰符:public static

参数:

  • text: String

说明:

TODO

public static NarrationThunk<?> from(Component text) @ L26

  • 方法名:from
  • 源码定位:L26
  • 返回类型:NarrationThunk<?>
  • 修饰符:public static

参数:

  • text: Component

说明:

TODO

public static NarrationThunk<?> from(List<Component> lines) @ L30

  • 方法名:from
  • 源码定位:L30
  • 返回类型:NarrationThunk<?>
  • 修饰符:public static

参数:

  • lines: List

说明:

TODO

public void getText(Consumer<String> output) @ L34

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

参数:

  • output: Consumer

说明:

TODO

public boolean equals(Object o) @ L38

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

参数:

  • o: Object

说明:

TODO

public int hashCode() @ L47

  • 方法名:hashCode
  • 源码定位:L47
  • 返回类型:int
  • 修饰符:public

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class NarrationThunk<T> {
    private final T contents;
    private final BiConsumer<Consumer<String>, T> converter;
    public static final NarrationThunk<?> EMPTY = new NarrationThunk<>(Unit.INSTANCE, (o, c) -> {});
 
    private NarrationThunk(T contents, BiConsumer<Consumer<String>, T> converter) {
        this.contents = contents;
        this.converter = converter;
    }
 
    public static NarrationThunk<?> from(String text) {
        return new NarrationThunk<>(text, Consumer::accept);
    }
 
    public static NarrationThunk<?> from(Component text) {
        return new NarrationThunk<>(text, (o, c) -> o.accept(c.getString()));
    }
 
    public static NarrationThunk<?> from(List<Component> lines) {
        return new NarrationThunk<>(lines, (o, c) -> lines.stream().map(Component::getString).forEach(o));
    }
 
    public void getText(Consumer<String> output) {
        this.converter.accept(output, this.contents);
    }
 
    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        } else {
            return !(o instanceof NarrationThunk<?> thunk) ? false : thunk.converter == this.converter && thunk.contents.equals(this.contents);
        }
    }
 
    @Override
    public int hashCode() {
        int result = this.contents.hashCode();
        return 31 * result + this.converter.hashCode();
    }
}

引用的其他类