Variant.java
net.minecraft.client.renderer.block.dispatch.Variant
信息
- 全限定名:net.minecraft.client.renderer.block.dispatch.Variant
- 类型:public record
- 包:net.minecraft.client.renderer.block.dispatch
- 源码路径:src/main/java/net/minecraft/client/renderer/block/dispatch/Variant.java
- 起始行号:L15
- 实现:BlockStateModelPart.Unbaked
- 职责:
TODO
字段/常量
-
MAP_CODEC- 类型:
MapCodec<Variant> - 修饰符:
public static final - 源码定位:
L16 - 说明:
TODO
- 类型:
-
CODEC- 类型:
Codec<Variant> - 修饰符:
public static final - 源码定位:
L20 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.client.renderer.block.dispatch.Variant.SimpleModelState- 类型:
record - 修饰符:
public - 源码定位:
L65 - 说明:
TODO
- 类型:
构造器
public Variant(Identifier modelLocation) @ L22
- 构造器名:Variant
- 源码定位:L22
- 修饰符:public
参数:
- modelLocation: Identifier
说明:
TODO
方法
下面的方法块按源码顺序生成。
public Variant withXRot(Quadrant x) @ L26
- 方法名:withXRot
- 源码定位:L26
- 返回类型:Variant
- 修饰符:public
参数:
- x: Quadrant
说明:
TODO
public Variant withYRot(Quadrant y) @ L30
- 方法名:withYRot
- 源码定位:L30
- 返回类型:Variant
- 修饰符:public
参数:
- y: Quadrant
说明:
TODO
public Variant withZRot(Quadrant z) @ L34
- 方法名:withZRot
- 源码定位:L34
- 返回类型:Variant
- 修饰符:public
参数:
- z: Quadrant
说明:
TODO
public Variant withUvLock(boolean uvLock) @ L38
- 方法名:withUvLock
- 源码定位:L38
- 返回类型:Variant
- 修饰符:public
参数:
- uvLock: boolean
说明:
TODO
public Variant withModel(Identifier modelLocation) @ L42
- 方法名:withModel
- 源码定位:L42
- 返回类型:Variant
- 修饰符:public
参数:
- modelLocation: Identifier
说明:
TODO
public Variant withState(Variant.SimpleModelState modelState) @ L46
- 方法名:withState
- 源码定位:L46
- 返回类型:Variant
- 修饰符:public
参数:
- modelState: Variant.SimpleModelState
说明:
TODO
public Variant with(VariantMutator mutator) @ L50
- 方法名:with
- 源码定位:L50
- 返回类型:Variant
- 修饰符:public
参数:
- mutator: VariantMutator
说明:
TODO
public BlockStateModelPart bake(ModelBaker modelBakery) @ L54
- 方法名:bake
- 源码定位:L54
- 返回类型:BlockStateModelPart
- 修饰符:public
参数:
- modelBakery: ModelBaker
说明:
TODO
public void resolveDependencies(ResolvableModel.Resolver resolver) @ L59
- 方法名:resolveDependencies
- 源码定位:L59
- 返回类型:void
- 修饰符:public
参数:
- resolver: ResolvableModel.Resolver
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public record Variant(Identifier modelLocation, Variant.SimpleModelState modelState) implements BlockStateModelPart.Unbaked {
public static final MapCodec<Variant> MAP_CODEC = RecordCodecBuilder.mapCodec(
i -> i.group(Identifier.CODEC.fieldOf("model").forGetter(Variant::modelLocation), Variant.SimpleModelState.MAP_CODEC.forGetter(Variant::modelState))
.apply(i, Variant::new)
);
public static final Codec<Variant> CODEC = MAP_CODEC.codec();
public Variant(Identifier modelLocation) {
this(modelLocation, Variant.SimpleModelState.DEFAULT);
}
public Variant withXRot(Quadrant x) {
return this.withState(this.modelState.withX(x));
}
public Variant withYRot(Quadrant y) {
return this.withState(this.modelState.withY(y));
}
public Variant withZRot(Quadrant z) {
return this.withState(this.modelState.withZ(z));
}
public Variant withUvLock(boolean uvLock) {
return this.withState(this.modelState.withUvLock(uvLock));
}
public Variant withModel(Identifier modelLocation) {
return new Variant(modelLocation, this.modelState);
}
public Variant withState(Variant.SimpleModelState modelState) {
return new Variant(this.modelLocation, modelState);
}
public Variant with(VariantMutator mutator) {
return mutator.apply(this);
}
@Override
public BlockStateModelPart bake(ModelBaker modelBakery) {
return SimpleModelWrapper.bake(modelBakery, this.modelLocation, this.modelState.asModelState());
}
@Override
public void resolveDependencies(ResolvableModel.Resolver resolver) {
resolver.markDependency(this.modelLocation);
}
@OnlyIn(Dist.CLIENT)
public record SimpleModelState(Quadrant x, Quadrant y, Quadrant z, boolean uvLock) {
public static final MapCodec<Variant.SimpleModelState> MAP_CODEC = RecordCodecBuilder.mapCodec(
i -> i.group(
Quadrant.CODEC.optionalFieldOf("x", Quadrant.R0).forGetter(Variant.SimpleModelState::x),
Quadrant.CODEC.optionalFieldOf("y", Quadrant.R0).forGetter(Variant.SimpleModelState::y),
Quadrant.CODEC.optionalFieldOf("z", Quadrant.R0).forGetter(Variant.SimpleModelState::z),
Codec.BOOL.optionalFieldOf("uvlock", false).forGetter(Variant.SimpleModelState::uvLock)
)
.apply(i, Variant.SimpleModelState::new)
);
public static final Variant.SimpleModelState DEFAULT = new Variant.SimpleModelState(Quadrant.R0, Quadrant.R0, Quadrant.R0, false);
public ModelState asModelState() {
BlockModelRotation rotation = BlockModelRotation.get(Quadrant.fromXYZAngles(this.x, this.y, this.z));
return (ModelState)(this.uvLock ? rotation.withUvLock() : rotation);
}
public Variant.SimpleModelState withX(Quadrant x) {
return new Variant.SimpleModelState(x, this.y, this.z, this.uvLock);
}
public Variant.SimpleModelState withY(Quadrant y) {
return new Variant.SimpleModelState(this.x, y, this.z, this.uvLock);
}
public Variant.SimpleModelState withZ(Quadrant z) {
return new Variant.SimpleModelState(this.x, this.y, z, this.uvLock);
}
public Variant.SimpleModelState withUvLock(boolean uvLock) {
return new Variant.SimpleModelState(this.x, this.y, this.z, uvLock);
}
}
}引用的其他类
-
- 引用位置:
参数/方法调用 - 关联成员:
Quadrant.fromXYZAngles()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
BlockModelRotation.get()
- 引用位置:
-
- 引用位置:
实现/返回值
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
SimpleModelWrapper.bake()
- 引用位置:
-
- 引用位置:
参数
- 引用位置: