EnchantmentsPredicate.java

net.minecraft.core.component.predicates.EnchantmentsPredicate

信息

  • 全限定名:net.minecraft.core.component.predicates.EnchantmentsPredicate
  • 类型:public abstract class
  • 包:net.minecraft.core.component.predicates
  • 源码路径:src/main/java/net/minecraft/core/component/predicates/EnchantmentsPredicate.java
  • 起始行号:L12
  • 实现:SingleComponentItemPredicate
  • 职责:

    TODO

字段/常量

  • enchantments
    • 类型: List<EnchantmentPredicate>
    • 修饰符: private final
    • 源码定位: L13
    • 说明:

      TODO

内部类/嵌套类型

  • net.minecraft.core.component.predicates.EnchantmentsPredicate.Enchantments

    • 类型: class
    • 修饰符: public static
    • 源码定位: L45
    • 说明:

      TODO

  • net.minecraft.core.component.predicates.EnchantmentsPredicate.StoredEnchantments

    • 类型: class
    • 修饰符: public static
    • 源码定位: L58
    • 说明:

      TODO

构造器

protected EnchantmentsPredicate(List<EnchantmentPredicate> enchantments) @ L15

  • 构造器名:EnchantmentsPredicate
  • 源码定位:L15
  • 修饰符:protected

参数:

  • enchantments: List

说明:

TODO

方法

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

public static <T extends EnchantmentsPredicate> Codec<T> codec(Function<List<EnchantmentPredicate>,T> constructor) @ L19

  • 方法名:codec
  • 源码定位:L19
  • 返回类型: Codec
  • 修饰符:public static

参数:

  • constructor: Function<List,T>

说明:

TODO

protected List<EnchantmentPredicate> enchantments() @ L23

  • 方法名:enchantments
  • 源码定位:L23
  • 返回类型:List
  • 修饰符:protected

参数:

说明:

TODO

public boolean matches(ItemEnchantments appliedEnchantments) @ L27

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

参数:

  • appliedEnchantments: ItemEnchantments

说明:

TODO

public static EnchantmentsPredicate.Enchantments enchantments(List<EnchantmentPredicate> predicates) @ L37

  • 方法名:enchantments
  • 源码定位:L37
  • 返回类型:EnchantmentsPredicate.Enchantments
  • 修饰符:public static

参数:

  • predicates: List

说明:

TODO

public static EnchantmentsPredicate.StoredEnchantments storedEnchantments(List<EnchantmentPredicate> predicates) @ L41

  • 方法名:storedEnchantments
  • 源码定位:L41
  • 返回类型:EnchantmentsPredicate.StoredEnchantments
  • 修饰符:public static

参数:

  • predicates: List

说明:

TODO

代码

public abstract class EnchantmentsPredicate implements SingleComponentItemPredicate<ItemEnchantments> {
    private final List<EnchantmentPredicate> enchantments;
 
    protected EnchantmentsPredicate(List<EnchantmentPredicate> enchantments) {
        this.enchantments = enchantments;
    }
 
    public static <T extends EnchantmentsPredicate> Codec<T> codec(Function<List<EnchantmentPredicate>, T> constructor) {
        return EnchantmentPredicate.CODEC.listOf().xmap(constructor, EnchantmentsPredicate::enchantments);
    }
 
    protected List<EnchantmentPredicate> enchantments() {
        return this.enchantments;
    }
 
    public boolean matches(ItemEnchantments appliedEnchantments) {
        for (EnchantmentPredicate enchantment : this.enchantments) {
            if (!enchantment.containedIn(appliedEnchantments)) {
                return false;
            }
        }
 
        return true;
    }
 
    public static EnchantmentsPredicate.Enchantments enchantments(List<EnchantmentPredicate> predicates) {
        return new EnchantmentsPredicate.Enchantments(predicates);
    }
 
    public static EnchantmentsPredicate.StoredEnchantments storedEnchantments(List<EnchantmentPredicate> predicates) {
        return new EnchantmentsPredicate.StoredEnchantments(predicates);
    }
 
    public static class Enchantments extends EnchantmentsPredicate {
        public static final Codec<EnchantmentsPredicate.Enchantments> CODEC = codec(EnchantmentsPredicate.Enchantments::new);
 
        protected Enchantments(List<EnchantmentPredicate> enchantments) {
            super(enchantments);
        }
 
        @Override
        public DataComponentType<ItemEnchantments> componentType() {
            return DataComponents.ENCHANTMENTS;
        }
    }
 
    public static class StoredEnchantments extends EnchantmentsPredicate {
        public static final Codec<EnchantmentsPredicate.StoredEnchantments> CODEC = codec(EnchantmentsPredicate.StoredEnchantments::new);
 
        protected StoredEnchantments(List<EnchantmentPredicate> enchantments) {
            super(enchantments);
        }
 
        @Override
        public DataComponentType<ItemEnchantments> componentType() {
            return DataComponents.STORED_ENCHANTMENTS;
        }
    }
}

引用的其他类