From b1d919ad2ebf0b176953d57edef8e75835c633e3 Mon Sep 17 00:00:00 2001 From: Maximusbarcz Date: Sat, 24 Dec 2022 14:00:57 +0100 Subject: Last christmas I gave you my commit But the very next day you pushed it This year, to save me from conflicts I'll give it to github directly --- src/main/java/dev/mayaqq/ygasi/Ygasi.java | 13 ++-- src/main/java/dev/mayaqq/ygasi/gui/BranchGui.java | 36 +++++----- src/main/java/dev/mayaqq/ygasi/gui/DruidryGui.java | 3 - .../java/dev/mayaqq/ygasi/gui/MercenaryGui.java | 5 +- .../java/dev/mayaqq/ygasi/items/SkillBookItem.java | 1 - .../ygasi/mixin/AdvancementRewardsMixin.java | 12 ++-- .../ygasi/registry/advancements/Advancements.java | 76 -------------------- .../advancements/dataGen/AdvancementProvider.java | 18 ----- .../advancements/dataGen/DataGenRegistry.java | 11 --- .../ygasi/registry/dataGen/DataGenRegistry.java | 14 ++++ .../dataGen/advancements/AdvancementProvider.java | 18 +++++ .../dataGen/advancements/Advancements.java | 81 ++++++++++++++++++++++ .../registry/dataGen/recipes/YgasiRecipes.java | 28 ++++++++ 13 files changed, 174 insertions(+), 142 deletions(-) delete mode 100644 src/main/java/dev/mayaqq/ygasi/registry/advancements/Advancements.java delete mode 100644 src/main/java/dev/mayaqq/ygasi/registry/advancements/dataGen/AdvancementProvider.java delete mode 100644 src/main/java/dev/mayaqq/ygasi/registry/advancements/dataGen/DataGenRegistry.java create mode 100644 src/main/java/dev/mayaqq/ygasi/registry/dataGen/DataGenRegistry.java create mode 100644 src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/AdvancementProvider.java create mode 100644 src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/Advancements.java create mode 100644 src/main/java/dev/mayaqq/ygasi/registry/dataGen/recipes/YgasiRecipes.java (limited to 'src/main/java/dev') diff --git a/src/main/java/dev/mayaqq/ygasi/Ygasi.java b/src/main/java/dev/mayaqq/ygasi/Ygasi.java index ebfec85..4d13d53 100644 --- a/src/main/java/dev/mayaqq/ygasi/Ygasi.java +++ b/src/main/java/dev/mayaqq/ygasi/Ygasi.java @@ -4,15 +4,16 @@ import dev.mayaqq.ygasi.items.SkillBookItem; import dev.mayaqq.ygasi.registry.CommandRegistry; import dev.mayaqq.ygasi.registry.ConfigRegistry; import dev.mayaqq.ygasi.registry.StatRegistry; +import dev.mayaqq.ygasi.util.GrantAdvancementCriterion; +import eu.pb4.polymer.api.item.PolymerItemGroup; import eu.pb4.polymer.api.resourcepack.PolymerModelData; import eu.pb4.polymer.api.resourcepack.PolymerRPUtils; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents; -import net.fabricmc.fabric.impl.resource.loader.ModResourcePackUtil; import net.minecraft.item.Item; -import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; import org.slf4j.Logger; @@ -21,25 +22,29 @@ import org.slf4j.LoggerFactory; public class Ygasi implements ModInitializer { public static final Logger LOGGER = LoggerFactory.getLogger("ygasi"); - public static final SkillBookItem SKILL_BOOK = new SkillBookItem(new Item.Settings().group(ItemGroup.MISC).maxCount(1), Items.BOOK); + public static final PolymerItemGroup YGASI_GROUP = PolymerItemGroup.create(new Identifier("ygasi"), Text.translatable("creative.ygasi.group"), () -> new ItemStack(Items.BOOK)); + + public static final SkillBookItem SKILL_BOOK = new SkillBookItem(new Item.Settings().group(YGASI_GROUP).maxCount(1), Items.BOOK); @Override public void onInitialize() { StatRegistry.skillRegister(); CommandRegistry.RegisterCommands(); ConfigRegistry.load(); - LOGGER.info("You've got a skill issue!"); PolymerRPUtils.addAssetSource("ygasi"); PolymerModelData modelData = PolymerRPUtils.requestModel(Items.BOOK, new Identifier("ygasi", "item/skill_book")); Registry.register(Registry.ITEM, "ygasi:skill_book", SKILL_BOOK); + LOGGER.info("You've got a skill issue!"); + if (ConfigRegistry.CONFIG.enableSkillBook) { ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> { if (!handler.player.getScoreboardTags().contains("ygasi:skill_book_unlocked")) { handler.player.addScoreboardTag("ygasi:skill_book_unlocked"); handler.player.getInventory().offerOrDrop(new ItemStack(SKILL_BOOK)); + GrantAdvancementCriterion.grantAdvancementCriterion(handler.player, new Identifier("ygasi", "skill_book"), "opened_skill_menu"); } }); } diff --git a/src/main/java/dev/mayaqq/ygasi/gui/BranchGui.java b/src/main/java/dev/mayaqq/ygasi/gui/BranchGui.java index 535d37e..ca02eec 100644 --- a/src/main/java/dev/mayaqq/ygasi/gui/BranchGui.java +++ b/src/main/java/dev/mayaqq/ygasi/gui/BranchGui.java @@ -3,14 +3,11 @@ package dev.mayaqq.ygasi.gui; import dev.mayaqq.ygasi.util.GetAdvancementProgress; import dev.mayaqq.ygasi.util.GrantAdvancementCriterion; import eu.pb4.sgui.api.elements.*; -import eu.pb4.sgui.api.gui.SimpleGui; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.screen.ScreenHandlerType; import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; import net.minecraft.stat.Stats; import net.minecraft.text.Style; import net.minecraft.text.Text; @@ -23,37 +20,40 @@ import net.minecraft.util.Identifier; public class BranchGui { public static void gui(ServerPlayerEntity player) { + int skillPoints = player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS)); + try { SkillGui gui = new SkillGui(ScreenHandlerType.GENERIC_9X3, player, false) {}; - gui.setTitle(Text.of("§3Skill Points: " + player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS)))); + gui.setTitle(Text.of("§3Skill Points: " + skillPoints)); //background items - for (int x = 0; x <= 17; x++) { + for (int x = 0; x <= 26; x++) { gui.setSlot(x, new GuiElementBuilder() .setItem(Items.GRAY_STAINED_GLASS_PANE) .setName(Text.of(" ")) ); } - for (int x = 18; x <= 26; x++) { + for (int x = 10; x <= 16; x++) { gui.setSlot(x, new GuiElementBuilder() - .setItem(Items.RED_STAINED_GLASS_PANE) + .setItem(Items.LIGHT_BLUE_STAINED_GLASS_PANE) .setName(Text.of(" ")) ); } - - //close button - gui.setSlot(22, new GuiElementBuilder() - .setItem(Items.BARRIER) - .setName(Text.literal("Close") - .setStyle(Style.EMPTY.withBold(true).withFormatting(Formatting.DARK_RED))) - .setCallback((index, clickType, actionType) -> close(player)) - ); + for (int x = 0; x <= 2; x++) { + for (int y = 2; y <= 6; y+=2) { + gui.setSlot(x * 9 + y, new GuiElementBuilder() + .setItem(Items.LIGHT_BLUE_STAINED_GLASS_PANE) + .setName(Text.of(" ")) + ); + } + } //branch items if (!GetAdvancementProgress.get(player, "mercenary")) { gui.setSlot(11, new GuiElementBuilder() .setItem(Items.IRON_SWORD) + .setCustomModelData(1) .hideFlag(ItemStack.TooltipSection.MODIFIERS) .addLoreLine(Text.literal("Cost: " + ConfigRegistry.CONFIG.branchCost).setStyle(Style.EMPTY.withFormatting(Formatting.DARK_GRAY))) .setName(Text.literal("Mercenary") @@ -130,12 +130,8 @@ public class BranchGui { } } else { - player.sendMessage(Text.literal("You don't have enough skill points to unlock this branch!").setStyle(Style.EMPTY.withBold(true).withFormatting(Formatting.RED)), false); + player.sendMessage(Text.translatable("gui.ygasi.no.skill").setStyle(Style.EMPTY.withBold(true).withFormatting(Formatting.RED)), false); player.closeHandledScreen(); } } - public static void close(ServerPlayerEntity player) { - player.playSound(SoundEvents.ITEM_BOOK_PAGE_TURN, SoundCategory.PLAYERS, 1.0F, 1.0F); - player.closeHandledScreen(); - } } \ No newline at end of file diff --git a/src/main/java/dev/mayaqq/ygasi/gui/DruidryGui.java b/src/main/java/dev/mayaqq/ygasi/gui/DruidryGui.java index 2b865f2..d2be67e 100644 --- a/src/main/java/dev/mayaqq/ygasi/gui/DruidryGui.java +++ b/src/main/java/dev/mayaqq/ygasi/gui/DruidryGui.java @@ -2,12 +2,9 @@ package dev.mayaqq.ygasi.gui; import dev.mayaqq.ygasi.util.GetAdvancementProgress; import eu.pb4.sgui.api.elements.GuiElementBuilder; -import eu.pb4.sgui.api.gui.SimpleGui; import net.minecraft.item.Items; import net.minecraft.screen.ScreenHandlerType; import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; import net.minecraft.stat.Stats; import net.minecraft.text.Text; diff --git a/src/main/java/dev/mayaqq/ygasi/gui/MercenaryGui.java b/src/main/java/dev/mayaqq/ygasi/gui/MercenaryGui.java index c3e89b1..ea75c43 100644 --- a/src/main/java/dev/mayaqq/ygasi/gui/MercenaryGui.java +++ b/src/main/java/dev/mayaqq/ygasi/gui/MercenaryGui.java @@ -2,12 +2,9 @@ package dev.mayaqq.ygasi.gui; import dev.mayaqq.ygasi.util.GetAdvancementProgress; import eu.pb4.sgui.api.elements.GuiElementBuilder; -import eu.pb4.sgui.api.gui.SimpleGui; import net.minecraft.item.Items; import net.minecraft.screen.ScreenHandlerType; import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; import net.minecraft.stat.Stats; import net.minecraft.text.Text; @@ -30,6 +27,8 @@ public class MercenaryGui { .setName(Text.of(" ")) ); } + + gui.open(); } } catch (Exception e) { diff --git a/src/main/java/dev/mayaqq/ygasi/items/SkillBookItem.java b/src/main/java/dev/mayaqq/ygasi/items/SkillBookItem.java index ce4143f..c96de2a 100644 --- a/src/main/java/dev/mayaqq/ygasi/items/SkillBookItem.java +++ b/src/main/java/dev/mayaqq/ygasi/items/SkillBookItem.java @@ -29,7 +29,6 @@ public class SkillBookItem extends SimplePolymerItem { public ItemStack getPolymerItemStack(ItemStack itemStack, ServerPlayerEntity player) { ItemStack out = PolymerItemUtils.createItemStack(itemStack, player); out.addEnchantment(Enchantments.LURE, 0); - out.setCustomName(Text.translatable("item.ygasi.skill_book").formatted(Formatting.GOLD).formatted(Formatting.BOLD)); return out; } diff --git a/src/main/java/dev/mayaqq/ygasi/mixin/AdvancementRewardsMixin.java b/src/main/java/dev/mayaqq/ygasi/mixin/AdvancementRewardsMixin.java index a2c1330..58e8353 100644 --- a/src/main/java/dev/mayaqq/ygasi/mixin/AdvancementRewardsMixin.java +++ b/src/main/java/dev/mayaqq/ygasi/mixin/AdvancementRewardsMixin.java @@ -1,11 +1,7 @@ package dev.mayaqq.ygasi.mixin; import dev.mayaqq.ygasi.registry.ConfigRegistry; -import net.minecraft.advancement.Advancement; -import net.minecraft.advancement.AdvancementDisplay; -import net.minecraft.advancement.AdvancementFrame; import net.minecraft.advancement.AdvancementRewards; -import net.minecraft.server.ServerAdvancementLoader; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.util.Identifier; import org.spongepowered.asm.mixin.Final; @@ -20,12 +16,16 @@ import static dev.mayaqq.ygasi.registry.StatRegistry.SKILL_POINTS; @Mixin(AdvancementRewards.class) public class AdvancementRewardsMixin { + @Shadow @Final private Identifier[] recipes; + @Shadow @Final private int experience; @Inject(method = "apply", at = @At("HEAD")) - private void inject(ServerPlayerEntity player, CallbackInfo ci) { - if (recipes.length == 0) { + private void apply(ServerPlayerEntity player, CallbackInfo ci) { + if (recipes.length == 0 && experience != 1) { player.increaseStat(SKILL_POINTS, ConfigRegistry.CONFIG.pointsRewarded); + } else if (experience == 1) { + player.addExperience(-1); } } } diff --git a/src/main/java/dev/mayaqq/ygasi/registry/advancements/Advancements.java b/src/main/java/dev/mayaqq/ygasi/registry/advancements/Advancements.java deleted file mode 100644 index ac33abe..0000000 --- a/src/main/java/dev/mayaqq/ygasi/registry/advancements/Advancements.java +++ /dev/null @@ -1,76 +0,0 @@ -package dev.mayaqq.ygasi.registry.advancements; - -import de.dafuqs.revelationary.advancement_criteria.AdvancementGottenCriterion; -import net.minecraft.advancement.Advancement; -import net.minecraft.advancement.AdvancementFrame; -import net.minecraft.advancement.criterion.ImpossibleCriterion; -import net.minecraft.item.Items; -import net.minecraft.predicate.entity.EntityPredicate; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; - -import java.util.function.Consumer; - -public class Advancements implements Consumer> { - - @Override - public void accept(Consumer consumer) { - Advancement rootAdvancement = Advancement.Builder.create() - .display( - Items.DIAMOND, // The display icon - Text.literal("You've got a skill issue!"), // The title - Text.literal("The journey begins here!"), // The description - new Identifier("textures/block/sculk_catalyst_top.png"), // Background image used - AdvancementFrame.CHALLENGE, // Options: TASK, CHALLENGE, GOAL - true, // 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("opened_skill_menu", new ImpossibleCriterion.Conditions()) - .build(consumer, "ygasi" + "/root"); - - Advancement mercenary = Advancement.Builder.create().parent(rootAdvancement) - .display( - Items.IRON_SWORD, - Text.literal("Mercenary"), - Text.literal("Unlock the mercenary branch!"), - null, - AdvancementFrame.GOAL, - false, - false, - false - ) - .criterion("unlocked_mercenary", new ImpossibleCriterion.Conditions()) - .criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, rootAdvancement.getId())) - .build(consumer, "ygasi" + "/mercenary"); - Advancement wizardry = Advancement.Builder.create().parent(rootAdvancement) - .display( - Items.BLAZE_ROD, - Text.literal("Wizardry"), - Text.literal("Unlock the wizardry branch!"), - null, - AdvancementFrame.GOAL, - false, - false, - false - ) - .criterion("unlocked_wizardry", new ImpossibleCriterion.Conditions()) - .criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, rootAdvancement.getId())) - .build(consumer, "ygasi" + "/wizardry"); - Advancement druidry = Advancement.Builder.create().parent(rootAdvancement) - .display( - Items.OAK_SAPLING, - Text.literal("Druidry"), - Text.literal("Unlock the druidry branch!"), - null, - AdvancementFrame.GOAL, - false, - false, - false - ) - .criterion("unlocked_druidry", new ImpossibleCriterion.Conditions()) - .criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, rootAdvancement.getId())) - .build(consumer, "ygasi" + "/druidry"); - } -} \ No newline at end of file diff --git a/src/main/java/dev/mayaqq/ygasi/registry/advancements/dataGen/AdvancementProvider.java b/src/main/java/dev/mayaqq/ygasi/registry/advancements/dataGen/AdvancementProvider.java deleted file mode 100644 index a9b1a64..0000000 --- a/src/main/java/dev/mayaqq/ygasi/registry/advancements/dataGen/AdvancementProvider.java +++ /dev/null @@ -1,18 +0,0 @@ -package dev.mayaqq.ygasi.registry.advancements.dataGen; - -import dev.mayaqq.ygasi.registry.advancements.Advancements; -import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricAdvancementProvider; -import net.minecraft.advancement.Advancement; - -import java.util.function.Consumer; - -public class AdvancementProvider extends FabricAdvancementProvider { - protected AdvancementProvider(FabricDataGenerator dataGenerator) { - super(dataGenerator); - } - @Override - public void generateAdvancement(Consumer consumer) { - new Advancements().accept(consumer); - } -} diff --git a/src/main/java/dev/mayaqq/ygasi/registry/advancements/dataGen/DataGenRegistry.java b/src/main/java/dev/mayaqq/ygasi/registry/advancements/dataGen/DataGenRegistry.java deleted file mode 100644 index 9bba67d..0000000 --- a/src/main/java/dev/mayaqq/ygasi/registry/advancements/dataGen/DataGenRegistry.java +++ /dev/null @@ -1,11 +0,0 @@ -package dev.mayaqq.ygasi.registry.advancements.dataGen; - -import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; -import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; - -public class DataGenRegistry implements DataGeneratorEntrypoint { - @Override - public void onInitializeDataGenerator(FabricDataGenerator dataGenerator) { - dataGenerator.addProvider(AdvancementProvider::new); - } -} diff --git a/src/main/java/dev/mayaqq/ygasi/registry/dataGen/DataGenRegistry.java b/src/main/java/dev/mayaqq/ygasi/registry/dataGen/DataGenRegistry.java new file mode 100644 index 0000000..8cd9b6e --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/registry/dataGen/DataGenRegistry.java @@ -0,0 +1,14 @@ +package dev.mayaqq.ygasi.registry.dataGen; + +import dev.mayaqq.ygasi.registry.dataGen.advancements.AdvancementProvider; +import dev.mayaqq.ygasi.registry.dataGen.recipes.YgasiRecipes; +import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; + +public class DataGenRegistry implements DataGeneratorEntrypoint { + @Override + public void onInitializeDataGenerator(FabricDataGenerator dataGenerator) { + dataGenerator.addProvider(AdvancementProvider::new); + dataGenerator.addProvider(YgasiRecipes::new); + } +} diff --git a/src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/AdvancementProvider.java b/src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/AdvancementProvider.java new file mode 100644 index 0000000..6a91296 --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/AdvancementProvider.java @@ -0,0 +1,18 @@ +package dev.mayaqq.ygasi.registry.dataGen.advancements; + +import dev.mayaqq.ygasi.registry.dataGen.advancements.Advancements; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricAdvancementProvider; +import net.minecraft.advancement.Advancement; + +import java.util.function.Consumer; + +public class AdvancementProvider extends FabricAdvancementProvider { + public AdvancementProvider(FabricDataGenerator dataGenerator) { + super(dataGenerator); + } + @Override + public void generateAdvancement(Consumer consumer) { + new Advancements().accept(consumer); + } +} diff --git a/src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/Advancements.java b/src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/Advancements.java new file mode 100644 index 0000000..6cd5665 --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/Advancements.java @@ -0,0 +1,81 @@ +package dev.mayaqq.ygasi.registry.dataGen.advancements; + +import de.dafuqs.revelationary.advancement_criteria.AdvancementGottenCriterion; +import net.minecraft.advancement.Advancement; +import net.minecraft.advancement.AdvancementFrame; +import net.minecraft.advancement.AdvancementRewards; +import net.minecraft.advancement.criterion.ImpossibleCriterion; +import net.minecraft.item.Items; +import net.minecraft.predicate.entity.EntityPredicate; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; + +import java.util.function.Consumer; + +public class Advancements implements Consumer> { + + @Override + public void accept(Consumer consumer) { + Advancement rootAdvancement = Advancement.Builder.create() + .display( + Items.DIAMOND, // The display icon + Text.literal("You've got a skill issue!"), // The title + Text.literal("The journey begins here!"), // The description + new Identifier("textures/block/sculk_catalyst_top.png"), // Background image used + AdvancementFrame.CHALLENGE, // Options: TASK, CHALLENGE, GOAL + true, // 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("opened_skill_menu", new ImpossibleCriterion.Conditions()) + .rewards(AdvancementRewards.Builder.experience(1)) + .build(consumer, "ygasi" + "/root"); + + Advancement mercenary = Advancement.Builder.create().parent(rootAdvancement) + .display( + Items.IRON_SWORD, + Text.literal("Mercenary"), + Text.literal("Unlock the mercenary branch!"), + null, + AdvancementFrame.GOAL, + false, + false, + false + ) + .criterion("unlocked_mercenary", new ImpossibleCriterion.Conditions()) + .criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, rootAdvancement.getId())) + .rewards(AdvancementRewards.Builder.experience(1)) + .build(consumer, "ygasi" + "/mercenary"); + Advancement wizardry = Advancement.Builder.create().parent(rootAdvancement) + .display( + Items.BLAZE_ROD, + Text.literal("Wizardry"), + Text.literal("Unlock the wizardry branch!"), + null, + AdvancementFrame.GOAL, + false, + false, + false + ) + .criterion("unlocked_wizardry", new ImpossibleCriterion.Conditions()) + .criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, rootAdvancement.getId())) + .rewards(AdvancementRewards.Builder.experience(1)) + .build(consumer, "ygasi" + "/wizardry"); + Advancement druidry = Advancement.Builder.create().parent(rootAdvancement) + .display( + Items.OAK_SAPLING, + Text.literal("Druidry"), + Text.literal("Unlock the druidry branch!"), + null, + AdvancementFrame.GOAL, + false, + false, + false + ) + .criterion("unlocked_druidry", new ImpossibleCriterion.Conditions()) + .criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, rootAdvancement.getId())) + .rewards(AdvancementRewards.Builder.experience(1)) + .build(consumer, "ygasi" + "/druidry"); + } +} \ No newline at end of file diff --git a/src/main/java/dev/mayaqq/ygasi/registry/dataGen/recipes/YgasiRecipes.java b/src/main/java/dev/mayaqq/ygasi/registry/dataGen/recipes/YgasiRecipes.java new file mode 100644 index 0000000..75afdfe --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/registry/dataGen/recipes/YgasiRecipes.java @@ -0,0 +1,28 @@ +package dev.mayaqq.ygasi.registry.dataGen.recipes; + +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; +import net.minecraft.advancement.criterion.ImpossibleCriterion; +import net.minecraft.data.server.recipe.RecipeJsonProvider; +import net.minecraft.data.server.recipe.ShapelessRecipeJsonBuilder; +import net.minecraft.item.Items; +import net.minecraft.tag.ItemTags; + +import java.util.function.Consumer; + +import static dev.mayaqq.ygasi.Ygasi.SKILL_BOOK; + +public class YgasiRecipes extends FabricRecipeProvider { + public YgasiRecipes(FabricDataGenerator dataGenerator) { + super(dataGenerator); + } + + @Override + public void generateRecipes(Consumer exporter) { + ShapelessRecipeJsonBuilder.create(SKILL_BOOK) + .criterion("has_book", new ImpossibleCriterion.Conditions()) + .input(Items.BOOK) + .input(ItemTags.SAPLINGS) + .offerTo(exporter); + } +} \ No newline at end of file -- cgit