package mods.eln.sixnode.hub; import mods.eln.gui.GuiButtonEln; import mods.eln.gui.GuiContainerEln; import mods.eln.gui.GuiHelperContainer; import mods.eln.gui.IGuiObject; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; public class HubGui extends GuiContainerEln { int w, w2; int h, v0, v1, v2, v3, v4, v5, v6, v7; int v, h0, h1, h2, h3, h4, h5, h6, h7; GuiButtonEln connectionGridToggle[] = new GuiButtonEln[6]; HubRender render; public HubGui(EntityPlayer player, IInventory inventory, HubRender render) { super(new HubContainer(player, inventory)); this.render = render; } @Override public void initGui() { super.initGui(); /*for (int idx = 0; idx < 6; idx++) { connectionGridToggle[idx] = newGuiButton(6, 6 + idx * 20, 50, ""); }*/ w = 5; h = 80; v = 80; w2 = (v - 5 * w) / 2; v0 = 134 / 2 - v / 2; h0 = 176 / 2 - h / 2; v1 = v0 + w2; v2 = v1 + w; v3 = v2 + w; v4 = v3 + w; v5 = v4 + w; v6 = v5 + w; v7 = v6 + w2; h1 = h0 + w2; h2 = h1 + w; h3 = h2 + w; h4 = h3 + w; h5 = h4 + w; h6 = h5 + w; h7 = h6 + w2; } @Override public void guiObjectEvent(IGuiObject object) { super.guiObjectEvent(object); /*for (int idx = 0; idx < 6; idx++) { if (object == connectionGridToggle[idx]) { render.clientSetByte(HubElement.clientConnectionGridToggle, (byte) idx); } }*/ } @Override protected void preDraw(float f, int x, int y) { super.preDraw(f, x, y); /* for (int idx = 0; idx < 6; idx++) { connectionGridToggle[idx].displayString = render.connectionGrid[idx] ? "is on" : "is off"; }*/ } @Override protected void postDraw(float f, int x, int y) { super.postDraw(f, x, y); for (int idx = 0; idx < 6; idx++) { if (!render.connectionGrid[idx]) { drawConnection(idx, 0xFF808080); } } for (int idx = 0; idx < 6; idx++) { if (render.connectionGrid[idx]) { drawConnection(idx, 0xFF000000); } } int r = 5; helper.drawRect(h0 - r, v7 - r, h0 + r, v7 + r, 0xFF000000); } void drawConnection(int id, int color) { switch (id) { case 2: helper.drawRect(h0, v5, h2, v6, color); helper.drawRect(h1, v5, h2, v7, color); break; case 3: helper.drawRect(h5, v0, h6, v2, color); helper.drawRect(h5, v1, h7, v2, color); break; case 1: helper.drawRect(h0, v1, h2, v2, color); helper.drawRect(h1, v0, h2, v2, color); break; case 0: helper.drawRect(h5, v5, h6, v7, color); helper.drawRect(h5, v5, h7, v6, color); break; case 4: helper.drawRect(h0, v3, h7, v4, color); break; case 5: helper.drawRect(h3, v0, h4, v7, color); break; } } protected void mouseClicked(int x, int y, int code) { super.mouseClicked(x, y, code); x -= width / 2 - xSize / 2; y -= height / 2 - ySize / 2; if (isInto(x, y, h0, v5, h2, v6) || isInto(x, y, h1, v5, h2, v7)) render.clientSetByte(HubElement.clientConnectionGridToggle, (byte) 2); if (isInto(x, y, h5, v0, h6, v2) || isInto(x, y, h5, v1, h7, v2)) render.clientSetByte(HubElement.clientConnectionGridToggle, (byte) 3); if (isInto(x, y, h0, v1, h2, v2) || isInto(x, y, h1, v0, h2, v2)) render.clientSetByte(HubElement.clientConnectionGridToggle, (byte) 1); if (isInto(x, y, h5, v5, h6, v7) || isInto(x, y, h5, v5, h7, v6)) render.clientSetByte(HubElement.clientConnectionGridToggle, (byte) 0); if (isInto(x, y, h0, v3, h7, v4)) render.clientSetByte(HubElement.clientConnectionGridToggle, (byte) 4); if (isInto(x, y, h3, v0, h4, v7)) render.clientSetByte(HubElement.clientConnectionGridToggle, (byte) 5); } boolean isInto(int x, int y, int x0, int y0, int x1, int y1) { return x >= x0 && x < x1 && y >= y0 && y < y1; } @Override protected GuiHelperContainer newHelper() { return new GuiHelperContainer(this, 176, 216, 8, 134); } }