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