VanillaTheEndAdvancements.java
net.minecraft.data.advancements.packs.VanillaTheEndAdvancements
信息
- 全限定名:net.minecraft.data.advancements.packs.VanillaTheEndAdvancements
- 类型:public class
- 包:net.minecraft.data.advancements.packs
- 源码路径:src/main/java/net/minecraft/data/advancements/packs/VanillaTheEndAdvancements.java
- 起始行号:L31
- 实现:AdvancementSubProvider
- 职责:
TODO
字段/常量
- 无
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public void generate(HolderLookup.Provider registries, Consumer<AdvancementHolder> output) @ L32
- 方法名:generate
- 源码定位:L32
- 返回类型:void
- 修饰符:public
参数:
- registries: HolderLookup.Provider
- output: Consumer
说明:
TODO
代码
public class VanillaTheEndAdvancements implements AdvancementSubProvider {
@Override
public void generate(HolderLookup.Provider registries, Consumer<AdvancementHolder> output) {
HolderGetter<EntityType<?>> entityTypes = registries.lookupOrThrow(Registries.ENTITY_TYPE);
AdvancementHolder root = Advancement.Builder.advancement()
.display(
Blocks.END_STONE,
Component.translatable("advancements.end.root.title"),
Component.translatable("advancements.end.root.description"),
Identifier.withDefaultNamespace("gui/advancements/backgrounds/end"),
AdvancementType.TASK,
false,
false,
false
)
.addCriterion("entered_end", ChangeDimensionTrigger.TriggerInstance.changedDimensionTo(Level.END))
.save(output, "end/root");
AdvancementHolder killDragon = Advancement.Builder.advancement()
.parent(root)
.display(
Blocks.DRAGON_HEAD,
Component.translatable("advancements.end.kill_dragon.title"),
Component.translatable("advancements.end.kill_dragon.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion(
"killed_dragon", KilledTrigger.TriggerInstance.playerKilledEntity(EntityPredicate.Builder.entity().of(entityTypes, EntityType.ENDER_DRAGON))
)
.save(output, "end/kill_dragon");
AdvancementHolder enterEndGateway = Advancement.Builder.advancement()
.parent(killDragon)
.display(
Items.ENDER_PEARL,
Component.translatable("advancements.end.enter_end_gateway.title"),
Component.translatable("advancements.end.enter_end_gateway.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion("entered_end_gateway", EnterBlockTrigger.TriggerInstance.entersBlock(Blocks.END_GATEWAY))
.save(output, "end/enter_end_gateway");
Advancement.Builder.advancement()
.parent(killDragon)
.display(
Items.END_CRYSTAL,
Component.translatable("advancements.end.respawn_dragon.title"),
Component.translatable("advancements.end.respawn_dragon.description"),
null,
AdvancementType.GOAL,
true,
true,
false
)
.addCriterion(
"summoned_dragon",
SummonedEntityTrigger.TriggerInstance.summonedEntity(EntityPredicate.Builder.entity().of(entityTypes, EntityType.ENDER_DRAGON))
)
.save(output, "end/respawn_dragon");
AdvancementHolder findEndCity = Advancement.Builder.advancement()
.parent(enterEndGateway)
.display(
Blocks.PURPUR_BLOCK,
Component.translatable("advancements.end.find_end_city.title"),
Component.translatable("advancements.end.find_end_city.description"),
null,
AdvancementType.TASK,
true,
true,
false
)
.addCriterion(
"in_city",
PlayerTrigger.TriggerInstance.located(
LocationPredicate.Builder.inStructure(registries.lookupOrThrow(Registries.STRUCTURE).getOrThrow(BuiltinStructures.END_CITY))
)
)
.save(output, "end/find_end_city");
Advancement.Builder.advancement()
.parent(killDragon)
.display(
Items.DRAGON_BREATH,
Component.translatable("advancements.end.dragon_breath.title"),
Component.translatable("advancements.end.dragon_breath.description"),
null,
AdvancementType.GOAL,
true,
true,
false
)
.addCriterion("dragon_breath", InventoryChangeTrigger.TriggerInstance.hasItems(Items.DRAGON_BREATH))
.save(output, "end/dragon_breath");
Advancement.Builder.advancement()
.parent(findEndCity)
.display(
Items.SHULKER_SHELL,
Component.translatable("advancements.end.levitate.title"),
Component.translatable("advancements.end.levitate.description"),
null,
AdvancementType.CHALLENGE,
true,
true,
false
)
.rewards(AdvancementRewards.Builder.experience(50))
.addCriterion("levitated", LevitationTrigger.TriggerInstance.levitated(DistancePredicate.vertical(MinMaxBounds.Doubles.atLeast(50.0))))
.save(output, "end/levitate");
Advancement.Builder.advancement()
.parent(findEndCity)
.display(
Items.ELYTRA,
Component.translatable("advancements.end.elytra.title"),
Component.translatable("advancements.end.elytra.description"),
null,
AdvancementType.GOAL,
true,
true,
false
)
.addCriterion("elytra", InventoryChangeTrigger.TriggerInstance.hasItems(Items.ELYTRA))
.save(output, "end/elytra");
Advancement.Builder.advancement()
.parent(killDragon)
.display(
Blocks.DRAGON_EGG,
Component.translatable("advancements.end.dragon_egg.title"),
Component.translatable("advancements.end.dragon_egg.description"),
null,
AdvancementType.GOAL,
true,
true,
false
)
.addCriterion("dragon_egg", InventoryChangeTrigger.TriggerInstance.hasItems(Blocks.DRAGON_EGG))
.save(output, "end/dragon_egg");
}
}引用的其他类
-
- 引用位置:
方法调用 - 关联成员:
Advancement.Builder.advancement()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
AdvancementRewards.Builder.experience()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
ChangeDimensionTrigger.TriggerInstance.changedDimensionTo()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
DistancePredicate.vertical()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
EnterBlockTrigger.TriggerInstance.entersBlock()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
EntityPredicate.Builder.entity()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
InventoryChangeTrigger.TriggerInstance.hasItems()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
KilledTrigger.TriggerInstance.playerKilledEntity()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
LevitationTrigger.TriggerInstance.levitated()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
LocationPredicate.Builder.inStructure()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
MinMaxBounds.Doubles.atLeast()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
PlayerTrigger.TriggerInstance.located()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
SummonedEntityTrigger.TriggerInstance.summonedEntity()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
实现
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Component.translatable()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Identifier.withDefaultNamespace()
- 引用位置: