package crazypants.enderio.machine.gui; import java.util.ArrayList; import org.lwjgl.input.Keyboard; import com.enderio.core.api.client.gui.IGuiScreen; import com.enderio.core.client.gui.button.ToggleButton; import com.enderio.core.client.handlers.SpecialTooltipHandler; import crazypants.enderio.EnderIO; import crazypants.enderio.gui.IconEIO; import crazypants.enderio.machine.IIoConfigurable; import crazypants.enderio.machine.PacketIoMode; import crazypants.enderio.network.PacketHandler; public class GuiButtonIoConfig extends ToggleButton { private final IIoConfigurable config; private final GuiOverlayIoConfig configOverlay; @SuppressWarnings("LeakingThisInConstructor") public GuiButtonIoConfig(IGuiScreen gui, int id, int x, int y, IIoConfigurable config, GuiOverlayIoConfig configOverlay) { super(gui, id, x, y, IconEIO.IO_CONFIG_UP, IconEIO.IO_CONFIG_DOWN); this.config = config; this.configOverlay = configOverlay; this.configOverlay.setConfigB(this); String configTooltip = EnderIO.lang.localize("gui.machine.ioMode.overlay.tooltip"); setUnselectedToolTip(configTooltip); ArrayList<String> list = new ArrayList<String>(); list.add(configTooltip); SpecialTooltipHandler.addTooltipFromResources(list, "enderio.gui.machine.ioMode.overlay.tooltip.visible.line"); if(list.size() > 1) { setSelectedToolTip(list.toArray(new String[list.size()])); } } @Override protected boolean toggleSelected() { if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) { if(!configOverlay.isVisible()) { return false; } config.clearAllIoModes(); PacketHandler.INSTANCE.sendToServer(new PacketIoMode(config)); } else { boolean vis = !configOverlay.isVisible(); configOverlay.setVisible(vis); } return true; } }