Book of Lore pages added

This commit is contained in:
Kino 2017-11-21 22:57:11 -05:00
parent c31debe0d6
commit 82d3d7e3a7
3 changed files with 123 additions and 70 deletions

View file

@ -1,26 +1,19 @@
package com.legacy.aether.client.gui; package com.legacy.aether.client.gui;
import java.util.HashMap; import java.io.IOException;
import java.util.Iterator;
import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import com.legacy.aether.client.gui.button.GuiLoreButton;
import com.legacy.aether.common.containers.ContainerLore; import com.legacy.aether.common.containers.ContainerLore;
import com.legacy.aether.common.registry.AetherLore; import com.legacy.aether.common.registry.AetherLore;
import com.legacy.aether.common.registry.lore.AetherLoreEntry;
import com.legacy.aether.common.registry.lore.EndLoreEntry;
import com.legacy.aether.common.registry.lore.NetherLoreEntry;
import com.legacy.aether.common.registry.lore.OverworldLoreEntry;
import com.legacy.aether.common.registry.objects.EntryInformation;
import com.legacy.aether.common.registry.objects.LoreEntry;
public class GuiLore extends GuiContainer public class GuiLore extends GuiContainer
{ {
@ -29,7 +22,13 @@ public class GuiLore extends GuiContainer
private static final ResourceLocation TEXTURE_LORE_BOOK = new ResourceLocation("aether_legacy", "textures/gui/lore_book.png"); private static final ResourceLocation TEXTURE_LORE_BOOK = new ResourceLocation("aether_legacy", "textures/gui/lore_book.png");
private HashMap<String, LoreEntry> lore_pages = new HashMap<String, LoreEntry>(); private String stringToLoad;
private ItemStack currentItem;
private GuiButton previousPage, nextPage;
private int pageNumber;
public GuiLore(InventoryPlayer inventoryplayer) public GuiLore(InventoryPlayer inventoryplayer)
{ {
@ -41,27 +40,35 @@ public class GuiLore extends GuiContainer
public void initGui() public void initGui()
{ {
super.initGui(); super.initGui();
registerSection("Overworld Lore", new OverworldLoreEntry().initEntries()); //199 Complete
registerSection("Nether Lore", new NetherLoreEntry().initEntries()); // 22 Complete this.previousPage = new GuiLoreButton(19, this.width / 2 - 110, this.height / 2 + 72, 20, 20, "<");
registerSection("End Lore", new EndLoreEntry().initEntries()); //11 Complete this.nextPage = new GuiLoreButton(20, this.width / 2 + 90, this.height / 2 + 72, 20, 20, ">");
registerSection("Aether Lore", new AetherLoreEntry().initEntries()); //157 Complete
this.addButton(this.previousPage);
this.addButton(this.nextPage);
} }
public void registerSection(String name, LoreEntry lore) @Override
{ protected void actionPerformed(GuiButton button) throws IOException
lore_pages.put(name, lore); {
} if (this.previousPage == button)
{
public LoreEntry getSection(String name) --this.pageNumber;
{ }
return lore_pages.get(name); else if (this.nextPage == button)
} {
++this.pageNumber;
}
}
@Override
protected void drawGuiContainerForegroundLayer(int par1, int par2) protected void drawGuiContainerForegroundLayer(int par1, int par2)
{ {
this.fontRendererObj.drawString("Prev.", 16, 160, 4210752);
this.fontRendererObj.drawString("Next", 218, 160, 4210752);
this.fontRendererObj.drawString("Book", 32, -5, 4210752); this.fontRendererObj.drawString("Book", 32, -5, 4210752);
this.fontRendererObj.drawString("of Lore:", 24, 4, 4210752); this.fontRendererObj.drawString("of Lore:", 24, 4, 4210752);
//this.fontRendererObj.drawString("Add Object", 70, 0, 4210752);
this.fontRendererObj.drawString("Item :", 75, 0, 4210752); this.fontRendererObj.drawString("Item :", 75, 0, 4210752);
@ -69,62 +76,48 @@ public class GuiLore extends GuiContainer
if (searchedStack != null) if (searchedStack != null)
{ {
this.drawCenteredString(this.fontRendererObj, searchedStack.getRarity().rarityColor.toString() + searchedStack.getItem().getItemStackDisplayName(searchedStack), 71, 18, 4210752); if (this.currentItem == null || (searchedStack.getItem() != this.currentItem.getItem() || searchedStack.getMetadata() != this.currentItem.getMetadata()))
{
this.pageNumber = 0;
this.stringToLoad = AetherLore.getLoreEntry(searchedStack);
this.currentItem = searchedStack;
}
int nameSize = 0;
for (String name : this.fontRendererObj.listFormattedStringToWidth(searchedStack.getItem().getItemStackDisplayName(searchedStack), 109))
{
this.drawCenteredString(this.fontRendererObj, searchedStack.getRarity().rarityColor.toString() + name, 71, 18 + (10 * nameSize), 4210752);
++nameSize;
}
int size = 0; int size = 0;
for (String lore : this.fontRendererObj.listFormattedStringToWidth(AetherLore.getLoreEntry(searchedStack), 111)) for (String lore : this.fontRendererObj.listFormattedStringToWidth(this.stringToLoad, 109))
{ {
this.fontRendererObj.drawString(lore, ((size >= 6 ? 184 : 71) - this.fontRendererObj.getStringWidth(lore) / 2), (size >= 6 ? -68 : 28) + (10 * size), 4210752); if (size >= 15 * this.pageNumber && size + (nameSize - 1) <= 15 * (this.pageNumber + 1))
//this.drawCenteredString(this.fontRendererObj, lore, size >= 6 ? 182 : 71, (size >= 6 ? -70 : 28) + (10 * size), 4210752); {
int actualSize = this.pageNumber >= 1 ? size - ((15 - (nameSize - 1)) * this.pageNumber) : size + (nameSize - 1);
this.fontRendererObj.drawString(lore, (((actualSize >= 6 ? 184 : 71)) - this.fontRendererObj.getStringWidth(lore) / 2), (actualSize >= 6 ? -68 : 28) + (10 * actualSize), 4210752);
}
size++; size++;
} }
//this.fontRendererObj.drawSplitString(str, x, y, wrapWidth, textColor); this.previousPage.enabled = this.pageNumber != 0;
this.nextPage.enabled = size > (15 * (this.pageNumber + 1));
} }
/*ItemStack searchedStack = ((ContainerLore)this.inventorySlots).loreSlot.getStackInSlot(0); else
if (searchedStack != null)
{ {
Iterator<LoreEntry> entries = this.lore_pages.values().iterator(); this.pageNumber = 0;
this.stringToLoad = "";
while(entries.hasNext()) this.currentItem = null;
{ }
Iterator<EntryInformation> entry_contents = entries.next().EntryInformation().iterator();
while (entry_contents.hasNext())
{
EntryInformation information = entry_contents.next();
Item loreItem = information.base.getItem();
if (loreItem != null && (information.base.getItemDamage() == searchedStack.getItemDamage() || information.base.isItemStackDamageable()) && loreItem == searchedStack.getItem())
{
//GlStateManager.pushMatrix();
this.drawCenteredString(this.fontRendererObj, information.base.getRarity().rarityColor.toString() + information.s, 71, 18, 4210752);
this.fontRendererObj.drawSplitString(information.s1 + " " + information.s2 + " " + information.s3 + " " + information.s4, 18, 30, 120, 4210752);
//this.fontRendererObj.drawStringWithShadow(information.base.getRarity().rarityColor.toString() + information.s, 18, 18, 4210752);
//this.fontRendererObj.drawString(information.s1, 134, 28, 4210752);
//this.fontRendererObj.drawString(information.s2, 134, 38, 4210752);
//this.fontRendererObj.drawString(information.s3, 134, 48, 4210752);
//this.fontRendererObj.drawString(information.s4, 134, 58, 4210752);
//this.fontRendererObj.drawString(information.s5, 134, 68, 4210752);
//this.fontRendererObj.drawString(information.s6, 134, 78, 4210752);
//GlStateManager.popMatrix();
}
}
}
}*/
}
public void onGuiClosed()
{
super.onGuiClosed();
} }
@Override
protected void drawGuiContainerBackgroundLayer(float f, int i1, int i2) protected void drawGuiContainerBackgroundLayer(float f, int i1, int i2)
{ {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
@ -138,6 +131,6 @@ public class GuiLore extends GuiContainer
this.mc.renderEngine.bindTexture(TEXTURE_LORE_BOOK); this.mc.renderEngine.bindTexture(TEXTURE_LORE_BOOK);
Gui.drawModalRectWithCustomSizedTexture(j - 1, k - 20, 0, 0, this.xSize + 20, this.ySize - 60, 275, 315); Gui.drawModalRectWithCustomSizedTexture(j - 1, k - 20, 0, 0, this.xSize + 20, this.ySize - 60, 275, 315);
Gui.drawModalRectWithCustomSizedTexture(j + 90, k - 5, 0, 225, this.xSize + 20, this.ySize - 177, 500, 500); Gui.drawModalRectWithCustomSizedTexture(j + 90, k - 5, 0, 225, this.xSize + 20, this.ySize - 177, 500, 500);
//Gui.drawScaledCustomSizeModalRect(j - 1, k - 20, 200, 200, 100, 100, this.xSize + 20, this.ySize + 120, 100, 100);
} }
} }

View file

@ -0,0 +1,60 @@
package com.legacy.aether.client.gui.button;
import com.legacy.aether.common.Aether;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.util.ResourceLocation;
public class GuiLoreButton extends GuiButton
{
protected static final ResourceLocation BUTTON_TEXTURES = Aether.locate("textures/gui/lore_widgets.png");
public GuiLoreButton(int buttonId, int x, int y, int widthIn, int heightIn, String buttonText)
{
super(buttonId, x, y, widthIn, heightIn, buttonText);
}
/**
* Draws this button to the screen.
*/
@Override
public void drawButton(Minecraft mc, int mouseX, int mouseY)
{
if (this.visible)
{
FontRenderer fontrenderer = mc.fontRendererObj;
mc.getTextureManager().bindTexture(BUTTON_TEXTURES);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
this.hovered = mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height;
int i = this.getHoverState(this.hovered);
GlStateManager.enableBlend();
GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, 46 + i * 20, this.width / 2, this.height);
this.drawTexturedModalRect(this.xPosition + this.width / 2, this.yPosition, 200 - this.width / 2, 46 + i * 20, this.width / 2, this.height);
this.mouseDragged(mc, mouseX, mouseY);
int j = 14737632;
if (this.packedFGColour != 0)
{
j = this.packedFGColour;
}
else
if (!this.enabled)
{
j = 10526880;
}
else if (this.hovered)
{
j = 16777120;
}
this.drawCenteredString(fontrenderer, this.displayString, this.xPosition + this.width / 2, this.yPosition + (this.height - 8) / 2, j);
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB