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 }