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;
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<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(((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;
}