001    package net.minecraft.block;
002    
003    import net.minecraft.block.material.Material;
004    import net.minecraft.creativetab.CreativeTabs;
005    import net.minecraft.entity.player.EntityPlayer;
006    import net.minecraft.tileentity.TileEntity;
007    import net.minecraft.tileentity.TileEntityBeacon;
008    import net.minecraft.world.World;
009    
010    public class BlockBeacon extends BlockContainer
011    {
012        public BlockBeacon(int par1)
013        {
014            super(par1, 41, Material.glass);
015            this.setHardness(3.0F);
016            this.setCreativeTab(CreativeTabs.tabMisc);
017        }
018    
019        /**
020         * Returns a new instance of a block's tile entity class. Called on placing the block.
021         */
022        public TileEntity createNewTileEntity(World par1World)
023        {
024            return new TileEntityBeacon();
025        }
026    
027        /**
028         * Called upon block activation (right click on the block.)
029         */
030        public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
031        {
032            if (par1World.isRemote)
033            {
034                return true;
035            }
036            else
037            {
038                TileEntityBeacon var10 = (TileEntityBeacon)par1World.getBlockTileEntity(par2, par3, par4);
039    
040                if (var10 != null)
041                {
042                    par5EntityPlayer.displayGUIBeacon(var10);
043                }
044    
045                return true;
046            }
047        }
048    
049        /**
050         * Is this block (a) opaque and (b) a full 1m cube?  This determines whether or not to render the shared face of two
051         * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.
052         */
053        public boolean isOpaqueCube()
054        {
055            return false;
056        }
057    
058        /**
059         * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
060         */
061        public boolean renderAsNormalBlock()
062        {
063            return false;
064        }
065    
066        /**
067         * The type of render function that is called for this block
068         */
069        public int getRenderType()
070        {
071            return 34;
072        }
073    }