ItemModelUtils.java

net.minecraft.client.data.models.model.ItemModelUtils

信息

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

    TODO

字段/常量

内部类/嵌套类型

构造器

方法

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

public static ItemModel.Unbaked plainModel(Identifier id) @ L38

  • 方法名:plainModel
  • 源码定位:L38
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • id: Identifier

说明:

TODO

public static ItemModel.Unbaked tintedModel(Identifier id, ItemTintSource... tints) @ L42

  • 方法名:tintedModel
  • 源码定位:L42
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • id: Identifier
  • tints: ItemTintSource…

说明:

TODO

public static ItemTintSource constantTint(int color) @ L46

  • 方法名:constantTint
  • 源码定位:L46
  • 返回类型:ItemTintSource
  • 修饰符:public static

参数:

  • color: int

说明:

TODO

public static ItemModel.Unbaked composite(ItemModel.Unbaked... models) @ L50

  • 方法名:composite
  • 源码定位:L50
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • models: ItemModel.Unbaked…

说明:

TODO

public static ItemModel.Unbaked specialModel(Identifier base, SpecialModelRenderer.Unbaked<?> model) @ L54

  • 方法名:specialModel
  • 源码定位:L54
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • base: Identifier
  • model: SpecialModelRenderer.Unbaked<?>

说明:

TODO

public static ItemModel.Unbaked specialModel(Identifier base, Transformation transformation, SpecialModelRenderer.Unbaked<?> model) @ L58

  • 方法名:specialModel
  • 源码定位:L58
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • base: Identifier
  • transformation: Transformation
  • model: SpecialModelRenderer.Unbaked<?>

说明:

TODO

public static ItemModel.Unbaked specialModel(Identifier base, Optional<Transformation> transformation, SpecialModelRenderer.Unbaked<?> model) @ L62

  • 方法名:specialModel
  • 源码定位:L62
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • base: Identifier
  • transformation: Optional
  • model: SpecialModelRenderer.Unbaked<?>

说明:

TODO

public static RangeSelectItemModel.Entry override(ItemModel.Unbaked model, float value) @ L66

  • 方法名:override
  • 源码定位:L66
  • 返回类型:RangeSelectItemModel.Entry
  • 修饰符:public static

参数:

  • model: ItemModel.Unbaked
  • value: float

说明:

TODO

public static ItemModel.Unbaked rangeSelect(RangeSelectItemModelProperty property, ItemModel.Unbaked fallback, RangeSelectItemModel.Entry... entries) @ L70

  • 方法名:rangeSelect
  • 源码定位:L70
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • property: RangeSelectItemModelProperty
  • fallback: ItemModel.Unbaked
  • entries: RangeSelectItemModel.Entry…

说明:

TODO

public static ItemModel.Unbaked rangeSelect(RangeSelectItemModelProperty property, float scale, ItemModel.Unbaked fallback, RangeSelectItemModel.Entry... entries) @ L74

  • 方法名:rangeSelect
  • 源码定位:L74
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • property: RangeSelectItemModelProperty
  • scale: float
  • fallback: ItemModel.Unbaked
  • entries: RangeSelectItemModel.Entry…

说明:

TODO

public static ItemModel.Unbaked rangeSelect(RangeSelectItemModelProperty property, ItemModel.Unbaked fallback, List<RangeSelectItemModel.Entry> entries) @ L80

  • 方法名:rangeSelect
  • 源码定位:L80
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • property: RangeSelectItemModelProperty
  • fallback: ItemModel.Unbaked
  • entries: List<RangeSelectItemModel.Entry>

说明:

TODO

public static ItemModel.Unbaked rangeSelect(RangeSelectItemModelProperty property, List<RangeSelectItemModel.Entry> entries) @ L84

  • 方法名:rangeSelect
  • 源码定位:L84
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • property: RangeSelectItemModelProperty
  • entries: List<RangeSelectItemModel.Entry>

说明:

TODO

public static ItemModel.Unbaked rangeSelect(RangeSelectItemModelProperty property, float scale, List<RangeSelectItemModel.Entry> entries) @ L88

  • 方法名:rangeSelect
  • 源码定位:L88
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • property: RangeSelectItemModelProperty
  • scale: float
  • entries: List<RangeSelectItemModel.Entry>

说明:

TODO

public static ItemModel.Unbaked conditional(ConditionalItemModelProperty property, ItemModel.Unbaked onTrue, ItemModel.Unbaked onFalse) @ L92

  • 方法名:conditional
  • 源码定位:L92
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • property: ConditionalItemModelProperty
  • onTrue: ItemModel.Unbaked
  • onFalse: ItemModel.Unbaked

说明:

TODO

public static ItemModel.Unbaked conditional(Transformation transformation, ConditionalItemModelProperty property, ItemModel.Unbaked onTrue, ItemModel.Unbaked onFalse) @ L96

  • 方法名:conditional
  • 源码定位:L96
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • transformation: Transformation
  • property: ConditionalItemModelProperty
  • onTrue: ItemModel.Unbaked
  • onFalse: ItemModel.Unbaked

说明:

TODO

public static ItemModel.Unbaked conditional(Optional<Transformation> transformation, ConditionalItemModelProperty property, ItemModel.Unbaked onTrue, ItemModel.Unbaked onFalse) @ L102

  • 方法名:conditional
  • 源码定位:L102
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • transformation: Optional
  • property: ConditionalItemModelProperty
  • onTrue: ItemModel.Unbaked
  • onFalse: ItemModel.Unbaked

说明:

TODO

public static <T> SelectItemModel.SwitchCase<T> when(T value, ItemModel.Unbaked model) @ L108

  • 方法名:when
  • 源码定位:L108
  • 返回类型: SelectItemModel.SwitchCase
  • 修饰符:public static

参数:

  • value: T
  • model: ItemModel.Unbaked

说明:

TODO

public static <T> SelectItemModel.SwitchCase<T> when(List<T> values, ItemModel.Unbaked model) @ L112

  • 方法名:when
  • 源码定位:L112
  • 返回类型: SelectItemModel.SwitchCase
  • 修饰符:public static

参数:

  • values: List
  • model: ItemModel.Unbaked

说明:

TODO

public static <T> ItemModel.Unbaked select(SelectItemModelProperty<T> property, ItemModel.Unbaked fallback, SelectItemModel.SwitchCase<T>... cases) @ L116

  • 方法名:select
  • 源码定位:L116
  • 返回类型: ItemModel.Unbaked
  • 修饰符:public static

参数:

  • property: SelectItemModelProperty
  • fallback: ItemModel.Unbaked
  • cases: SelectItemModel.SwitchCase

说明:

TODO

public static <T> ItemModel.Unbaked select(SelectItemModelProperty<T> property, ItemModel.Unbaked fallback, List<SelectItemModel.SwitchCase<T>> cases) @ L121

  • 方法名:select
  • 源码定位:L121
  • 返回类型: ItemModel.Unbaked
  • 修饰符:public static

参数:

  • property: SelectItemModelProperty
  • fallback: ItemModel.Unbaked
  • cases: List<SelectItemModel.SwitchCase>

说明:

TODO

public static <T> ItemModel.Unbaked select(Transformation transformation, SelectItemModelProperty<T> property, ItemModel.Unbaked fallback, List<SelectItemModel.SwitchCase<T>> cases) @ L125

  • 方法名:select
  • 源码定位:L125
  • 返回类型: ItemModel.Unbaked
  • 修饰符:public static

参数:

  • transformation: Transformation
  • property: SelectItemModelProperty
  • fallback: ItemModel.Unbaked
  • cases: List<SelectItemModel.SwitchCase>

说明:

TODO

public static <T> ItemModel.Unbaked select(SelectItemModelProperty<T> property, SelectItemModel.SwitchCase<T>... cases) @ L131

  • 方法名:select
  • 源码定位:L131
  • 返回类型: ItemModel.Unbaked
  • 修饰符:public static

参数:

  • property: SelectItemModelProperty
  • cases: SelectItemModel.SwitchCase

说明:

TODO

public static <T> ItemModel.Unbaked select(SelectItemModelProperty<T> property, List<SelectItemModel.SwitchCase<T>> cases) @ L136

  • 方法名:select
  • 源码定位:L136
  • 返回类型: ItemModel.Unbaked
  • 修饰符:public static

参数:

  • property: SelectItemModelProperty
  • cases: List<SelectItemModel.SwitchCase>

说明:

TODO

public static ConditionalItemModelProperty isUsingItem() @ L140

  • 方法名:isUsingItem
  • 源码定位:L140
  • 返回类型:ConditionalItemModelProperty
  • 修饰符:public static

参数:

说明:

TODO

public static ConditionalItemModelProperty hasComponent(DataComponentType<?> component) @ L144

  • 方法名:hasComponent
  • 源码定位:L144
  • 返回类型:ConditionalItemModelProperty
  • 修饰符:public static

参数:

  • component: DataComponentType<?>

说明:

TODO

public static ItemModel.Unbaked inOverworld(ItemModel.Unbaked ifTrue, ItemModel.Unbaked ifFalse) @ L148

  • 方法名:inOverworld
  • 源码定位:L148
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • ifTrue: ItemModel.Unbaked
  • ifFalse: ItemModel.Unbaked

说明:

TODO

private static <T extends Comparable<T>> List<SelectItemModel.SwitchCase<String>> createBlockPropertySwitchCases(Property<T> property, Map<T,ItemModel.Unbaked> cases) @ L152

  • 方法名:createBlockPropertySwitchCases
  • 源码定位:L152
  • 返回类型:<T extends Comparable> List<SelectItemModel.SwitchCase>
  • 修饰符:private static

参数:

  • property: Property
  • cases: Map<T,ItemModel.Unbaked>

说明:

TODO

public static <T extends Comparable<T>> ItemModel.Unbaked selectBlockItemProperty(Property<T> property, ItemModel.Unbaked fallback, Map<T,ItemModel.Unbaked> cases) @ L161

  • 方法名:selectBlockItemProperty
  • 源码定位:L161
  • 返回类型:<T extends Comparable> ItemModel.Unbaked
  • 修饰符:public static

参数:

  • property: Property
  • fallback: ItemModel.Unbaked
  • cases: Map<T,ItemModel.Unbaked>

说明:

TODO

public static <T extends Comparable<T>> ItemModel.Unbaked selectBlockItemProperty(Transformation transformation, Property<T> property, ItemModel.Unbaked fallback, Map<T,ItemModel.Unbaked> cases) @ L167

  • 方法名:selectBlockItemProperty
  • 源码定位:L167
  • 返回类型:<T extends Comparable> ItemModel.Unbaked
  • 修饰符:public static

参数:

  • transformation: Transformation
  • property: Property
  • fallback: ItemModel.Unbaked
  • cases: Map<T,ItemModel.Unbaked>

说明:

TODO

public static ItemModel.Unbaked isXmas(ItemModel.Unbaked onTrue, ItemModel.Unbaked onFalse) @ L173

  • 方法名:isXmas
  • 源码定位:L173
  • 返回类型:ItemModel.Unbaked
  • 修饰符:public static

参数:

  • onTrue: ItemModel.Unbaked
  • onFalse: ItemModel.Unbaked

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class ItemModelUtils {
    public static ItemModel.Unbaked plainModel(Identifier id) {
        return new CuboidItemModelWrapper.Unbaked(id, Optional.empty(), List.of());
    }
 
    public static ItemModel.Unbaked tintedModel(Identifier id, ItemTintSource... tints) {
        return new CuboidItemModelWrapper.Unbaked(id, Optional.empty(), List.of(tints));
    }
 
    public static ItemTintSource constantTint(int color) {
        return new Constant(color);
    }
 
    public static ItemModel.Unbaked composite(ItemModel.Unbaked... models) {
        return new CompositeModel.Unbaked(List.of(models), Optional.empty());
    }
 
    public static ItemModel.Unbaked specialModel(Identifier base, SpecialModelRenderer.Unbaked<?> model) {
        return specialModel(base, Optional.empty(), model);
    }
 
    public static ItemModel.Unbaked specialModel(Identifier base, Transformation transformation, SpecialModelRenderer.Unbaked<?> model) {
        return specialModel(base, Optional.of(transformation), model);
    }
 
    public static ItemModel.Unbaked specialModel(Identifier base, Optional<Transformation> transformation, SpecialModelRenderer.Unbaked<?> model) {
        return new SpecialModelWrapper.Unbaked(base, transformation, model);
    }
 
    public static RangeSelectItemModel.Entry override(ItemModel.Unbaked model, float value) {
        return new RangeSelectItemModel.Entry(value, model);
    }
 
    public static ItemModel.Unbaked rangeSelect(RangeSelectItemModelProperty property, ItemModel.Unbaked fallback, RangeSelectItemModel.Entry... entries) {
        return new RangeSelectItemModel.Unbaked(Optional.empty(), property, 1.0F, List.of(entries), Optional.of(fallback));
    }
 
    public static ItemModel.Unbaked rangeSelect(
        RangeSelectItemModelProperty property, float scale, ItemModel.Unbaked fallback, RangeSelectItemModel.Entry... entries
    ) {
        return new RangeSelectItemModel.Unbaked(Optional.empty(), property, scale, List.of(entries), Optional.of(fallback));
    }
 
    public static ItemModel.Unbaked rangeSelect(RangeSelectItemModelProperty property, ItemModel.Unbaked fallback, List<RangeSelectItemModel.Entry> entries) {
        return new RangeSelectItemModel.Unbaked(Optional.empty(), property, 1.0F, entries, Optional.of(fallback));
    }
 
    public static ItemModel.Unbaked rangeSelect(RangeSelectItemModelProperty property, List<RangeSelectItemModel.Entry> entries) {
        return new RangeSelectItemModel.Unbaked(Optional.empty(), property, 1.0F, entries, Optional.empty());
    }
 
    public static ItemModel.Unbaked rangeSelect(RangeSelectItemModelProperty property, float scale, List<RangeSelectItemModel.Entry> entries) {
        return new RangeSelectItemModel.Unbaked(Optional.empty(), property, scale, entries, Optional.empty());
    }
 
    public static ItemModel.Unbaked conditional(ConditionalItemModelProperty property, ItemModel.Unbaked onTrue, ItemModel.Unbaked onFalse) {
        return conditional(Optional.empty(), property, onTrue, onFalse);
    }
 
    public static ItemModel.Unbaked conditional(
        Transformation transformation, ConditionalItemModelProperty property, ItemModel.Unbaked onTrue, ItemModel.Unbaked onFalse
    ) {
        return conditional(Optional.of(transformation), property, onTrue, onFalse);
    }
 
    public static ItemModel.Unbaked conditional(
        Optional<Transformation> transformation, ConditionalItemModelProperty property, ItemModel.Unbaked onTrue, ItemModel.Unbaked onFalse
    ) {
        return new ConditionalItemModel.Unbaked(transformation, property, onTrue, onFalse);
    }
 
    public static <T> SelectItemModel.SwitchCase<T> when(T value, ItemModel.Unbaked model) {
        return new SelectItemModel.SwitchCase<>(List.of(value), model);
    }
 
    public static <T> SelectItemModel.SwitchCase<T> when(List<T> values, ItemModel.Unbaked model) {
        return new SelectItemModel.SwitchCase<>(values, model);
    }
 
    @SafeVarargs
    public static <T> ItemModel.Unbaked select(SelectItemModelProperty<T> property, ItemModel.Unbaked fallback, SelectItemModel.SwitchCase<T>... cases) {
        return select(property, fallback, List.of(cases));
    }
 
    public static <T> ItemModel.Unbaked select(SelectItemModelProperty<T> property, ItemModel.Unbaked fallback, List<SelectItemModel.SwitchCase<T>> cases) {
        return new SelectItemModel.Unbaked(Optional.empty(), new SelectItemModel.UnbakedSwitch<>(property, cases), Optional.of(fallback));
    }
 
    public static <T> ItemModel.Unbaked select(
        Transformation transformation, SelectItemModelProperty<T> property, ItemModel.Unbaked fallback, List<SelectItemModel.SwitchCase<T>> cases
    ) {
        return new SelectItemModel.Unbaked(Optional.of(transformation), new SelectItemModel.UnbakedSwitch<>(property, cases), Optional.of(fallback));
    }
 
    @SafeVarargs
    public static <T> ItemModel.Unbaked select(SelectItemModelProperty<T> property, SelectItemModel.SwitchCase<T>... cases) {
        return select(property, List.of(cases));
    }
 
    public static <T> ItemModel.Unbaked select(SelectItemModelProperty<T> property, List<SelectItemModel.SwitchCase<T>> cases) {
        return new SelectItemModel.Unbaked(Optional.empty(), new SelectItemModel.UnbakedSwitch<>(property, cases), Optional.empty());
    }
 
    public static ConditionalItemModelProperty isUsingItem() {
        return new IsUsingItem();
    }
 
    public static ConditionalItemModelProperty hasComponent(DataComponentType<?> component) {
        return new HasComponent(component, false);
    }
 
    public static ItemModel.Unbaked inOverworld(ItemModel.Unbaked ifTrue, ItemModel.Unbaked ifFalse) {
        return select(new ContextDimension(), ifFalse, when(Level.OVERWORLD, ifTrue));
    }
 
    private static <T extends Comparable<T>> List<SelectItemModel.SwitchCase<String>> createBlockPropertySwitchCases(
        Property<T> property, Map<T, ItemModel.Unbaked> cases
    ) {
        return cases.entrySet().stream().sorted(Entry.comparingByKey()).map(e -> {
            String valueName = property.getName(e.getKey());
            return new SelectItemModel.SwitchCase<>(List.of(valueName), e.getValue());
        }).toList();
    }
 
    public static <T extends Comparable<T>> ItemModel.Unbaked selectBlockItemProperty(
        Property<T> property, ItemModel.Unbaked fallback, Map<T, ItemModel.Unbaked> cases
    ) {
        return select(new ItemBlockState(property.getName()), fallback, createBlockPropertySwitchCases(property, cases));
    }
 
    public static <T extends Comparable<T>> ItemModel.Unbaked selectBlockItemProperty(
        Transformation transformation, Property<T> property, ItemModel.Unbaked fallback, Map<T, ItemModel.Unbaked> cases
    ) {
        return select(transformation, new ItemBlockState(property.getName()), fallback, createBlockPropertySwitchCases(property, cases));
    }
 
    public static ItemModel.Unbaked isXmas(ItemModel.Unbaked onTrue, ItemModel.Unbaked onFalse) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM-dd", Locale.ROOT);
        List<String> days = SpecialDates.CHRISTMAS_RANGE.stream().map(formatter::format).toList();
        return select(LocalTime.create("MM-dd", "", Optional.empty()), onFalse, List.of(when(days, onTrue)));
    }
}

引用的其他类