SlotsPredicate.java
net.minecraft.advancements.criterion.SlotsPredicate
信息
- 全限定名:net.minecraft.advancements.criterion.SlotsPredicate
- 类型:public record
- 包:net.minecraft.advancements.criterion
- 源码路径:src/main/java/net/minecraft/advancements/criterion/SlotsPredicate.java
- 起始行号:L13
- 职责:
TODO
字段/常量
CODEC- 类型:
Codec<SlotsPredicate> - 修饰符:
public static final - 源码定位:
L14 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public boolean matches(SlotProvider slotProvider) @ L17
- 方法名:matches
- 源码定位:L17
- 返回类型:boolean
- 修饰符:public
参数:
- slotProvider: SlotProvider
说明:
TODO
private static boolean matchSlots(SlotProvider slotProvider, ItemPredicate test, IntList slots) @ L27
- 方法名:matchSlots
- 源码定位:L27
- 返回类型:boolean
- 修饰符:private static
参数:
- slotProvider: SlotProvider
- test: ItemPredicate
- slots: IntList
说明:
TODO
代码
public record SlotsPredicate(Map<SlotRange, ItemPredicate> slots) {
public static final Codec<SlotsPredicate> CODEC = Codec.unboundedMap(SlotRanges.CODEC, ItemPredicate.CODEC)
.xmap(SlotsPredicate::new, SlotsPredicate::slots);
public boolean matches(SlotProvider slotProvider) {
for (Entry<SlotRange, ItemPredicate> entry : this.slots.entrySet()) {
if (!matchSlots(slotProvider, entry.getValue(), entry.getKey().slots())) {
return false;
}
}
return true;
}
private static boolean matchSlots(SlotProvider slotProvider, ItemPredicate test, IntList slots) {
for (int i = 0; i < slots.size(); i++) {
int slotId = slots.getInt(i);
SlotAccess slot = slotProvider.getSlot(slotId);
if (slot != null && test.test((ItemInstance)slot.get())) {
return true;
}
}
return false;
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置: