DamagePredicate.java
net.minecraft.core.component.predicates.DamagePredicate
信息
- 全限定名:net.minecraft.core.component.predicates.DamagePredicate
- 类型:public record
- 包:net.minecraft.core.component.predicates
- 源码路径:src/main/java/net/minecraft/core/component/predicates/DamagePredicate.java
- 起始行号:L9
- 实现:DataComponentPredicate
- 职责:
TODO
字段/常量
CODEC- 类型:
Codec<DamagePredicate> - 修饰符:
public static final - 源码定位:
L10 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public boolean matches(DataComponentGetter components) @ L18
- 方法名:matches
- 源码定位:L18
- 返回类型:boolean
- 修饰符:public
参数:
- components: DataComponentGetter
说明:
TODO
public static DamagePredicate durability(MinMaxBounds.Ints range) @ L29
- 方法名:durability
- 源码定位:L29
- 返回类型:DamagePredicate
- 修饰符:public static
参数:
- range: MinMaxBounds.Ints
说明:
TODO
代码
public record DamagePredicate(MinMaxBounds.Ints durability, MinMaxBounds.Ints damage) implements DataComponentPredicate {
public static final Codec<DamagePredicate> CODEC = RecordCodecBuilder.create(
i -> i.group(
MinMaxBounds.Ints.CODEC.optionalFieldOf("durability", MinMaxBounds.Ints.ANY).forGetter(DamagePredicate::durability),
MinMaxBounds.Ints.CODEC.optionalFieldOf("damage", MinMaxBounds.Ints.ANY).forGetter(DamagePredicate::damage)
)
.apply(i, DamagePredicate::new)
);
@Override
public boolean matches(DataComponentGetter components) {
Integer damage = components.get(DataComponents.DAMAGE);
if (damage == null) {
return false;
} else {
int maxDamage = components.getOrDefault(DataComponents.MAX_DAMAGE, 0);
return !this.durability.matches(maxDamage - damage) ? false : this.damage.matches(damage);
}
}
public static DamagePredicate durability(MinMaxBounds.Ints range) {
return new DamagePredicate(range, MinMaxBounds.Ints.ANY);
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
实现
- 引用位置: