IntProviders.java
net.minecraft.util.valueproviders.IntProviders
信息
- 全限定名:net.minecraft.util.valueproviders.IntProviders
- 类型:public class
- 包:net.minecraft.util.valueproviders
- 源码路径:src/main/java/net/minecraft/util/valueproviders/IntProviders.java
- 起始行号:L10
- 职责:
TODO
字段/常量
-
CONSTANT_OR_DISPATCH_CODEC- 类型:
Codec<Either<Integer,IntProvider>> - 修饰符:
private static final - 源码定位:
L11 - 说明:
TODO
- 类型:
-
CODEC- 类型:
Codec<IntProvider> - 修饰符:
public static final - 源码定位:
L14 - 说明:
TODO
- 类型:
-
NON_NEGATIVE_CODEC- 类型:
Codec<IntProvider> - 修饰符:
public static final - 源码定位:
L18 - 说明:
TODO
- 类型:
-
POSITIVE_CODEC- 类型:
Codec<IntProvider> - 修饰符:
public static final - 源码定位:
L19 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public static Codec<IntProvider> codec(int minValue, int maxValue) @ L21
- 方法名:codec
- 源码定位:L21
- 返回类型:Codec
- 修饰符:public static
参数:
- minValue: int
- maxValue: int
说明:
TODO
public static <T extends IntProvider> Codec<T> validateCodec(int minValue, int maxValue, Codec<T> codec) @ L25
- 方法名:validateCodec
- 源码定位:L25
- 返回类型:
Codec - 修饰符:public static
参数:
- minValue: int
- maxValue: int
- codec: Codec
说明:
TODO
private static <T extends IntProvider> DataResult<T> validate(int minValue, int maxValue, T value) @ L29
- 方法名:validate
- 源码定位:L29
- 返回类型:
DataResult - 修饰符:private static
参数:
- minValue: int
- maxValue: int
- value: T
说明:
TODO
public static MapCodec<?extends IntProvider> bootstrap(Registry<MapCodec<?extends IntProvider>> registry) @ L39
- 方法名:bootstrap
- 源码定位:L39
- 返回类型:MapCodec<?extends IntProvider>
- 修饰符:public static
参数:
- registry: Registry<MapCodec<?extends IntProvider>>
说明:
TODO
代码
public class IntProviders {
private static final Codec<Either<Integer, IntProvider>> CONSTANT_OR_DISPATCH_CODEC = Codec.either(
Codec.INT, BuiltInRegistries.INT_PROVIDER_TYPE.byNameCodec().dispatch(IntProvider::codec, t -> t)
);
public static final Codec<IntProvider> CODEC = CONSTANT_OR_DISPATCH_CODEC.xmap(
either -> either.map(ConstantInt::of, f -> (IntProvider)f),
f -> f instanceof ConstantInt constantInt ? Either.left(constantInt.value()) : Either.right(f)
);
public static final Codec<IntProvider> NON_NEGATIVE_CODEC = codec(0, Integer.MAX_VALUE);
public static final Codec<IntProvider> POSITIVE_CODEC = codec(1, Integer.MAX_VALUE);
public static Codec<IntProvider> codec(int minValue, int maxValue) {
return validateCodec(minValue, maxValue, CODEC);
}
public static <T extends IntProvider> Codec<T> validateCodec(int minValue, int maxValue, Codec<T> codec) {
return codec.validate(value -> validate(minValue, maxValue, value));
}
private static <T extends IntProvider> DataResult<T> validate(int minValue, int maxValue, T value) {
if (value.minInclusive() < minValue) {
return DataResult.error(() -> "Value provider too low: " + minValue + " [" + value.minInclusive() + "-" + value.maxInclusive() + "]");
} else {
return value.maxInclusive() > maxValue
? DataResult.error(() -> "Value provider too high: " + maxValue + " [" + value.minInclusive() + "-" + value.maxInclusive() + "]")
: DataResult.success(value);
}
}
public static MapCodec<? extends IntProvider> bootstrap(Registry<MapCodec<? extends IntProvider>> registry) {
Registry.register(registry, "constant", ConstantInt.MAP_CODEC);
Registry.register(registry, "uniform", UniformInt.MAP_CODEC);
Registry.register(registry, "biased_to_bottom", BiasedToBottomInt.MAP_CODEC);
Registry.register(registry, "clamped", ClampedInt.MAP_CODEC);
Registry.register(registry, "weighted_list", WeightedListInt.MAP_CODEC);
Registry.register(registry, "clamped_normal", ClampedNormalInt.MAP_CODEC);
return Registry.register(registry, "trapezoid", TrapezoidInt.MAP_CODEC);
}
}引用的其他类
-
- 引用位置:
参数/方法调用 - 关联成员:
Registry.register()
- 引用位置:
-
- 引用位置:
参数/字段/返回值
- 引用位置: