package com.bioxx.tfc2.blocks; import java.util.Random; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import com.bioxx.tfc2.Core; import com.bioxx.tfc2.TFCItems; import com.bioxx.tfc2.api.types.StoneType; public class BlockLooseRocks extends BlockTerra { public static PropertyEnum META_PROPERTY = PropertyEnum.create("stone", StoneType.class); public BlockLooseRocks() { super(Material.GROUND, META_PROPERTY); this.setCreativeTab(CreativeTabs.BUILDING_BLOCKS); this.setBlockBounds(0.2f, 0, 0.2f, 0.8f, 0.1f, 0.8f); setSoundType(SoundType.STONE); setShowInCreative(false); } /******************************************************************************* * 1. Content *******************************************************************************/ @Override public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, net.minecraft.util.EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { if(worldIn.isRemote) return false; worldIn.setBlockToAir(pos); Core.dropItem(worldIn, pos.getX()+0.5, pos.getY()+0.5, pos.getZ()+0.5, new ItemStack(getItemDropped(state, worldIn.rand, 0), 1, this.getMetaFromState(state))); return true; } /******************************************************************************* * 2. Rendering *******************************************************************************/ @Override public boolean isOpaqueCube(IBlockState state) { return false; } @Override public boolean isFullCube(IBlockState state) { return false; } /******************************************************************************* * 3. Blockstate *******************************************************************************/ @Override protected BlockStateContainer createBlockState() { return new BlockStateContainer(this, new IProperty[]{META_PROPERTY}); } @Override public IBlockState getStateFromMeta(int meta) { return this.getDefaultState().withProperty(META_PROPERTY, StoneType.getStoneTypeFromMeta(meta)); } @Override public int getMetaFromState(IBlockState state) { return ((StoneType)state.getValue(META_PROPERTY)).getMeta(); } @Override public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) { return new AxisAlignedBB(0.2, 0, 0.2, 0.8, 0.1, 0.8); } @Override public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World worldIn, BlockPos pos) { return NULL_AABB; } @Override public boolean isPassable(IBlockAccess worldIn, BlockPos pos) { return true; } @Override public Item getItemDropped(IBlockState paramIBlockState, Random paramRandom, int paramInt) { return TFCItems.LooseRock; } @Override public int damageDropped(IBlockState state) { return getMetaFromState(state); } }