MultiVariant.java

net.minecraft.client.data.models.MultiVariant

信息

  • 全限定名:net.minecraft.client.data.models.MultiVariant
  • 类型:public record
  • 包:net.minecraft.client.data.models
  • 源码路径:src/main/java/net/minecraft/client/data/models/MultiVariant.java
  • 起始行号:L15
  • 职责:

    TODO

字段/常量

内部类/嵌套类型

构造器

public MultiVariant(WeightedList<Variant> variants) @ L16

  • 构造器名:MultiVariant
  • 源码定位:L16
  • 修饰符:public

参数:

  • variants: WeightedList

说明:

TODO

方法

下面的方法块按源码顺序生成。

public MultiVariant with(VariantMutator mutator) @ L24

  • 方法名:with
  • 源码定位:L24
  • 返回类型:MultiVariant
  • 修饰符:public

参数:

  • mutator: VariantMutator

说明:

TODO

public BlockStateModel.Unbaked toUnbaked() @ L28

  • 方法名:toUnbaked
  • 源码定位:L28
  • 返回类型:BlockStateModel.Unbaked
  • 修饰符:public

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public record MultiVariant(WeightedList<Variant> variants) {
    public MultiVariant(WeightedList<Variant> variants) {
        if (variants.isEmpty()) {
            throw new IllegalArgumentException("Variant list must contain at least one element");
        } else {
            this.variants = variants;
        }
    }
 
    public MultiVariant with(VariantMutator mutator) {
        return new MultiVariant(this.variants.map(mutator));
    }
 
    public BlockStateModel.Unbaked toUnbaked() {
        List<Weighted<Variant>> entries = this.variants.unwrap();
        return (BlockStateModel.Unbaked)(entries.size() == 1
            ? new SingleVariant.Unbaked(entries.getFirst().value())
            : new WeightedVariants.Unbaked(this.variants.map(SingleVariant.Unbaked::new)));
    }
}

引用的其他类