package mcjty.rftools.blocks.dimlets; import mcjty.lib.container.GenericGuiContainer; import mcjty.lib.entity.GenericEnergyStorageTileEntity; import mcjty.lib.gui.Window; import mcjty.lib.gui.layout.PositionalLayout; import mcjty.lib.gui.widgets.*; import mcjty.lib.gui.widgets.Label; import mcjty.lib.gui.widgets.Panel; import mcjty.lib.varia.BlockTools; import mcjty.rftools.RFTools; import mcjty.rftools.network.RFToolsMessages; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.inventory.Slot; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.util.ForgeDirection; import java.awt.*; public class GuiDimensionEditor extends GenericGuiContainer<DimensionEditorTileEntity> { public static final int EDITOR_WIDTH = 180; public static final int EDITOR_HEIGHT = 152; private EnergyBar energyBar; private ImageLabel arrow; private Label percentage; private Label destroy; private static final ResourceLocation iconLocation = new ResourceLocation(RFTools.MODID, "textures/gui/dimensioneditor.png"); private static final ResourceLocation iconGuiElements = new ResourceLocation(RFTools.MODID, "textures/gui/guielements.png"); public GuiDimensionEditor(DimensionEditorTileEntity dimensionEditorTileEntity, DimensionEditorContainer container) { super(RFTools.instance, RFToolsMessages.INSTANCE, dimensionEditorTileEntity, container, RFTools.GUI_MANUAL_DIMENSION, "editor"); GenericEnergyStorageTileEntity.setCurrentRF(dimensionEditorTileEntity.getEnergyStored(ForgeDirection.DOWN)); xSize = EDITOR_WIDTH; ySize = EDITOR_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(GenericEnergyStorageTileEntity.getCurrentRF()); arrow = new ImageLabel(mc, this).setImage(iconGuiElements, 192, 0); arrow.setLayoutHint(new PositionalLayout.PositionalHint(90, 26, 16, 16)); destroy = new Label(mc, this).setColor(0xff0000); destroy.setText("Destroying dimension!"); destroy.setLayoutHint(new PositionalLayout.PositionalHint(30, 53, 150, 16)); destroy.setVisible(false); percentage = new Label(mc, this).setText("0%"); percentage.setLayoutHint(new PositionalLayout.PositionalHint(80, 43, 40, 16)); Widget toplevel = new Panel(mc, this).setBackground(iconLocation).setLayout(new PositionalLayout()).addChild(energyBar). addChild(arrow).addChild(percentage).addChild(destroy); toplevel.setBounds(new Rectangle(guiLeft, guiTop, xSize, ySize)); window = new Window(this, toplevel); tileEntity.requestRfFromServer(RFToolsMessages.INSTANCE); tileEntity.requestBuildingPercentage(); } @Override protected void drawGuiContainerBackgroundLayer(float v, int i, int i2) { int pct = DimensionEditorTileEntity.getEditPercentage(); if (pct > 0) { arrow.setImage(iconGuiElements, 144, 0); } else { arrow.setImage(iconGuiElements, 192, 0); } percentage.setText(pct + "%"); drawWindow(); destroy.setVisible(false); Slot slot = this.inventorySlots.getSlot(DimensionEditorContainer.SLOT_INJECTINPUT); if (slot.getHasStack()) { Block block = BlockTools.getBlock(slot.getStack()); if (block == Blocks.tnt) { destroy.setVisible(true); } } energyBar.setValue(GenericEnergyStorageTileEntity.getCurrentRF()); tileEntity.requestRfFromServer(RFToolsMessages.INSTANCE); tileEntity.requestBuildingPercentage(); } }