SpecialRecipeBuilder.java

net.minecraft.data.recipes.SpecialRecipeBuilder

信息

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

    TODO

字段/常量

  • advancementBuilder

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

      TODO

  • factory

    • 类型: Supplier<Recipe<?>>
    • 修饰符: private final
    • 源码定位: L14
    • 说明:

      TODO

内部类/嵌套类型

构造器

public SpecialRecipeBuilder(Supplier<Recipe<?>> factory) @ L16

  • 构造器名:SpecialRecipeBuilder
  • 源码定位:L16
  • 修饰符:public

参数:

  • factory: Supplier<Recipe<?>>

说明:

TODO

方法

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

public static SpecialRecipeBuilder special(Supplier<Recipe<?>> factory) @ L20

  • 方法名:special
  • 源码定位:L20
  • 返回类型:SpecialRecipeBuilder
  • 修饰符:public static

参数:

  • factory: Supplier<Recipe<?>>

说明:

TODO

public SpecialRecipeBuilder unlockedBy(String name, Criterion<?> criterion) @ L24

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

参数:

  • name: String
  • criterion: Criterion<?>

说明:

TODO

public void save(RecipeOutput output, String name) @ L33

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

参数:

  • output: RecipeOutput
  • name: String

说明:

TODO

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

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

参数:

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

说明:

TODO

代码

public class SpecialRecipeBuilder {
    private @Nullable RecipeUnlockAdvancementBuilder advancementBuilder;
    private final Supplier<Recipe<?>> factory;
 
    public SpecialRecipeBuilder(Supplier<Recipe<?>> factory) {
        this.factory = factory;
    }
 
    public static SpecialRecipeBuilder special(Supplier<Recipe<?>> factory) {
        return new SpecialRecipeBuilder(factory);
    }
 
    public SpecialRecipeBuilder unlockedBy(String name, Criterion<?> criterion) {
        if (this.advancementBuilder == null) {
            this.advancementBuilder = new RecipeUnlockAdvancementBuilder();
        }
 
        this.advancementBuilder.unlockedBy(name, criterion);
        return this;
    }
 
    public void save(RecipeOutput output, String name) {
        this.save(output, ResourceKey.create(Registries.RECIPE, Identifier.parse(name)));
    }
 
    public void save(RecipeOutput output, ResourceKey<Recipe<?>> id) {
        AdvancementHolder advancement;
        if (this.advancementBuilder != null) {
            advancement = this.advancementBuilder.build(output, id, RecipeCategory.MISC);
        } else {
            advancement = null;
        }
 
        output.accept(id, this.factory.get(), advancement);
    }
}

引用的其他类