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 }