package me.tyler15555.minibosses.block; import com.google.common.base.Predicate; import me.tyler15555.minibosses.entity.EntityTombGuard; import me.tyler15555.minibosses.util.Resources; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLiving.SpawnPlacementType; import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.EnumCreatureType; import net.minecraft.tileentity.TileEntityChest; import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockCryptStone extends Block { protected BlockCryptStone() { super(Material.rock); setUnlocalizedName("cryptStone"); setCreativeTab(Resources.tabMB); setHarvestLevel("pickaxe", 2); } @Override public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beaconPOS) { return true; } @Override public void onNeighborChange(IBlockAccess world, BlockPos pos, BlockPos nextPOS) { if(world.getTileEntity(nextPOS) instanceof TileEntityChest) { for(int i = 0; i < 3; i++) { EntityTombGuard guard = new EntityTombGuard((World) world); guard.setLocationAndAngles(pos.getX(), pos.getY(), pos.getZ(), 0.0F, 0.0F); World _world = (World)world; _world.spawnEntityInWorld(guard); } } } @Override public boolean isReplaceableOreGen(World world, BlockPos pos, Predicate<IBlockState> target) { return false; } @Override public boolean canCreatureSpawn(IBlockAccess world, BlockPos pos, SpawnPlacementType type) { return type == type.ON_GROUND ? false : true; } @Override public void onEntityCollidedWithBlock(World world, BlockPos pos, Entity entity) { if(entity instanceof EntityLiving) { EntityLiving living = (EntityLiving)entity; if(living.getCreatureAttribute() == EnumCreatureAttribute.UNDEAD) { living.setFire(10); } } } }