package minestrapteam.mods.minestrappolation.block; import minestrapteam.mods.minestrappolation.lib.MAchievements; import minestrapteam.mods.minestrappolation.lib.MBlocks; import net.minecraft.block.Block; import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.world.World; import net.minecraftforge.common.util.FakePlayer; public class BlockIceDeposit extends BlockBush { public BlockIceDeposit(Material material, Item item, MapColor mapcolor) { super(material, item, mapcolor); this.setBlockBounds(0.0F, 0.0F, 0.0F, 1F, 0.5F, 1F); } @Override public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumFacing side, float hitX, float hitY, float hitZ) { if (state.getValue(AGE) == 5) { if (worldIn.isRemote) return true; if (playerIn.getHeldItem() != null) { if (playerIn.getHeldItem().getItem() instanceof ItemPickaxe) { worldIn.setBlockState(pos, this.getDefaultState(), 2); EntityItem ei = new EntityItem(worldIn, playerIn.posX, playerIn.posY, playerIn.posZ, new ItemStack(this.item)); worldIn.spawnEntityInWorld(ei); playerIn.getHeldItem().damageItem(2, playerIn); playerIn.addStat(MAchievements.glacieric_ice, 1); if (playerIn instanceof FakePlayer) { ei.onCollideWithPlayer(playerIn); } return true; } } } return false; } @Override public boolean canPlaceBlockAt(World worldIn, BlockPos pos) { Block block = worldIn.getBlockState(pos.down()).getBlock(); return block == MBlocks.glaical_invincium; } @Override public AxisAlignedBB getCollisionBoundingBox(World worldIn, BlockPos pos, IBlockState state) { float f = 0.5F; return new AxisAlignedBB(pos.getX(), pos.getY(), pos.getZ(), pos.getX() + 1, pos.getY() + f, pos.getZ() + 1); } }