diff --git a/src/main/generated/data/minecraft/advancement/nec/got_ak47.json b/src/main/generated/data/minecraft/advancement/nec/got_ak47.json new file mode 100644 index 0000000..a7ead47 --- /dev/null +++ b/src/main/generated/data/minecraft/advancement/nec/got_ak47.json @@ -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 +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/advancement/nec/got_bedrock.json b/src/main/generated/data/minecraft/advancement/nec/got_bedrock.json new file mode 100644 index 0000000..608645e --- /dev/null +++ b/src/main/generated/data/minecraft/advancement/nec/got_bedrock.json @@ -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 +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/advancement/nec/got_dirt_sword.json b/src/main/generated/data/minecraft/advancement/nec/got_dirt_sword.json new file mode 100644 index 0000000..b4fe970 --- /dev/null +++ b/src/main/generated/data/minecraft/advancement/nec/got_dirt_sword.json @@ -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 +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/advancement/nec/got_fletching_stairs.json b/src/main/generated/data/minecraft/advancement/nec/got_fletching_stairs.json new file mode 100644 index 0000000..1c8b7ee --- /dev/null +++ b/src/main/generated/data/minecraft/advancement/nec/got_fletching_stairs.json @@ -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 +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/advancement/nec/got_java_block.json b/src/main/generated/data/minecraft/advancement/nec/got_java_block.json new file mode 100644 index 0000000..5652213 --- /dev/null +++ b/src/main/generated/data/minecraft/advancement/nec/got_java_block.json @@ -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 +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/advancement/nec/got_pocket_block.json b/src/main/generated/data/minecraft/advancement/nec/got_pocket_block.json new file mode 100644 index 0000000..ec280a3 --- /dev/null +++ b/src/main/generated/data/minecraft/advancement/nec/got_pocket_block.json @@ -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 +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/advancement/nec/root.json b/src/main/generated/data/minecraft/advancement/nec/root.json new file mode 100644 index 0000000..c32809b --- /dev/null +++ b/src/main/generated/data/minecraft/advancement/nec/root.json @@ -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 +} \ No newline at end of file diff --git a/src/main/java/me/jonasjones/nec/datagen/NecDataGen.java b/src/main/java/me/jonasjones/nec/datagen/NecDataGen.java new file mode 100644 index 0000000..5374358 --- /dev/null +++ b/src/main/java/me/jonasjones/nec/datagen/NecDataGen.java @@ -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 registryLookup) { + super(output, registryLookup); + } + + @Override + public void generateAdvancement(RegistryWrapper.WrapperLookup registryLookup, Consumer 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"); + } + } +} \ No newline at end of file