ConditionalBlockModel.java
net.minecraft.client.renderer.block.model.ConditionalBlockModel
信息
- 全限定名:net.minecraft.client.renderer.block.model.ConditionalBlockModel
- 类型:public class
- 包:net.minecraft.client.renderer.block.model
- 源码路径:src/main/java/net/minecraft/client/renderer/block/model/ConditionalBlockModel.java
- 起始行号:L13
- 实现:BlockModel
- 职责:
TODO
字段/常量
-
property- 类型:
ConditionalBlockModelProperty - 修饰符:
private final - 源码定位:
L14 - 说明:
TODO
- 类型:
-
onTrue- 类型:
BlockModel - 修饰符:
private final - 源码定位:
L15 - 说明:
TODO
- 类型:
-
onFalse- 类型:
BlockModel - 修饰符:
private final - 源码定位:
L16 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.client.renderer.block.model.ConditionalBlockModel.Unbaked- 类型:
record - 修饰符:
public - 源码定位:
L30 - 说明:
TODO
- 类型:
构造器
public ConditionalBlockModel(ConditionalBlockModelProperty property, BlockModel onTrue, BlockModel onFalse) @ L18
- 构造器名:ConditionalBlockModel
- 源码定位:L18
- 修饰符:public
参数:
- property: ConditionalBlockModelProperty
- onTrue: BlockModel
- onFalse: BlockModel
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void update(BlockModelRenderState output, BlockState blockState, BlockDisplayContext displayContext, long seed) @ L24
- 方法名:update
- 源码定位:L24
- 返回类型:void
- 修饰符:public
参数:
- output: BlockModelRenderState
- blockState: BlockState
- displayContext: BlockDisplayContext
- seed: long
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class ConditionalBlockModel implements BlockModel {
private final ConditionalBlockModelProperty property;
private final BlockModel onTrue;
private final BlockModel onFalse;
public ConditionalBlockModel(ConditionalBlockModelProperty property, BlockModel onTrue, BlockModel onFalse) {
this.property = property;
this.onTrue = onTrue;
this.onFalse = onFalse;
}
@Override
public void update(BlockModelRenderState output, BlockState blockState, BlockDisplayContext displayContext, long seed) {
(this.property.get(blockState) ? this.onTrue : this.onFalse).update(output, blockState, displayContext, seed);
}
@OnlyIn(Dist.CLIENT)
public record Unbaked(
Optional<Transformation> transformation, ConditionalBlockModelProperty property, BlockModel.Unbaked onTrue, BlockModel.Unbaked onFalse
) implements BlockModel.Unbaked {
@Override
public BlockModel bake(BlockModel.BakingContext context, Matrix4fc transformation) {
Matrix4fc childTransform = Transformation.compose(transformation, this.transformation);
return new ConditionalBlockModel(this.property, this.onTrue.bake(context, childTransform), this.onFalse.bake(context, childTransform));
}
}
}引用的其他类
-
- 引用位置:
方法调用 - 关联成员:
Transformation.compose()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/字段/实现
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数
- 引用位置: