diff --git a/helpers/DualityInterface.java b/helpers/DualityInterface.java index d08f4ba81..d078c519c 100644 --- a/helpers/DualityInterface.java +++ b/helpers/DualityInterface.java @@ -784,4 +784,22 @@ public class DualityInterface implements IGridTickable, ISegmentedInventory, ISt } } + public void addDrops(List drops) + { + if ( waitingToSend != null ) + { + for (ItemStack is : waitingToSend) + if ( is != null ) + drops.add( is ); + } + + for (ItemStack is : storage) + if ( is != null ) + drops.add( is ); + + for (ItemStack is : patterns) + if ( is != null ) + drops.add( is ); + } + } diff --git a/parts/misc/PartInterface.java b/parts/misc/PartInterface.java index 3edced6ca..e066ba28c 100644 --- a/parts/misc/PartInterface.java +++ b/parts/misc/PartInterface.java @@ -75,17 +75,7 @@ public class PartInterface extends PartBasicState implements IGridTickable, ISeg @Override public void getDrops(List drops, boolean wrenched) { - IInventory inv = duality.getInternalInventory(); - for (int l = 0; l < inv.getSizeInventory(); l++) - { - ItemStack is = inv.getStackInSlot( l ); - - if ( is != null ) - { - drops.add( is ); - inv.setInventorySlotContents( l, (ItemStack) null ); - } - } + duality.addDrops( drops ); } @Override diff --git a/tile/misc/TileInterface.java b/tile/misc/TileInterface.java index da9238de8..592bf9e1f 100644 --- a/tile/misc/TileInterface.java +++ b/tile/misc/TileInterface.java @@ -1,5 +1,6 @@ package appeng.tile.misc; +import java.util.ArrayList; import java.util.EnumSet; import net.minecraft.inventory.IInventory; @@ -7,6 +8,7 @@ import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import appeng.api.implementations.tiles.ISegmentedInventory; import appeng.api.implementations.tiles.ITileStorageMonitorable; @@ -65,6 +67,12 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IS markDirty(); } + @Override + public void getDrops(World w, int x, int y, int z, ArrayList drops) + { + duality.addDrops( drops ); + } + @Override public void gridChanged() {