001 package net.minecraft.block;
002
003 import java.util.Random;
004 import net.minecraft.block.material.Material;
005 import net.minecraft.creativetab.CreativeTabs;
006 import net.minecraft.entity.Entity;
007 import net.minecraft.item.Item;
008 import net.minecraft.util.AxisAlignedBB;
009 import net.minecraft.world.World;
010
011 public class BlockWeb extends Block
012 {
013 public BlockWeb(int par1, int par2)
014 {
015 super(par1, par2, 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 }