RecipeUnlockAdvancementBuilder.java
net.minecraft.data.recipes.RecipeUnlockAdvancementBuilder
信息
- 全限定名:net.minecraft.data.recipes.RecipeUnlockAdvancementBuilder
- 类型:public class
- 包:net.minecraft.data.recipes
- 源码路径:src/main/java/net/minecraft/data/recipes/RecipeUnlockAdvancementBuilder.java
- 起始行号:L14
- 职责:
TODO
字段/常量
criteria- 类型:
Map<String,Criterion<?>> - 修饰符:
private final - 源码定位:
L15 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public void unlockedBy(String name, Criterion<?> criterion) @ L17
- 方法名:unlockedBy
- 源码定位:L17
- 返回类型:void
- 修饰符:public
参数:
- name: String
- criterion: Criterion<?>
说明:
TODO
public AdvancementHolder build(RecipeOutput output, ResourceKey<Recipe<?>> id, RecipeCategory category) @ L21
- 方法名:build
- 源码定位:L21
- 返回类型:AdvancementHolder
- 修饰符:public
参数:
- output: RecipeOutput
- id: ResourceKey<Recipe<?>>
- category: RecipeCategory
说明:
TODO
代码
public class RecipeUnlockAdvancementBuilder {
private final Map<String, Criterion<?>> criteria = new LinkedHashMap<>();
public void unlockedBy(String name, Criterion<?> criterion) {
this.criteria.put(name, criterion);
}
public AdvancementHolder build(RecipeOutput output, ResourceKey<Recipe<?>> id, RecipeCategory category) {
if (this.criteria.isEmpty()) {
throw new IllegalStateException("No way of obtaining recipe " + id.identifier());
} else {
Advancement.Builder advancement = output.advancement()
.addCriterion("has_the_recipe", RecipeUnlockedTrigger.unlocked(id))
.rewards(AdvancementRewards.Builder.recipe(id))
.requirements(AdvancementRequirements.Strategy.OR);
this.criteria.forEach(advancement::addCriterion);
return advancement.build(id.identifier().withPrefix("recipes/" + category.getFolderName() + "/"));
}
}
}引用的其他类
-
- 引用位置:
返回值
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
AdvancementRewards.Builder.recipe()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
RecipeUnlockedTrigger.unlocked()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置: