Spaces:
Build error
Build error
File size: 2,100 Bytes
d46f4a3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
package net.minecraft.data.recipes;
import javax.annotation.Nullable;
import net.minecraft.advancements.Criterion;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.crafting.CraftingBookCategory;
import net.minecraft.world.item.crafting.Recipe;
import net.minecraft.world.level.ItemLike;
public interface RecipeBuilder {
ResourceLocation ROOT_RECIPE_ADVANCEMENT = ResourceLocation.withDefaultNamespace("recipes/root");
RecipeBuilder unlockedBy(String p_176496_, Criterion<?> p_297505_);
RecipeBuilder group(@Nullable String p_176495_);
Item getResult();
void save(RecipeOutput p_298791_, ResourceKey<Recipe<?>> p_370102_);
default void save(RecipeOutput p_298540_) {
this.save(p_298540_, ResourceKey.create(Registries.RECIPE, getDefaultRecipeId(this.getResult())));
}
default void save(RecipeOutput p_300884_, String p_176502_) {
ResourceLocation resourcelocation = getDefaultRecipeId(this.getResult());
ResourceLocation resourcelocation1 = ResourceLocation.parse(p_176502_);
if (resourcelocation1.equals(resourcelocation)) {
throw new IllegalStateException("Recipe " + p_176502_ + " should remove its 'save' argument as it is equal to default one");
} else {
this.save(p_300884_, ResourceKey.create(Registries.RECIPE, resourcelocation1));
}
}
static ResourceLocation getDefaultRecipeId(ItemLike p_176494_) {
return BuiltInRegistries.ITEM.getKey(p_176494_.asItem());
}
static CraftingBookCategory determineBookCategory(RecipeCategory p_313042_) {
return switch (p_313042_) {
case BUILDING_BLOCKS -> CraftingBookCategory.BUILDING;
case TOOLS, COMBAT -> CraftingBookCategory.EQUIPMENT;
case REDSTONE -> CraftingBookCategory.REDSTONE;
default -> CraftingBookCategory.MISC;
};
}
} |