minecraft-src/net/minecraft/client/resources/metadata/animation/VillagerMetaDataSection.java
2025-07-04 03:15:13 +03:00

36 lines
1.3 KiB
Java

package net.minecraft.client.resources.metadata.animation;
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.server.packs.metadata.MetadataSectionType;
import net.minecraft.util.StringRepresentable;
@Environment(EnvType.CLIENT)
public record VillagerMetadataSection(VillagerMetadataSection.Hat hat) {
public static final Codec<VillagerMetadataSection> CODEC = RecordCodecBuilder.create(
instance -> instance.group(VillagerMetadataSection.Hat.CODEC.optionalFieldOf("hat", VillagerMetadataSection.Hat.NONE).forGetter(VillagerMetadataSection::hat))
.apply(instance, VillagerMetadataSection::new)
);
public static final MetadataSectionType<VillagerMetadataSection> TYPE = new MetadataSectionType<>("villager", CODEC);
@Environment(EnvType.CLIENT)
public static enum Hat implements StringRepresentable {
NONE("none"),
PARTIAL("partial"),
FULL("full");
public static final Codec<VillagerMetadataSection.Hat> CODEC = StringRepresentable.fromEnum(VillagerMetadataSection.Hat::values);
private final String name;
private Hat(final String name) {
this.name = name;
}
@Override
public String getSerializedName() {
return this.name;
}
}
}