From 74cd597407719eeb00e50382ddb0cc42b811420e Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 17 Nov 2016 18:00:26 +0100 Subject: [PATCH] Added updates and infos section Very meta, very self-advertisement-y. --- .../api/ActuallyAdditionsAPI.java | 3 ++- .../mod/booklet/InitBooklet.java | 11 +++++++++- .../mod/booklet/gui/GuiMainPage.java | 3 ++- .../assets/actuallyadditions/lang/en_us.lang | 20 +++++++++++++++++- .../textures/gui/booklet/pagepatreon.png | Bin 0 -> 18440 bytes 5 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/assets/actuallyadditions/textures/gui/booklet/pagepatreon.png diff --git a/src/main/java/de/ellpeck/actuallyadditions/api/ActuallyAdditionsAPI.java b/src/main/java/de/ellpeck/actuallyadditions/api/ActuallyAdditionsAPI.java index fb514634a..ffa8a6c5a 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/api/ActuallyAdditionsAPI.java +++ b/src/main/java/de/ellpeck/actuallyadditions/api/ActuallyAdditionsAPI.java @@ -31,7 +31,7 @@ public final class ActuallyAdditionsAPI{ public static final String MOD_ID = "actuallyadditions"; public static final String API_ID = MOD_ID+"api"; - public static final String API_VERSION = "28"; + public static final String API_VERSION = "29"; public static final List CRUSHER_RECIPES = new ArrayList(); public static final List BALL_OF_FUR_RETURN_ITEMS = new ArrayList(); @@ -77,6 +77,7 @@ public final class ActuallyAdditionsAPI{ public static IBookletEntry entryItemsNonRF; public static IBookletEntry entryItemsRF; public static IBookletEntry entryMisc; + public static IBookletEntry entryUpdatesAndInfos; //This is added to automatically, you don't need to add anything to this entry public static IBookletEntry allAndSearch; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/InitBooklet.java b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/InitBooklet.java index 3730d9547..cef1e72a2 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/InitBooklet.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/InitBooklet.java @@ -30,10 +30,12 @@ import de.ellpeck.actuallyadditions.mod.items.InitItems; import de.ellpeck.actuallyadditions.mod.items.lens.LensDisenchanting; import de.ellpeck.actuallyadditions.mod.items.lens.LensMining; import de.ellpeck.actuallyadditions.mod.items.lens.LensRecipeHandler; +import de.ellpeck.actuallyadditions.mod.items.metalists.TheCrystals; import de.ellpeck.actuallyadditions.mod.items.metalists.TheFoods; import de.ellpeck.actuallyadditions.mod.items.metalists.TheMiscItems; import de.ellpeck.actuallyadditions.mod.recipe.EmpowererHandler; import de.ellpeck.actuallyadditions.mod.tile.*; +import de.ellpeck.actuallyadditions.mod.update.UpdateChecker; import de.ellpeck.actuallyadditions.mod.util.ModUtil; import de.ellpeck.actuallyadditions.mod.util.Util; import net.minecraft.init.Blocks; @@ -59,7 +61,8 @@ public final class InitBooklet{ ActuallyAdditionsAPI.entryGeneratingRF = new BookletEntry("generatingRF"); ActuallyAdditionsAPI.entryItemsNonRF = new BookletEntry("itemsNoRF"); ActuallyAdditionsAPI.entryItemsRF = new BookletEntry("itemsRF"); - ActuallyAdditionsAPI.entryMisc = new BookletEntry("misc").setSpecial(); + ActuallyAdditionsAPI.entryMisc = new BookletEntry("misc"); + ActuallyAdditionsAPI.entryUpdatesAndInfos = new BookletEntry("updatesAndInfos").setSpecial(); ActuallyAdditionsAPI.allAndSearch = new BookletEntryAllItems("allAndSearch").setImportant(); } @@ -235,5 +238,11 @@ public final class InitBooklet{ new BookletChapter("growthRing", ActuallyAdditionsAPI.entryItemsRF, new ItemStack(InitItems.itemGrowthRing), new PageCrafting(1, ItemCrafting.recipeGrowthRing)); new BookletChapter("waterRemovalRing", ActuallyAdditionsAPI.entryItemsRF, new ItemStack(InitItems.itemWaterRemovalRing), new PageCrafting(1, ItemCrafting.recipeWaterRing)); new BookletChapter("batteries", ActuallyAdditionsAPI.entryItemsRF, new ItemStack(InitItems.itemBatteryTriple), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeBattery).setNoText(), new PageCrafting(3, ItemCrafting.recipeBatteryDouble).setNoText(), new PageCrafting(4, ItemCrafting.recipeBatteryTriple).setNoText(), new PageCrafting(5, ItemCrafting.recipeBatteryQuadruple).setNoText(), new PageCrafting(6, ItemCrafting.recipeBatteryQuintuple).setNoText()); + + //Updates and infos + new BookletChapter("changelog", ActuallyAdditionsAPI.entryUpdatesAndInfos, new ItemStack(Items.CLOCK), new PageLinkButton(1, UpdateChecker.CHANGELOG_LINK)); + new BookletChapter("curse", ActuallyAdditionsAPI.entryUpdatesAndInfos, new ItemStack(Items.FLINT_AND_STEEL), new PageLinkButton(1, "http://ellpeck.de/actadd")); + new BookletChapter("patreon", ActuallyAdditionsAPI.entryUpdatesAndInfos, new ItemStack(InitItems.itemCrystal, 1, TheCrystals.EMERALD.ordinal()), new PageLinkButton(1, "http://patreon.com/Ellpeck"), new PagePicture(2, "pagePatreon", 153)).setImportant(); + new BookletChapter("website", ActuallyAdditionsAPI.entryUpdatesAndInfos, new ItemStack(InitItems.itemBooklet), new PageLinkButton(1, "http://ellpeck.de")); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiMainPage.java b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiMainPage.java index e12ef792f..867303eb6 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiMainPage.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/booklet/gui/GuiMainPage.java @@ -54,7 +54,8 @@ public class GuiMainPage extends GuiBooklet{ "TINY TORCHES!! BABY TORCHES!! Somebody actually finally did it!!@Soaryn", "Balanced mod wich makes things different - in a good way.@garantiertnicht", "The mod everyone needs, but not everyone knows@Brewpl", - "The in-game documentation is the best I’ve seen. I especially love the JEI integration. Even a derp like me can figure it out.@dannydjdk" + "The in-game documentation is the best I’ve seen. I especially love the JEI integration. Even a derp like me can figure it out.@dannydjdk", + "The second best mod I've ever used.@mmaas44" }; private TexturedButton achievementButton; diff --git a/src/main/resources/assets/actuallyadditions/lang/en_us.lang b/src/main/resources/assets/actuallyadditions/lang/en_us.lang index 66d9299ed..b3470d8a5 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_us.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_us.lang @@ -742,6 +742,7 @@ booklet.actuallyadditions.indexEntry.itemsNoRF.name=Items that don't use RF booklet.actuallyadditions.indexEntry.itemsRF.name=Items that use RF booklet.actuallyadditions.indexEntry.reconstruction.name=Reconstruction booklet.actuallyadditions.indexEntry.laserRelays.name=Laser Transport +booklet.actuallyadditions.indexEntry.updatesAndInfos.name=Updates and Infos #Booklet Info booklet.actuallyadditions.recipeDisabled=The crafting recipe for this item is disabled in the Config File! If you're on a server, ask the server author to enable it in the config. If you're on a client, press the 'Open Config'-Button on the top right and enable the recipe! @@ -1059,4 +1060,21 @@ booklet.actuallyadditions.chapter.lensMoreDeath.name=Lens of the Killer booklet.actuallyadditions.chapter.lensMoreDeath.text.1=The Lens of the Killer works much like the Lens of Certain Death, however it will also drop experience and player-kill loot. This means, however, that it will use a lot more power. To pick up the experience it drops, you might want to try an Experience Solidifier. booklet.actuallyadditions.chapter.fillingWand.name=Handheld Filler -booklet.actuallyadditions.chapter.fillingWand.text.1=The Handheld Filler is a great way to fill any area with blocks. To do this, first sneak-right-click a block in the world that you want to fill an area with. To actually fill an area, look at the first corner and hold right-click. Let go of right-click at the second corner. The area you mark can be a flat plane or a cube. This process requires some RF for placing the blocks and you need to have the blocks in your inventory. \ No newline at end of file +booklet.actuallyadditions.chapter.fillingWand.text.1=The Handheld Filler is a great way to fill any area with blocks. To do this, first sneak-right-click a block in the world that you want to fill an area with. To actually fill an area, look at the first corner and hold right-click. Let go of right-click at the second corner. The area you mark can be a flat plane or a cube. This process requires some RF for placing the blocks and you need to have the blocks in your inventory. + +booklet.actuallyadditions.chapter.patreon.name=Patreon Support +booklet.actuallyadditions.chapter.patreon.text.1=Do you really like Actually Additions? If you do, you can support me, Ellpeck, the author of the mod! Do you think that's a thing for you? Well, then check out my Patreon page by clicking the button below! As you can see on the next page, you can get things like floaty items above your head as a reward! Thanks a bunch <3 +booklet.actuallyadditions.chapter.patreon.button.1=View the Patreon +booklet.actuallyadditions.chapter.patreon.text.2=3pixel with his Patreon reward + +booklet.actuallyadditions.chapter.changelog.name=Changelog +booklet.actuallyadditions.chapter.changelog.text.1=Interested in everything that changed over the course of all of the versions of Actually Additions? If so, you can click the button below to view a very detailed changelog that contains every addition, every bugfix and all other types of changes! +booklet.actuallyadditions.chapter.changelog.button.1=View Changelog + +booklet.actuallyadditions.chapter.curse.name=The Mod's Website +booklet.actuallyadditions.chapter.curse.text.1=If you want to download any new versions of the mod, view any infos or recommend the mod to someone else, I'd highly suggest checking out its CurseForge page by clicking the button below. +booklet.actuallyadditions.chapter.curse.button.1=View the page + +booklet.actuallyadditions.chapter.website.name=The Author's Website +booklet.actuallyadditions.chapter.website.text.1=On the topic of self-advertisement, if you're interested in any of the other stuff I, Ellpeck, the author of this mod, do, you can go check out my website by clicking the button below. On there, you will find links to all of the social medias I use, an FAQ, and information about Minecraft Mods and other stuff I make! +booklet.actuallyadditions.chapter.website.button.1=View the Website \ No newline at end of file diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/booklet/pagepatreon.png b/src/main/resources/assets/actuallyadditions/textures/gui/booklet/pagepatreon.png new file mode 100644 index 0000000000000000000000000000000000000000..506475516de051d8cc096a470d656e1400907928 GIT binary patch literal 18440 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 literal 0 HcmV?d00001