package mcjty.rftools.blocks.storage; import mcjty.lib.container.GenericGuiContainer; import mcjty.lib.gui.Window; import mcjty.lib.gui.events.ChoiceEvent; import mcjty.lib.gui.layout.PositionalLayout; import mcjty.lib.gui.widgets.EnergyBar; import mcjty.lib.gui.widgets.ImageChoiceLabel; import mcjty.lib.gui.widgets.Panel; import mcjty.lib.gui.widgets.Widget; import mcjty.lib.network.Argument; import mcjty.rftools.RFTools; import mcjty.rftools.network.RFToolsMessages; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.util.ForgeDirection; import java.awt.*; public class GuiRemoteStorage extends GenericGuiContainer<RemoteStorageTileEntity> { public static final int STORAGE_WIDTH = 180; public static final int STORAGE_HEIGHT = 152; private static final ResourceLocation iconLocation = new ResourceLocation(RFTools.MODID, "textures/gui/remotestorage.png"); private static final ResourceLocation guiElements = new ResourceLocation(RFTools.MODID, "textures/gui/guielements.png"); private EnergyBar energyBar; private ImageChoiceLabel global[] = new ImageChoiceLabel[] { null, null, null, null }; public GuiRemoteStorage(RemoteStorageTileEntity remoteStorageTileEntity, RemoteStorageContainer container) { super(RFTools.instance, RFToolsMessages.INSTANCE, remoteStorageTileEntity, container, RFTools.GUI_MANUAL_MAIN, "remotestor"); xSize = STORAGE_WIDTH; ySize = STORAGE_HEIGHT; } @Override public void initGui() { super.initGui(); int maxEnergyStored = tileEntity.getMaxEnergyStored(ForgeDirection.DOWN); energyBar = new EnergyBar(mc, this).setVertical().setMaxValue(maxEnergyStored).setLayoutHint(new PositionalLayout.PositionalHint(10, 7, 8, 54)).setShowText(false); energyBar.setValue(tileEntity.getCurrentRF()); Panel toplevel = new Panel(mc, this).setBackground(iconLocation).setLayout(new PositionalLayout()).addChild(energyBar); for (int i = 0 ; i < 4 ; i++) { global[i] = new ImageChoiceLabel(mc, this); final int finalI = i; global[i].addChoiceEvent(new ChoiceEvent() { @Override public void choiceChanged(Widget parent, String newChoice) { changeGlobal(finalI); } }); global[i].addChoice("off" + i, "Inter-dimensional access only", guiElements, 0, 32); global[i].addChoice("on" + i, "Cross-dimension access enabled", guiElements, 16, 32); global[i].setLayoutHint(new PositionalLayout.PositionalHint(i < 2 ? (43 - 18) : (120 - 18), (i % 2) == 0 ? 9 : 36, 16, 16)); global[i].setCurrentChoice(tileEntity.isGlobal(i) ? 1 : 0); toplevel.addChild(global[i]); } toplevel.setBounds(new Rectangle(guiLeft, guiTop, xSize, ySize)); window = new Window(this, toplevel); } private void changeGlobal(int index) { sendServerCommand(RFToolsMessages.INSTANCE, RemoteStorageTileEntity.CMD_SETGLOBAL, new Argument("index", index), new Argument("global", global[index].getCurrentChoiceIndex() == 1)); } @Override protected void drawGuiContainerBackgroundLayer(float v, int i, int i2) { drawWindow(); energyBar.setValue(tileEntity.getCurrentRF()); tileEntity.requestRfFromServer(RFToolsMessages.INSTANCE); } }