SimpleCookingRecipeBuilder.java

net.minecraft.data.recipes.SimpleCookingRecipeBuilder

信息

  • 全限定名:net.minecraft.data.recipes.SimpleCookingRecipeBuilder
  • 类型:public class
  • 包:net.minecraft.data.recipes
  • 源码路径:src/main/java/net/minecraft/data/recipes/SimpleCookingRecipeBuilder.java
  • 起始行号:L18
  • 实现:RecipeBuilder
  • 职责:

    TODO

字段/常量

  • craftingCategory

    • 类型: RecipeCategory
    • 修饰符: private final
    • 源码定位: L19
    • 说明:

      TODO

  • cookingCategory

    • 类型: CookingBookCategory
    • 修饰符: private final
    • 源码定位: L20
    • 说明:

      TODO

  • result

    • 类型: ItemStackTemplate
    • 修饰符: private final
    • 源码定位: L21
    • 说明:

      TODO

  • ingredient

    • 类型: Ingredient
    • 修饰符: private final
    • 源码定位: L22
    • 说明:

      TODO

  • experience

    • 类型: float
    • 修饰符: private final
    • 源码定位: L23
    • 说明:

      TODO

  • cookingTime

    • 类型: int
    • 修饰符: private final
    • 源码定位: L24
    • 说明:

      TODO

  • advancementBuilder

    • 类型: RecipeUnlockAdvancementBuilder
    • 修饰符: private final
    • 源码定位: L25
    • 说明:

      TODO

  • group

    • 类型: String
    • 修饰符: private
    • 源码定位: L26
    • 说明:

      TODO

  • factory

    • 类型: AbstractCookingRecipe.Factory<?>
    • 修饰符: private final
    • 源码定位: L27
    • 说明:

      TODO

内部类/嵌套类型

构造器

private SimpleCookingRecipeBuilder(RecipeCategory craftingCategory, CookingBookCategory cookingCategory, ItemStackTemplate result, Ingredient ingredient, float experience, int cookingTime, AbstractCookingRecipe.Factory<?> factory) @ L29

  • 构造器名:SimpleCookingRecipeBuilder
  • 源码定位:L29
  • 修饰符:private

参数:

  • craftingCategory: RecipeCategory
  • cookingCategory: CookingBookCategory
  • result: ItemStackTemplate
  • ingredient: Ingredient
  • experience: float
  • cookingTime: int
  • factory: AbstractCookingRecipe.Factory<?>

说明:

TODO

private SimpleCookingRecipeBuilder(RecipeCategory craftingCategory, CookingBookCategory cookingCategory, ItemLike result, Ingredient ingredient, float experience, int cookingTime, AbstractCookingRecipe.Factory<?> factory) @ L47

  • 构造器名:SimpleCookingRecipeBuilder
  • 源码定位:L47
  • 修饰符:private

参数:

  • craftingCategory: RecipeCategory
  • cookingCategory: CookingBookCategory
  • result: ItemLike
  • ingredient: Ingredient
  • experience: float
  • cookingTime: int
  • factory: AbstractCookingRecipe.Factory<?>

说明:

TODO

方法

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

public static <T extends AbstractCookingRecipe> SimpleCookingRecipeBuilder generic(Ingredient ingredient, RecipeCategory craftingCategory, CookingBookCategory cookingCategory, ItemLike result, float experience, int cookingTime, AbstractCookingRecipe.Factory<T> factory) @ L59

  • 方法名:generic
  • 源码定位:L59
  • 返回类型: SimpleCookingRecipeBuilder
  • 修饰符:public static

参数:

  • ingredient: Ingredient
  • craftingCategory: RecipeCategory
  • cookingCategory: CookingBookCategory
  • result: ItemLike
  • experience: float
  • cookingTime: int
  • factory: AbstractCookingRecipe.Factory

说明:

TODO

public static SimpleCookingRecipeBuilder campfireCooking(Ingredient ingredient, RecipeCategory craftingCategory, ItemLike result, float experience, int cookingTime) @ L71

  • 方法名:campfireCooking
  • 源码定位:L71
  • 返回类型:SimpleCookingRecipeBuilder
  • 修饰符:public static

参数:

  • ingredient: Ingredient
  • craftingCategory: RecipeCategory
  • result: ItemLike
  • experience: float
  • cookingTime: int

说明:

TODO

public static SimpleCookingRecipeBuilder blasting(Ingredient ingredient, RecipeCategory craftingCategory, CookingBookCategory cookingCategory, ItemLike result, float experience, int cookingTime) @ L79

  • 方法名:blasting
  • 源码定位:L79
  • 返回类型:SimpleCookingRecipeBuilder
  • 修饰符:public static

参数:

  • ingredient: Ingredient
  • craftingCategory: RecipeCategory
  • cookingCategory: CookingBookCategory
  • result: ItemLike
  • experience: float
  • cookingTime: int

说明:

TODO

public static SimpleCookingRecipeBuilder smelting(Ingredient ingredient, RecipeCategory craftingCategory, CookingBookCategory cookingCategory, ItemLike result, float experience, int cookingTime) @ L85

  • 方法名:smelting
  • 源码定位:L85
  • 返回类型:SimpleCookingRecipeBuilder
  • 修饰符:public static

参数:

  • ingredient: Ingredient
  • craftingCategory: RecipeCategory
  • cookingCategory: CookingBookCategory
  • result: ItemLike
  • experience: float
  • cookingTime: int

说明:

TODO

public static SimpleCookingRecipeBuilder smoking(Ingredient ingredient, RecipeCategory craftingCategory, ItemLike result, float experience, int cookingTime) @ L91

  • 方法名:smoking
  • 源码定位:L91
  • 返回类型:SimpleCookingRecipeBuilder
  • 修饰符:public static

参数:

  • ingredient: Ingredient
  • craftingCategory: RecipeCategory
  • result: ItemLike
  • experience: float
  • cookingTime: int

说明:

TODO

public SimpleCookingRecipeBuilder unlockedBy(String name, Criterion<?> criterion) @ L95

  • 方法名:unlockedBy
  • 源码定位:L95
  • 返回类型:SimpleCookingRecipeBuilder
  • 修饰符:public

参数:

  • name: String
  • criterion: Criterion<?>

说明:

TODO

public SimpleCookingRecipeBuilder group(String group) @ L100

  • 方法名:group
  • 源码定位:L100
  • 返回类型:SimpleCookingRecipeBuilder
  • 修饰符:public

参数:

  • group: String

说明:

TODO

public ResourceKey<Recipe<?>> defaultId() @ L105

  • 方法名:defaultId
  • 源码定位:L105
  • 返回类型:ResourceKey<Recipe<?>>
  • 修饰符:public

参数:

说明:

TODO

public void save(RecipeOutput output, ResourceKey<Recipe<?>> id) @ L110

  • 方法名:save
  • 源码定位:L110
  • 返回类型:void
  • 修饰符:public

参数:

  • output: RecipeOutput
  • id: ResourceKey<Recipe<?>>

说明:

TODO

代码

public class SimpleCookingRecipeBuilder implements RecipeBuilder {
    private final RecipeCategory craftingCategory;
    private final CookingBookCategory cookingCategory;
    private final ItemStackTemplate result;
    private final Ingredient ingredient;
    private final float experience;
    private final int cookingTime;
    private final RecipeUnlockAdvancementBuilder advancementBuilder = new RecipeUnlockAdvancementBuilder();
    private @Nullable String group;
    private final AbstractCookingRecipe.Factory<?> factory;
 
    private SimpleCookingRecipeBuilder(
        RecipeCategory craftingCategory,
        CookingBookCategory cookingCategory,
        ItemStackTemplate result,
        Ingredient ingredient,
        float experience,
        int cookingTime,
        AbstractCookingRecipe.Factory<?> factory
    ) {
        this.craftingCategory = craftingCategory;
        this.cookingCategory = cookingCategory;
        this.result = result;
        this.ingredient = ingredient;
        this.experience = experience;
        this.cookingTime = cookingTime;
        this.factory = factory;
    }
 
    private SimpleCookingRecipeBuilder(
        RecipeCategory craftingCategory,
        CookingBookCategory cookingCategory,
        ItemLike result,
        Ingredient ingredient,
        float experience,
        int cookingTime,
        AbstractCookingRecipe.Factory<?> factory
    ) {
        this(craftingCategory, cookingCategory, new ItemStackTemplate(result.asItem()), ingredient, experience, cookingTime, factory);
    }
 
    public static <T extends AbstractCookingRecipe> SimpleCookingRecipeBuilder generic(
        Ingredient ingredient,
        RecipeCategory craftingCategory,
        CookingBookCategory cookingCategory,
        ItemLike result,
        float experience,
        int cookingTime,
        AbstractCookingRecipe.Factory<T> factory
    ) {
        return new SimpleCookingRecipeBuilder(craftingCategory, cookingCategory, result, ingredient, experience, cookingTime, factory);
    }
 
    public static SimpleCookingRecipeBuilder campfireCooking(
        Ingredient ingredient, RecipeCategory craftingCategory, ItemLike result, float experience, int cookingTime
    ) {
        return new SimpleCookingRecipeBuilder(
            craftingCategory, CookingBookCategory.FOOD, result, ingredient, experience, cookingTime, CampfireCookingRecipe::new
        );
    }
 
    public static SimpleCookingRecipeBuilder blasting(
        Ingredient ingredient, RecipeCategory craftingCategory, CookingBookCategory cookingCategory, ItemLike result, float experience, int cookingTime
    ) {
        return new SimpleCookingRecipeBuilder(craftingCategory, cookingCategory, result, ingredient, experience, cookingTime, BlastingRecipe::new);
    }
 
    public static SimpleCookingRecipeBuilder smelting(
        Ingredient ingredient, RecipeCategory craftingCategory, CookingBookCategory cookingCategory, ItemLike result, float experience, int cookingTime
    ) {
        return new SimpleCookingRecipeBuilder(craftingCategory, cookingCategory, result, ingredient, experience, cookingTime, SmeltingRecipe::new);
    }
 
    public static SimpleCookingRecipeBuilder smoking(Ingredient ingredient, RecipeCategory craftingCategory, ItemLike result, float experience, int cookingTime) {
        return new SimpleCookingRecipeBuilder(craftingCategory, CookingBookCategory.FOOD, result, ingredient, experience, cookingTime, SmokingRecipe::new);
    }
 
    public SimpleCookingRecipeBuilder unlockedBy(String name, Criterion<?> criterion) {
        this.advancementBuilder.unlockedBy(name, criterion);
        return this;
    }
 
    public SimpleCookingRecipeBuilder group(@Nullable String group) {
        this.group = group;
        return this;
    }
 
    @Override
    public ResourceKey<Recipe<?>> defaultId() {
        return RecipeBuilder.getDefaultRecipeId(this.result);
    }
 
    @Override
    public void save(RecipeOutput output, ResourceKey<Recipe<?>> id) {
        AbstractCookingRecipe recipe = this.factory
            .create(
                RecipeBuilder.createCraftingCommonInfo(true),
                new AbstractCookingRecipe.CookingBookInfo(this.cookingCategory, Objects.requireNonNullElse(this.group, "")),
                this.ingredient,
                this.result,
                this.experience,
                this.cookingTime
            );
        output.accept(id, recipe, this.advancementBuilder.build(output, id, this.craftingCategory));
    }
}

引用的其他类