001package net.minecraft.block;
002
003import java.util.Random;
004import net.minecraft.block.material.Material;
005import net.minecraft.creativetab.CreativeTabs;
006import net.minecraft.entity.Entity;
007import net.minecraft.item.Item;
008import net.minecraft.util.AxisAlignedBB;
009import net.minecraft.world.World;
010
011public class BlockWeb extends Block
012{
013    public BlockWeb(int par1)
014    {
015        super(par1, Material.web);
016        this.setCreativeTab(CreativeTabs.tabDecorations);
017    }
018
019    /**
020     * Triggered whenever an entity collides with this block (enters into the block). Args: world, x, y, z, entity
021     */
022    public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity)
023    {
024        par5Entity.setInWeb();
025    }
026
027    /**
028     * Is this block (a) opaque and (b) a full 1m cube?  This determines whether or not to render the shared face of two
029     * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.
030     */
031    public boolean isOpaqueCube()
032    {
033        return false;
034    }
035
036    /**
037     * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been
038     * cleared to be reused)
039     */
040    public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
041    {
042        return null;
043    }
044
045    /**
046     * The type of render function that is called for this block
047     */
048    public int getRenderType()
049    {
050        return 1;
051    }
052
053    /**
054     * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
055     */
056    public boolean renderAsNormalBlock()
057    {
058        return false;
059    }
060
061    /**
062     * Returns the ID of the items to drop on destruction.
063     */
064    public int idDropped(int par1, Random par2Random, int par3)
065    {
066        return Item.silk.itemID;
067    }
068
069    /**
070     * Return true if a player with Silk Touch can harvest this block directly, and not its normal drops.
071     */
072    protected boolean canSilkHarvest()
073    {
074        return true;
075    }
076}