mirror of
https://github.com/JonasunderscoreJones/NotEnoughCursedness.git
synced 2025-10-23 12:39: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