From 15d3d9e70b3141858b07e4ebb9d7d9d2c403e96a Mon Sep 17 00:00:00 2001 From: Electroblob77 <35599699+Electroblob77@users.noreply.github.com> Date: Fri, 10 Apr 2020 15:56:34 +0100 Subject: [PATCH] Arcane workbench tooltip refactoring - Reorganises the huge amount of code in the draw background/foreground methods into a hierarchical object system - Makes the tooltip box change height to fit the content - Adds text wrapping support for items/spells with super long names - Adds proper format arguments to the mana readout translation - The tooltip now shows the new spells that will be applied with a flashing animation --- .../wizardry/client/DrawingUtils.java | 2 +- .../client/gui/GuiArcaneWorkbench.java | 686 +++++++++++++----- .../assets/ebwizardry/lang/en_gb.lang | 5 +- .../assets/ebwizardry/lang/en_us.lang | 5 +- .../gui/container/arcane_workbench.png | Bin 40214 -> 40141 bytes 5 files changed, 508 insertions(+), 190 deletions(-) diff --git a/src/main/java/electroblob/wizardry/client/DrawingUtils.java b/src/main/java/electroblob/wizardry/client/DrawingUtils.java index 20b99a60..ff591a5c 100644 --- a/src/main/java/electroblob/wizardry/client/DrawingUtils.java +++ b/src/main/java/electroblob/wizardry/client/DrawingUtils.java @@ -156,7 +156,7 @@ public final class DrawingUtils { * @return The resulting integer colour code, which will be an 8-digit hexadecimal. */ public static int makeTranslucent(int colour, float opacity){ - return colour + ((int)(0xff * opacity * 0x01000000)); + return colour + ((int)(opacity * 0xff) << 24); } /** diff --git a/src/main/java/electroblob/wizardry/client/gui/GuiArcaneWorkbench.java b/src/main/java/electroblob/wizardry/client/gui/GuiArcaneWorkbench.java index 07590df6..63289ffd 100644 --- a/src/main/java/electroblob/wizardry/client/gui/GuiArcaneWorkbench.java +++ b/src/main/java/electroblob/wizardry/client/gui/GuiArcaneWorkbench.java @@ -5,13 +5,9 @@ import electroblob.wizardry.client.DrawingUtils; import electroblob.wizardry.constants.Element; import electroblob.wizardry.constants.Tier; import electroblob.wizardry.data.SpellGlyphData; -import electroblob.wizardry.data.WizardData; import electroblob.wizardry.inventory.ContainerArcaneWorkbench; import electroblob.wizardry.inventory.SlotBookList; -import electroblob.wizardry.item.IManaStoringItem; -import electroblob.wizardry.item.ISpellCastingItem; -import electroblob.wizardry.item.IWorkbenchItem; -import electroblob.wizardry.item.ItemWand; +import electroblob.wizardry.item.*; import electroblob.wizardry.packet.PacketControlInput; import electroblob.wizardry.packet.WizardryPacketHandler; import electroblob.wizardry.registry.WizardrySounds; @@ -21,6 +17,7 @@ import electroblob.wizardry.util.ISpellSortable; import electroblob.wizardry.util.WandHelper; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.gui.inventory.GuiContainer; @@ -36,6 +33,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.MathHelper; +import net.minecraft.util.text.Style; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.fml.common.Mod; @@ -46,6 +44,8 @@ import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.Locale; @Mod.EventBusSubscriber(Side.CLIENT) @@ -55,7 +55,9 @@ public class GuiArcaneWorkbench extends GuiContainer { "textures/gui/container/arcane_workbench.png"); private static final int TOOLTIP_WIDTH = 144; - private static final int TOOLTIP_TEXT_INSET = 6; + private static final int TOOLTIP_BORDER = 6; + private static final int LINE_SPACING_WIDE = 5; + private static final int LINE_SPACING_NARROW = 1; private static final int BOOKSHELF_UI_WIDTH = ContainerArcaneWorkbench.BOOKSHELF_UI_WIDTH; // For conciseness @@ -74,9 +76,6 @@ public class GuiArcaneWorkbench extends GuiContainer { private static final int SCROLL_BAR_HEIGHT = 178; private static final int SCROLL_HANDLE_HEIGHT = 15; - private static final int PROGRESSION_BAR_WIDTH = 131; - private static final int PROGRESSION_BAR_HEIGHT = 3; - private static final int HALO_DIAMETER = 156; private static final int TEXTURE_WIDTH = 512; @@ -94,6 +93,8 @@ public class GuiArcaneWorkbench extends GuiContainer { private GuiTextField searchField; private boolean searchNeedsClearing; + private final List tooltipElements = new ArrayList<>(); + private int animationTimer = 0; private float scroll = 0; @@ -131,6 +132,12 @@ public class GuiArcaneWorkbench extends GuiContainer { this.searchField.setCanLoseFocus(false); this.searchField.setFocused(true); + this.tooltipElements.add(new TooltipElementItemName(new Style().setColor(TextFormatting.WHITE), LINE_SPACING_WIDE)); + this.tooltipElements.add(new TooltipElementManaReadout(LINE_SPACING_WIDE)); + this.tooltipElements.add(new TooltipElementProgressionBar(LINE_SPACING_WIDE)); + this.tooltipElements.add(new TooltipElementSpellList(LINE_SPACING_WIDE)); + this.tooltipElements.add(new TooltipElementUpgradeList(LINE_SPACING_WIDE)); + } @Override @@ -326,88 +333,20 @@ public class GuiArcaneWorkbench extends GuiContainer { if(((IWorkbenchItem)stack.getItem()).showTooltip(stack)){ + int tooltipHeight = tooltipElements.stream().mapToInt(e -> e.getTotalHeight(stack)).sum() + - tooltipElements.get(tooltipElements.size() - 1).spaceAfter; // Remove space after last element + // Tooltip box - DrawingUtils.drawTexturedRect(left + MAIN_GUI_WIDTH, top, MAIN_GUI_WIDTH, 0, TOOLTIP_WIDTH, ySize, TEXTURE_WIDTH, TEXTURE_HEIGHT); + DrawingUtils.drawTexturedRect(left + MAIN_GUI_WIDTH, top, MAIN_GUI_WIDTH, 0, TOOLTIP_WIDTH, + TOOLTIP_BORDER + tooltipHeight, TEXTURE_WIDTH, TEXTURE_HEIGHT); + DrawingUtils.drawTexturedRect(left + MAIN_GUI_WIDTH, top + TOOLTIP_BORDER + tooltipHeight, + MAIN_GUI_WIDTH, ySize - TOOLTIP_BORDER, TOOLTIP_WIDTH, TOOLTIP_BORDER, TEXTURE_WIDTH, TEXTURE_HEIGHT); - int y = top + 20; + int x = left + MAIN_GUI_WIDTH + TOOLTIP_BORDER; + int y = top + TOOLTIP_BORDER; - if(stack.getItem() instanceof IManaStoringItem && ((IManaStoringItem)stack.getItem()).showManaInWorkbench(this.mc.player, stack)){ - y += 14; - } - - // Progression bar - if(stack.getItem() instanceof ItemWand && !Wizardry.settings.legacyWandLevelling){ - - y += 10; - - Tier tier = ((ItemWand)stack.getItem()).tier; - - float progressFraction = 1; - - if(tier != Tier.MASTER){ - progressFraction = (float)WandHelper.getProgression(stack) / Tier.values()[tier.level + 1].progression; - } - - DrawingUtils.drawTexturedRect(left + MAIN_GUI_WIDTH + TOOLTIP_TEXT_INSET, y, MAIN_GUI_WIDTH, ySize + PROGRESSION_BAR_HEIGHT, PROGRESSION_BAR_WIDTH, PROGRESSION_BAR_HEIGHT, TEXTURE_WIDTH, TEXTURE_HEIGHT); - int width = (int)(PROGRESSION_BAR_WIDTH * progressFraction); - DrawingUtils.drawTexturedRect(left + MAIN_GUI_WIDTH + TOOLTIP_TEXT_INSET, y, MAIN_GUI_WIDTH, ySize, width, PROGRESSION_BAR_HEIGHT, TEXTURE_WIDTH, TEXTURE_HEIGHT); - - y += 8; - } - - if(stack.getItem() instanceof ISpellCastingItem && ((ISpellCastingItem)stack.getItem()).showSpellsInWorkbench(this.mc.player, stack)){ - - Spell[] spells = ((ISpellCastingItem)stack.getItem()).getSpells(stack); - - GlStateManager.enableBlend(); - - for(Spell spell : spells){ - - boolean discovered = true; - - if(!this.mc.player.isCreative() && WizardData.get(this.mc.player) != null){ - discovered = WizardData.get(this.mc.player).hasSpellBeenDiscovered(spell); - } - // As of Wizardry 1.2, the icons have been split off into their own texture files to allow for add-on - // mods to add their own. - Minecraft.getMinecraft().renderEngine - .bindTexture(discovered ? spell.getElement().getIcon() : Element.MAGIC.getIcon()); - - // Renders the little element icon - DrawingUtils.drawTexturedRect(left + MAIN_GUI_WIDTH + TOOLTIP_TEXT_INSET - 1, y, 8, 8); - - y += 10; - } - } - - GlStateManager.disableBlend(); - - int x = 0; - y += 16; - - // Look how much shorter this is with the WandHelper class! - for(Item item : WandHelper.getSpecialUpgrades()){ - - int level = WandHelper.getUpgradeLevel(stack, item); - - if(level > 0){ - - ItemStack stack1 = new ItemStack(item, level); - GlStateManager.enableDepth(); - - this.itemRender.renderItemAndEffectIntoGUI(stack1, left + MAIN_GUI_WIDTH + TOOLTIP_TEXT_INSET + x, y); - this.itemRender.renderItemOverlayIntoGUI(this.fontRenderer, stack1, left + MAIN_GUI_WIDTH + TOOLTIP_TEXT_INSET + x, y, null); - - x += 18; - - if(TOOLTIP_TEXT_INSET * 2 + x + 16 > TOOLTIP_WIDTH){ - x = 0; - y += 18; - } - - GlStateManager.disableDepth(); - GlStateManager.disableLighting(); // Whyyyyyy? - } + for(TooltipElement element : this.tooltipElements){ + y = element.drawBackgroundLayer(x, y, stack, partialTicks, mouseX, mouseY); } } } @@ -451,95 +390,11 @@ public class GuiArcaneWorkbench extends GuiContainer { if(((IWorkbenchItem)stack.getItem()).showTooltip(stack)){ - int y = 6; + int x = left + MAIN_GUI_WIDTH + TOOLTIP_BORDER; + int y = TOOLTIP_BORDER; - this.fontRenderer.drawStringWithShadow("\u00A7f" + stack.getDisplayName(), left + MAIN_GUI_WIDTH + TOOLTIP_TEXT_INSET, y, 0); - - if(stack.getItem() instanceof IManaStoringItem && ((IManaStoringItem)stack.getItem()).showManaInWorkbench(this.mc.player, stack)){ - y += 14; - this.fontRenderer.drawStringWithShadow( - "\u00A77" + I18n.format("container." + Wizardry.MODID + ":arcane_workbench.mana") - + " " + ((IManaStoringItem)stack.getItem()).getMana(stack) + "/" - + ((IManaStoringItem)stack.getItem()).getManaCapacity(stack), - left + MAIN_GUI_WIDTH + TOOLTIP_TEXT_INSET, y, 0); - } - - // Progression tier text - if(stack.getItem() instanceof ItemWand && !Wizardry.settings.legacyWandLevelling){ - - y += 14; - - Tier tier = ((ItemWand)stack.getItem()).tier; - - this.fontRenderer.drawStringWithShadow(tier.getDisplayNameWithFormatting(), left + MAIN_GUI_WIDTH + TOOLTIP_TEXT_INSET, y, 0); - - if(tier != Tier.MASTER){ - Tier nextTier = Tier.values()[tier.level + 1]; - String s = TextFormatting.DARK_GRAY.toString() + nextTier.getDisplayName(); - if(WandHelper.getProgression(stack) >= nextTier.progression) s = nextTier.getDisplayNameWithFormatting(); - this.fontRenderer.drawStringWithShadow(s, left + MAIN_GUI_WIDTH + TOOLTIP_WIDTH - - TOOLTIP_TEXT_INSET - fontRenderer.getStringWidth(s), y, 0); - } - - y += 4; - } - - y += 14; - - if(stack.getItem() instanceof ISpellCastingItem && ((ISpellCastingItem)stack.getItem()).showSpellsInWorkbench(this.mc.player, stack)){ - - Spell[] spells = ((ISpellCastingItem)stack.getItem()).getSpells(stack); - - for(Spell spell : spells){ - - boolean discovered = true; - - if(!this.mc.player.isCreative() && WizardData.get(this.mc.player) != null){ - discovered = WizardData.get(this.mc.player).hasSpellBeenDiscovered(spell); - } - - if(discovered){ - this.fontRenderer.drawStringWithShadow(spell.getDisplayNameWithFormatting(), left + MAIN_GUI_WIDTH + TOOLTIP_TEXT_INSET + 10, y, 0); - }else{ - this.mc.standardGalacticFontRenderer.drawStringWithShadow( - "\u00A79" + SpellGlyphData.getGlyphName(spell, this.mc.world), left + MAIN_GUI_WIDTH + TOOLTIP_TEXT_INSET + 10, y, 0); - } - y += 10; - } - } - - if(WandHelper.getTotalUpgrades(stack) > 0){ - - y += 6; - - this.fontRenderer.drawStringWithShadow("\u00A7f" + I18n.format("container." - + Wizardry.MODID + ":arcane_workbench.upgrades"), left + MAIN_GUI_WIDTH + TOOLTIP_TEXT_INSET, y, 0); - - int x = 0; - y += 10; - - // Wand upgrade tooltips - for(Item item : WandHelper.getSpecialUpgrades()){ - - int level = WandHelper.getUpgradeLevel(stack, item); - - if(level > 0){ - // The javadoc for isPointInRegion is ambiguous; what it means is that the REGION is - // relative to the GUI but the POINT isn't. - if(isPointInRegion(left + MAIN_GUI_WIDTH + TOOLTIP_TEXT_INSET + x, y, 16, 16, mouseX, mouseY)){ - ItemStack stack1 = new ItemStack(item, level); - this.renderToolTip(stack1, mouseX - guiLeft, mouseY - guiTop); - } - - x += 18; - - if(TOOLTIP_TEXT_INSET * 2 + x + 16 > TOOLTIP_WIDTH){ - x = 0; - y += 18; - } - - } - } + for(TooltipElement element : this.tooltipElements){ + y = element.drawForegroundLayer(x, y, stack, mouseX, mouseY); } } } @@ -575,7 +430,7 @@ public class GuiArcaneWorkbench extends GuiContainer { } @Override - public void handleMouseInput() throws IOException{ + public void handleMouseInput() throws IOException { super.handleMouseInput(); int scrollDist = -Mouse.getEventDWheel(); @@ -624,6 +479,477 @@ public class GuiArcaneWorkbench extends GuiContainer { } } + @SubscribeEvent + public static void onTextureStitchEvent(TextureStitchEvent.Pre event){ + event.getMap().registerSprite(ContainerArcaneWorkbench.EMPTY_SLOT_CRYSTAL); + event.getMap().registerSprite(ContainerArcaneWorkbench.EMPTY_SLOT_UPGRADE); + } + + private abstract static class TooltipElement { + + private final TooltipElement[] children; + private final int spaceAfter; + + public TooltipElement(int spaceAfter, TooltipElement... children){ + this.children = children; + this.spaceAfter = spaceAfter; + } + + // Externally-called methods + + /** + * Returns the height of this tooltip element and its children, with spacing, or 0 if it is not visible. + * @param stack The item stack currently in the central slot of the workbench + * @return The total height of this tooltip element and its children, including spacing + */ + public int getTotalHeight(ItemStack stack){ + if(!this.isVisible(stack)) return 0; + int height = this.getHeight(stack); + for(TooltipElement child : children) height += child.getTotalHeight(stack); + return height + spaceAfter; + } + + /** + * Draws the background layer of this tooltip element and all of its children. + * @param x The x-coordinate of the top left corner of this element + * @param y The y-coordinate of the top left corner of this element + * @param stack The item stack currently in the central slot of the workbench + * @param partialTicks The current partial tick time + * @param mouseX The current x-coordinate of the cursor + * @param mouseY The current y-coordinate of the cursor + * @return The y-coordinate at which the next tooltip element should start + */ + public int drawBackgroundLayer(int x, int y, ItemStack stack, float partialTicks, int mouseX, int mouseY){ + if(!this.isVisible(stack)) return y; + this.drawBackground(x, y, stack, partialTicks, mouseX, mouseY); + y += this.getHeight(stack); + for(TooltipElement child : children) y = child.drawBackgroundLayer(x, y, stack, partialTicks, mouseX, mouseY); + return y + spaceAfter; + } + + /** + * Draws the foreground layer of this tooltip element and all of its children. + * @param x The x-coordinate of the top left corner of this element + * @param y The y-coordinate of the top left corner of this element + * @param stack The item stack currently in the central slot of the workbench + * @param mouseX The current x-coordinate of the cursor + * @param mouseY The current y-coordinate of the cursor + * @return The y-coordinate at which the next tooltip element should start + */ + public int drawForegroundLayer(int x, int y, ItemStack stack, int mouseX, int mouseY){ + if(!this.isVisible(stack)) return y; + this.drawForeground(x, y, stack, mouseX, mouseY); + y += this.getHeight(stack); + for(TooltipElement child : children) y = child.drawForegroundLayer(x, y, stack, mouseX, mouseY); + return y + spaceAfter; + } + + // Abstract internal methods + + /** + * Returns whether this tooltip element should be shown. + * @param stack The item stack currently in the central slot of the workbench + * @return True if this element should be shown, false if not. + */ + protected abstract boolean isVisible(ItemStack stack); + + /** + * Returns the height of this tooltip element. This is for internal implementation. + * @param stack The item stack currently in the central slot of the workbench + * @return The height of this tooltip element, excluding children and spacing. + */ + protected abstract int getHeight(ItemStack stack); + + /** + * Draws the background layer of this tooltip element (excluding children). This is for internal implementation. + * @param x The x-coordinate of the top left corner of this element + * @param y The y-coordinate of the top left corner of this element + * @param stack The item stack currently in the central slot of the workbench + * @param partialTicks The current partial tick time + * @param mouseX The current x-coordinate of the cursor + * @param mouseY The current y-coordinate of the cursor + */ + protected abstract void drawBackground(int x, int y, ItemStack stack, float partialTicks, int mouseX, int mouseY); + + /** + * Draws the foreground layer of this tooltip element (excluding children). This is for internal implementation. + * @param x The x-coordinate of the top left corner of this element + * @param y The y-coordinate of the top left corner of this element + * @param stack The item stack currently in the central slot of the workbench + * @param mouseX The current x-coordinate of the cursor + * @param mouseY The current y-coordinate of the cursor + */ + protected abstract void drawForeground(int x, int y, ItemStack stack, int mouseX, int mouseY); + + } + + private class TooltipElementText extends TooltipElement { + + private final String text; // Can't change the language whilst in a GUI so we can just store the translated text + private final Style style; + + public TooltipElementText(String text, Style style, int spaceAfter, TooltipElement... children){ + super(spaceAfter, children); + this.text = text; + this.style = style; + } + + /** Returns the text for this element. */ + protected String getText(ItemStack stack){ + return text; + } + + protected FontRenderer getFontRenderer(ItemStack stack){ + return fontRenderer; + } + + protected int getColour(ItemStack stack){ + return 0; + } + + @Override + protected boolean isVisible(ItemStack stack){ + return true; // Always visible by default + } + + @Override + protected int getHeight(ItemStack stack){ + return getFontRenderer(stack).listFormattedStringToWidth(getText(stack), TOOLTIP_WIDTH - 2 * TOOLTIP_BORDER) + .size() * getFontRenderer(stack).FONT_HEIGHT; + } + + @Override + protected void drawBackground(int x, int y, ItemStack stack, float partialTicks, int mouseX, int mouseY){ + // Nothing here because this element is only text! + } + + @Override + protected void drawForeground(int x, int y, ItemStack stack, int mouseX, int mouseY){ + for(String line : getFontRenderer(stack).listFormattedStringToWidth(getText(stack), TOOLTIP_WIDTH - 2 * TOOLTIP_BORDER)){ + getFontRenderer(stack).drawStringWithShadow(style.getFormattingCode() + line, x, y, getColour(stack)); + y += getFontRenderer(stack).FONT_HEIGHT; + } + } + } + + private class TooltipElementItemName extends TooltipElementText { + + public TooltipElementItemName(Style style, int spaceAfter){ + super(null, style, spaceAfter); + } + + @Override + protected String getText(ItemStack stack){ + return stack.getDisplayName(); + } + + } + + private class TooltipElementManaReadout extends TooltipElementText { + + public TooltipElementManaReadout(int spaceAfter){ + super(null, new Style().setColor(TextFormatting.BLUE), spaceAfter); + } + + @Override + protected String getText(ItemStack stack){ + return I18n.format("container." + Wizardry.MODID + ":arcane_workbench.mana", + ((IManaStoringItem)stack.getItem()).getMana(stack), + ((IManaStoringItem)stack.getItem()).getManaCapacity(stack)); + } + + @Override + protected boolean isVisible(ItemStack stack){ + return stack.getItem() instanceof IManaStoringItem && ((IManaStoringItem)stack.getItem()).showManaInWorkbench(mc.player, stack); + } + + } + + private class TooltipElementProgressionBar extends TooltipElement { + + private static final int PROGRESSION_BAR_WIDTH = 131; + private static final int PROGRESSION_BAR_HEIGHT = 3; + + public TooltipElementProgressionBar(int spaceAfter){ + super(spaceAfter); + } + + @Override + protected boolean isVisible(ItemStack stack){ + return stack.getItem() instanceof ItemWand && !Wizardry.settings.legacyWandLevelling; + } + + @Override + protected int getHeight(ItemStack stack){ + return fontRenderer.FONT_HEIGHT + LINE_SPACING_NARROW + PROGRESSION_BAR_HEIGHT; + } + + @Override + protected void drawBackground(int x, int y, ItemStack stack, float partialTicks, int mouseX, int mouseY){ + + y += fontRenderer.FONT_HEIGHT + LINE_SPACING_NARROW; + + Tier tier = ((ItemWand)stack.getItem()).tier; // Only called if isVisible() returns true so this is ok + + float progressFraction = 1; + + if(tier != Tier.MASTER){ + progressFraction = (float)WandHelper.getProgression(stack) / Tier.values()[tier.level + 1].progression; + } + + DrawingUtils.drawTexturedRect(x, y, MAIN_GUI_WIDTH, ySize + PROGRESSION_BAR_HEIGHT, PROGRESSION_BAR_WIDTH, PROGRESSION_BAR_HEIGHT, TEXTURE_WIDTH, TEXTURE_HEIGHT); + int width = (int)(PROGRESSION_BAR_WIDTH * progressFraction); + DrawingUtils.drawTexturedRect(x, y, MAIN_GUI_WIDTH, ySize, width, PROGRESSION_BAR_HEIGHT, TEXTURE_WIDTH, TEXTURE_HEIGHT); + } + + @Override + protected void drawForeground(int x, int y, ItemStack stack, int mouseX, int mouseY){ + + Tier tier = ((ItemWand)stack.getItem()).tier; + + fontRenderer.drawStringWithShadow(tier.getDisplayNameWithFormatting(), x, y, 0); + + if(tier != Tier.MASTER){ + Tier nextTier = Tier.values()[tier.level + 1]; + String s = TextFormatting.DARK_GRAY.toString() + nextTier.getDisplayName(); + if(WandHelper.getProgression(stack) >= nextTier.progression) s = nextTier.getDisplayNameWithFormatting(); + fontRenderer.drawStringWithShadow(s, x + TOOLTIP_WIDTH - TOOLTIP_BORDER * 2 - fontRenderer.getStringWidth(s), y, 0); + } + } + + } + + private class TooltipElementSpellList extends TooltipElement { + + public TooltipElementSpellList(int spaceAfter){ + super(spaceAfter, generateSpellEntries(8)); + } + + @Override + protected boolean isVisible(ItemStack stack){ + return stack.getItem() instanceof ISpellCastingItem && ((ISpellCastingItem)stack.getItem()).showSpellsInWorkbench(mc.player, stack); + } + + @Override + protected int getHeight(ItemStack stack){ + return 0; // Doesn't have any height of its own + } + + @Override + public int drawBackgroundLayer(int x, int y, ItemStack stack, float partialTicks, int mouseX, int mouseY){ + // It's more efficient to do GL state changes once in here + GlStateManager.enableBlend(); + y = super.drawBackgroundLayer(x, y, stack, partialTicks, mouseX, mouseY); + GlStateManager.disableBlend(); + return y; + } + + @Override + protected void drawBackground(int x, int y, ItemStack stack, float partialTicks, int mouseX, int mouseY){ + // Has no background of its own + } + + @Override + protected void drawForeground(int x, int y, ItemStack stack, int mouseX, int mouseY){ + //Has no text of its own + } + } + + private TooltipElement[] generateSpellEntries(int count){ + TooltipElement[] entries = new TooltipElement[count]; + for(int i=0; i 0; + } + + } + + private class TooltipElementUpgrades extends TooltipElement { + + private static final int ITEM_SIZE = 16; + private static final int ITEM_SPACING = 2; + + public TooltipElementUpgrades(int spaceAfter){ + super(spaceAfter); + } + + @Override + protected boolean isVisible(ItemStack stack){ + return true; // Handled by parent + } + + @Override + protected int getHeight(ItemStack stack){ + int rows = 1 + (WandHelper.getTotalUpgrades(stack) * (ITEM_SIZE + ITEM_SPACING) - ITEM_SPACING) + / (TOOLTIP_WIDTH - TOOLTIP_BORDER * 2); + return rows * (ITEM_SIZE + ITEM_SPACING) - ITEM_SPACING; + } + + @Override + protected void drawBackground(int x, int y, ItemStack stack, float partialTicks, int mouseX, int mouseY){ + + GlStateManager.enableDepth(); + + int x1 = 0; + + // Upgrades + for(Item item : WandHelper.getSpecialUpgrades()){ + + int level = WandHelper.getUpgradeLevel(stack, item); + + if(level > 0){ + + ItemStack upgrade = new ItemStack(item, level); + + itemRender.renderItemAndEffectIntoGUI(upgrade, x + x1, y); + itemRender.renderItemOverlayIntoGUI(fontRenderer, upgrade, x + x1, y, null); + + x1 += ITEM_SIZE + ITEM_SPACING; + + if(x1 + ITEM_SIZE > TOOLTIP_WIDTH - TOOLTIP_BORDER * 2){ + x1 = 0; + y += ITEM_SIZE + ITEM_SPACING; + } + } + } + + GlStateManager.disableDepth(); + GlStateManager.disableLighting(); // Whyyyyyy? + } + + @Override + protected void drawForeground(int x, int y, ItemStack stack, int mouseX, int mouseY){ + + int x1 = 0; + + // Wand upgrade tooltips + for(Item item : WandHelper.getSpecialUpgrades()){ + + int level = WandHelper.getUpgradeLevel(stack, item); + + if(level > 0){ + // The javadoc for isPointInRegion is ambiguous; what it means is that the REGION is + // relative to the GUI but the POINT isn't. + if(isPointInRegion(x + x1, y, ITEM_SIZE, ITEM_SIZE, mouseX, mouseY)){ + ItemStack upgrade = new ItemStack(item, level); + renderToolTip(upgrade, mouseX - guiLeft, mouseY - guiTop); + } + + x1 += ITEM_SIZE + ITEM_SPACING; + + if(TOOLTIP_BORDER * 2 + x1 + ITEM_SIZE > TOOLTIP_WIDTH){ + x1 = 0; + y += ITEM_SIZE + ITEM_SPACING; + } + + } + } + + } + + } + private static class GuiButtonApply extends GuiButton { public GuiButtonApply(int id, int x, int y){ @@ -656,10 +982,4 @@ public class GuiArcaneWorkbench extends GuiContainer { } } - @SubscribeEvent - public static void onTextureStitchEvent(TextureStitchEvent.Pre event){ - event.getMap().registerSprite(ContainerArcaneWorkbench.EMPTY_SLOT_CRYSTAL); - event.getMap().registerSprite(ContainerArcaneWorkbench.EMPTY_SLOT_UPGRADE); - } - } \ No newline at end of file diff --git a/src/main/resources/assets/ebwizardry/lang/en_gb.lang b/src/main/resources/assets/ebwizardry/lang/en_gb.lang index c2b51ac9..688732dd 100644 --- a/src/main/resources/assets/ebwizardry/lang/en_gb.lang +++ b/src/main/resources/assets/ebwizardry/lang/en_gb.lang @@ -529,9 +529,8 @@ gui.ebwizardry\:spell_book.mana_cost_undiscovered=Mana Cost: ? gui.ebwizardry\:lectern.title=Spell Lookup container.ebwizardry\:arcane_workbench=Arcane Workbench -container.ebwizardry\:arcane_workbench.apply=Apply -container.ebwizardry\:arcane_workbench.mana=Mana\: -container.ebwizardry\:arcane_workbench.upgrades=Applied Upgrades\: +container.ebwizardry\:arcane_workbench.mana=Mana\: %s/%s +container.ebwizardry\:arcane_workbench.upgrades=Applied Upgrades container.ebwizardry\:arcane_workbench.bookshelves=Bookshelves container.ebwizardry\:arcane_workbench.sort_tier=Sort by Tier diff --git a/src/main/resources/assets/ebwizardry/lang/en_us.lang b/src/main/resources/assets/ebwizardry/lang/en_us.lang index ab54b962..e628f760 100644 --- a/src/main/resources/assets/ebwizardry/lang/en_us.lang +++ b/src/main/resources/assets/ebwizardry/lang/en_us.lang @@ -529,9 +529,8 @@ gui.ebwizardry\:spell_book.mana_cost_undiscovered=Mana Cost: ? gui.ebwizardry\:lectern.title=Spell Lookup container.ebwizardry\:arcane_workbench=Arcane Workbench -container.ebwizardry\:arcane_workbench.apply=Apply -container.ebwizardry\:arcane_workbench.mana=Mana\: -container.ebwizardry\:arcane_workbench.upgrades=Applied Upgrades\: +container.ebwizardry\:arcane_workbench.mana=Mana\: %s/%s +container.ebwizardry\:arcane_workbench.upgrades=Applied Upgrades container.ebwizardry\:arcane_workbench.bookshelves=Bookshelves container.ebwizardry\:arcane_workbench.sort_tier=Sort by Tier diff --git a/src/main/resources/assets/ebwizardry/textures/gui/container/arcane_workbench.png b/src/main/resources/assets/ebwizardry/textures/gui/container/arcane_workbench.png index 252ba0a658ed994512ee5df55ad4829e34b26d8e..2261cfa34e1dfda337be3c81fd024f410e0a24a7 100644 GIT binary patch delta 37801 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 RR3Zry^mO%eS?83{1ORQ4j0XS!