diff options
author | Detrav <witalyezep@gmail.com> | 2016-04-07 18:11:48 +0300 |
---|---|---|
committer | Detrav <witalyezep@gmail.com> | 2016-04-07 18:11:48 +0300 |
commit | 9bbd0e27f1e0bcef7f38f206b902caf74d5e981d (patch) | |
tree | 1b55ad405d5ad18f953d08913e86e813bc02961c /src/main/java/com/detrav/gui | |
parent | a2229132fe8b7f9a2927e827f828a8989c02851b (diff) | |
download | GT5-Unofficial-9bbd0e27f1e0bcef7f38f206b902caf74d5e981d.tar.gz GT5-Unofficial-9bbd0e27f1e0bcef7f38f206b902caf74d5e981d.tar.bz2 GT5-Unofficial-9bbd0e27f1e0bcef7f38f206b902caf74d5e981d.zip |
Complete gui recharger'a with slot Locker
Diffstat (limited to 'src/main/java/com/detrav/gui')
-rw-r--r-- | src/main/java/com/detrav/gui/DetravPortableChargerGui.java | 73 | ||||
-rw-r--r-- | src/main/java/com/detrav/gui/containers/DetravPortableChargerContainer.java | 15 |
2 files changed, 67 insertions, 21 deletions
diff --git a/src/main/java/com/detrav/gui/DetravPortableChargerGui.java b/src/main/java/com/detrav/gui/DetravPortableChargerGui.java index 3f7212a6c9..431107f3ed 100644 --- a/src/main/java/com/detrav/gui/DetravPortableChargerGui.java +++ b/src/main/java/com/detrav/gui/DetravPortableChargerGui.java @@ -1,39 +1,76 @@ package com.detrav.gui; import com.detrav.gui.containers.DetravPortableChargerContainer; +import com.detrav.items.DetravMetaGeneratedTool01; +import gregtech.api.GregTech_API; +import gregtech.api.util.GT_Utility; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemDye; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; +import org.lwjgl.opengl.GL11; + +import static gregtech.api.enums.GT_Values.V; +import static gregtech.api.enums.GT_Values.RES_PATH_GUI; /** * Created by wital_000 on 07.04.2016. */ public class DetravPortableChargerGui extends GuiContainer { public static final int GUI_ID = 30; - public DetravPortableChargerGui(InventoryPlayer player, World aWorld) { - super(new DetravPortableChargerContainer(player, aWorld)); + ResourceLocation location = null; + private String mName = "testName"; + ItemStack mItem = null; + + public DetravPortableChargerGui(InventoryPlayer player, World aWorld, ItemStack aStack) { + super(new DetravPortableChargerContainer(player, aWorld, aStack)); + mItem = aStack; + location = new ResourceLocation(RES_PATH_GUI + "1by1.png"); } @Override - protected void drawGuiContainerForegroundLayer(int param1, int param2) { - //draw text and stuff here - //the parameters for drawString are: string, x, y, color - fontRendererObj.drawString("Tiny", 8, 6, 4210752); - //draws "Inventory" or your regional equivalent - fontRendererObj.drawString("container.inventory", 8, ySize - 96 + 2, 4210752); + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + fontRendererObj.drawString(mName, 8, 4, 4210752); + if(mItem!=null) { + //GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + //EnumChatFormatting.AQUA + "" + + EnumChatFormatting.GRAY); + Long[] tStats = getElectricStats(mItem); + long tCharge = getRealCharge(mItem); + fontRendererObj.drawString(GT_Utility.formatNumbers(tCharge) + " / " + GT_Utility.formatNumbers(Math.abs(tStats[0])) + " EU - Voltage: " + V[(int) (tStats[2] >= 0 ? tStats[2] < V.length ? tStats[2] : V.length - 1 : 1)], 8, 15, 4210752); + } } - @Override - protected void drawGuiContainerBackgroundLayer(float par1, int par2, - int par3) { - //draw your Gui here, only thing you need to change is the path - //int texture = mc.renderEngine.getTexture("/gui/trap.png"); - //GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - //this.mc.renderEngine.bindTexture(texture); - //int x = (width - xSize) / 2; - //int y = (height - ySize) / 2; - //this.drawTexturedModalRect(x, y, 0, 0, xSize, ySize); + public Long[] getElectricStats(ItemStack aStack) { + NBTTagCompound aNBT = aStack.getTagCompound(); + if (aNBT != null) { + aNBT = aNBT.getCompoundTag("GT.ToolStats"); + if (aNBT != null && aNBT.getBoolean("Electric")) + return new Long[]{aNBT.getLong("MaxCharge"), aNBT.getLong("Voltage"), aNBT.getLong("Tier"), aNBT.getLong("SpecialData")}; + } + return null; } + public final long getRealCharge(ItemStack aStack) { + Long[] tStats = getElectricStats(aStack); + if (tStats == null) return 0; + if (tStats[3] > 0) return (int) (long) tStats[3]; + NBTTagCompound tNBT = aStack.getTagCompound(); + return tNBT == null ? 0 : tNBT.getLong("GT.ItemCharge"); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { + mc.renderEngine.bindTexture(location); + if (GregTech_API.sColoredGUI && mItem != null && DetravMetaGeneratedTool01.getSecondaryMaterial(mItem) != null) { + short[] tColors = DetravMetaGeneratedTool01.getSecondaryMaterial(mItem).mColor.getRGBA(); + GL11.glColor4f(tColors[0]/255F, tColors[1]/255F, tColors[2]/255F, 1F); + } else GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + int x = (width - xSize) / 2; + int y = (height - ySize) / 2; + drawTexturedModalRect(x, y, 0, 0, xSize, ySize); + } } diff --git a/src/main/java/com/detrav/gui/containers/DetravPortableChargerContainer.java b/src/main/java/com/detrav/gui/containers/DetravPortableChargerContainer.java index e0867e27da..1902fdd92c 100644 --- a/src/main/java/com/detrav/gui/containers/DetravPortableChargerContainer.java +++ b/src/main/java/com/detrav/gui/containers/DetravPortableChargerContainer.java @@ -1,5 +1,6 @@ package com.detrav.gui.containers; +import gregtech.common.items.armor.SlotLocked; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; @@ -14,11 +15,13 @@ import net.minecraft.world.World; */ public class DetravPortableChargerContainer extends Container { public IInventory slots = new InventoryCrafting(this, 1, 1); + public ItemStack mItem; private World worldObj; - public DetravPortableChargerContainer(InventoryPlayer inventoryPlayer, World aWorld) { + public DetravPortableChargerContainer(InventoryPlayer inventoryPlayer, World aWorld,ItemStack aStack) { this.worldObj = aWorld; - this.addSlotToContainer(new Slot(slots, 0, 62, 17)); + this.addSlotToContainer(new Slot(slots, 0, 80, 35)); + mItem = aStack; //new Slot() bindPlayerInventory(inventoryPlayer); } @@ -31,8 +34,14 @@ public class DetravPortableChargerContainer extends Container { } } + for (int i = 0; i < 9; i++) { - addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 142)); + ItemStack stackInSlot = inventoryPlayer.getStackInSlot(i); + if (mItem!=null && stackInSlot!=null && mItem.getItem() == stackInSlot.getItem()) { + addSlotToContainer(new SlotLocked(inventoryPlayer, i, 8 + i * 18, 142)); + } else { + addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 142)); + } } } |