From 52b248ceab9d22491ec4dda1819b3aca3497f35c Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Sat, 27 Feb 2016 09:15:14 +0000 Subject: [PATCH] Some changes to the wrench --- .../techreborn/items/tools/ItemWrench.java | 40 ++++++++++++++++--- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/src/main/java/techreborn/items/tools/ItemWrench.java b/src/main/java/techreborn/items/tools/ItemWrench.java index 167df8164..721057c44 100644 --- a/src/main/java/techreborn/items/tools/ItemWrench.java +++ b/src/main/java/techreborn/items/tools/ItemWrench.java @@ -1,18 +1,25 @@ package techreborn.items.tools; import ic2.api.tile.IWrenchable; +import net.minecraft.block.BlockDynamicLiquid; +import net.minecraft.block.BlockStaticLiquid; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.world.World; +import net.minecraftforge.fluids.BlockFluidBase; import techreborn.client.TechRebornCreativeTabMisc; import techreborn.items.ItemTextureBase; +import java.util.ArrayList; +import java.util.List; import java.util.Random; /** @@ -35,12 +42,34 @@ public class ItemWrench extends ItemTextureBase { if(tile == null){ return false; } + + List items = new ArrayList(); + IInventory inventory = (IInventory) tile; + for (int i = 0; i < inventory.getSizeInventory(); i++) { + ItemStack itemStack = inventory.getStackInSlot(i); + + if(itemStack == null){ + continue; + } + if (itemStack != null && itemStack.stackSize > 0) { + if (itemStack.getItem() instanceof ItemBlock) { + if (((ItemBlock) itemStack.getItem()).block instanceof BlockFluidBase || ((ItemBlock) itemStack.getItem()).block instanceof BlockStaticLiquid || ((ItemBlock) itemStack.getItem()).block instanceof BlockDynamicLiquid) { + continue; + } + } + } + items.add(itemStack.copy()); + } + if(tile instanceof IWrenchable){ if(((IWrenchable) tile).wrenchCanRemove(player)){ ItemStack itemStack = ((IWrenchable) tile).getWrenchDrop(player); if(itemStack == null){ return false; } + items.add(itemStack); + } + for(ItemStack itemStack : items){ Random rand = new Random(); float dX = rand.nextFloat() * 0.8F + 0.1F; @@ -57,16 +86,15 @@ public class ItemWrench extends ItemTextureBase { entityItem.motionX = rand.nextGaussian() * factor; entityItem.motionY = rand.nextGaussian() * factor + 0.2F; entityItem.motionZ = rand.nextGaussian() * factor; - - - world.playSoundAtEntity(player, "techreborn:block_dismantle", 0.8F, 1F); if(!world.isRemote){ world.spawnEntityInWorld(entityItem); - world.setBlockState(pos, Blocks.air.getDefaultState(), 2); } - - return true; } + world.playSoundAtEntity(player, "techreborn:block_dismantle", 0.8F, 1F); + if(!world.isRemote){ + world.setBlockState(pos, Blocks.air.getDefaultState(), 2); + } + return true; } return false; }