package crazypants.enderio.conduit.gui; import java.awt.Color; import net.minecraft.client.gui.GuiButton; import com.enderio.core.client.gui.button.ColorButton; import com.enderio.core.client.render.ColorUtil; import com.enderio.core.common.util.DyeColor; import crazypants.enderio.EnderIO; import crazypants.enderio.conduit.IConduit; import crazypants.enderio.conduit.oc.IOCConduit; import crazypants.enderio.conduit.packet.PacketOCConduitSignalColor; import crazypants.enderio.conduit.packet.PacketRedstoneConduitOutputStrength; import crazypants.enderio.conduit.packet.PacketRedstoneConduitSignalColor; import crazypants.enderio.gui.IconEIO; import crazypants.enderio.network.PacketHandler; public class OCSettings extends BaseSettingsPanel { private static final int ID_COLOR_BUTTON = GuiExternalConnection.nextButtonId(); private ColorButton cb; private String signalColorStr = EnderIO.lang.localize("gui.conduit.redstone.color"); private final IOCConduit occon; public OCSettings(GuiExternalConnection gui, IConduit con) { super(IconEIO.WRENCH_OVERLAY_OC, EnderIO.lang.localize("itemOCConduit.name"), gui, con); occon = (IOCConduit) con; int x = 0; int y = customTop; x += gap + gap + 2 + gui.getFontRenderer().getStringWidth(signalColorStr); cb = new ColorButton(gui, ID_COLOR_BUTTON, x, y); cb.setToolTipHeading(EnderIO.lang.localize("gui.conduit.redstone.signalColor")); DyeColor sigCol = occon.getSignalColor(gui.getDir()); cb.setColorIndex(sigCol.ordinal()); x += cb.getButtonWidth(); } @Override public void actionPerformed(GuiButton guiButton) { super.actionPerformed(guiButton); if (guiButton.id == ID_COLOR_BUTTON && cb != null) { occon.setSignalColor(gui.getDir(), DyeColor.values()[cb.getColorIndex()]); PacketHandler.INSTANCE.sendToServer(new PacketOCConduitSignalColor(occon, gui.getDir())); } } @Override protected void initCustomOptions() { if (cb != null) { cb.setColorIndex(cb.getColorIndex()); cb.onGuiInit(); } } @Override public void deactivate() { super.deactivate(); if (cb != null) { cb.detach(); } } @Override protected void renderCustomOptions(int top, float par1, int par2, int par3) { if (cb != null) { gui.getFontRenderer().drawString(signalColorStr, left, top, ColorUtil.getRGB(Color.darkGray)); } } }