MultiPartGenerator.java
net.minecraft.client.data.models.blockstates.MultiPartGenerator
信息
- 全限定名:net.minecraft.client.data.models.blockstates.MultiPartGenerator
- 类型:public class
- 包:net.minecraft.client.data.models.blockstates
- 源码路径:src/main/java/net/minecraft/client/data/models/blockstates/MultiPartGenerator.java
- 起始行号:L15
- 实现:BlockModelDefinitionGenerator
- 职责:
TODO
字段/常量
-
block- 类型:
Block - 修饰符:
private final - 源码定位:
L16 - 说明:
TODO
- 类型:
-
parts- 类型:
List<MultiPartGenerator.Entry> - 修饰符:
private final - 源码定位:
L17 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.client.data.models.blockstates.MultiPartGenerator.Entry- 类型:
record - 修饰符:
private - 源码定位:
L60 - 说明:
TODO
- 类型:
构造器
private MultiPartGenerator(Block block) @ L19
- 构造器名:MultiPartGenerator
- 源码定位:L19
- 修饰符:private
参数:
- block: Block
说明:
TODO
方法
下面的方法块按源码顺序生成。
public Block block() @ L23
- 方法名:block
- 源码定位:L23
- 返回类型:Block
- 修饰符:public
参数:
- 无
说明:
TODO
public static MultiPartGenerator multiPart(Block block) @ L28
- 方法名:multiPart
- 源码定位:L28
- 返回类型:MultiPartGenerator
- 修饰符:public static
参数:
- block: Block
说明:
TODO
public MultiPartGenerator with(MultiVariant variants) @ L32
- 方法名:with
- 源码定位:L32
- 返回类型:MultiPartGenerator
- 修饰符:public
参数:
- variants: MultiVariant
说明:
TODO
private void validateCondition(Condition condition) @ L37
- 方法名:validateCondition
- 源码定位:L37
- 返回类型:void
- 修饰符:private
参数:
- condition: Condition
说明:
TODO
public MultiPartGenerator with(Condition condition, MultiVariant variants) @ L41
- 方法名:with
- 源码定位:L41
- 返回类型:MultiPartGenerator
- 修饰符:public
参数:
- condition: Condition
- variants: MultiVariant
说明:
TODO
public MultiPartGenerator with(ConditionBuilder condition, MultiVariant variants) @ L47
- 方法名:with
- 源码定位:L47
- 返回类型:MultiPartGenerator
- 修饰符:public
参数:
- condition: ConditionBuilder
- variants: MultiVariant
说明:
TODO
public BlockStateModelDispatcher create() @ L51
- 方法名:create
- 源码定位:L51
- 返回类型:BlockStateModelDispatcher
- 修饰符:public
参数:
- 无
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class MultiPartGenerator implements BlockModelDefinitionGenerator {
private final Block block;
private final List<MultiPartGenerator.Entry> parts = new ArrayList<>();
private MultiPartGenerator(Block block) {
this.block = block;
}
@Override
public Block block() {
return this.block;
}
public static MultiPartGenerator multiPart(Block block) {
return new MultiPartGenerator(block);
}
public MultiPartGenerator with(MultiVariant variants) {
this.parts.add(new MultiPartGenerator.Entry(Optional.empty(), variants));
return this;
}
private void validateCondition(Condition condition) {
condition.instantiate(this.block.getStateDefinition());
}
public MultiPartGenerator with(Condition condition, MultiVariant variants) {
this.validateCondition(condition);
this.parts.add(new MultiPartGenerator.Entry(Optional.of(condition), variants));
return this;
}
public MultiPartGenerator with(ConditionBuilder condition, MultiVariant variants) {
return this.with(condition.build(), variants);
}
@Override
public BlockStateModelDispatcher create() {
return new BlockStateModelDispatcher(
Optional.empty(),
Optional.of(new BlockStateModelDispatcher.MultiPartDefinition(this.parts.stream().map(MultiPartGenerator.Entry::toUnbaked).toList()))
);
}
@OnlyIn(Dist.CLIENT)
private record Entry(Optional<Condition> condition, MultiVariant variants) {
public Selector toUnbaked() {
return new Selector(this.condition, this.variants.toUnbaked());
}
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
实现
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用/构造调用/返回值 - 关联成员:
BlockStateModelDispatcher(), BlockStateModelDispatcher.MultiPartDefinition(), MultiPartDefinition()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
Selector()
- 引用位置:
-
- 引用位置:
参数/字段/返回值
- 引用位置: