DistancePredicate.java
net.minecraft.advancements.criterion.DistancePredicate
信息
- 全限定名:net.minecraft.advancements.criterion.DistancePredicate
- 类型:public record
- 包:net.minecraft.advancements.criterion
- 源码路径:src/main/java/net/minecraft/advancements/criterion/DistancePredicate.java
- 起始行号:L7
- 职责:
TODO
字段/常量
CODEC- 类型:
Codec<DistancePredicate> - 修饰符:
public static final - 源码定位:
L10 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public static DistancePredicate horizontal(MinMaxBounds.Doubles horizontal) @ L21
- 方法名:horizontal
- 源码定位:L21
- 返回类型:DistancePredicate
- 修饰符:public static
参数:
- horizontal: MinMaxBounds.Doubles
说明:
TODO
public static DistancePredicate vertical(MinMaxBounds.Doubles y) @ L25
- 方法名:vertical
- 源码定位:L25
- 返回类型:DistancePredicate
- 修饰符:public static
参数:
- y: MinMaxBounds.Doubles
说明:
TODO
public static DistancePredicate absolute(MinMaxBounds.Doubles absolute) @ L29
- 方法名:absolute
- 源码定位:L29
- 返回类型:DistancePredicate
- 修饰符:public static
参数:
- absolute: MinMaxBounds.Doubles
说明:
TODO
public boolean matches(double x0, double y0, double z0, double x1, double y1, double z1) @ L33
- 方法名:matches
- 源码定位:L33
- 返回类型:boolean
- 修饰符:public
参数:
- x0: double
- y0: double
- z0: double
- x1: double
- y1: double
- z1: double
说明:
TODO
代码
public record DistancePredicate(
MinMaxBounds.Doubles x, MinMaxBounds.Doubles y, MinMaxBounds.Doubles z, MinMaxBounds.Doubles horizontal, MinMaxBounds.Doubles absolute
) {
public static final Codec<DistancePredicate> CODEC = RecordCodecBuilder.create(
i -> i.group(
MinMaxBounds.Doubles.CODEC.optionalFieldOf("x", MinMaxBounds.Doubles.ANY).forGetter(DistancePredicate::x),
MinMaxBounds.Doubles.CODEC.optionalFieldOf("y", MinMaxBounds.Doubles.ANY).forGetter(DistancePredicate::y),
MinMaxBounds.Doubles.CODEC.optionalFieldOf("z", MinMaxBounds.Doubles.ANY).forGetter(DistancePredicate::z),
MinMaxBounds.Doubles.CODEC.optionalFieldOf("horizontal", MinMaxBounds.Doubles.ANY).forGetter(DistancePredicate::horizontal),
MinMaxBounds.Doubles.CODEC.optionalFieldOf("absolute", MinMaxBounds.Doubles.ANY).forGetter(DistancePredicate::absolute)
)
.apply(i, DistancePredicate::new)
);
public static DistancePredicate horizontal(MinMaxBounds.Doubles horizontal) {
return new DistancePredicate(MinMaxBounds.Doubles.ANY, MinMaxBounds.Doubles.ANY, MinMaxBounds.Doubles.ANY, horizontal, MinMaxBounds.Doubles.ANY);
}
public static DistancePredicate vertical(MinMaxBounds.Doubles y) {
return new DistancePredicate(MinMaxBounds.Doubles.ANY, y, MinMaxBounds.Doubles.ANY, MinMaxBounds.Doubles.ANY, MinMaxBounds.Doubles.ANY);
}
public static DistancePredicate absolute(MinMaxBounds.Doubles absolute) {
return new DistancePredicate(MinMaxBounds.Doubles.ANY, MinMaxBounds.Doubles.ANY, MinMaxBounds.Doubles.ANY, MinMaxBounds.Doubles.ANY, absolute);
}
public boolean matches(double x0, double y0, double z0, double x1, double y1, double z1) {
float xd = (float)(x0 - x1);
float yd = (float)(y0 - y1);
float zd = (float)(z0 - z1);
if (!this.x.matches(Mth.abs(xd)) || !this.y.matches(Mth.abs(yd)) || !this.z.matches(Mth.abs(zd))) {
return false;
} else {
return !this.horizontal.matchesSqr(xd * xd + zd * zd) ? false : this.absolute.matchesSqr(xd * xd + yd * yd + zd * zd);
}
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Mth.abs()
- 引用位置: