123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- package me.km.blocks;
- import java.util.Random;
- import me.km.KajetansMod;
- import net.minecraft.block.SoundType;
- import net.minecraft.block.material.MapColor;
- 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.Entity;
- import net.minecraft.entity.EntityLivingBase;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemStack;
- import net.minecraft.util.DamageSource;
- import net.minecraft.util.NonNullList;
- import net.minecraft.util.math.AxisAlignedBB;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.world.IBlockAccess;
- import net.minecraft.world.World;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.relauncher.SideOnly;
- public class BlockSpikeTrap extends BlockTrap
- {
- // everything inspired by BlockWoodSlab
- public static final PropertyEnum<EnumMetals> VARIANT = PropertyEnum.<EnumMetals>create("variant", EnumMetals.class);
-
- public BlockSpikeTrap(Material material, String name, String local)
- {
- super(material, name, local);
- super.setSoundType(SoundType.METAL);
- super.setHardness(5);
- super.setResistance(10);
- super.setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, EnumMetals.COPPER));
- }
-
- @Override
- public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, IBlockAccess worldIn, BlockPos pos)
- {
- return BOX;
- }
- @Override
- public void onEntityCollidedWithBlock(World w, BlockPos pos, IBlockState state, Entity ent)
- {
- if(ent instanceof EntityLivingBase)
- {
- ent.attackEntityFrom(DamageSource.CACTUS, 1);
- }
- }
- @Override
- public void registerItemModel(Item itemBlock)
- {
- for(EnumMetals metal : EnumMetals.values())
- {
- KajetansMod.proxy.registerItemRenderer(itemBlock, metal.getMetadata(), name, "variant=" + metal.getName());
- }
- }
-
- @Override
- public MapColor getMapColor(IBlockState state, IBlockAccess worldIn, BlockPos pos)
- {
- return state.getValue(VARIANT).getMapColor();
- }
-
- @Override
- public Item getItemDropped(IBlockState state, Random rand, int fortune)
- {
- return Item.getItemFromBlock(ModBlocks.spikes);
- }
- @Override
- public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state)
- {
- return new ItemStack(ModBlocks.spikes, 1, state.getValue(VARIANT).getMetadata());
- }
-
- @SideOnly(Side.CLIENT)
- @Override
- public void getSubBlocks(CreativeTabs tab, NonNullList<ItemStack> list)
- {
- for(EnumMetals metal : EnumMetals.values())
- {
- list.add(new ItemStack(this, 1, metal.getMetadata()));
- }
- }
- @Override
- public IBlockState getStateFromMeta(int meta)
- {
- return this.getDefaultState().withProperty(VARIANT, EnumMetals.byMetadata(meta));
- }
- @Override
- public int getMetaFromState(IBlockState state)
- {
- return state.getValue(VARIANT).getMetadata();
- }
- @Override
- protected BlockStateContainer createBlockState()
- {
- return new BlockStateContainer(this, new IProperty[] {VARIANT});
- }
- @Override
- public int damageDropped(IBlockState state)
- {
- return state.getValue(VARIANT).getMetadata();
- }
- }
|