    001    package net.minecraft.world;
    002
    003    import cpw.mods.fml.common.Side;
    004    import cpw.mods.fml.common.asm.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    }