    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    }