Criterion.java

net.minecraft.advancements.Criterion

信息

  • 全限定名:net.minecraft.advancements.Criterion
  • 类型:public record
  • 包:net.minecraft.advancements
  • 源码路径:src/main/java/net/minecraft/advancements/Criterion.java
  • 起始行号:L7
  • 职责:

    TODO

字段/常量

  • MAP_CODEC

    • 类型: MapCodec<Criterion<?>>
    • 修饰符: private static final
    • 源码定位: L8
    • 说明:

      TODO

  • CODEC

    • 类型: Codec<Criterion<?>>
    • 修饰符: public static final
    • 源码定位: L11
    • 说明:

      TODO

内部类/嵌套类型

构造器

方法

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

private static <T extends CriterionTriggerInstance> Codec<Criterion<T>> criterionCodec(CriterionTrigger<T> trigger) @ L13

  • 方法名:criterionCodec
  • 源码定位:L13
  • 返回类型: Codec<Criterion>
  • 修饰符:private static

参数:

  • trigger: CriterionTrigger

说明:

TODO

代码

public record Criterion<T extends CriterionTriggerInstance>(CriterionTrigger<T> trigger, T triggerInstance) {
    private static final MapCodec<Criterion<?>> MAP_CODEC = ExtraCodecs.dispatchOptionalValue(
        "trigger", "conditions", CriteriaTriggers.CODEC, Criterion::trigger, Criterion::criterionCodec
    );
    public static final Codec<Criterion<?>> CODEC = MAP_CODEC.codec();
 
    private static <T extends CriterionTriggerInstance> Codec<Criterion<T>> criterionCodec(CriterionTrigger<T> trigger) {
        return trigger.codec().xmap(instance -> new Criterion<>(trigger, (T)instance), Criterion::triggerInstance);
    }
}

引用的其他类