Some changes to the wrench

This commit is contained in:
modmuss50 2016-02-27 09:15:14 +00:00
parent d30b69c88d
commit 52b248ceab

View file

@ -1,18 +1,25 @@
package techreborn.items.tools; package techreborn.items.tools;
import ic2.api.tile.IWrenchable; 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.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockPos; import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fluids.BlockFluidBase;
import techreborn.client.TechRebornCreativeTabMisc; import techreborn.client.TechRebornCreativeTabMisc;
import techreborn.items.ItemTextureBase; import techreborn.items.ItemTextureBase;
import java.util.ArrayList;
import java.util.List;
import java.util.Random; import java.util.Random;
/** /**
@ -35,12 +42,34 @@ public class ItemWrench extends ItemTextureBase {
if(tile == null){ if(tile == null){
return false; return false;
} }
List<ItemStack> items = new ArrayList<ItemStack>();
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(tile instanceof IWrenchable){
if(((IWrenchable) tile).wrenchCanRemove(player)){ if(((IWrenchable) tile).wrenchCanRemove(player)){
ItemStack itemStack = ((IWrenchable) tile).getWrenchDrop(player); ItemStack itemStack = ((IWrenchable) tile).getWrenchDrop(player);
if(itemStack == null){ if(itemStack == null){
return false; return false;
} }
items.add(itemStack);
}
for(ItemStack itemStack : items){
Random rand = new Random(); Random rand = new Random();
float dX = rand.nextFloat() * 0.8F + 0.1F; float dX = rand.nextFloat() * 0.8F + 0.1F;
@ -57,16 +86,15 @@ public class ItemWrench extends ItemTextureBase {
entityItem.motionX = rand.nextGaussian() * factor; entityItem.motionX = rand.nextGaussian() * factor;
entityItem.motionY = rand.nextGaussian() * factor + 0.2F; entityItem.motionY = rand.nextGaussian() * factor + 0.2F;
entityItem.motionZ = rand.nextGaussian() * factor; entityItem.motionZ = rand.nextGaussian() * factor;
world.playSoundAtEntity(player, "techreborn:block_dismantle", 0.8F, 1F);
if(!world.isRemote){ if(!world.isRemote){
world.spawnEntityInWorld(entityItem); 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; return false;
} }