diff options
Diffstat (limited to 'src/main/java/gregtech/common/gui')
-rw-r--r-- | src/main/java/gregtech/common/gui/GT_Container_AdvDebugStructureWriter.java | 213 | ||||
-rw-r--r-- | src/main/java/gregtech/common/gui/GT_GUIContainer_AdvDebugStructureWriter.java | 76 |
2 files changed, 289 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/gui/GT_Container_AdvDebugStructureWriter.java b/src/main/java/gregtech/common/gui/GT_Container_AdvDebugStructureWriter.java new file mode 100644 index 0000000000..15837364f5 --- /dev/null +++ b/src/main/java/gregtech/common/gui/GT_Container_AdvDebugStructureWriter.java @@ -0,0 +1,213 @@ +package gregtech.common.gui; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import gregtech.api.gui.GT_ContainerMetaTile_Machine; +import gregtech.api.gui.GT_Slot_Holo; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.common.tileentities.debug.GT_MetaTileEntity_AdvDebugStructureWriter; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class GT_Container_AdvDebugStructureWriter extends GT_ContainerMetaTile_Machine { + public short[] numbers = new short[6]; + public boolean transpose; + public boolean showHighlightBox; + + public Slot printSlot; + public Slot transposeSlot; + public Slot highlightSlot; + + public GT_Container_AdvDebugStructureWriter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super(aInventoryPlayer, aTileEntity); + } + + @Override + public void addSlots(InventoryPlayer aInventoryPlayer) { + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 8, 5, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 8, 23, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 8, 41, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 8, 63, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 8, 81, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 8, 99, false, false, 1)); + + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 26, 5, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 26, 23, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 26, 41, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 26, 63, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 26, 81, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 26, 99, false, false, 1)); + + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 152, 5, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 152, 23, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 152, 41, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 152, 63, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 152, 81, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 152, 99, false, false, 1)); + + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 134, 5, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 134, 23, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 134, 41, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 134, 63, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 134, 81, false, false, 1)); + addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 134, 99, false, false, 1)); + + printSlot = addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 12, 129, false, false, 1)); + transposeSlot = addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 33, 129, false, false, 1)); + highlightSlot = addSlotToContainer(new GT_Slot_Holo(mTileEntity, 2, 54, 129, false, false, 1)); + } + + public boolean doesBindPlayerInventory() { + return false; + } + + @Override + public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { + if (aSlotIndex < 0) { + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + Slot tSlot = (Slot) inventorySlots.get(aSlotIndex); + if (tSlot != null && mTileEntity.getMetaTileEntity() != null) { + GT_MetaTileEntity_AdvDebugStructureWriter dsw = + (GT_MetaTileEntity_AdvDebugStructureWriter) mTileEntity.getMetaTileEntity(); + if (dsw.numbers == null) { + return null; + } + switch (aSlotIndex) { + case 0: + dsw.numbers[0] -= aShifthold == 1 ? 512 : 64; + return null; + case 1: + dsw.numbers[1] -= aShifthold == 1 ? 512 : 64; + return null; + case 2: + dsw.numbers[2] -= aShifthold == 1 ? 512 : 64; + return null; + case 3: + dsw.numbers[3] -= aShifthold == 1 ? 512 : 64; + return null; + case 4: + dsw.numbers[4] -= aShifthold == 1 ? 512 : 64; + return null; + case 5: + dsw.numbers[5] -= aShifthold == 1 ? 512 : 64; + return null; + case 6: + dsw.numbers[0] -= aShifthold == 1 ? 16 : 1; + return null; + case 7: + dsw.numbers[1] -= aShifthold == 1 ? 16 : 1; + return null; + case 8: + dsw.numbers[2] -= aShifthold == 1 ? 16 : 1; + return null; + case 9: + dsw.numbers[3] -= aShifthold == 1 ? 16 : 1; + return null; + case 10: + dsw.numbers[4] -= aShifthold == 1 ? 16 : 1; + return null; + case 11: + dsw.numbers[5] -= aShifthold == 1 ? 16 : 1; + return null; + case 12: + dsw.numbers[0] += aShifthold == 1 ? 512 : 64; + return null; + case 13: + dsw.numbers[1] += aShifthold == 1 ? 512 : 64; + return null; + case 14: + dsw.numbers[2] += aShifthold == 1 ? 512 : 64; + return null; + case 15: + dsw.numbers[3] += aShifthold == 1 ? 512 : 64; + return null; + case 16: + dsw.numbers[4] += aShifthold == 1 ? 512 : 64; + return null; + case 17: + dsw.numbers[5] += aShifthold == 1 ? 512 : 64; + return null; + case 18: + dsw.numbers[0] += aShifthold == 1 ? 16 : 1; + return null; + case 19: + dsw.numbers[1] += aShifthold == 1 ? 16 : 1; + return null; + case 20: + dsw.numbers[2] += aShifthold == 1 ? 16 : 1; + return null; + case 21: + dsw.numbers[3] += aShifthold == 1 ? 16 : 1; + return null; + case 22: + dsw.numbers[4] += aShifthold == 1 ? 16 : 1; + return null; + case 23: + dsw.numbers[5] += aShifthold == 1 ? 16 : 1; + return null; + + case 24: + if (dsw.getBaseMetaTileEntity().isServerSide()) { + dsw.printStructure(aPlayer); + } + return null; + case 25: + dsw.transpose = !dsw.transpose; + return null; + case 26: + dsw.showHighlightBox = !dsw.showHighlightBox; + return null; + } + } + return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + + @Override + public void detectAndSendChanges() { + super.detectAndSendChanges(); + if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) { + return; + } + GT_MetaTileEntity_AdvDebugStructureWriter dsw = + (GT_MetaTileEntity_AdvDebugStructureWriter) mTileEntity.getMetaTileEntity(); + if (numbers != null) { + System.arraycopy(dsw.numbers, 0, numbers, 0, dsw.numbers.length); + } + + transpose = dsw.transpose; + showHighlightBox = dsw.showHighlightBox; + + for (Object crafter : crafters) { + ICrafting var1 = (ICrafting) crafter; + if (numbers != null) { + var1.sendProgressBarUpdate(this, 100, numbers[0]); + var1.sendProgressBarUpdate(this, 101, numbers[1]); + var1.sendProgressBarUpdate(this, 102, numbers[2]); + var1.sendProgressBarUpdate(this, 103, numbers[3]); + var1.sendProgressBarUpdate(this, 104, numbers[4]); + var1.sendProgressBarUpdate(this, 105, numbers[5]); + var1.sendProgressBarUpdate(this, 106, transpose ? 1 : 0); + var1.sendProgressBarUpdate(this, 107, showHighlightBox ? 1 : 0); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public void updateProgressBar(int par1, int par2) { + super.updateProgressBar(par1, par2); + if (par1 == 106) { + transpose = par2 > 0; + } else if (par1 == 107) { + showHighlightBox = par2 > 0; + } else { + if (numbers != null && par1 >= 100 && par1 <= 105) { + numbers[par1 - 100] = (short) par2; + } + } + } +} diff --git a/src/main/java/gregtech/common/gui/GT_GUIContainer_AdvDebugStructureWriter.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_AdvDebugStructureWriter.java new file mode 100644 index 0000000000..3ae07cef8e --- /dev/null +++ b/src/main/java/gregtech/common/gui/GT_GUIContainer_AdvDebugStructureWriter.java @@ -0,0 +1,76 @@ +package gregtech.common.gui; + +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; +import static net.minecraft.util.StatCollector.translateToLocal; + +import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; +import gregtech.api.gui.widgets.GT_GuiSlotTooltip; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import net.minecraft.entity.player.InventoryPlayer; + +public class GT_GUIContainer_AdvDebugStructureWriter extends GT_GUIContainerMetaTile_Machine { + + private static final String ADVDEBUGSTRUCTUREWRITER_PRINT_TOOLTIP = + "GT5U.machines.advdebugstructurewriter.gui.print.tooltip"; + private static final String ADVDEBUGSTRUCTUREWRITER_TRANSPOSE_TOOLTIP = + "GT5U.machines.advdebugstructurewriter.gui.transpose.tooltip"; + private static final String ADVDEBUGSTRUCTUREWRITER_HIGHLIGHT_TOOLTIP = + "GT5U.machines.advdebugstructurewriter.gui.highlight.tooltip"; + + public GT_GUIContainer_AdvDebugStructureWriter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { + super( + new GT_Container_AdvDebugStructureWriter(aInventoryPlayer, aTileEntity), + RES_PATH_GUI + "AdvDebugStructureWriter.png"); + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + if (mContainer != null) { + GT_Container_AdvDebugStructureWriter dsw = (GT_Container_AdvDebugStructureWriter) mContainer; + if (dsw.numbers == null) { + return; + } + fontRendererObj.drawString( + translateToLocal("GT5U.machines.advdebugstructurewriter.gui.origin"), 46, 8, 16448255); + fontRendererObj.drawString("A: " + dsw.numbers[0], 46, 18, 16448255); + fontRendererObj.drawString("B: " + dsw.numbers[1], 46, 26, 16448255); + fontRendererObj.drawString("C: " + dsw.numbers[2], 46, 34, 16448255); + + fontRendererObj.drawString( + translateToLocal("GT5U.machines.advdebugstructurewriter.gui.size"), 46, 60, 16448255); + fontRendererObj.drawString("A: " + dsw.numbers[3], 46, 70, 16448255); + fontRendererObj.drawString("B: " + dsw.numbers[4], 46, 78, 16448255); + fontRendererObj.drawString("C: " + dsw.numbers[5], 46, 86, 16448255); + } + } + + @Override + protected void setupTooltips() { + addToolTip(new GT_GuiSlotTooltip( + getContainer().printSlot, mTooltipCache.getData(ADVDEBUGSTRUCTUREWRITER_PRINT_TOOLTIP))); + addToolTip(new GT_GuiSlotTooltip( + getContainer().transposeSlot, mTooltipCache.getData(ADVDEBUGSTRUCTUREWRITER_TRANSPOSE_TOOLTIP))); + addToolTip(new GT_GuiSlotTooltip( + getContainer().highlightSlot, mTooltipCache.getData(ADVDEBUGSTRUCTUREWRITER_HIGHLIGHT_TOOLTIP))); + } + + private GT_Container_AdvDebugStructureWriter getContainer() { + return ((GT_Container_AdvDebugStructureWriter) this.mContainer); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { + super.drawGuiContainerBackgroundLayer(par1, par2, par3); + int x = (width - xSize) / 2; + int y = (height - ySize) / 2; + drawTexturedModalRect(x, y, 0, 0, xSize, ySize); + if (mContainer != null) { + if (((GT_Container_AdvDebugStructureWriter) mContainer).transpose) { + drawTexturedModalRect(x + 32, y + 128, 176, 0, 18, 18); + } + if (((GT_Container_AdvDebugStructureWriter) mContainer).showHighlightBox) { + drawTexturedModalRect(x + 53, y + 128, 176, 18, 18, 18); + } + } + } +} |