diff --git a/src/main/java/gregtechmod/api/gui/GT_ContainerMetaTile_Machine.java b/src/main/java/gregtechmod/api/gui/GT_ContainerMetaTile_Machine.java index 15157de..c36c59b 100644 --- a/src/main/java/gregtechmod/api/gui/GT_ContainerMetaTile_Machine.java +++ b/src/main/java/gregtechmod/api/gui/GT_ContainerMetaTile_Machine.java @@ -31,7 +31,6 @@ public class GT_ContainerMetaTile_Machine extends GT_Container { if (mTileEntity != null && mTileEntity.getMetaTileEntity() != null) { addSlots(aInventoryPlayer); if (doesBindPlayerInventory()) bindPlayerInventory(aInventoryPlayer); -// detectAndSendChanges(); // FIXME check all UIs } else { aInventoryPlayer.player.closeScreen(); } @@ -75,19 +74,6 @@ public class GT_ContainerMetaTile_Machine extends GT_Container { } } -// @Override -// public void prepareChanges(JsonObject data, boolean force) { -// super.prepareChanges(data, force); -// -// } -// -// @Override -// @SideOnly(Side.CLIENT) -// public void processChanges(JsonObject data) { -// super.processChanges(data); -// -// } - /** * Server side method to write changes to data object */ diff --git a/src/main/java/gregtechmod/api/gui/GT_Container_BasicMachine.java b/src/main/java/gregtechmod/api/gui/GT_Container_BasicMachine.java index cb077ad..ba48ad2 100644 --- a/src/main/java/gregtechmod/api/gui/GT_Container_BasicMachine.java +++ b/src/main/java/gregtechmod/api/gui/GT_Container_BasicMachine.java @@ -42,26 +42,30 @@ public class GT_Container_BasicMachine extends GT_ContainerMetaTile_Machine { @Override public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { - if (aSlotIndex < 5) return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); - + if (aSlotIndex < getSlotCount()) return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + return this.handleClick(aSlotIndex, aMouseclick, aShifthold, aPlayer) ? null : super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + } + + /** + * Custom slotClick to handle buttons and etc + * @return true if super call is not needed + */ + public boolean handleClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { Slot tSlot = (Slot)inventorySlots.get(aSlotIndex); - if (tSlot != null) { - if (mTileEntity.getMetaTileEntity() == null) return null; + if (mTileEntity.getMetaTileEntity() != null && tSlot != null) { if (aSlotIndex == 5) { ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput; - return null; - } - if (aSlotIndex == 6) { + return true; + } else if (aSlotIndex == 6) { ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer; - return null; - } - if (aSlotIndex == 7) { + return true; + } else if (aSlotIndex == 7) { ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bSeperatedInputs = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bSeperatedInputs; - return null; + return true; } } - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + return false; } @Override diff --git a/src/main/java/gregtechmod/common/containers/GT_Container_ElectricInventoryManager.java b/src/main/java/gregtechmod/common/containers/GT_Container_ElectricInventoryManager.java index 7765722..c87ac83 100644 --- a/src/main/java/gregtechmod/common/containers/GT_Container_ElectricInventoryManager.java +++ b/src/main/java/gregtechmod/common/containers/GT_Container_ElectricInventoryManager.java @@ -26,7 +26,7 @@ public class GT_Container_ElectricInventoryManager extends GT_ContainerMetaTile_ public final SyncedField mTargetEnergy = new SyncedField<>("mTargetEnergy" , new Integer(0)); public GT_Container_ElectricInventoryManager(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); // FIXME TEST THIS + super(aInventoryPlayer, aTileEntity); } public void addSlots(InventoryPlayer aInventoryPlayer) { diff --git a/src/main/java/gregtechmod/common/containers/GT_Container_ElectricRetrieverAdvanced.java b/src/main/java/gregtechmod/common/containers/GT_Container_ElectricRetrieverAdvanced.java index c36befa..0b36213 100644 --- a/src/main/java/gregtechmod/common/containers/GT_Container_ElectricRetrieverAdvanced.java +++ b/src/main/java/gregtechmod/common/containers/GT_Container_ElectricRetrieverAdvanced.java @@ -16,7 +16,7 @@ import cpw.mods.fml.relauncher.*; public class GT_Container_ElectricRetrieverAdvanced extends GT_ContainerMetaTile_Machine { - public final SyncedField mTargetSlots; // FIXME TEST this + public final SyncedField mTargetSlots; public GT_Container_ElectricRetrieverAdvanced(final InventoryPlayer aInventoryPlayer, final IGregTechTileEntity aTileEntity) { super(aInventoryPlayer, aTileEntity); diff --git a/src/main/java/gregtechmod/common/containers/UniversalMacerator.java b/src/main/java/gregtechmod/common/containers/UniversalMacerator.java index a6a59d8..1537955 100644 --- a/src/main/java/gregtechmod/common/containers/UniversalMacerator.java +++ b/src/main/java/gregtechmod/common/containers/UniversalMacerator.java @@ -1,11 +1,8 @@ package gregtechmod.common.containers; -import java.util.Iterator; import java.util.List; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gregtechmod.api.gui.GT_ContainerMetaTile_Machine; +import gregtechmod.api.gui.GT_Container_BasicMachine; import gregtechmod.api.gui.GT_Slot_Holo; import gregtechmod.api.gui.GT_Slot_Output; import gregtechmod.api.interfaces.IGregTechTileEntity; @@ -14,7 +11,6 @@ import gregtechmod.api.metatileentity.implementations.GT_MetaTileEntity_BasicMac 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; @@ -22,10 +18,8 @@ import net.minecraft.item.ItemStack; * @author TheDarkDnKTv * */ -public class UniversalMacerator extends GT_ContainerMetaTile_Machine { - - public boolean mOutputting = false, mItemTransfer = false, mSeperatedInputs = false; - +public class UniversalMacerator extends GT_Container_BasicMachine { + /** * @param aInventoryPlayer * @param aTileEntity @@ -51,60 +45,26 @@ public class UniversalMacerator extends GT_ContainerMetaTile_Machine { addSlotToContainer(new GT_Slot_Holo(mTileEntity, 0, 44, 63, false, true, 1)); } - @Override - public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { - if (aSlotIndex < 7) return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); - + @Override + public boolean handleClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { Slot tSlot = (Slot)inventorySlots.get(aSlotIndex); - if (tSlot != null) { - if (mTileEntity.getMetaTileEntity() == null) return null; + if (mTileEntity.getMetaTileEntity() != null && tSlot != null) { + GT_MetaTileEntity_BasicMachine mte = (GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity(); if (aSlotIndex == 7) { - ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput; - return null; - } - if (aSlotIndex == 8) { - ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer; - return null; - } - if (aSlotIndex == 9) { - ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bSeperatedInputs = !((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bSeperatedInputs; - return null; + mte.bOutput = !mte.bOutput; + return true; + } else if (aSlotIndex == 8) { + mte.bItemTransfer = !mte.bItemTransfer; + return true; + } else if (aSlotIndex == 9) { + mte.bSeperatedInputs = !mte.bSeperatedInputs; + return true; } } - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); + return false; } - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - if (mTileEntity.isClientSide() || mTileEntity.getMetaTileEntity() == null) return; - - mOutputting = ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bOutput; - mItemTransfer = ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bItemTransfer; - mSeperatedInputs = ((GT_MetaTileEntity_BasicMachine)mTileEntity.getMetaTileEntity()).bSeperatedInputs; - - @SuppressWarnings("rawtypes") - Iterator var2 = this.crafters.iterator(); - while (var2.hasNext()) { - ICrafting var1 = (ICrafting)var2.next(); - var1.sendProgressBarUpdate(this, 101, mOutputting?1:0); - var1.sendProgressBarUpdate(this, 102, mItemTransfer?1:0); - var1.sendProgressBarUpdate(this, 103, mSeperatedInputs?1:0); - } - } - - @Override - @SideOnly(Side.CLIENT) - public void updateProgressBar(int par1, int par2) { - super.updateProgressBar(par1, par2); - switch (par1) { - case 101: mOutputting = (par2 != 0); break; - case 102: mItemTransfer = (par2 != 0); break; - case 103: mSeperatedInputs = (par2 != 0); break; - } - } - @Override public int getSlotCount() { return 7; diff --git a/src/main/java/gregtechmod/common/gui/GUI_UniversalMacerator.java b/src/main/java/gregtechmod/common/gui/GUI_UniversalMacerator.java index 91116fd..f1143f1 100644 --- a/src/main/java/gregtechmod/common/gui/GUI_UniversalMacerator.java +++ b/src/main/java/gregtechmod/common/gui/GUI_UniversalMacerator.java @@ -37,9 +37,9 @@ public class GUI_UniversalMacerator extends GT_GUIContainerMetaTile_Machine { int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); if (mContainer != null) { - if (((UniversalMacerator)mContainer).mOutputting) drawTexturedModalRect(x + 7, y + 62, 176, 18, 18, 18); - if (((UniversalMacerator)mContainer).mItemTransfer) drawTexturedModalRect(x + 25, y + 62, 176, 36, 18, 18); - if (((UniversalMacerator)mContainer).mSeperatedInputs) drawTexturedModalRect(x + 43, y + 62, 176, 54, 18, 18); + if (((UniversalMacerator)mContainer).mOutputting.get()) drawTexturedModalRect(x + 7, y + 62, 176, 18, 18, 18); + if (((UniversalMacerator)mContainer).mItemTransfer.get()) drawTexturedModalRect(x + 25, y + 62, 176, 36, 18, 18); + if (((UniversalMacerator)mContainer).mSeperatedInputs.get()) drawTexturedModalRect(x + 43, y + 62, 176, 54, 18, 18); if (mContainer.mMaxProgressTime.get() > 0) { int tSize = 20, tProgress = Math.max(1, Math.min(tSize, (mContainer.mProgressTime.get()>0?1:0) + (mContainer.mProgressTime.get() * tSize) / mContainer.mMaxProgressTime.get())) % (tSize+1);