From 0e3a9612578a88af2d5703c8cf26918204f90f35 Mon Sep 17 00:00:00 2001 From: Mrbysco Date: Thu, 17 Oct 2024 00:54:39 +0200 Subject: [PATCH] Re-enable Patchouli support --- .../cd090bff9ca93079474b6df48215a8307e531e73 | 8 ++ .../en_us/categories/getting_started.json | 5 + .../booklet/en_us/entries/crystals.json | 101 ++++++++++++++ .../booklet/en_us/entries/engineer_house.json | 18 +++ .../booklet/en_us/entries/guide.json | 27 ++++ .../booklet/en_us/entries/intro.json | 23 ++++ .../booklet/en_us/entries/tutorial.json | 25 ++++ .../patchouli_books/booklet/book.json | 21 +++ .../data/ActuallyAdditionsData.java | 3 +- .../data/patchouli/PachouliGenerator.java | 125 ----------------- .../data/patchouli/PatchouliGenerator.java | 128 ++++++++++++++++++ 11 files changed, 358 insertions(+), 126 deletions(-) create mode 100644 src/generated/resources/.cache/cd090bff9ca93079474b6df48215a8307e531e73 create mode 100644 src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/categories/getting_started.json create mode 100644 src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/crystals.json create mode 100644 src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/engineer_house.json create mode 100644 src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/guide.json create mode 100644 src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/intro.json create mode 100644 src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/tutorial.json create mode 100644 src/generated/resources/data/actuallyadditions/patchouli_books/booklet/book.json delete mode 100644 src/main/java/de/ellpeck/actuallyadditions/data/patchouli/PachouliGenerator.java create mode 100644 src/main/java/de/ellpeck/actuallyadditions/data/patchouli/PatchouliGenerator.java diff --git a/src/generated/resources/.cache/cd090bff9ca93079474b6df48215a8307e531e73 b/src/generated/resources/.cache/cd090bff9ca93079474b6df48215a8307e531e73 new file mode 100644 index 000000000..daf57adf7 --- /dev/null +++ b/src/generated/resources/.cache/cd090bff9ca93079474b6df48215a8307e531e73 @@ -0,0 +1,8 @@ +// 1.21.1 2024-10-17T00:54:11.5444321 Patchouli Book Provider +25f9d206f1f0397918f65634d57f658516f3c952 assets/actuallyadditions/patchouli_books/booklet/en_us/categories/getting_started.json +7023c70c30600d465a96b315b2b7954eedad337d assets/actuallyadditions/patchouli_books/booklet/en_us/entries/crystals.json +cb103625b78fcc79697bdc00459a21cacf0c940a assets/actuallyadditions/patchouli_books/booklet/en_us/entries/engineer_house.json +88df6be8c958d5e89673e9eefcf73315d50bda9f assets/actuallyadditions/patchouli_books/booklet/en_us/entries/guide.json +2709d2e5c13efa327c5ee6c18fe10e377d49abe3 assets/actuallyadditions/patchouli_books/booklet/en_us/entries/intro.json +78d1f1a0d393feaf903c84d11ac2749d17779217 assets/actuallyadditions/patchouli_books/booklet/en_us/entries/tutorial.json +10146f4dd5bab35ef00a724fab1f3762e5f7c2b9 data/actuallyadditions/patchouli_books/booklet/book.json diff --git a/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/categories/getting_started.json b/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/categories/getting_started.json new file mode 100644 index 000000000..baf54c032 --- /dev/null +++ b/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/categories/getting_started.json @@ -0,0 +1,5 @@ +{ + "description": "", + "icon": "actuallyadditions:booklet", + "name": "booklet.actuallyadditions.indexEntry.getting_started" +} \ No newline at end of file diff --git a/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/crystals.json b/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/crystals.json new file mode 100644 index 000000000..5985c7ccc --- /dev/null +++ b/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/crystals.json @@ -0,0 +1,101 @@ +{ + "category": "actuallyadditions:getting_started", + "icon": "actuallyadditions:booklet", + "name": "booklet.actuallyadditions.chapter.crystals", + "pages": [ + { + "type": "patchouli:text", + "text": "booklet.actuallyadditions.chapter.crystals.text.1" + }, + { + "type": "patchouli:text", + "text": "booklet.actuallyadditions.chapter.crystals.text.2" + }, + { + "type": "patchouli:text", + "text": "booklet.actuallyadditions.chapter.crystals.text.3" + }, + { + "type": "patchouli:image", + "border": false, + "images": [ + "actuallyadditions:textures/gui/booklet/page_atomic_reconstructor.png" + ] + }, + { + "type": "patchouli:text", + "text": "booklet.actuallyadditions.chapter.crystals.text.5" + }, + { + "type": "patchouli:crafting", + "recipe": "actuallyadditions:atomic_reconstructor", + "text": "booklet.actuallyadditions.chapter.crystals.text.6" + }, + { + "type": "actuallyadditions:reconstructor", + "recipe": "actuallyadditions:laser/crystalize_restonia_crystal_block", + "recipe2": "actuallyadditions:laser/crystalize_restonia_crystal", + "text": "booklet.actuallyadditions.reconstructor_recipe" + }, + { + "type": "actuallyadditions:reconstructor", + "recipe": "actuallyadditions:laser/crystalize_palis_crystal_block", + "recipe2": "actuallyadditions:laser/crystalize_palis_crystal", + "text": "booklet.actuallyadditions.reconstructor_recipe" + }, + { + "type": "actuallyadditions:reconstructor", + "recipe": "actuallyadditions:laser/crystalize_diamatine_crystal_block", + "recipe2": "actuallyadditions:laser/crystalize_diamatine_crystal", + "text": "booklet.actuallyadditions.reconstructor_recipe" + }, + { + "type": "actuallyadditions:reconstructor", + "recipe": "actuallyadditions:laser/crystalize_void_crystal_block", + "recipe2": "actuallyadditions:laser/crystalize_void_crystal", + "text": "booklet.actuallyadditions.reconstructor_recipe" + }, + { + "type": "actuallyadditions:reconstructor", + "recipe": "actuallyadditions:laser/crystalize_emeradic_crystal_block", + "recipe2": "actuallyadditions:laser/crystalize_emeradic_crystal", + "text": "booklet.actuallyadditions.reconstructor_recipe" + }, + { + "type": "actuallyadditions:reconstructor", + "recipe": "actuallyadditions:laser/crystalize_enori_crystal_block", + "recipe2": "actuallyadditions:laser/crystalize_enori_crystal", + "text": "booklet.actuallyadditions.reconstructor_recipe" + }, + { + "type": "patchouli:crafting", + "recipe": "actuallyadditions:decompress/restonia_crystal", + "recipe2": "actuallyadditions:compress/restonia_crystal_block" + }, + { + "type": "patchouli:crafting", + "recipe": "actuallyadditions:decompress/palis_crystal", + "recipe2": "actuallyadditions:compress/palis_crystal_block" + }, + { + "type": "patchouli:crafting", + "recipe": "actuallyadditions:decompress/diamatine_crystal", + "recipe2": "actuallyadditions:compress/diamatine_crystal_block" + }, + { + "type": "patchouli:crafting", + "recipe": "actuallyadditions:decompress/void_crystal", + "recipe2": "actuallyadditions:compress/void_crystal_block" + }, + { + "type": "patchouli:crafting", + "recipe": "actuallyadditions:decompress/emeradic_crystal", + "recipe2": "actuallyadditions:compress/emeradic_crystal_block" + }, + { + "type": "patchouli:crafting", + "recipe": "actuallyadditions:decompress/enori_crystal", + "recipe2": "actuallyadditions:compress/enori_crystal_block" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/engineer_house.json b/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/engineer_house.json new file mode 100644 index 000000000..d3b745120 --- /dev/null +++ b/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/engineer_house.json @@ -0,0 +1,18 @@ +{ + "category": "actuallyadditions:getting_started", + "icon": "actuallyadditions:booklet", + "name": "booklet.actuallyadditions.chapter.engineer_house", + "pages": [ + { + "type": "patchouli:text", + "text": "booklet.actuallyadditions.chapter.engineer_house.text.1" + }, + { + "type": "patchouli:image", + "images": [ + "actuallyadditions:textures/gui/booklet/page_engineer_house.png" + ], + "text": "booklet.actuallyadditions.chapter.engineer_house.text.2" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/guide.json b/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/guide.json new file mode 100644 index 000000000..bcb917f32 --- /dev/null +++ b/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/guide.json @@ -0,0 +1,27 @@ +{ + "category": "actuallyadditions:getting_started", + "icon": "actuallyadditions:textures/item/youtube.png", + "name": "booklet.actuallyadditions.chapter.video_guide", + "pages": [ + { + "type": "patchouli:link", + "link_text": "booklet.actuallyadditions.chapter.video_guide.booty.button", + "text": "booklet.actuallyadditions.chapter.video_guide.booty.text.1", + "url": "https://www.youtube.com/watch?v=fhjz0Ew56pM" + }, + { + "type": "patchouli:text", + "text": "booklet.actuallyadditions.chapter.video_guide.booty.text.2" + }, + { + "type": "patchouli:link", + "link_text": "booklet.actuallyadditions.chapter.video_guide.booty.button", + "text": "booklet.actuallyadditions.chapter.video_guide.dire.text.1", + "url": "https://www.youtube.com/playlist?list=PLJeFZ64pT89MrTRZYzD_rtHFajPVlt6cF" + }, + { + "type": "patchouli:text", + "text": "booklet.actuallyadditions.chapter.video_guide.dire.text.2" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/intro.json b/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/intro.json new file mode 100644 index 000000000..c9eb4f94c --- /dev/null +++ b/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/intro.json @@ -0,0 +1,23 @@ +{ + "category": "actuallyadditions:getting_started", + "icon": "actuallyadditions:booklet", + "name": "booklet.actuallyadditions.chapter.intro", + "pages": [ + { + "type": "patchouli:text", + "text": "booklet.actuallyadditions.chapter.intro.text.1" + }, + { + "type": "patchouli:text", + "text": "booklet.actuallyadditions.chapter.intro.text.2" + }, + { + "type": "patchouli:text", + "text": "booklet.actuallyadditions.chapter.intro.text.3" + }, + { + "type": "patchouli:text", + "text": "booklet.actuallyadditions.chapter.intro.text.4" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/tutorial.json b/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/tutorial.json new file mode 100644 index 000000000..60a812c1f --- /dev/null +++ b/src/generated/resources/assets/actuallyadditions/patchouli_books/booklet/en_us/entries/tutorial.json @@ -0,0 +1,25 @@ +{ + "category": "actuallyadditions:getting_started", + "icon": "actuallyadditions:booklet", + "name": "booklet.actuallyadditions.chapter.book_tutorial", + "pages": [ + { + "type": "patchouli:text", + "text": "booklet.actuallyadditions.chapter.book_tutorial.text.1" + }, + { + "type": "patchouli:text", + "text": "booklet.actuallyadditions.chapter.book_tutorial.text.2" + }, + { + "type": "patchouli:text", + "text": "booklet.actuallyadditions.chapter.book_tutorial.text.3" + }, + { + "type": "patchouli:crafting", + "recipe": "actuallyadditions:booklet", + "text": "booklet.actuallyadditions.shapeless_recipe", + "title": "" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/actuallyadditions/patchouli_books/booklet/book.json b/src/generated/resources/data/actuallyadditions/patchouli_books/booklet/book.json new file mode 100644 index 000000000..5cbe778f8 --- /dev/null +++ b/src/generated/resources/data/actuallyadditions/patchouli_books/booklet/book.json @@ -0,0 +1,21 @@ +{ + "book_texture": "actuallyadditions:textures/gui/booklet/booklet.png", + "creative_tab": "actuallyadditions.tab", + "custom_book_item": "actuallyadditions:booklet", + "dont_generate_book": true, + "i18n": true, + "landing_text": "To be perfectly honest, I never actually realized how much content Actually Additions has before. - Ellpeck", + "macros": { + "": "$(o)", + "": "$(2)", + "": "$(9)", + "": "$(br)", + "": "$()", + "": "$(4)$(n)" + }, + "name": "booklet.actuallyadditions.item.actuallyadditions.booklet", + "show_progress": false, + "use_blocky_font": false, + "use_resource_pack": true, + "version": "153" +} \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/data/ActuallyAdditionsData.java b/src/main/java/de/ellpeck/actuallyadditions/data/ActuallyAdditionsData.java index d750933b8..6b0c8331e 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/data/ActuallyAdditionsData.java +++ b/src/main/java/de/ellpeck/actuallyadditions/data/ActuallyAdditionsData.java @@ -1,5 +1,6 @@ package de.ellpeck.actuallyadditions.data; +import de.ellpeck.actuallyadditions.data.patchouli.PatchouliGenerator; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.gen.ActuallyBiomeModifiers; import de.ellpeck.actuallyadditions.mod.gen.ActuallyConfiguredFeatures; @@ -65,7 +66,7 @@ public class ActuallyAdditionsData { generator.addProvider(true, new SoundsGenerator(packOutput, helper)); -// generator.addProvider(true, new PachouliGenerator(packOutput)); + generator.addProvider(true, new PatchouliGenerator(packOutput, lookupProvider)); generator.addProvider(true, new GlobalLootModifierGenerator(packOutput, lookupProvider)); diff --git a/src/main/java/de/ellpeck/actuallyadditions/data/patchouli/PachouliGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/data/patchouli/PachouliGenerator.java deleted file mode 100644 index 6dec5da19..000000000 --- a/src/main/java/de/ellpeck/actuallyadditions/data/patchouli/PachouliGenerator.java +++ /dev/null @@ -1,125 +0,0 @@ -//package de.ellpeck.actuallyadditions.data.patchouli; -// -//import de.ellpeck.actuallyadditions.data.patchouli.builder.ReconstructorPageBuilder; -//import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; -//import de.ellpeck.actuallyadditions.mod.items.ActuallyItems; -//import net.minecraft.data.PackOutput; -//import net.minecraft.resources.ResourceLocation; -//import net.minecraft.world.item.ItemStack; -//import xyz.brassgoggledcoders.patchouliprovider.BookBuilder; -//import xyz.brassgoggledcoders.patchouliprovider.CategoryBuilder; -//import xyz.brassgoggledcoders.patchouliprovider.EntryBuilder; -//import xyz.brassgoggledcoders.patchouliprovider.PatchouliBookProvider; -// -//import java.util.function.Consumer; -// -//public class PachouliGenerator extends PatchouliBookProvider { -// -// public PachouliGenerator(PackOutput output) { -// super(output, ActuallyAdditions.MODID, "en_us"); -// } -// -// @Override -// protected void addBooks(Consumer consumer) { -// final ItemStack bookStack = ActuallyItems.ITEM_BOOKLET.get().getDefaultInstance(); -// -// BookBuilder bookBuilder = createBookBuilder("booklet", -// prefix("item.actuallyadditions.booklet"), "To be perfectly honest, I never actually realized how much content Actually Additions has before. - Ellpeck") -// .setVersion("153") -// .setCreativeTab("actuallyadditions.tab") -// .setCustomBookItem(bookStack) -// .setBookTexture("actuallyadditions:textures/gui/booklet/booklet.png") -// .setShowProgress(false) -// .setUseBlockyFont(false) -// .setI18n(true) -// .setDontGenerateBook(true) -// .addMacro("", "$(2)") -// .addMacro("", "$(9)") -// .addMacro("", "$()") -// .addMacro("", "$(br)") -// .addMacro("", "$(o)") -// .addMacro("", "$(4)$(n)") -// .setUseResourcePack(true); -// -// -// //Getting Started -// CategoryBuilder gettingStarted = bookBuilder.addCategory("getting_started", prefix("indexEntry.getting_started"), -// "", bookStack); -// -// gettingStarted.addEntry("tutorial", prefix("chapter.book_tutorial"), bookStack) -// .addTextPage(prefix("chapter.book_tutorial.text.1")).build() -// .addTextPage(prefix("chapter.book_tutorial.text.2")).build() -// .addTextPage(prefix("chapter.book_tutorial.text.3")).build() -// .addCraftingPage(ActuallyAdditions.modLoc("booklet")) -// .setTitle("").setText("booklet.actuallyadditions.shapeless_recipe").build(); -// -// gettingStarted.addEntry("guide", prefix("chapter.video_guide"), "actuallyadditions:textures/item/youtube.png") -// .addLinkPage("https://www.youtube.com/watch?v=fhjz0Ew56pM", prefix("chapter.video_guide.booty.button")) -// .setText(prefix("chapter.video_guide.booty.text.1")).build() -// .addTextPage(prefix("chapter.video_guide.booty.text.2")).build() -// .addLinkPage("https://www.youtube.com/playlist?list=PLJeFZ64pT89MrTRZYzD_rtHFajPVlt6cF", prefix("chapter.video_guide.booty.button")) -// .setText(prefix("chapter.video_guide.dire.text.1")).build() -// .addTextPage(prefix("chapter.video_guide.dire.text.2")).build(); -// -// gettingStarted.addEntry("intro", prefix("chapter.intro"), bookStack) -// .addTextPage(prefix("chapter.intro.text.1")).build() -// .addTextPage(prefix("chapter.intro.text.2")).build() -// .addTextPage(prefix("chapter.intro.text.3")).build() -// .addTextPage(prefix("chapter.intro.text.4")).build(); -// -// gettingStarted.addEntry("engineer_house", prefix("chapter.engineer_house"), bookStack) -// .addTextPage(prefix("chapter.engineer_house.text.1")).build() -// .addImagePage(ActuallyAdditions.modLoc("textures/gui/booklet/page_engineer_house.png")) -// .setText("booklet.actuallyadditions.chapter.engineer_house.text.2").build(); -// -// EntryBuilder crystalsBuilder = gettingStarted.addEntry("crystals", prefix("chapter.crystals"), bookStack) -// .addTextPage(prefix("chapter.crystals.text.1")).build() -// .addTextPage(prefix("chapter.crystals.text.2")).build() -// .addTextPage(prefix("chapter.crystals.text.3")).build() -// .addImagePage(ActuallyAdditions.modLoc("textures/gui/booklet/page_atomic_reconstructor.png")).setBorder(false).build() -// .addTextPage(prefix("chapter.crystals.text.5")).build() -// .addCraftingPage(ActuallyAdditions.modLoc("atomic_reconstructor")) -// .setText(prefix("chapter.crystals.text.6")).build(); -// crystalsBuilder.addPage(new ReconstructorPageBuilder(ActuallyAdditions.modLoc("laser/crystalize_restonia_crystal_block"), crystalsBuilder)) -// .setRecipe2(ActuallyAdditions.modLoc("laser/crystalize_restonia_crystal")) -// .setText("booklet.actuallyadditions.reconstructor_recipe").build(); -// crystalsBuilder.addPage(new ReconstructorPageBuilder(ActuallyAdditions.modLoc("laser/crystalize_palis_crystal_block"), crystalsBuilder)) -// .setRecipe2(ActuallyAdditions.modLoc("laser/crystalize_palis_crystal")) -// .setText("booklet.actuallyadditions.reconstructor_recipe").build(); -// crystalsBuilder.addPage(new ReconstructorPageBuilder(ActuallyAdditions.modLoc("laser/crystalize_diamatine_crystal_block"), crystalsBuilder)) -// .setRecipe2(ActuallyAdditions.modLoc("laser/crystalize_diamatine_crystal")) -// .setText("booklet.actuallyadditions.reconstructor_recipe").build(); -// crystalsBuilder.addPage(new ReconstructorPageBuilder(ActuallyAdditions.modLoc("laser/crystalize_void_crystal_block"), crystalsBuilder)) -// .setRecipe2(ActuallyAdditions.modLoc("laser/crystalize_void_crystal")) -// .setText("booklet.actuallyadditions.reconstructor_recipe").build(); -// crystalsBuilder.addPage(new ReconstructorPageBuilder(ActuallyAdditions.modLoc("laser/crystalize_emeradic_crystal_block"), crystalsBuilder)) -// .setRecipe2(ActuallyAdditions.modLoc("laser/crystalize_emeradic_crystal")) -// .setText("booklet.actuallyadditions.reconstructor_recipe").build(); -// crystalsBuilder.addPage(new ReconstructorPageBuilder(ActuallyAdditions.modLoc("laser/crystalize_enori_crystal_block"), crystalsBuilder)) -// .setRecipe2(ActuallyAdditions.modLoc("laser/crystalize_enori_crystal")) -// .setText("booklet.actuallyadditions.reconstructor_recipe").build(); -// crystalsBuilder.addCraftingPage(ActuallyAdditions.modLoc("decompress/restonia_crystal")) -// .setRecipe2(ActuallyAdditions.modLoc("compress/restonia_crystal_block")).build() -// .addCraftingPage(ActuallyAdditions.modLoc("decompress/palis_crystal")) -// .setRecipe2(ActuallyAdditions.modLoc("compress/palis_crystal_block")).build() -// .addCraftingPage(ActuallyAdditions.modLoc("decompress/diamatine_crystal")) -// .setRecipe2(ActuallyAdditions.modLoc("compress/diamatine_crystal_block")).build() -// .addCraftingPage(ActuallyAdditions.modLoc("decompress/void_crystal")) -// .setRecipe2(ActuallyAdditions.modLoc("compress/void_crystal_block")).build() -// .addCraftingPage(ActuallyAdditions.modLoc("decompress/emeradic_crystal")) -// .setRecipe2(ActuallyAdditions.modLoc("compress/emeradic_crystal_block")).build() -// .addCraftingPage(ActuallyAdditions.modLoc("decompress/enori_crystal")) -// .setRecipe2(ActuallyAdditions.modLoc("compress/enori_crystal_block")).build(); -// crystalsBuilder.build(); -// -// //End of Getting Started -// -// -// //Finish book -// bookBuilder.build(consumer); -// } -// -// private String prefix(String name) { -// return "booklet.actuallyadditions." + name; -// } -//} diff --git a/src/main/java/de/ellpeck/actuallyadditions/data/patchouli/PatchouliGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/data/patchouli/PatchouliGenerator.java new file mode 100644 index 000000000..f031ca504 --- /dev/null +++ b/src/main/java/de/ellpeck/actuallyadditions/data/patchouli/PatchouliGenerator.java @@ -0,0 +1,128 @@ +package de.ellpeck.actuallyadditions.data.patchouli; + +import de.ellpeck.actuallyadditions.data.patchouli.builder.ReconstructorPageBuilder; +import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; +import de.ellpeck.actuallyadditions.mod.items.ActuallyItems; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.world.item.ItemStack; +import xyz.brassgoggledcoders.patchouliprovider.BookBuilder; +import xyz.brassgoggledcoders.patchouliprovider.CategoryBuilder; +import xyz.brassgoggledcoders.patchouliprovider.EntryBuilder; +import xyz.brassgoggledcoders.patchouliprovider.PatchouliBookProvider; + +import java.util.concurrent.CompletableFuture; +import java.util.function.Consumer; + +public class PatchouliGenerator extends PatchouliBookProvider { + + public PatchouliGenerator(PackOutput output, CompletableFuture lookupProvider) { + super(output, ActuallyAdditions.MODID, "en_us", lookupProvider); + } + + @Override + protected void addBooks(Consumer consumer, HolderLookup.Provider provider) { + final ItemStack bookStack = ActuallyItems.ITEM_BOOKLET.get().getDefaultInstance(); + + BookBuilder bookBuilder = createBookBuilder("booklet", + prefix("item.actuallyadditions.booklet"), + "To be perfectly honest, I never actually realized how much content Actually Additions has before. - Ellpeck", + provider) + .setVersion("153") + .setCreativeTab("actuallyadditions.tab") + .setCustomBookItem(bookStack) + .setBookTexture("actuallyadditions:textures/gui/booklet/booklet.png") + .setShowProgress(false) + .setUseBlockyFont(false) + .setI18n(true) + .setDontGenerateBook(true) + .addMacro("", "$(2)") + .addMacro("", "$(9)") + .addMacro("", "$()") + .addMacro("", "$(br)") + .addMacro("", "$(o)") + .addMacro("", "$(4)$(n)") + .setUseResourcePack(true); + + + //Getting Started + CategoryBuilder gettingStarted = bookBuilder.addCategory("getting_started", prefix("indexEntry.getting_started"), + "", bookStack); + + gettingStarted.addEntry("tutorial", prefix("chapter.book_tutorial"), bookStack) + .addTextPage(prefix("chapter.book_tutorial.text.1")).build() + .addTextPage(prefix("chapter.book_tutorial.text.2")).build() + .addTextPage(prefix("chapter.book_tutorial.text.3")).build() + .addCraftingPage(ActuallyAdditions.modLoc("booklet")) + .setTitle("").setText("booklet.actuallyadditions.shapeless_recipe").build(); + + gettingStarted.addEntry("guide", prefix("chapter.video_guide"), "actuallyadditions:textures/item/youtube.png") + .addLinkPage("https://www.youtube.com/watch?v=fhjz0Ew56pM", prefix("chapter.video_guide.booty.button")) + .setText(prefix("chapter.video_guide.booty.text.1")).build() + .addTextPage(prefix("chapter.video_guide.booty.text.2")).build() + .addLinkPage("https://www.youtube.com/playlist?list=PLJeFZ64pT89MrTRZYzD_rtHFajPVlt6cF", prefix("chapter.video_guide.booty.button")) + .setText(prefix("chapter.video_guide.dire.text.1")).build() + .addTextPage(prefix("chapter.video_guide.dire.text.2")).build(); + + gettingStarted.addEntry("intro", prefix("chapter.intro"), bookStack) + .addTextPage(prefix("chapter.intro.text.1")).build() + .addTextPage(prefix("chapter.intro.text.2")).build() + .addTextPage(prefix("chapter.intro.text.3")).build() + .addTextPage(prefix("chapter.intro.text.4")).build(); + + gettingStarted.addEntry("engineer_house", prefix("chapter.engineer_house"), bookStack) + .addTextPage(prefix("chapter.engineer_house.text.1")).build() + .addImagePage(ActuallyAdditions.modLoc("textures/gui/booklet/page_engineer_house.png")) + .setText("booklet.actuallyadditions.chapter.engineer_house.text.2").build(); + + EntryBuilder crystalsBuilder = gettingStarted.addEntry("crystals", prefix("chapter.crystals"), bookStack) + .addTextPage(prefix("chapter.crystals.text.1")).build() + .addTextPage(prefix("chapter.crystals.text.2")).build() + .addTextPage(prefix("chapter.crystals.text.3")).build() + .addImagePage(ActuallyAdditions.modLoc("textures/gui/booklet/page_atomic_reconstructor.png")).setBorder(false).build() + .addTextPage(prefix("chapter.crystals.text.5")).build() + .addCraftingPage(ActuallyAdditions.modLoc("atomic_reconstructor")) + .setText(prefix("chapter.crystals.text.6")).build(); + crystalsBuilder.addPage(new ReconstructorPageBuilder(ActuallyAdditions.modLoc("laser/crystalize_restonia_crystal_block"), crystalsBuilder)) + .setRecipe2(ActuallyAdditions.modLoc("laser/crystalize_restonia_crystal")) + .setText("booklet.actuallyadditions.reconstructor_recipe").build(); + crystalsBuilder.addPage(new ReconstructorPageBuilder(ActuallyAdditions.modLoc("laser/crystalize_palis_crystal_block"), crystalsBuilder)) + .setRecipe2(ActuallyAdditions.modLoc("laser/crystalize_palis_crystal")) + .setText("booklet.actuallyadditions.reconstructor_recipe").build(); + crystalsBuilder.addPage(new ReconstructorPageBuilder(ActuallyAdditions.modLoc("laser/crystalize_diamatine_crystal_block"), crystalsBuilder)) + .setRecipe2(ActuallyAdditions.modLoc("laser/crystalize_diamatine_crystal")) + .setText("booklet.actuallyadditions.reconstructor_recipe").build(); + crystalsBuilder.addPage(new ReconstructorPageBuilder(ActuallyAdditions.modLoc("laser/crystalize_void_crystal_block"), crystalsBuilder)) + .setRecipe2(ActuallyAdditions.modLoc("laser/crystalize_void_crystal")) + .setText("booklet.actuallyadditions.reconstructor_recipe").build(); + crystalsBuilder.addPage(new ReconstructorPageBuilder(ActuallyAdditions.modLoc("laser/crystalize_emeradic_crystal_block"), crystalsBuilder)) + .setRecipe2(ActuallyAdditions.modLoc("laser/crystalize_emeradic_crystal")) + .setText("booklet.actuallyadditions.reconstructor_recipe").build(); + crystalsBuilder.addPage(new ReconstructorPageBuilder(ActuallyAdditions.modLoc("laser/crystalize_enori_crystal_block"), crystalsBuilder)) + .setRecipe2(ActuallyAdditions.modLoc("laser/crystalize_enori_crystal")) + .setText("booklet.actuallyadditions.reconstructor_recipe").build(); + crystalsBuilder.addCraftingPage(ActuallyAdditions.modLoc("decompress/restonia_crystal")) + .setRecipe2(ActuallyAdditions.modLoc("compress/restonia_crystal_block")).build() + .addCraftingPage(ActuallyAdditions.modLoc("decompress/palis_crystal")) + .setRecipe2(ActuallyAdditions.modLoc("compress/palis_crystal_block")).build() + .addCraftingPage(ActuallyAdditions.modLoc("decompress/diamatine_crystal")) + .setRecipe2(ActuallyAdditions.modLoc("compress/diamatine_crystal_block")).build() + .addCraftingPage(ActuallyAdditions.modLoc("decompress/void_crystal")) + .setRecipe2(ActuallyAdditions.modLoc("compress/void_crystal_block")).build() + .addCraftingPage(ActuallyAdditions.modLoc("decompress/emeradic_crystal")) + .setRecipe2(ActuallyAdditions.modLoc("compress/emeradic_crystal_block")).build() + .addCraftingPage(ActuallyAdditions.modLoc("decompress/enori_crystal")) + .setRecipe2(ActuallyAdditions.modLoc("compress/enori_crystal_block")).build(); + crystalsBuilder.build(); + + //End of Getting Started + + + //Finish book + bookBuilder.build(consumer); + } + + private String prefix(String name) { + return "booklet.actuallyadditions." + name; + } +}