minecraft-src/net/minecraft/world/item/crafting/display/RecipeDisplay.java
2025-07-04 02:00:41 +03:00

29 lines
1.2 KiB
Java

package net.minecraft.world.item.crafting.display;
import com.mojang.serialization.Codec;
import com.mojang.serialization.MapCodec;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.RegistryFriendlyByteBuf;
import net.minecraft.network.codec.ByteBufCodecs;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.world.flag.FeatureFlagSet;
public interface RecipeDisplay {
Codec<RecipeDisplay> CODEC = BuiltInRegistries.RECIPE_DISPLAY.byNameCodec().dispatch(RecipeDisplay::type, RecipeDisplay.Type::codec);
StreamCodec<RegistryFriendlyByteBuf, RecipeDisplay> STREAM_CODEC = ByteBufCodecs.registry(Registries.RECIPE_DISPLAY)
.dispatch(RecipeDisplay::type, RecipeDisplay.Type::streamCodec);
SlotDisplay result();
SlotDisplay craftingStation();
RecipeDisplay.Type<? extends RecipeDisplay> type();
default boolean isEnabled(FeatureFlagSet featureFlagSet) {
return this.result().isEnabled(featureFlagSet) && this.craftingStation().isEnabled(featureFlagSet);
}
public record Type<T extends RecipeDisplay>(MapCodec<T> codec, StreamCodec<RegistryFriendlyByteBuf, T> streamCodec) {
}
}