WeightedVariants.java
net.minecraft.client.renderer.block.dispatch.WeightedVariants
信息
- 全限定名:net.minecraft.client.renderer.block.dispatch.WeightedVariants
- 类型:public class
- 包:net.minecraft.client.renderer.block.dispatch
- 源码路径:src/main/java/net/minecraft/client/renderer/block/dispatch/WeightedVariants.java
- 起始行号:L15
- 实现:BlockStateModel
- 职责:
TODO
字段/常量
-
list- 类型:
WeightedList<BlockStateModel> - 修饰符:
private final - 源码定位:
L16 - 说明:
TODO
- 类型:
-
particleMaterial- 类型:
Material.Baked - 修饰符:
private final - 源码定位:
L17 - 说明:
TODO
- 类型:
-
materialFlags- 类型:
int - 修饰符:
private final - 源码定位:
L18 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.client.renderer.block.dispatch.WeightedVariants.Unbaked- 类型:
record - 修饰符:
public - 源码定位:
L56 - 说明:
TODO
- 类型:
构造器
public WeightedVariants(WeightedList<BlockStateModel> list) @ L21
- 构造器名:WeightedVariants
- 源码定位:L21
- 修饰符:public
参数:
- list: WeightedList
说明:
TODO
方法
下面的方法块按源码顺序生成。
private static int computeMaterialFlags(WeightedList<BlockStateModel> list) @ L28
- 方法名:computeMaterialFlags
- 源码定位:L28
- 返回类型:int
- 修饰符:private static
参数:
- list: WeightedList
说明:
TODO
public Material.Baked particleMaterial() @ L39
- 方法名:particleMaterial
- 源码定位:L39
- 返回类型:Material.Baked
- 修饰符:public
参数:
- 无
说明:
TODO
public int materialFlags() @ L44
- 方法名:materialFlags
- 源码定位:L44
- 返回类型:int
- 修饰符:public
参数:
- 无
说明:
TODO
public void collectParts(RandomSource random, List<BlockStateModelPart> output) @ L50
- 方法名:collectParts
- 源码定位:L50
- 返回类型:void
- 修饰符:public
参数:
- random: RandomSource
- output: List
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class WeightedVariants implements BlockStateModel {
private final WeightedList<BlockStateModel> list;
private final Material.Baked particleMaterial;
@BakedQuad.MaterialFlags
private final int materialFlags;
public WeightedVariants(WeightedList<BlockStateModel> list) {
this.list = list;
BlockStateModel firstModel = list.unwrap().getFirst().value();
this.particleMaterial = firstModel.particleMaterial();
this.materialFlags = computeMaterialFlags(list);
}
@BakedQuad.MaterialFlags
private static int computeMaterialFlags(WeightedList<BlockStateModel> list) {
int flags = 0;
for (Weighted<BlockStateModel> entry : list.unwrap()) {
flags |= entry.value().materialFlags();
}
return flags;
}
@Override
public Material.Baked particleMaterial() {
return this.particleMaterial;
}
@BakedQuad.MaterialFlags
@Override
public int materialFlags() {
return this.materialFlags;
}
@Override
public void collectParts(RandomSource random, List<BlockStateModelPart> output) {
this.list.getRandomOrThrow(random).collectParts(random, output);
}
@OnlyIn(Dist.CLIENT)
public record Unbaked(WeightedList<BlockStateModel.Unbaked> entries) implements BlockStateModel.Unbaked {
@Override
public BlockStateModel bake(ModelBaker modelBakery) {
return new WeightedVariants(this.entries.map(m -> m.bake(modelBakery)));
}
@Override
public void resolveDependencies(ResolvableModel.Resolver resolver) {
this.entries.unwrap().forEach(v -> v.value().resolveDependencies(resolver));
}
}
}引用的其他类
-
- 引用位置:
参数/字段/实现
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
字段/返回值
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置: