PackMetadataSection.java

net.minecraft.server.packs.metadata.pack.PackMetadataSection

信息

  • 全限定名:net.minecraft.server.packs.metadata.pack.PackMetadataSection
  • 类型:public record
  • 包:net.minecraft.server.packs.metadata.pack
  • 源码路径:src/main/java/net/minecraft/server/packs/metadata/pack/PackMetadataSection.java
  • 起始行号:L11
  • 职责:

    TODO

字段/常量

  • FALLBACK_CODEC

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

      TODO

  • CLIENT_TYPE

    • 类型: MetadataSectionType<PackMetadataSection>
    • 修饰符: public static final
    • 源码定位: L16
    • 说明:

      TODO

  • SERVER_TYPE

    • 类型: MetadataSectionType<PackMetadataSection>
    • 修饰符: public static final
    • 源码定位: L17
    • 说明:

      TODO

  • FALLBACK_TYPE

    • 类型: MetadataSectionType<PackMetadataSection>
    • 修饰符: public static final
    • 源码定位: L18
    • 说明:

      TODO

内部类/嵌套类型

构造器

方法

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

private static Codec<PackMetadataSection> codecForPackType(PackType packType) @ L20

  • 方法名:codecForPackType
  • 源码定位:L20
  • 返回类型:Codec
  • 修饰符:private static

参数:

  • packType: PackType

说明:

TODO

public static MetadataSectionType<PackMetadataSection> forPackType(PackType packType) @ L30

  • 方法名:forPackType
  • 源码定位:L30
  • 返回类型:MetadataSectionType
  • 修饰符:public static

参数:

  • packType: PackType

说明:

TODO

代码

public record PackMetadataSection(Component description, InclusiveRange<PackFormat> supportedFormats) {
    private static final Codec<PackMetadataSection> FALLBACK_CODEC = RecordCodecBuilder.create(
        i -> i.group(ComponentSerialization.CODEC.fieldOf("description").forGetter(PackMetadataSection::description))
            .apply(i, description -> new PackMetadataSection(description, new InclusiveRange<>(PackFormat.of(Integer.MAX_VALUE))))
    );
    public static final MetadataSectionType<PackMetadataSection> CLIENT_TYPE = new MetadataSectionType<>("pack", codecForPackType(PackType.CLIENT_RESOURCES));
    public static final MetadataSectionType<PackMetadataSection> SERVER_TYPE = new MetadataSectionType<>("pack", codecForPackType(PackType.SERVER_DATA));
    public static final MetadataSectionType<PackMetadataSection> FALLBACK_TYPE = new MetadataSectionType<>("pack", FALLBACK_CODEC);
 
    private static Codec<PackMetadataSection> codecForPackType(PackType packType) {
        return RecordCodecBuilder.create(
            i -> i.group(
                    ComponentSerialization.CODEC.fieldOf("description").forGetter(PackMetadataSection::description),
                    PackFormat.packCodec(packType).forGetter(PackMetadataSection::supportedFormats)
                )
                .apply(i, PackMetadataSection::new)
        );
    }
 
    public static MetadataSectionType<PackMetadataSection> forPackType(PackType packType) {
        return switch (packType) {
            case CLIENT_RESOURCES -> CLIENT_TYPE;
            case SERVER_DATA -> SERVER_TYPE;
        };
    }
}

引用的其他类