package joshie.progression.gui.editors; import joshie.progression.gui.core.FeatureAbstract; import joshie.progression.helpers.MCClientHelper; import joshie.progression.helpers.RenderItemHelper; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.item.ItemStack; import org.lwjgl.opengl.GL11; import static joshie.progression.gui.core.GuiList.*; public class FeatureItemSelectorTree extends FeatureAbstract implements ITextEditable { @Override public boolean isOverlay() { return true; } @Override public boolean isVisible() { return ITEM_EDITOR.getEditable() != null; } @Override public boolean mouseClicked(int mouseX, int mouseY, int button) { if (ITEM_EDITOR.sorted == null) { ITEM_EDITOR.updateSearch(); } int width = (int) ((double) (screenWidth - 75) / 16.133333334D); int j = 0; int k = 0; for (int i = ITEM_EDITOR.index; i < ITEM_EDITOR.index + (width * 10) + 10; i++) { if (i >= 0 && i < ITEM_EDITOR.sorted.size()) { if (mouseX >= 32 + (j * 16) && mouseX <= 32 + (j * 16) + 16) { if (mouseY >= 45 + (k * 16) && mouseY <= 45 + (k * 16) + 16) { ITEM_EDITOR.selectable.setObject(((ItemStack) ITEM_EDITOR.sorted.get(i)).copy()); return true; } } j++; if (j > width) { j = 0; k++; } } } return false; } @Override public void drawFeature(int mouseX, int mouseY) { GlStateManager.clear(GL11.GL_DEPTH_BUFFER_BIT); if (ITEM_EDITOR.selectable != null) { if (ITEM_EDITOR.sorted == null) { ITEM_EDITOR.updateSearch(); } int offsetX = CORE.getOffsetX(); ScaledResolution res = CORE.res; CORE.drawGradientRectWithBorder(30, 20, res.getScaledWidth() - 30, 40, THEME.blackBarGradient1, THEME.blackBarGradient2, THEME.blackBarBorder); CORE.drawRectWithBorder(30, 40, res.getScaledWidth() - 30, 210, THEME.blackBarUnderLine, THEME.blackBarUnderLineBorder); CORE.mc.fontRendererObj.drawString("Select Item - Click elsewhere to close", 35 - offsetX, CORE.screenTop + 27, THEME.blackBarFontColor); CORE.drawRectWithBorder(res.getScaledWidth() - 180, 23, res.getScaledWidth() - 35, 38, THEME.blackBarUnderLine, THEME.blackBarUnderLineBorder); String text = TEXT_EDITOR_SIMPLE.getText(this); if (text.equals("")) text = "Type to search"; CORE.mc.fontRendererObj.drawString(text + "...", res.getScaledWidth() - 175, CORE.screenTop + 28, THEME.blackBarFontColor); int width = (int) ((double) (screenWidth - 75) / 16.133333334D); //Switch 8 > 32 (-offsetX + 32) //Switch 16.6333333 to 18 //width * 4 to width *10 int j = 0; int k = 0; for (int i = ITEM_EDITOR.index; i < ITEM_EDITOR.index + (width * 10) + 10; i++) { if (i >= 0 && i < ITEM_EDITOR.sorted.size()) { ItemStack stack = (ItemStack) ITEM_EDITOR.sorted.get(i); RenderItemHelper.drawStack(stack, 32 + (j * 16), CORE.screenTop + 45 + (k * 16), 1F); if (mouseX >= 32 + (j * 16) && mouseX <= 32 + (j * 16) + 16) { if (mouseY >= 45 + (k * 16) && mouseY <= 45 + (k * 16) + 16) { TOOLTIP.add(stack.getTooltip(MCClientHelper.getPlayer(), false)); } } j++; if (j > width) { j = 0; k++; } } } } } @Override public String getTextField() { return ITEM_EDITOR.getTextField(); } @Override public void setTextField(String str) { ITEM_EDITOR.setTextField(str); } }