mirror of
https://github.com/JonasunderscoreJones/NotEnoughCursedness.git
synced 2025-10-23 04:29:19 +02:00
new datagen system for advancements
This commit is contained in:
parent
6a655d7012
commit
ef2c5ae188
8 changed files with 375 additions and 0 deletions
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:nec/root",
|
||||||
|
"criteria": {
|
||||||
|
"got_ak47": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "nec:ak_47"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "advancements.nec.ak_47.description"
|
||||||
|
},
|
||||||
|
"hidden": true,
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "nec:ak_47"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "advancements.nec.ak_47.title"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"got_ak47"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:nec/got_java_block",
|
||||||
|
"criteria": {
|
||||||
|
"got_bedrock": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "minecraft:bedrock"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "advancements.story.bedrock.description"
|
||||||
|
},
|
||||||
|
"frame": "challenge",
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "minecraft:bedrock"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "advancements.story.bedrock.title"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"got_bedrock"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:nec/root",
|
||||||
|
"criteria": {
|
||||||
|
"got_dirt_sword": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "nec:dirt_sword"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "advancements.nec.dirt_sword.description"
|
||||||
|
},
|
||||||
|
"hidden": true,
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "nec:dirt_sword"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "advancements.nec.dirt_sword.title"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"got_dirt_sword"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"rewards": {
|
||||||
|
"experience": 1000
|
||||||
|
},
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:nec/root",
|
||||||
|
"criteria": {
|
||||||
|
"got_fletching_stairs": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "nec:fletching_stairs"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "advancements.nec.fletching_stairs.description"
|
||||||
|
},
|
||||||
|
"hidden": true,
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "nec:fletching_stairs"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "advancements.nec.fletching_stairs.title"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"got_fletching_stairs"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:nec/got_pocket_block",
|
||||||
|
"criteria": {
|
||||||
|
"got_java_block": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "nec:java_block"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "advancements.nec.java_block.description"
|
||||||
|
},
|
||||||
|
"hidden": true,
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "nec:java_block"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "advancements.nec.java_block.title"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"got_java_block"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:nec/root",
|
||||||
|
"criteria": {
|
||||||
|
"got_pocket_block": {
|
||||||
|
"conditions": {
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"items": "nec:pocket_block"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:inventory_changed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"description": {
|
||||||
|
"translate": "advancements.nec.pocket_block.description"
|
||||||
|
},
|
||||||
|
"hidden": true,
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "nec:pocket_block"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"translate": "advancements.nec.pocket_block.title"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"got_pocket_block"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
27
src/main/generated/data/minecraft/advancement/nec/root.json
Normal file
27
src/main/generated/data/minecraft/advancement/nec/root.json
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{
|
||||||
|
"criteria": {
|
||||||
|
"nec_root": {
|
||||||
|
"trigger": "minecraft:tick"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"announce_to_chat": false,
|
||||||
|
"description": {
|
||||||
|
"translate": "advancements.nec.root.description"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "minecraft:dirt"
|
||||||
|
},
|
||||||
|
"show_toast": false,
|
||||||
|
"title": {
|
||||||
|
"translate": "advancements.nec.root.title"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"nec_root"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
141
src/main/java/me/jonasjones/nec/datagen/NecDataGen.java
Normal file
141
src/main/java/me/jonasjones/nec/datagen/NecDataGen.java
Normal file
|
@ -0,0 +1,141 @@
|
||||||
|
package me.jonasjones.nec.datagen;
|
||||||
|
|
||||||
|
import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint;
|
||||||
|
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator;
|
||||||
|
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
|
||||||
|
import net.fabricmc.fabric.api.datagen.v1.provider.FabricAdvancementProvider;
|
||||||
|
import net.minecraft.advancement.*;
|
||||||
|
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
import net.minecraft.advancement.criterion.AbstractCriterion;
|
||||||
|
import net.minecraft.advancement.criterion.ConsumeItemCriterion;
|
||||||
|
import net.minecraft.advancement.criterion.InventoryChangedCriterion;
|
||||||
|
import net.minecraft.advancement.criterion.TickCriterion;
|
||||||
|
import net.minecraft.item.Items;
|
||||||
|
import net.minecraft.registry.RegistryWrapper;
|
||||||
|
import net.minecraft.text.Text;
|
||||||
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
|
import static me.jonasjones.nec.block.ModBlocks.*;
|
||||||
|
import static me.jonasjones.nec.item.ModItems.AK47_ITEM;
|
||||||
|
import static me.jonasjones.nec.item.ModItems.DIRT_SWORD_ITEM;
|
||||||
|
|
||||||
|
public class NecDataGen implements DataGeneratorEntrypoint {
|
||||||
|
@Override
|
||||||
|
public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) {
|
||||||
|
FabricDataGenerator.Pack pack = fabricDataGenerator.createPack();
|
||||||
|
|
||||||
|
pack.addProvider(AdvancementsProvider::new);
|
||||||
|
}
|
||||||
|
|
||||||
|
static class AdvancementsProvider extends FabricAdvancementProvider {
|
||||||
|
protected AdvancementsProvider(FabricDataOutput output, CompletableFuture<RegistryWrapper.WrapperLookup> registryLookup) {
|
||||||
|
super(output, registryLookup);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void generateAdvancement(RegistryWrapper.WrapperLookup registryLookup, Consumer<AdvancementEntry> consumer) {
|
||||||
|
AdvancementEntry rootAdvancement = Advancement.Builder.create()
|
||||||
|
.display(
|
||||||
|
Items.DIRT, // The display icon
|
||||||
|
Text.translatable("advancements.nec.root.title"), // The title
|
||||||
|
Text.translatable("advancements.nec.root.description"), // The description//new Identifier("textures/gui/advancements/backgrounds/adventure.png","textures/gui/advancements/backgrounds/adventure.png"), // Background image used
|
||||||
|
null,
|
||||||
|
AdvancementFrame.TASK, // Options: TASK, CHALLENGE, GOAL
|
||||||
|
false, // Show toast top right
|
||||||
|
false, // Announce to chat
|
||||||
|
false // Hidden in the advancement tab
|
||||||
|
)
|
||||||
|
// The first string used in criterion is the name referenced by other advancements when they want to have 'requirements'
|
||||||
|
.criterion("nec_root", TickCriterion.Conditions.createTick())
|
||||||
|
.build(consumer, "nec" + "/root");
|
||||||
|
|
||||||
|
AdvancementEntry gotDirtSwordAdvancement = Advancement.Builder.create().parent(rootAdvancement)
|
||||||
|
.display(
|
||||||
|
DIRT_SWORD_ITEM,
|
||||||
|
Text.translatable("advancements.nec.dirt_sword.title"),
|
||||||
|
Text.translatable("advancements.nec.dirt_sword.description"),
|
||||||
|
null, // children to parent advancements don't need a background set
|
||||||
|
AdvancementFrame.TASK,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
true
|
||||||
|
)
|
||||||
|
.rewards(AdvancementRewards.Builder.experience(1000))
|
||||||
|
.criterion("got_dirt_sword", InventoryChangedCriterion.Conditions.items(DIRT_SWORD_ITEM))
|
||||||
|
.build(consumer, "nec" + "/got_dirt_sword");
|
||||||
|
|
||||||
|
AdvancementEntry gotAK47Advancement = Advancement.Builder.create().parent(rootAdvancement)
|
||||||
|
.display(
|
||||||
|
AK47_ITEM,
|
||||||
|
Text.translatable("advancements.nec.ak_47.title"),
|
||||||
|
Text.translatable("advancements.nec.ak_47.description"),
|
||||||
|
null, // children to parent advancements don't need a background set
|
||||||
|
AdvancementFrame.TASK,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
true
|
||||||
|
)
|
||||||
|
.criterion("got_ak47", InventoryChangedCriterion.Conditions.items(AK47_ITEM))
|
||||||
|
.build(consumer, "nec" + "/got_ak47");
|
||||||
|
|
||||||
|
AdvancementEntry gotPocketBlockAdvancement = Advancement.Builder.create().parent(rootAdvancement)
|
||||||
|
.display(
|
||||||
|
POCKET_BLOCK_ITEM,
|
||||||
|
Text.translatable("advancements.nec.pocket_block.title"),
|
||||||
|
Text.translatable("advancements.nec.pocket_block.description"),
|
||||||
|
null, // children to parent advancements don't need a background set
|
||||||
|
AdvancementFrame.TASK,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
true
|
||||||
|
)
|
||||||
|
.criterion("got_pocket_block", InventoryChangedCriterion.Conditions.items(POCKET_BLOCK_ITEM))
|
||||||
|
.build(consumer, "nec" + "/got_pocket_block");
|
||||||
|
|
||||||
|
AdvancementEntry gotJavaBlockAdvancement = Advancement.Builder.create().parent(gotPocketBlockAdvancement)
|
||||||
|
.display(
|
||||||
|
JAVA_BLOCK,
|
||||||
|
Text.translatable("advancements.nec.java_block.title"),
|
||||||
|
Text.translatable("advancements.nec.java_block.description"),
|
||||||
|
null, // children to parent advancements don't need a background set
|
||||||
|
AdvancementFrame.TASK,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
true
|
||||||
|
)
|
||||||
|
.criterion("got_java_block", InventoryChangedCriterion.Conditions.items(JAVA_BLOCK))
|
||||||
|
.build(consumer, "nec" + "/got_java_block");
|
||||||
|
|
||||||
|
AdvancementEntry gotBedrockAdvancement = Advancement.Builder.create().parent(gotJavaBlockAdvancement)
|
||||||
|
.display(
|
||||||
|
Items.BEDROCK,
|
||||||
|
Text.translatable("advancements.story.bedrock.title"),
|
||||||
|
Text.translatable("advancements.story.bedrock.description"),
|
||||||
|
null,
|
||||||
|
AdvancementFrame.CHALLENGE,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
false
|
||||||
|
)
|
||||||
|
.criterion("got_bedrock", InventoryChangedCriterion.Conditions.items(Items.BEDROCK))
|
||||||
|
.build(consumer, "nec" + "/got_bedrock");
|
||||||
|
|
||||||
|
AdvancementEntry gotFletchingStairsAdvancement = Advancement.Builder.create().parent(rootAdvancement)
|
||||||
|
.display(
|
||||||
|
FLETCHING_STAIRS_TIEM,
|
||||||
|
Text.translatable("advancements.nec.fletching_stairs.title"),
|
||||||
|
Text.translatable("advancements.nec.fletching_stairs.description"),
|
||||||
|
null, // children to parent advancements don't need a background set
|
||||||
|
AdvancementFrame.TASK,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
true
|
||||||
|
)
|
||||||
|
.criterion("got_fletching_stairs", InventoryChangedCriterion.Conditions.items(FLETCHING_STAIRS_TIEM))
|
||||||
|
.build(consumer, "nec" + "/got_fletching_stairs");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue