From 79a8da50a8484ad04b93c65b5c7bd4029081809f Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Thu, 30 Jan 2014 19:23:12 -0600 Subject: [PATCH] Fixed Issue with Interface and Gui, and Derpy Automation( Hoppers ) --- container/slot/AppEngSlot.java | 7 ++++++- helpers/DualityInterface.java | 6 ++++-- tile/inventory/AppEngInternalInventory.java | 10 ++++++++++ tile/misc/TileInterface.java | 6 ++++++ 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/container/slot/AppEngSlot.java b/container/slot/AppEngSlot.java index 62b79693..a4ea81e0 100644 --- a/container/slot/AppEngSlot.java +++ b/container/slot/AppEngSlot.java @@ -4,6 +4,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import appeng.tile.inventory.AppEngInternalInventory; public class AppEngSlot extends Slot { @@ -51,7 +52,11 @@ public class AppEngSlot extends Slot @Override public void onSlotChanged() { - super.onSlotChanged(); + if ( inventory instanceof AppEngInternalInventory ) + ((AppEngInternalInventory) inventory).onInventoryChanged( getSlotIndex() ); + else + super.onSlotChanged(); + isValid = hasCalculatedValidness.NotAvailable; } diff --git a/helpers/DualityInterface.java b/helpers/DualityInterface.java index 3aab7fea..430cffc7 100644 --- a/helpers/DualityInterface.java +++ b/helpers/DualityInterface.java @@ -319,6 +319,8 @@ public class DualityInterface implements IGridTickable, ISegmentedInventory, ISt public void onInventoryChanged() { + for (int slot = 0; slot < storage.getSizeInventory(); slot++) + onChangeInventory( storage, slot, InvOperation.onInventoryChanged, null, null ); } @Override @@ -360,8 +362,8 @@ public class DualityInterface implements IGridTickable, ISegmentedInventory, ISt public boolean hasWorkToDo() { - return requireWork[0] != null || requireWork[1] != null || requireWork[2] != null || requireWork[3] != null || requireWork[4] != null || requireWork[5] != null - || requireWork[6] != null || requireWork[7] != null; + return requireWork[0] != null || requireWork[1] != null || requireWork[2] != null || requireWork[3] != null || requireWork[4] != null + || requireWork[5] != null || requireWork[6] != null || requireWork[7] != null; } private boolean updateStorage() diff --git a/tile/inventory/AppEngInternalInventory.java b/tile/inventory/AppEngInternalInventory.java index 40a2d1d1..7c8a26d9 100644 --- a/tile/inventory/AppEngInternalInventory.java +++ b/tile/inventory/AppEngInternalInventory.java @@ -137,6 +137,15 @@ public class AppEngInternalInventory implements IInventory, Iterable } } + // for guis... + public void onInventoryChanged(int slotIndex) + { + if ( te != null && eventsEnabled() ) + { + te.onChangeInventory( this, slotIndex, InvOperation.onInventoryChanged, null, null ); + } + } + @Override public int getInventoryStackLimit() { @@ -242,4 +251,5 @@ public class AppEngInternalInventory implements IInventory, Iterable { return new InvIterator( this ); } + } diff --git a/tile/misc/TileInterface.java b/tile/misc/TileInterface.java index 2f2ae37c..32966f25 100644 --- a/tile/misc/TileInterface.java +++ b/tile/misc/TileInterface.java @@ -124,6 +124,12 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IS return duality.getInternalInventory(); } + @Override + public void onInventoryChanged() + { + duality.onInventoryChanged(); + } + @Override public void onChangeInventory(IInventory inv, int slot, InvOperation mc, ItemStack removed, ItemStack added) {