001    package net.minecraft.src;
002    
003    import cpw.mods.fml.common.Side;
004    import cpw.mods.fml.common.asm.SideOnly;
005    
006    public interface IBlockAccess
007    {
008        /**
009         * Returns the block ID at coords x,y,z
010         */
011        int getBlockId(int var1, int var2, int var3);
012    
013        /**
014         * Returns the TileEntity associated with a given block in X,Y,Z coordinates, or null if no TileEntity exists
015         */
016        TileEntity getBlockTileEntity(int var1, int var2, int var3);
017    
018        @SideOnly(Side.CLIENT)
019    
020        /**
021         * Any Light rendered on a 1.8 Block goes through here
022         */
023        int getLightBrightnessForSkyBlocks(int var1, int var2, int var3, int var4);
024    
025        @SideOnly(Side.CLIENT)
026        float getBrightness(int var1, int var2, int var3, int var4);
027    
028        @SideOnly(Side.CLIENT)
029    
030        /**
031         * Returns how bright the block is shown as which is the block's light value looked up in a lookup table (light
032         * values aren't linear for brightness). Args: x, y, z
033         */
034        float getLightBrightness(int var1, int var2, int var3);
035    
036        /**
037         * Returns the block metadata at coords x,y,z
038         */
039        int getBlockMetadata(int var1, int var2, int var3);
040    
041        /**
042         * Returns the block's material.
043         */
044        Material getBlockMaterial(int var1, int var2, int var3);
045    
046        @SideOnly(Side.CLIENT)
047    
048        /**
049         * Returns true if the block at the specified coordinates is an opaque cube. Args: x, y, z
050         */
051        boolean isBlockOpaqueCube(int var1, int var2, int var3);
052    
053        /**
054         * Indicate if a material is a normal solid opaque cube.
055         */
056        boolean isBlockNormalCube(int var1, int var2, int var3);
057    
058        @SideOnly(Side.CLIENT)
059    
060        /**
061         * Returns true if the block at the specified coordinates is empty
062         */
063        boolean isAirBlock(int var1, int var2, int var3);
064    
065        @SideOnly(Side.CLIENT)
066    
067        /**
068         * Gets the biome for a given set of x/z coordinates
069         */
070        BiomeGenBase getBiomeGenForCoords(int var1, int var2);
071    
072        @SideOnly(Side.CLIENT)
073    
074        /**
075         * Returns current world height.
076         */
077        int getHeight();
078    
079        @SideOnly(Side.CLIENT)
080    
081        /**
082         * set by !chunk.getAreLevelsEmpty
083         */
084        boolean extendedLevelsInChunkCache();
085    
086        @SideOnly(Side.CLIENT)
087    
088        /**
089         * Returns true if the block at the given coordinate has a solid (buildable) top surface.
090         */
091        boolean doesBlockHaveSolidTopSurface(int var1, int var2, int var3);
092    
093        /**
094         * Return the Vec3Pool object for this world.
095         */
096        Vec3Pool getWorldVec3Pool();
097    
098        /**
099         * Is this block powering in the specified direction Args: x, y, z, direction
100         */
101        boolean isBlockProvidingPowerTo(int var1, int var2, int var3, int var4);
102    }