RecipeBuilder.java

net.minecraft.data.recipes.RecipeBuilder

信息

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

    TODO

字段/常量

  • ROOT_RECIPE_ADVANCEMENT
    • 类型: Identifier
    • 修饰符: package-private
    • 源码定位: L15
    • 说明:

      TODO

内部类/嵌套类型

构造器

方法

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

RecipeBuilder unlockedBy(String name, Criterion<?> criterion) @ L17

  • 方法名:unlockedBy
  • 源码定位:L17
  • 返回类型:RecipeBuilder
  • 修饰符:package-private

参数:

  • name: String
  • criterion: Criterion<?>

说明:

TODO

RecipeBuilder group(String group) @ L19

  • 方法名:group
  • 源码定位:L19
  • 返回类型:RecipeBuilder
  • 修饰符:package-private

参数:

  • group: String

说明:

TODO

ResourceKey<Recipe<?>> defaultId() @ L21

  • 方法名:defaultId
  • 源码定位:L21
  • 返回类型:ResourceKey<Recipe<?>>
  • 修饰符:package-private

参数:

说明:

TODO

void save(RecipeOutput output, ResourceKey<Recipe<?>> location) @ L23

  • 方法名:save
  • 源码定位:L23
  • 返回类型:void
  • 修饰符:package-private

参数:

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

说明:

TODO

default void save(RecipeOutput output) @ L25

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

参数:

  • output: RecipeOutput

说明:

TODO

default void save(RecipeOutput output, String id) @ L29

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

参数:

  • output: RecipeOutput
  • id: String

说明:

TODO

static CraftingBookCategory determineCraftingBookCategory(RecipeCategory category) @ L39

  • 方法名:determineCraftingBookCategory
  • 源码定位:L39
  • 返回类型:CraftingBookCategory
  • 修饰符:static

参数:

  • category: RecipeCategory

说明:

TODO

static Recipe.CommonInfo createCraftingCommonInfo(boolean showNotification) @ L48

  • 方法名:createCraftingCommonInfo
  • 源码定位:L48
  • 返回类型:Recipe.CommonInfo
  • 修饰符:static

参数:

  • showNotification: boolean

说明:

TODO

static CraftingRecipe.CraftingBookInfo createCraftingBookInfo(RecipeCategory category, String group) @ L52

  • 方法名:createCraftingBookInfo
  • 源码定位:L52
  • 返回类型:CraftingRecipe.CraftingBookInfo
  • 修饰符:static

参数:

  • category: RecipeCategory
  • group: String

说明:

TODO

static ResourceKey<Recipe<?>> getDefaultRecipeId(ItemInstance result) @ L56

  • 方法名:getDefaultRecipeId
  • 源码定位:L56
  • 返回类型:ResourceKey<Recipe<?>>
  • 修饰符:static

参数:

  • result: ItemInstance

说明:

TODO

代码

public interface RecipeBuilder {
    Identifier ROOT_RECIPE_ADVANCEMENT = Identifier.withDefaultNamespace("recipes/root");
 
    RecipeBuilder unlockedBy(String name, Criterion<?> criterion);
 
    RecipeBuilder group(@Nullable String group);
 
    ResourceKey<Recipe<?>> defaultId();
 
    void save(RecipeOutput output, ResourceKey<Recipe<?>> location);
 
    default void save(RecipeOutput output) {
        this.save(output, this.defaultId());
    }
 
    default void save(RecipeOutput output, String id) {
        ResourceKey<Recipe<?>> defaultKey = this.defaultId();
        ResourceKey<Recipe<?>> overriddenKey = ResourceKey.create(Registries.RECIPE, Identifier.parse(id));
        if (overriddenKey == defaultKey) {
            throw new IllegalStateException("Recipe " + id + " should remove its 'save' argument as it is equal to default one");
        } else {
            this.save(output, overriddenKey);
        }
    }
 
    static CraftingBookCategory determineCraftingBookCategory(RecipeCategory category) {
        return switch (category) {
            case BUILDING_BLOCKS -> CraftingBookCategory.BUILDING;
            case TOOLS, COMBAT -> CraftingBookCategory.EQUIPMENT;
            case REDSTONE -> CraftingBookCategory.REDSTONE;
            default -> CraftingBookCategory.MISC;
        };
    }
 
    static Recipe.CommonInfo createCraftingCommonInfo(boolean showNotification) {
        return new Recipe.CommonInfo(showNotification);
    }
 
    static CraftingRecipe.CraftingBookInfo createCraftingBookInfo(RecipeCategory category, @Nullable String group) {
        return new CraftingRecipe.CraftingBookInfo(determineCraftingBookCategory(category), Objects.requireNonNullElse(group, ""));
    }
 
    static ResourceKey<Recipe<?>> getDefaultRecipeId(ItemInstance result) {
        return ResourceKey.create(Registries.RECIPE, result.typeHolder().unwrapKey().orElseThrow().identifier());
    }
}

引用的其他类

  • Criterion

    • 引用位置: 参数
  • RecipeCategory

    • 引用位置: 参数
  • RecipeOutput

    • 引用位置: 参数
  • Identifier

    • 引用位置: 字段/方法调用
    • 关联成员: Identifier.parse(), Identifier.withDefaultNamespace()
  • ResourceKey

    • 引用位置: 参数/方法调用/返回值
    • 关联成员: ResourceKey.create()
  • ItemInstance

    • 引用位置: 参数
  • CraftingBookCategory

    • 引用位置: 返回值
  • CraftingRecipe

    • 引用位置: 方法调用/构造调用/返回值
    • 关联成员: CraftingBookInfo(), CraftingRecipe.CraftingBookInfo()
  • Recipe

    • 引用位置: 参数/方法调用/构造调用/返回值
    • 关联成员: CommonInfo(), Recipe.CommonInfo()