28 lines
1.5 KiB
Java
28 lines
1.5 KiB
Java
package net.minecraft.world.item.equipment.trim;
|
|
|
|
import com.mojang.serialization.Codec;
|
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
|
import net.minecraft.core.Holder;
|
|
import net.minecraft.core.registries.Registries;
|
|
import net.minecraft.network.RegistryFriendlyByteBuf;
|
|
import net.minecraft.network.chat.Component;
|
|
import net.minecraft.network.chat.ComponentSerialization;
|
|
import net.minecraft.network.codec.ByteBufCodecs;
|
|
import net.minecraft.network.codec.StreamCodec;
|
|
import net.minecraft.resources.RegistryFileCodec;
|
|
|
|
public record TrimMaterial(MaterialAssetGroup assets, Component description) {
|
|
public static final Codec<TrimMaterial> DIRECT_CODEC = RecordCodecBuilder.create(
|
|
instance -> instance.group(
|
|
MaterialAssetGroup.MAP_CODEC.forGetter(TrimMaterial::assets), ComponentSerialization.CODEC.fieldOf("description").forGetter(TrimMaterial::description)
|
|
)
|
|
.apply(instance, TrimMaterial::new)
|
|
);
|
|
public static final StreamCodec<RegistryFriendlyByteBuf, TrimMaterial> DIRECT_STREAM_CODEC = StreamCodec.composite(
|
|
MaterialAssetGroup.STREAM_CODEC, TrimMaterial::assets, ComponentSerialization.STREAM_CODEC, TrimMaterial::description, TrimMaterial::new
|
|
);
|
|
public static final Codec<Holder<TrimMaterial>> CODEC = RegistryFileCodec.create(Registries.TRIM_MATERIAL, DIRECT_CODEC);
|
|
public static final StreamCodec<RegistryFriendlyByteBuf, Holder<TrimMaterial>> STREAM_CODEC = ByteBufCodecs.holder(
|
|
Registries.TRIM_MATERIAL, DIRECT_STREAM_CODEC
|
|
);
|
|
}
|