diff --git a/src/main/java/storagecraft/block/BlockBase.java b/src/main/java/storagecraft/block/BlockBase.java index a4dc79c5d..fb5be60a4 100644 --- a/src/main/java/storagecraft/block/BlockBase.java +++ b/src/main/java/storagecraft/block/BlockBase.java @@ -4,7 +4,6 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -83,9 +82,9 @@ public abstract class BlockBase extends Block { TileEntity tile = world.getTileEntity(x, y, z); - if (tile instanceof IInventory && tile instanceof TileBase && ((TileBase) tile).canDropInventory()) + if (tile instanceof TileBase && ((TileBase) tile).getDroppedInventory() != null) { - InventoryUtils.dropInventory(world, (IInventory) tile, x, y, z); + InventoryUtils.dropInventory(world, ((TileBase) tile).getDroppedInventory(), x, y, z); } super.onBlockPreDestroy(world, x, y, z, meta); diff --git a/src/main/java/storagecraft/tile/TileBase.java b/src/main/java/storagecraft/tile/TileBase.java index 8a24099a1..16bb67b18 100644 --- a/src/main/java/storagecraft/tile/TileBase.java +++ b/src/main/java/storagecraft/tile/TileBase.java @@ -1,6 +1,7 @@ package storagecraft.tile; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.inventory.IInventory; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; @@ -78,8 +79,8 @@ public abstract class TileBase extends TileEntity direction = ForgeDirection.getOrientation(packet.func_148857_g().getInteger("Direction")); } - public boolean canDropInventory() + public IInventory getDroppedInventory() { - return true; + return null; } } diff --git a/src/main/java/storagecraft/tile/TileDetector.java b/src/main/java/storagecraft/tile/TileDetector.java index 0f439b4c9..0479bb697 100644 --- a/src/main/java/storagecraft/tile/TileDetector.java +++ b/src/main/java/storagecraft/tile/TileDetector.java @@ -290,10 +290,4 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven buf.writeInt(amount); buf.writeBoolean(providesPower); } - - @Override - public boolean canDropInventory() - { - return false; - } } diff --git a/src/main/java/storagecraft/tile/TileDrive.java b/src/main/java/storagecraft/tile/TileDrive.java index 00b814c6a..a5295828f 100644 --- a/src/main/java/storagecraft/tile/TileDrive.java +++ b/src/main/java/storagecraft/tile/TileDrive.java @@ -135,4 +135,10 @@ public class TileDrive extends TileMachine implements IInventory, IStorageProvid } } } + + @Override + public IInventory getDroppedInventory() + { + return inventory; + } } diff --git a/src/main/java/storagecraft/tile/TileExporter.java b/src/main/java/storagecraft/tile/TileExporter.java index 4257b72ba..f928f7694 100644 --- a/src/main/java/storagecraft/tile/TileExporter.java +++ b/src/main/java/storagecraft/tile/TileExporter.java @@ -229,10 +229,4 @@ public class TileExporter extends TileMachine implements IInventory, ISidedInven buf.writeInt(compare); } - - @Override - public boolean canDropInventory() - { - return false; - } } diff --git a/src/main/java/storagecraft/tile/TileGrid.java b/src/main/java/storagecraft/tile/TileGrid.java index b76334b08..df8c98a8b 100644 --- a/src/main/java/storagecraft/tile/TileGrid.java +++ b/src/main/java/storagecraft/tile/TileGrid.java @@ -1,6 +1,7 @@ package storagecraft.tile; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; @@ -100,4 +101,10 @@ public class TileGrid extends TileMachine InventoryUtils.saveInventory(craftingMatrix, nbt); } + + @Override + public IInventory getDroppedInventory() + { + return craftingMatrix; + } } diff --git a/src/main/java/storagecraft/tile/TileImporter.java b/src/main/java/storagecraft/tile/TileImporter.java index cc26c2918..a17f278e7 100644 --- a/src/main/java/storagecraft/tile/TileImporter.java +++ b/src/main/java/storagecraft/tile/TileImporter.java @@ -280,10 +280,4 @@ public class TileImporter extends TileMachine implements IInventory, ISidedInven buf.writeInt(compare); buf.writeInt(mode); } - - @Override - public boolean canDropInventory() - { - return false; - } } diff --git a/src/main/java/storagecraft/tile/TileSolderer.java b/src/main/java/storagecraft/tile/TileSolderer.java index 8bc392632..816cf6d5e 100644 --- a/src/main/java/storagecraft/tile/TileSolderer.java +++ b/src/main/java/storagecraft/tile/TileSolderer.java @@ -259,4 +259,10 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven { return duration; } + + @Override + public IInventory getDroppedInventory() + { + return inventory; + } } diff --git a/src/main/java/storagecraft/tile/TileWirelessTransmitter.java b/src/main/java/storagecraft/tile/TileWirelessTransmitter.java index e222ec8d9..1e7b2b606 100644 --- a/src/main/java/storagecraft/tile/TileWirelessTransmitter.java +++ b/src/main/java/storagecraft/tile/TileWirelessTransmitter.java @@ -224,4 +224,10 @@ public class TileWirelessTransmitter extends TileMachine implements IInventory buf.writeBoolean(working); buf.writeInt(progress); } + + @Override + public IInventory getDroppedInventory() + { + return inventory; + } }