Material.java

net.minecraft.client.resources.model.sprite.Material

信息

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

    TODO

字段/常量

  • SIMPLE_CODEC

    • 类型: Codec<Material>
    • 修饰符: private static final
    • 源码定位: L13
    • 说明:

      TODO

  • FULL_CODEC

    • 类型: Codec<Material>
    • 修饰符: private static final
    • 源码定位: L14
    • 说明:

      TODO

  • CODEC

    • 类型: Codec<Material>
    • 修饰符: public static final
    • 源码定位: L21
    • 说明:

      TODO

内部类/嵌套类型

  • net.minecraft.client.resources.model.sprite.Material.Baked
    • 类型: record
    • 修饰符: public
    • 源码定位: L33
    • 说明:

      TODO

构造器

public Material(Identifier sprite) @ L24

  • 构造器名:Material
  • 源码定位:L24
  • 修饰符:public

参数:

  • sprite: Identifier

说明:

TODO

方法

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

public Material withForceTranslucent(boolean forceTranslucent) @ L28

  • 方法名:withForceTranslucent
  • 源码定位:L28
  • 返回类型:Material
  • 修饰符:public

参数:

  • forceTranslucent: boolean

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public record Material(Identifier sprite, boolean forceTranslucent) {
    private static final Codec<Material> SIMPLE_CODEC = Identifier.CODEC.xmap(Material::new, Material::sprite);
    private static final Codec<Material> FULL_CODEC = RecordCodecBuilder.create(
        i -> i.group(
                Identifier.CODEC.fieldOf("sprite").forGetter(Material::sprite),
                Codec.BOOL.optionalFieldOf("force_translucent", false).forGetter(Material::forceTranslucent)
            )
            .apply(i, Material::new)
    );
    public static final Codec<Material> CODEC = Codec.either(SIMPLE_CODEC, FULL_CODEC)
        .xmap(Either::unwrap, material -> material.forceTranslucent ? Either.right(material) : Either.left(material));
 
    public Material(Identifier sprite) {
        this(sprite, false);
    }
 
    public Material withForceTranslucent(boolean forceTranslucent) {
        return new Material(this.sprite, forceTranslucent);
    }
 
    @OnlyIn(Dist.CLIENT)
    public record Baked(TextureAtlasSprite sprite, boolean forceTranslucent) {
    }
}

引用的其他类