FloatProviders.java
net.minecraft.util.valueproviders.FloatProviders
信息
- 全限定名:net.minecraft.util.valueproviders.FloatProviders
- 类型:public class
- 包:net.minecraft.util.valueproviders
- 源码路径:src/main/java/net/minecraft/util/valueproviders/FloatProviders.java
- 起始行号:L10
- 职责:
TODO
字段/常量
-
CONSTANT_OR_DISPATCH_CODEC- 类型:
Codec<Either<Float,FloatProvider>> - 修饰符:
private static final - 源码定位:
L11 - 说明:
TODO
- 类型:
-
CODEC- 类型:
Codec<FloatProvider> - 修饰符:
public static final - 源码定位:
L14 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public static Codec<FloatProvider> codec(float minValue, float maxValue) @ L19
- 方法名:codec
- 源码定位:L19
- 返回类型:Codec
- 修饰符:public static
参数:
- minValue: float
- maxValue: float
说明:
TODO
public static MapCodec<?extends FloatProvider> bootstrap(Registry<MapCodec<?extends FloatProvider>> registry) @ L33
- 方法名:bootstrap
- 源码定位:L33
- 返回类型:MapCodec<?extends FloatProvider>
- 修饰符:public static
参数:
- registry: Registry<MapCodec<?extends FloatProvider>>
说明:
TODO
代码
public class FloatProviders {
private static final Codec<Either<Float, FloatProvider>> CONSTANT_OR_DISPATCH_CODEC = Codec.either(
Codec.FLOAT, BuiltInRegistries.FLOAT_PROVIDER_TYPE.byNameCodec().dispatch(FloatProvider::codec, t -> t)
);
public static final Codec<FloatProvider> CODEC = CONSTANT_OR_DISPATCH_CODEC.xmap(
either -> either.map(ConstantFloat::of, f -> (FloatProvider)f),
f -> f instanceof ConstantFloat constantFloat ? Either.left(constantFloat.value()) : Either.right(f)
);
public static Codec<FloatProvider> codec(float minValue, float maxValue) {
return CODEC.validate(
value -> {
if (value.min() < minValue) {
return DataResult.error(() -> "Value provider too low: " + minValue + " [" + value.min() + "-" + value.max() + "]");
} else {
return value.max() > maxValue
? DataResult.error(() -> "Value provider too high: " + maxValue + " [" + value.min() + "-" + value.max() + "]")
: DataResult.success(value);
}
}
);
}
public static MapCodec<? extends FloatProvider> bootstrap(Registry<MapCodec<? extends FloatProvider>> registry) {
Registry.register(registry, "constant", ConstantFloat.MAP_CODEC);
Registry.register(registry, "uniform", UniformFloat.MAP_CODEC);
Registry.register(registry, "clamped_normal", ClampedNormalFloat.MAP_CODEC);
return Registry.register(registry, "trapezoid", TrapezoidFloat.MAP_CODEC);
}
}引用的其他类
-
- 引用位置:
参数/方法调用 - 关联成员:
Registry.register()
- 引用位置:
-
- 引用位置:
参数/字段/返回值
- 引用位置: