ItemTransforms.java

net.minecraft.client.resources.model.cuboid.ItemTransforms

信息

  • 全限定名:net.minecraft.client.resources.model.cuboid.ItemTransforms
  • 类型:public record
  • 包:net.minecraft.client.resources.model.cuboid
  • 源码路径:src/main/java/net/minecraft/client/resources/model/cuboid/ItemTransforms.java
  • 起始行号:L14
  • 职责:

    TODO

字段/常量

  • NO_TRANSFORMS
    • 类型: ItemTransforms
    • 修饰符: public static final
    • 源码定位: L25
    • 说明:

      TODO

内部类/嵌套类型

  • net.minecraft.client.resources.model.cuboid.ItemTransforms.Deserializer
    • 类型: class
    • 修饰符: protected static
    • 源码定位: L53
    • 说明:

      TODO

构造器

方法

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

public ItemTransform getTransform(ItemDisplayContext type) @ L37

  • 方法名:getTransform
  • 源码定位:L37
  • 返回类型:ItemTransform
  • 修饰符:public

参数:

  • type: ItemDisplayContext

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public record ItemTransforms(
    ItemTransform thirdPersonLeftHand,
    ItemTransform thirdPersonRightHand,
    ItemTransform firstPersonLeftHand,
    ItemTransform firstPersonRightHand,
    ItemTransform head,
    ItemTransform gui,
    ItemTransform ground,
    ItemTransform fixed,
    ItemTransform fixedFromBottom
) {
    public static final ItemTransforms NO_TRANSFORMS = new ItemTransforms(
        ItemTransform.NO_TRANSFORM,
        ItemTransform.NO_TRANSFORM,
        ItemTransform.NO_TRANSFORM,
        ItemTransform.NO_TRANSFORM,
        ItemTransform.NO_TRANSFORM,
        ItemTransform.NO_TRANSFORM,
        ItemTransform.NO_TRANSFORM,
        ItemTransform.NO_TRANSFORM,
        ItemTransform.NO_TRANSFORM
    );
 
    public ItemTransform getTransform(ItemDisplayContext type) {
        return switch (type) {
            case THIRD_PERSON_LEFT_HAND -> this.thirdPersonLeftHand;
            case THIRD_PERSON_RIGHT_HAND -> this.thirdPersonRightHand;
            case FIRST_PERSON_LEFT_HAND -> this.firstPersonLeftHand;
            case FIRST_PERSON_RIGHT_HAND -> this.firstPersonRightHand;
            case HEAD -> this.head;
            case GUI -> this.gui;
            case GROUND -> this.ground;
            case FIXED -> this.fixed;
            case ON_SHELF -> this.fixedFromBottom;
            default -> ItemTransform.NO_TRANSFORM;
        };
    }
 
    @OnlyIn(Dist.CLIENT)
    protected static class Deserializer implements JsonDeserializer<ItemTransforms> {
        public ItemTransforms deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
            JsonObject object = json.getAsJsonObject();
            ItemTransform thirdPersonRightHand = this.getTransform(context, object, ItemDisplayContext.THIRD_PERSON_RIGHT_HAND);
            ItemTransform thirdPersonLeftHand = this.getTransform(context, object, ItemDisplayContext.THIRD_PERSON_LEFT_HAND);
            if (thirdPersonLeftHand == ItemTransform.NO_TRANSFORM) {
                thirdPersonLeftHand = thirdPersonRightHand;
            }
 
            ItemTransform firstPersonRightHand = this.getTransform(context, object, ItemDisplayContext.FIRST_PERSON_RIGHT_HAND);
            ItemTransform firstPersonLeftHand = this.getTransform(context, object, ItemDisplayContext.FIRST_PERSON_LEFT_HAND);
            if (firstPersonLeftHand == ItemTransform.NO_TRANSFORM) {
                firstPersonLeftHand = firstPersonRightHand;
            }
 
            ItemTransform head = this.getTransform(context, object, ItemDisplayContext.HEAD);
            ItemTransform gui = this.getTransform(context, object, ItemDisplayContext.GUI);
            ItemTransform ground = this.getTransform(context, object, ItemDisplayContext.GROUND);
            ItemTransform fixed = this.getTransform(context, object, ItemDisplayContext.FIXED);
            ItemTransform fixedFromBottom = this.getTransform(context, object, ItemDisplayContext.ON_SHELF);
            return new ItemTransforms(
                thirdPersonLeftHand, thirdPersonRightHand, firstPersonLeftHand, firstPersonRightHand, head, gui, ground, fixed, fixedFromBottom
            );
        }
 
        private ItemTransform getTransform(JsonDeserializationContext context, JsonObject object, ItemDisplayContext transform) {
            String name = transform.getSerializedName();
            return object.has(name) ? context.deserialize(object.get(name), ItemTransform.class) : ItemTransform.NO_TRANSFORM;
        }
    }
}

引用的其他类