ShapedRecipeBuilder.java
net.minecraft.data.recipes.ShapedRecipeBuilder
信息
- 全限定名:net.minecraft.data.recipes.ShapedRecipeBuilder
- 类型:public class
- 包:net.minecraft.data.recipes
- 源码路径:src/main/java/net/minecraft/data/recipes/ShapedRecipeBuilder.java
- 起始行号:L20
- 实现:RecipeBuilder
- 职责:
TODO
字段/常量
-
items- 类型:
HolderGetter<Item> - 修饰符:
private final - 源码定位:
L21 - 说明:
TODO
- 类型:
-
category- 类型:
RecipeCategory - 修饰符:
private final - 源码定位:
L22 - 说明:
TODO
- 类型:
-
result- 类型:
ItemStackTemplate - 修饰符:
private final - 源码定位:
L23 - 说明:
TODO
- 类型:
-
rows- 类型:
List<String> - 修饰符:
private final - 源码定位:
L24 - 说明:
TODO
- 类型:
-
key- 类型:
Map<Character,Ingredient> - 修饰符:
private final - 源码定位:
L25 - 说明:
TODO
- 类型:
-
advancementBuilder- 类型:
RecipeUnlockAdvancementBuilder - 修饰符:
private final - 源码定位:
L26 - 说明:
TODO
- 类型:
-
group- 类型:
String - 修饰符:
private - 源码定位:
L27 - 说明:
TODO
- 类型:
-
showNotification- 类型:
boolean - 修饰符:
private - 源码定位:
L28 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
private ShapedRecipeBuilder(HolderGetter<Item> items, RecipeCategory category, ItemStackTemplate result) @ L30
- 构造器名:ShapedRecipeBuilder
- 源码定位:L30
- 修饰符:private
参数:
- items: HolderGetter
- category: RecipeCategory
- result: ItemStackTemplate
说明:
TODO
private ShapedRecipeBuilder(HolderGetter<Item> items, RecipeCategory category, ItemLike result, int count) @ L36
- 构造器名:ShapedRecipeBuilder
- 源码定位:L36
- 修饰符:private
参数:
- items: HolderGetter
- category: RecipeCategory
- result: ItemLike
- count: int
说明:
TODO
方法
下面的方法块按源码顺序生成。
public static ShapedRecipeBuilder shaped(HolderGetter<Item> items, RecipeCategory category, ItemLike item) @ L40
- 方法名:shaped
- 源码定位:L40
- 返回类型:ShapedRecipeBuilder
- 修饰符:public static
参数:
- items: HolderGetter
- category: RecipeCategory
- item: ItemLike
说明:
TODO
public static ShapedRecipeBuilder shaped(HolderGetter<Item> items, RecipeCategory category, ItemLike item, int count) @ L44
- 方法名:shaped
- 源码定位:L44
- 返回类型:ShapedRecipeBuilder
- 修饰符:public static
参数:
- items: HolderGetter
- category: RecipeCategory
- item: ItemLike
- count: int
说明:
TODO
public ShapedRecipeBuilder define(Character symbol, TagKey<Item> tag) @ L48
- 方法名:define
- 源码定位:L48
- 返回类型:ShapedRecipeBuilder
- 修饰符:public
参数:
- symbol: Character
- tag: TagKey
说明:
TODO
public ShapedRecipeBuilder define(Character symbol, ItemLike item) @ L52
- 方法名:define
- 源码定位:L52
- 返回类型:ShapedRecipeBuilder
- 修饰符:public
参数:
- symbol: Character
- item: ItemLike
说明:
TODO
public ShapedRecipeBuilder define(Character symbol, Ingredient ingredient) @ L56
- 方法名:define
- 源码定位:L56
- 返回类型:ShapedRecipeBuilder
- 修饰符:public
参数:
- symbol: Character
- ingredient: Ingredient
说明:
TODO
public ShapedRecipeBuilder pattern(String row) @ L67
- 方法名:pattern
- 源码定位:L67
- 返回类型:ShapedRecipeBuilder
- 修饰符:public
参数:
- row: String
说明:
TODO
public ShapedRecipeBuilder unlockedBy(String name, Criterion<?> criterion) @ L76
- 方法名:unlockedBy
- 源码定位:L76
- 返回类型:ShapedRecipeBuilder
- 修饰符:public
参数:
- name: String
- criterion: Criterion<?>
说明:
TODO
public ShapedRecipeBuilder group(String group) @ L81
- 方法名:group
- 源码定位:L81
- 返回类型:ShapedRecipeBuilder
- 修饰符:public
参数:
- group: String
说明:
TODO
public ShapedRecipeBuilder showNotification(boolean showNotification) @ L86
- 方法名:showNotification
- 源码定位:L86
- 返回类型:ShapedRecipeBuilder
- 修饰符:public
参数:
- showNotification: boolean
说明:
TODO
public ResourceKey<Recipe<?>> defaultId() @ L91
- 方法名:defaultId
- 源码定位:L91
- 返回类型:ResourceKey<Recipe<?>>
- 修饰符:public
参数:
- 无
说明:
TODO
public void save(RecipeOutput output, ResourceKey<Recipe<?>> id) @ L96
- 方法名:save
- 源码定位:L96
- 返回类型:void
- 修饰符:public
参数:
- output: RecipeOutput
- id: ResourceKey<Recipe<?>>
说明:
TODO
代码
public class ShapedRecipeBuilder implements RecipeBuilder {
private final HolderGetter<Item> items;
private final RecipeCategory category;
private final ItemStackTemplate result;
private final List<String> rows = Lists.newArrayList();
private final Map<Character, Ingredient> key = Maps.newLinkedHashMap();
private final RecipeUnlockAdvancementBuilder advancementBuilder = new RecipeUnlockAdvancementBuilder();
private @Nullable String group;
private boolean showNotification = true;
private ShapedRecipeBuilder(HolderGetter<Item> items, RecipeCategory category, ItemStackTemplate result) {
this.items = items;
this.category = category;
this.result = result;
}
private ShapedRecipeBuilder(HolderGetter<Item> items, RecipeCategory category, ItemLike result, int count) {
this(items, category, new ItemStackTemplate(result.asItem(), count));
}
public static ShapedRecipeBuilder shaped(HolderGetter<Item> items, RecipeCategory category, ItemLike item) {
return shaped(items, category, item, 1);
}
public static ShapedRecipeBuilder shaped(HolderGetter<Item> items, RecipeCategory category, ItemLike item, int count) {
return new ShapedRecipeBuilder(items, category, item, count);
}
public ShapedRecipeBuilder define(Character symbol, TagKey<Item> tag) {
return this.define(symbol, Ingredient.of(this.items.getOrThrow(tag)));
}
public ShapedRecipeBuilder define(Character symbol, ItemLike item) {
return this.define(symbol, Ingredient.of(item));
}
public ShapedRecipeBuilder define(Character symbol, Ingredient ingredient) {
if (this.key.containsKey(symbol)) {
throw new IllegalArgumentException("Symbol '" + symbol + "' is already defined!");
} else if (symbol == ' ') {
throw new IllegalArgumentException("Symbol ' ' (whitespace) is reserved and cannot be defined");
} else {
this.key.put(symbol, ingredient);
return this;
}
}
public ShapedRecipeBuilder pattern(String row) {
if (!this.rows.isEmpty() && row.length() != this.rows.get(0).length()) {
throw new IllegalArgumentException("Pattern must be the same width on every line!");
} else {
this.rows.add(row);
return this;
}
}
public ShapedRecipeBuilder unlockedBy(String name, Criterion<?> criterion) {
this.advancementBuilder.unlockedBy(name, criterion);
return this;
}
public ShapedRecipeBuilder group(@Nullable String group) {
this.group = group;
return this;
}
public ShapedRecipeBuilder showNotification(boolean showNotification) {
this.showNotification = showNotification;
return this;
}
@Override
public ResourceKey<Recipe<?>> defaultId() {
return RecipeBuilder.getDefaultRecipeId(this.result);
}
@Override
public void save(RecipeOutput output, ResourceKey<Recipe<?>> id) {
ShapedRecipePattern pattern = ShapedRecipePattern.of(this.key, this.rows);
ShapedRecipe recipe = new ShapedRecipe(
RecipeBuilder.createCraftingCommonInfo(this.showNotification),
RecipeBuilder.createCraftingBookInfo(this.category, this.group),
pattern,
this.result
);
output.accept(id, recipe, this.advancementBuilder.build(output, id, this.category));
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
实现/方法调用 - 关联成员:
RecipeBuilder.createCraftingBookInfo(), RecipeBuilder.createCraftingCommonInfo(), RecipeBuilder.getDefaultRecipeId()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
RecipeUnlockAdvancementBuilder
- 引用位置:
字段/构造调用 - 关联成员:
RecipeUnlockAdvancementBuilder()
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数/字段/构造调用 - 关联成员:
ItemStackTemplate()
- 引用位置:
-
- 引用位置:
参数/字段/方法调用 - 关联成员:
Ingredient.of()
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
ShapedRecipe()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
ShapedRecipePattern.of()
- 引用位置:
-
- 引用位置:
参数
- 引用位置: