001    package net.minecraft.world.biome;
002    
003    public class BiomeCacheBlock
004    {
005        /** An array of chunk temperatures saved by this cache. */
006        public float[] temperatureValues;
007    
008        /** An array of chunk rainfall values saved by this cache. */
009        public float[] rainfallValues;
010    
011        /** The array of biome types stored in this BiomeCacheBlock. */
012        public BiomeGenBase[] biomes;
013    
014        /** The x coordinate of the BiomeCacheBlock. */
015        public int xPosition;
016    
017        /** The z coordinate of the BiomeCacheBlock. */
018        public int zPosition;
019    
020        /** The last time this BiomeCacheBlock was accessed, in milliseconds. */
021        public long lastAccessTime;
022    
023        /** The BiomeCache object that contains this BiomeCacheBlock */
024        final BiomeCache theBiomeCache;
025    
026        public BiomeCacheBlock(BiomeCache par1BiomeCache, int par2, int par3)
027        {
028            this.theBiomeCache = par1BiomeCache;
029            this.temperatureValues = new float[256];
030            this.rainfallValues = new float[256];
031            this.biomes = new BiomeGenBase[256];
032            this.xPosition = par2;
033            this.zPosition = par3;
034            BiomeCache.getChunkManager(par1BiomeCache).getTemperatures(this.temperatureValues, par2 << 4, par3 << 4, 16, 16);
035            BiomeCache.getChunkManager(par1BiomeCache).getRainfall(this.rainfallValues, par2 << 4, par3 << 4, 16, 16);
036            BiomeCache.getChunkManager(par1BiomeCache).getBiomeGenAt(this.biomes, par2 << 4, par3 << 4, 16, 16, false);
037        }
038    
039        /**
040         * Returns the BiomeGenBase related to the x, z position from the cache block.
041         */
042        public BiomeGenBase getBiomeGenAt(int par1, int par2)
043        {
044            return this.biomes[par1 & 15 | (par2 & 15) << 4];
045        }
046    }