示例#1
0
 public BiomeCacheBlock(BiomeCache biomecache, int i, int j) {
   this.f = biomecache;
   this.a = new float[256];
   this.b = new BiomeBase[256];
   this.c = i;
   this.d = j;
   BiomeCache.a(biomecache).getWetness(this.a, i << 4, j << 4, 16, 16);
   BiomeCache.a(biomecache).a(this.b, i << 4, j << 4, 16, 16, false);
 }
  /**
   * Return a list of biomes for the specified blocks. Args: listToReuse, x, y, width, length,
   * cacheFlag (if false, don't check biomeCache to avoid infinite loop in BiomeCacheBlock)
   */
  public BiomeGenBase[] getBiomeGenAt(
      BiomeGenBase abiomegenbase[], int i, int j, int k, int l, boolean flag) {
    IntCache.resetIntCache();

    if (abiomegenbase == null || abiomegenbase.length < k * l) {
      abiomegenbase = new BiomeGenBase[k * l];
    }

    if (flag && k == 16 && l == 16 && (i & 0xf) == 0 && (j & 0xf) == 0) {
      BiomeGenBase abiomegenbase1[] = biomeCache.getCachedBiomes(i, j);
      System.arraycopy(abiomegenbase1, 0, abiomegenbase, 0, k * l);
      return abiomegenbase;
    }

    int ai[] = biomeIndexLayer.getInts(i, j, k, l);

    for (int i1 = 0; i1 < k * l; i1++) {
      abiomegenbase[i1] = BiomeGenBase.biomeList[ai[i1]];
    }

    return abiomegenbase;
  }
 /** Returns the BiomeGenBase related to the x, z position on the world. */
 public BiomeGenBase getBiomeGenAt(int i, int j) {
   return biomeCache.getBiomeGenAt(i, j);
 }
 /** Calls the WorldChunkManager's biomeCache.cleanupCache() */
 public void cleanupCache() {
   biomeCache.cleanupCache();
 }