diff --git a/archaic/src/main/scala/resonantinduction/archaic/fluid/tank/ItemBlockTank.java b/archaic/src/main/scala/resonantinduction/archaic/fluid/tank/ItemBlockTank.java index 42a73936e..d6a793ae2 100644 --- a/archaic/src/main/scala/resonantinduction/archaic/fluid/tank/ItemBlockTank.java +++ b/archaic/src/main/scala/resonantinduction/archaic/fluid/tank/ItemBlockTank.java @@ -52,31 +52,6 @@ public class ItemBlockTank extends ItemBlock implements IFluidContainerItem } } - public static ItemStack getWrenchedItem(World world, Vector3 vec) - { - TileEntity entity = vec.getTileEntity(world); - - if (entity instanceof TileTank && ((TileTank) entity).getInternalTank() != null && ((TileTank) entity).getInternalTank().getFluid() != null) - { - ItemStack itemStack = new ItemStack(Archaic.blockTank); - - FluidStack stack = ((TileTank) entity).getInternalTank().getFluid(); - - if (stack != null) - { - if (itemStack.getTagCompound() == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - ((TileTank) entity).drain(ForgeDirection.UNKNOWN, stack.amount, true); - itemStack.getTagCompound().setCompoundTag("fluid", stack.writeToNBT(new NBTTagCompound())); - } - return itemStack; - } - - return null; - } - @Override public int getItemStackLimit(ItemStack stack) { diff --git a/archaic/src/main/scala/resonantinduction/archaic/fluid/tank/TileTank.java b/archaic/src/main/scala/resonantinduction/archaic/fluid/tank/TileTank.java index f7491efa0..ca73c6517 100644 --- a/archaic/src/main/scala/resonantinduction/archaic/fluid/tank/TileTank.java +++ b/archaic/src/main/scala/resonantinduction/archaic/fluid/tank/TileTank.java @@ -1,10 +1,13 @@ package resonantinduction.archaic.fluid.tank; import java.awt.Color; +import java.util.ArrayList; +import java.util.List; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraftforge.common.ForgeDirection; @@ -14,6 +17,7 @@ import net.minecraftforge.fluids.FluidTank; import org.lwjgl.opengl.GL11; +import resonant.api.IRemovable.ISneakPickup; import resonant.lib.content.module.TileBlock.IComparatorInputOverride; import resonant.lib.content.module.TileRender; import resonant.lib.render.FluidRenderUtility; @@ -32,7 +36,10 @@ import universalelectricity.api.vector.Vector3; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -public class TileTank extends TileFluidDistribution implements IComparatorInputOverride +/** Tile/Block class for basic Dynamic tanks + * + * @author Darkguardsman */ +public class TileTank extends TileFluidDistribution implements IComparatorInputOverride, ISneakPickup { public static final int VOLUME = 16; @@ -55,7 +62,7 @@ public class TileTank extends TileFluidDistribution implements IComparatorInputO protected boolean use(EntityPlayer player, int side, Vector3 vector3) { if (!world().isRemote) - { + { /* if (player.isSneaking()) { ItemStack dropStack = ItemBlockTank.getWrenchedItem(world(), position()); @@ -72,7 +79,7 @@ public class TileTank extends TileFluidDistribution implements IComparatorInputO position().setBlock(world(), 0); } - } + } */ return FluidUtility.playerActivatedFluidItem(world(), x(), y(), z(), player, side); } @@ -234,4 +241,31 @@ public class TileTank extends TileFluidDistribution implements IComparatorInputO } }; } + + @Override + public List getRemovedItems(EntityPlayer entity) + { + List drops = new ArrayList(); + + ItemStack itemStack = new ItemStack(Archaic.blockTank); + if (itemStack != null) + { + if (getInternalTank() != null && getInternalTank().getFluid() != null) + { + FluidStack stack = getInternalTank().getFluid(); + + if (stack != null) + { + if (itemStack.getTagCompound() == null) + { + itemStack.setTagCompound(new NBTTagCompound()); + } + drain(ForgeDirection.UNKNOWN, stack.amount, true); + itemStack.getTagCompound().setCompoundTag("fluid", stack.writeToNBT(new NBTTagCompound())); + } + } + drops.add(itemStack); + } + return drops; + } }