From 76e82ed3553cedb2c9ebef4cf033472925e4caf1 Mon Sep 17 00:00:00 2001 From: Dimach Date: Wed, 15 Mar 2017 04:51:15 +0200 Subject: [PATCH] Implement #292. --- .../common/gui/GT_Container_Regulator.java | 16 +++++---- .../GT_MetaTileEntity_Regulator.java | 34 ++++++++++++++++-- .../gregtech/textures/gui/Regulator.png | Bin 4041 -> 1986 bytes 3 files changed, 41 insertions(+), 9 deletions(-) diff --git a/src/main/java/gregtech/common/gui/GT_Container_Regulator.java b/src/main/java/gregtech/common/gui/GT_Container_Regulator.java index 3e8f9402..c9e51ecb 100644 --- a/src/main/java/gregtech/common/gui/GT_Container_Regulator.java +++ b/src/main/java/gregtech/common/gui/GT_Container_Regulator.java @@ -36,6 +36,8 @@ public class GT_Container_Regulator addSlotToContainer(new Slot(this.mTileEntity, 7, 26, 42)); addSlotToContainer(new Slot(this.mTileEntity, 8, 44, 42)); + addSlotToContainer(new Slot(this.mTileEntity, 19, 44, 63)); + addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 9, 64, 7, false, true, 1)); addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 81, 7, false, true, 1)); addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 11, 98, 7, false, true, 1)); @@ -60,7 +62,7 @@ public class GT_Container_Regulator } public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { - if (aSlotIndex < 9) { + if (aSlotIndex < 10) { return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); } Slot tSlot = (Slot) this.inventorySlots.get(aSlotIndex); @@ -68,7 +70,7 @@ public class GT_Container_Regulator if (this.mTileEntity.getMetaTileEntity() == null) { return null; } - if (aSlotIndex == 27) { + if (aSlotIndex == 28) { ((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).bOutput = (!((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).bOutput); if (((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).bOutput) { GT_Utility.sendChatToPlayer(aPlayer, "Emit Energy to Outputside"); @@ -77,7 +79,7 @@ public class GT_Container_Regulator } return null; } - if ((aSlotIndex < 18)) { + if ((aSlotIndex < 19)) { ItemStack tStack = aPlayer.inventory.getItemStack(); if (tStack != null) { tSlot.putStack(GT_Utility.copy(new Object[]{tStack})); @@ -96,8 +98,8 @@ public class GT_Container_Regulator } return null; } - if ((aSlotIndex < 27)) { - ((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).mTargetSlots[(aSlotIndex - 18)] = Math.min(99, Math.max(0, ((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).mTargetSlots[(aSlotIndex - 18)] + (aMouseclick == 0 ? -1 : 1) * (aShifthold == 0 ? 1 : 16))); + if ((aSlotIndex < 28)) { + ((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).mTargetSlots[(aSlotIndex - 19)] = Math.min(99, Math.max(0, ((GT_MetaTileEntity_Regulator) this.mTileEntity.getMetaTileEntity()).mTargetSlots[(aSlotIndex - 19)] + (aMouseclick == 0 ? -1 : 1) * (aShifthold == 0 ? 1 : 16))); return null; } } @@ -156,10 +158,10 @@ public class GT_Container_Regulator } public int getSlotCount() { - return 9; + return 10; } public int getShiftClickSlotCount() { - return 9; + return 10; } } diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java index 3a89b8c8..04930ae5 100644 --- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java +++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java @@ -18,9 +18,10 @@ import java.util.Arrays; public class GT_MetaTileEntity_Regulator extends GT_MetaTileEntity_Buffer { public int[] mTargetSlots = {0, 0, 0, 0, 0, 0, 0, 0, 0}; + private boolean charge = false, decharge = false; public GT_MetaTileEntity_Regulator(int aID, String aName, String aNameRegional, int aTier) { - super(aID, aName, aNameRegional, aTier, 19, "Regulating incoming Items"); + super(aID, aName, aNameRegional, aTier, 20, "Regulating incoming Items"); } public GT_MetaTileEntity_Regulator(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) { @@ -36,7 +37,7 @@ public class GT_MetaTileEntity_Regulator } public boolean isValidSlot(int aIndex) { - return aIndex < 9; + return aIndex < 9 || aIndex == 19; } public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { @@ -90,4 +91,33 @@ public class GT_MetaTileEntity_Regulator public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { return (super.allowPutStack(aBaseMetaTileEntity, aIndex, aSide, aStack)) && (GT_Utility.areStacksEqual(aStack, this.mInventory[(aIndex + 9)])); } + + @Override + public int rechargerSlotStartIndex() { + return 19; + } + + @Override + public int dechargerSlotStartIndex() { + return 19; + } + + @Override + public int rechargerSlotCount() { + return charge ? 1 : 0; + } + + @Override + public int dechargerSlotCount() { + return decharge ? 1 : 0; + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPostTick(aBaseMetaTileEntity, aTick); + if (aBaseMetaTileEntity.isServerSide()) { + charge = aBaseMetaTileEntity.getStoredEU() / 2 > aBaseMetaTileEntity.getEUCapacity() / 3; + decharge = aBaseMetaTileEntity.getStoredEU() < aBaseMetaTileEntity.getEUCapacity() / 3; + } + } } diff --git a/src/main/resources/assets/gregtech/textures/gui/Regulator.png b/src/main/resources/assets/gregtech/textures/gui/Regulator.png index b92a693f13614b463bdde133791a2192f48cc64b..ecc62186e0ea016246043f88bc448226e97e0741 100644 GIT binary patch literal 1986 zcmb7Ec~sL^7Jk13vO#J@B#12O0L6tN&`=DTl1Pa_D*=lwC{h$ONKtl>wn75b1uKaT zc5n-0n0crxZHCE|vB;<-*Y z8WN&=YM*hvgjE+yUI}AMB4bv}t+J^h>12Q{N(Q+^BJn4dM5D=W)=+9x`*%461qDs3 z@tb+FX??P)7+QzietPk!tC|uyPWH*IIsm5oCni!CkQIU|&bG{@ldhajZFZlg{rFpe zw%i9RfO`e}&h2%4P2{3mTnv0Pq8V-UxTTsLO^SXd3iyx{*v55xp#O!;0%{6(;8=BE zi`P|4BEy?jNI102wI6x>H)Y$w9)Hy(R=~FqfB_UB05*6Tz?Akc2ysEZ`x%#_G)=O~ z2;FqY*^1$x;DZdJvZfz_hWkVWwID=!M(>Zc9)a-Vnv-bt*D`G zdzJb91XNRt+~i|z7Y7H3062O6bm3TQNmBc$&x+ay@x@1+Kq@?Ejgil%-ibDi%Ys-$ zv^gH1;ogC@R=Oe@lW*k7=i}Q3^C_=c>SAnKbTpO0gySyh&R+B6Jge^z|3@S* zlKfpQ@cp3#X}FnO*)DM@BGB`!ve3Ud(Y%m&XbLk)UhiBj+USe_tpWSwanjPaIZY`Q zuPEXFP)R3 zfrkUTpk(n}g}x_f;5x{FGYT#?noS1RbOb0(faM5Vs<9-{a3#4AVy|_mA14BFcpnmM z+H9Ip$!IXJa$Z<2Sa<5VVPR%!q;t&wv{W^4%`_*?5$52)N$u=xohd(ncMSJKo03Q+ zHg;)Ee)XT9&xJ#5Qj_wWAb0h>gX=)X8=Yf0$%u~O-HlW1TB_zqJTb!^r@e`Y;&$7LL9l$eF41O?^~)Tlw6_rH`~OXKsy?XVqoe2K5!8a^-{VlL_Rv| z$uL9wPCZy60*|y?yXpNZHw}}pw29!s4B$<bd>NNw=m;$H!CFB$p( literal 4041 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