package joshie.progression.gui.buttons; import joshie.progression.api.criteria.ICriteria; import joshie.progression.api.criteria.ITab; import joshie.progression.handlers.RuleHandler; import joshie.progression.json.Options; import joshie.progression.lib.PInfo; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import java.util.ArrayList; import java.util.UUID; import static joshie.progression.Progression.translate; import static joshie.progression.gui.core.GuiList.*; import static net.minecraft.util.text.TextFormatting.GRAY; import static net.minecraft.util.text.TextFormatting.WHITE; public class ButtonNewCriteria extends ButtonBase { public ButtonNewCriteria(int x, int y) { super(0, x, y, 25, 25, ""); } @Override public void drawButton(Minecraft mc, int x, int y) { int xtra = isSideways ? CORE.getOffsetX() : 0; boolean hovering = hovered = x >= xPosition + xtra && y >= yPosition && x < xPosition + xtra + width && y < yPosition + height; int k = getHoverState(hovering); GlStateManager.enableBlend(); GlStateManager.color(1F, 1F, 1F, 1F); if (!isSideways) { int yTexture = k == 2 ? 25 : 0; CORE.drawTexture(PInfo.textures, xPosition, yPosition, 231, yTexture, 25, 25); CORE.drawText("New", xPosition + 2, yPosition + 9, THEME.newButtonFontColor); } else { int xTexture = k == 2 ? 206 : 231;; CORE.drawTexture(PInfo.textures, xPosition + CORE.getOffsetX(), yPosition, xTexture, 206, 25, 22); CORE.drawText("New", xPosition + 4 + CORE.getOffsetX(), yPosition + 8, THEME.newButtonFontColor); } if (k == 2 && !Options.hideTooltips) { ArrayList<String> name = new ArrayList(); name.add(WHITE + translate("tab.new.new")); name.add(GRAY + translate("tab.new.criteria")); name.add(GRAY + translate("tab.new.tab")); name.add(GRAY + translate("tab.new.shift")); name.add(GRAY + translate("tab.new.alt")); name.add(GRAY + ""); name.add(GRAY + translate("tab.new.empty")); name.add(GRAY + translate("tab.new.space")); TOOLTIP.add(name); } } @Override public void onClicked() { CORE.clickedButton = true; if(GuiScreen.isAltKeyDown()) { TEMPLATE_SELECTOR_TAB.setVisible(); } else if (GuiScreen.isShiftKeyDown()) { TEMPLATE_SELECTOR_CRITERIA.setVisible(); } else if (GuiScreen.isCtrlKeyDown()) { RuleHandler.newTab(UUID.randomUUID(), true).setDisplayName(translate("tab.new.new.tab")).setStack(new ItemStack(Items.BOOK)).setVisibility(true); CORE.initGui(); } else { TREE_EDITOR.previous = null; TREE_EDITOR.selected = null; TREE_EDITOR.lastClicked = null; TREE_EDITOR.isDragging = false; ITab currentTab = TREE_EDITOR.currentTab; int mouseX = CORE.mouseX; int mouseY = CORE.mouseY; int offsetX = CORE.getOffsetX(); ICriteria criteria = RuleHandler.newCriteria(currentTab, UUID.randomUUID(), true); criteria.setCoordinates(mouseX - 50 - offsetX, mouseY - 10); TREE_EDITOR.addCriteria(criteria, mouseX - 50, mouseY - 10, offsetX); } } }