diff --git a/MODSRC/vazkii/botania/client/gui/GuiLexicon.java b/MODSRC/vazkii/botania/client/gui/GuiLexicon.java index edc90a373..594f4afe4 100644 --- a/MODSRC/vazkii/botania/client/gui/GuiLexicon.java +++ b/MODSRC/vazkii/botania/client/gui/GuiLexicon.java @@ -13,6 +13,7 @@ package vazkii.botania.client.gui; import java.util.List; +import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.util.ResourceLocation; @@ -25,6 +26,7 @@ import vazkii.botania.api.lexicon.LexiconCategory; import vazkii.botania.client.core.handler.ClientTickHandler; import vazkii.botania.client.gui.button.GuiButtonInvisible; import vazkii.botania.client.lib.LibResources; +import vazkii.botania.common.item.ItemLexicon; import vazkii.botania.common.item.ModItems; public class GuiLexicon extends GuiScreen { @@ -33,6 +35,7 @@ public class GuiLexicon extends GuiScreen { public static final ResourceLocation texture = new ResourceLocation(LibResources.GUI_LEXICON); + String title; int guiWidth = 146; int guiHeight = 180; int left, top; @@ -40,6 +43,7 @@ public class GuiLexicon extends GuiScreen { @Override public void initGui() { super.initGui(); + title = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem().getDisplayName(); currentOpenLexicon = this; left = width / 2 - guiWidth / 2; @@ -77,7 +81,7 @@ public class GuiLexicon extends GuiScreen { void drawHeader() { boolean unicode = fontRendererObj.getUnicodeFlag(); fontRendererObj.setUnicodeFlag(true); - fontRendererObj.drawSplitString(StatCollector.translateToLocal("botania.gui.lexicon.header"), left + 15, top + 20, 110, 0); + fontRendererObj.drawSplitString(String.format(StatCollector.translateToLocal("botania.gui.lexicon.header"), ItemLexicon.getEdition()), left + 18, top + 14, 110, 0); fontRendererObj.setUnicodeFlag(unicode); } @@ -102,7 +106,7 @@ public class GuiLexicon extends GuiScreen { } String getTitle() { - return ModItems.lexicon.getItemStackDisplayName(null); + return title; } String getSubtitle() { diff --git a/MODSRC/vazkii/botania/client/render/item/RenderLexicon.java b/MODSRC/vazkii/botania/client/render/item/RenderLexicon.java index d9f937b23..98896c931 100644 --- a/MODSRC/vazkii/botania/client/render/item/RenderLexicon.java +++ b/MODSRC/vazkii/botania/client/render/item/RenderLexicon.java @@ -12,15 +12,20 @@ package vazkii.botania.client.render.item; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.model.ModelBook; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; import vazkii.botania.client.core.handler.ClientTickHandler; import vazkii.botania.client.lib.LibResources; +import vazkii.botania.common.item.ItemLexicon; +import vazkii.botania.common.item.ModItems; public class RenderLexicon implements IItemRenderer { @@ -47,13 +52,44 @@ public class RenderLexicon implements IItemRenderer { int ticks = ClientTickHandler.ticksWithLexicaOpen; GL11.glTranslatef(0.3F + 0.02F * ticks, 0.475F + 0.01F * ticks, -0.2F - 0.01F * ticks); - GL11.glRotatef(95F + ticks * 5, 0F, 1F, 0F); + GL11.glRotatef(87.5F + ticks * 5, 0F, 1F, 0F); GL11.glRotatef(ticks * 2.5F, 0F, 0F, 1F); GL11.glScalef(0.9F, 0.9F, 0.9F); opening = ticks / 12F; pageFlip = ClientTickHandler.pageFlipTicks / 5F; model.render(null, 0F, 0F, pageFlip, opening, 0F, 1F / 16F); + if(ticks < 3) { + FontRenderer font = Minecraft.getMinecraft().fontRenderer; + GL11.glRotatef(180F, 0F, 0F, 0F); + GL11.glTranslatef(-0.3F, -0.2F, 0.07F); + GL11.glScalef(0.0035F, 0.0035F, 0.0035F); + String title = ModItems.lexicon.getItemStackDisplayName(null); + if(Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem() != null) + title = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem().getDisplayName(); + font.drawString(title, 0, 0, 0xD69700); + GL11.glTranslatef(0F, 10F, 0F); + GL11.glScalef(0.6F, 0.6F, 0.6F); + font.drawString(EnumChatFormatting.ITALIC + "" + EnumChatFormatting.BOLD + String.format(StatCollector.translateToLocal("botaniamisc.edition"), ItemLexicon.getEdition()), 0, 0, 0xA07100); + + GL11.glTranslatef(0F, 15F, 0F); + font.drawString(StatCollector.translateToLocal("botaniamisc.lexiconcover0"), 0, 0, 0x79ff92); + + GL11.glTranslatef(0F, 10F, 0F); + font.drawString(EnumChatFormatting.UNDERLINE + StatCollector.translateToLocal("botaniamisc.lexiconcover1"), 0, 0, 0x79ff92); + + GL11.glTranslatef(0F, 25F, 0F); + GL11.glPushMatrix(); + GL11.glScalef(6F, 6F, 6F); + GL11.glTranslatef(5F, -0.3F, 0F); + font.drawString(EnumChatFormatting.BOLD + "~", 0, 0, 0x002206); + GL11.glPopMatrix(); + + GL11.glTranslatef(0F, 25F, 0F); + font.drawString(StatCollector.translateToLocal("botaniamisc.lexiconcover2"), 0, 0, 0x79ff92); + GL11.glTranslatef(0F, 10F, 0F); + font.drawString(EnumChatFormatting.ITALIC + StatCollector.translateToLocal("botaniamisc.lexiconcover3"), 0, 0, 0x79ff92); + } GL11.glPopMatrix(); } diff --git a/MODSRC/vazkii/botania/common/core/helper/MathHelper.java b/MODSRC/vazkii/botania/common/core/helper/MathHelper.java index 88a4c95a4..12a2a6248 100644 --- a/MODSRC/vazkii/botania/common/core/helper/MathHelper.java +++ b/MODSRC/vazkii/botania/common/core/helper/MathHelper.java @@ -30,5 +30,10 @@ public final class MathHelper { entity.motionY = finalVector.y * modifier; entity.motionZ = finalVector.z * modifier; } + + private static final String[] ORDINAL_SUFFIXES = new String[]{ "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th" }; + public static String numberToOrdinal(int i) { + return i % 100 == 11 || i % 100 == 12 || i % 100 == 13 ? i + "th" : i + ORDINAL_SUFFIXES[i % 10]; + } } diff --git a/MODSRC/vazkii/botania/common/item/ItemLexicon.java b/MODSRC/vazkii/botania/common/item/ItemLexicon.java index 540292a3f..cb7c97522 100644 --- a/MODSRC/vazkii/botania/common/item/ItemLexicon.java +++ b/MODSRC/vazkii/botania/common/item/ItemLexicon.java @@ -11,16 +11,21 @@ */ package vazkii.botania.common.item; +import java.util.List; + import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; import net.minecraft.world.World; import vazkii.botania.api.lexicon.ILexiconable; import vazkii.botania.api.lexicon.LexiconEntry; import vazkii.botania.common.Botania; +import vazkii.botania.common.core.helper.MathHelper; import vazkii.botania.common.lib.LibGuiIDs; import vazkii.botania.common.lib.LibItemNames; +import vazkii.botania.common.lib.LibMisc; public class ItemLexicon extends ItemMod { @@ -48,6 +53,19 @@ public class ItemLexicon extends ItemMod { return false; } + @Override + public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) { + String edition = String.format(StatCollector.translateToLocal("botaniamisc.edition"), getEdition()); + if(!edition.isEmpty()) + par3List.add(edition); + } + + public static String getEdition() { + String version = LibMisc.BUILD; + int build = version.contains("ANT") ? 0 : Integer.parseInt(version); + return build == 0 ? StatCollector.translateToLocal("botaniamisc.devEdition") : MathHelper.numberToOrdinal(build); + } + @Override public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { par3EntityPlayer.openGui(Botania.instance, LibGuiIDs.LEXICON, par2World, 0, 0, 0); diff --git a/resources/assets/botania/lang/en_US.lang b/resources/assets/botania/lang/en_US.lang index 76309565b..0193055de 100644 --- a/resources/assets/botania/lang/en_US.lang +++ b/resources/assets/botania/lang/en_US.lang @@ -25,6 +25,13 @@ botaniamisc.creativePool0=Creative Mana Pool, has infinite Mana botaniamisc.creativePool1=Worthy of an Egoist botaniamisc.savedByLaurel=Your Golden Laurel Crown shatters, as it saves you from death. botaniamisc.toolRank=%s&7 Rank +botaniamisc.edition=%s Edition +# ^ Leave this empty for no edition display +botaniamisc.devEdition=Writer's +botaniamisc.lexiconcover0=Your guide to all +botaniamisc.lexiconcover1=Botanical needs +botaniamisc.lexiconcover2=From Bestselling author +botaniamisc.lexiconcover3=Lizbeth "Vazkii" Rika # COLORS botania.color0=White @@ -426,7 +433,7 @@ item.botania:quartz3.name=Lavender Quartz item.botania:quartz4.name=Redquartz # GUI TEXT -botania.gui.lexicon.header=Lexica Botania Index - Pick which category you would like to study: +botania.gui.lexicon.header=Lexica Botania, %s Edition's Index - Pick which category you would like to study: botania.gui.lexicon.wip=(This entry is a Work In Progress. It's not even it's final form) # LEXICON CATEGORIES