    001    package net.minecraft.block;
    002
    003    import cpw.mods.fml.common.Side;
    004    import cpw.mods.fml.common.asm.SideOnly;
    005    import java.util.Random;
    006    import net.minecraft.block.material.Material;
    007    import net.minecraft.creativetab.CreativeTabs;
    008
    009    public class BlockGlass extends BlockBreakable
    010    {
    011        public BlockGlass(int par1, int par2, Material par3Material, boolean par4)
    012        {
    013            super(par1, par2, par3Material, par4);
    014            this.setCreativeTab(CreativeTabs.tabBlock);
    015        }
    016
    017        /**
    018         * Returns the quantity of items to drop on block destruction.
    019         */
    020        public int quantityDropped(Random par1Random)
    021        {
    022            return 0;
    023        }
    024
    025        @SideOnly(Side.CLIENT)
    026
    027        /**
    028         * Returns which pass should this block be rendered on. 0 for solids and 1 for alpha
    029         */
    030        public int getRenderBlockPass()
    031        {
    032            return 0;
    033        }
    034
    035        /**
    036         * Is this block (a) opaque and (b) a full 1m cube?  This determines whether or not to render the shared face of two
    037         * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.
    038         */
    039        public boolean isOpaqueCube()
    040        {
    041            return false;
    042        }
    043
    044        /**
    045         * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
    046         */
    047        public boolean renderAsNormalBlock()
    048        {
    049            return false;
    050        }
    051
    052        /**
    053         * Return true if a player with Silk Touch can harvest this block directly, and not its normal drops.
    054         */
    055        protected boolean canSilkHarvest()
    056        {
    057            return true;
    058        }
    059    }