/** Finds a valid position within a range, that is once of the listed biomes. */ public ChunkPosition a(int var1, int var2, int var3, List var4, Random var5) { IntCache.a(); int var6 = var1 - var3 >> 2; int var7 = var2 - var3 >> 2; int var8 = var1 + var3 >> 2; int var9 = var2 + var3 >> 2; int var10 = var8 - var6 + 1; int var11 = var9 - var7 + 1; int[] var12 = this.d.a(var6, var7, var10, var11); ChunkPosition var13 = null; int var14 = 0; for (int var15 = 0; var15 < var10 * var11; ++var15) { int var16 = var6 + var15 % var10 << 2; int var17 = var7 + var15 / var10 << 2; BiomeBase var18 = BiomeBase.biomes[var12[var15]]; if (var4.contains(var18) && (var13 == null || var5.nextInt(var14 + 1) == 0)) { var13 = new ChunkPosition(var16, 0, var17); ++var14; } } return var13; }
public ChunkPosition a(int i0, int i1, int i2, List list, Random random) { IntCache.a(); int i3 = i0 - i2 >> 2; int i4 = i1 - i2 >> 2; int i5 = i0 + i2 >> 2; int i6 = i1 + i2 >> 2; int i7 = i5 - i3 + 1; int i8 = i6 - i4 + 1; int[] aint = this.d.a(i3, i4, i7, i8); ChunkPosition chunkposition = null; int i9 = 0; for (int i10 = 0; i10 < i7 * i8; ++i10) { int i11 = i3 + i10 % i7 << 2; int i12 = i4 + i10 / i7 << 2; BiomeGenBase biomegenbase = BiomeGenBase.a[aint[i10]]; if (list.contains(biomegenbase) && (chunkposition == null || random.nextInt(i9 + 1) == 0)) { chunkposition = new ChunkPosition(i11, 0, i12); ++i9; } } return chunkposition; }
/** Returns an array of biomes for the location input. */ public BiomeBase[] getBiomes(BiomeBase[] var1, int var2, int var3, int var4, int var5) { IntCache.a(); if (var1 == null || var1.length < var4 * var5) { var1 = new BiomeBase[var4 * var5]; } int[] var6 = this.d.a(var2, var3, var4, var5); for (int var7 = 0; var7 < var4 * var5; ++var7) { var1[var7] = BiomeBase.biomes[var6[var7]]; } return var1; }
/** checks given Chunk's Biomes against List of allowed ones */ public boolean a(int var1, int var2, int var3, List var4) { IntCache.a(); int var5 = var1 - var3 >> 2; int var6 = var2 - var3 >> 2; int var7 = var1 + var3 >> 2; int var8 = var2 + var3 >> 2; int var9 = var7 - var5 + 1; int var10 = var8 - var6 + 1; int[] var11 = this.d.a(var5, var6, var9, var10); for (int var12 = 0; var12 < var9 * var10; ++var12) { BiomeBase var13 = BiomeBase.biomes[var11[var12]]; if (!var4.contains(var13)) { return false; } } return true; }
public float[] b(float[] afloat, int i0, int i1, int i2, int i3) { IntCache.a(); if (afloat == null || afloat.length < i2 * i3) { afloat = new float[i2 * i3]; } int[] aint = this.e.a(i0, i1, i2, i3); for (int i4 = 0; i4 < i2 * i3; ++i4) { float f0 = (float) BiomeGenBase.a[aint[i4]].h() / 65536.0F; if (f0 > 1.0F) { f0 = 1.0F; } afloat[i4] = f0; } return afloat; }
public boolean a(int i0, int i1, int i2, List list) { IntCache.a(); int i3 = i0 - i2 >> 2; int i4 = i1 - i2 >> 2; int i5 = i0 + i2 >> 2; int i6 = i1 + i2 >> 2; int i7 = i5 - i3 + 1; int i8 = i6 - i4 + 1; int[] aint = this.d.a(i3, i4, i7, i8); for (int i9 = 0; i9 < i7 * i8; ++i9) { BiomeGenBase biomegenbase = BiomeGenBase.a[aint[i9]]; if (!list.contains(biomegenbase)) { return false; } } return true; }
/** * Returns a list of temperatures to use for the specified blocks. Args: listToReuse, x, y, width, * length */ public float[] getTemperatures(float[] var1, int var2, int var3, int var4, int var5) { IntCache.a(); if (var1 == null || var1.length < var4 * var5) { var1 = new float[var4 * var5]; } int[] var6 = this.e.a(var2, var3, var4, var5); for (int var7 = 0; var7 < var4 * var5; ++var7) { float var8 = (float) BiomeBase.biomes[var6[var7]].h() / 65536.0F; if (var8 > 1.0F) { var8 = 1.0F; } var1[var7] = var8; } return var1; }
/** * 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 BiomeBase[] a(BiomeBase[] var1, int var2, int var3, int var4, int var5, boolean var6) { IntCache.a(); if (var1 == null || var1.length < var4 * var5) { var1 = new BiomeBase[var4 * var5]; } if (var6 && var4 == 16 && var5 == 16 && (var2 & 15) == 0 && (var3 & 15) == 0) { BiomeBase[] var9 = this.f.e(var2, var3); System.arraycopy(var9, 0, var1, 0, var4 * var5); return var1; } else { int[] var7 = this.e.a(var2, var3, var4, var5); for (int var8 = 0; var8 < var4 * var5; ++var8) { var1[var8] = BiomeBase.biomes[var7[var8]]; } return var1; } }
public BiomeGenBase[] a( BiomeGenBase[] abiomegenbase, int i0, int i1, int i2, int i3, boolean flag0) { IntCache.a(); if (abiomegenbase == null || abiomegenbase.length < i2 * i3) { abiomegenbase = new BiomeGenBase[i2 * i3]; } if (flag0 && i2 == 16 && i3 == 16 && (i0 & 15) == 0 && (i1 & 15) == 0) { BiomeGenBase[] abiomegenbase1 = this.f.e(i0, i1); System.arraycopy(abiomegenbase1, 0, abiomegenbase, 0, i2 * i3); return abiomegenbase; } else { int[] aint = this.e.a(i0, i1, i2, i3); for (int i4 = 0; i4 < i2 * i3; ++i4) { abiomegenbase[i4] = BiomeGenBase.a[aint[i4]]; } return abiomegenbase; } }
public BiomeGenBase[] a(BiomeGenBase[] abiomegenbase, int i0, int i1, int i2, int i3) { IntCache.a(); if (abiomegenbase == null || abiomegenbase.length < i2 * i3) { abiomegenbase = new BiomeGenBase[i2 * i3]; } int[] aint = this.d.a(i0, i1, i2, i3); for (int i4 = 0; i4 < i2 * i3; ++i4) { // CanaryMod: Biome disabling and replacements BiomeGenBase biomegenbase = BiomeGenBase.a[aint[i4]]; if (Configuration.getWorldConfig(world_name).isBiomeDisabled(biomegenbase.N)) { String old = biomegenbase.y; biomegenbase = BiomeGenBase.a[ Configuration.getWorldConfig(world_name).getReplacementBiomeId(biomegenbase.N)]; Canary.logDebug("Biome: " + old + " is disabled and replaced with " + biomegenbase.y); } abiomegenbase[i4] = biomegenbase; // } return abiomegenbase; }
public int[] a(int i, int j, int k, int l) { int[] aint = this.a.a(i - 1, j - 1, k + 2, l + 2); int[] aint1 = IntCache.a(k * l); for (int i1 = 0; i1 < l; ++i1) { for (int j1 = 0; j1 < k; ++j1) { this.a((long) (j1 + i), (long) (i1 + j)); int k1 = aint[j1 + 1 + (i1 + 1) * (k + 2)]; if (!this.a( aint, aint1, j1, i1, k, k1, BiomeBase.EXTREME_HILLS.id, BiomeBase.SMALL_MOUNTAINS.id) && !this.b(aint, aint1, j1, i1, k, k1, BiomeBase.MESA_PLATEAU_F.id, BiomeBase.MESA.id) && !this.b(aint, aint1, j1, i1, k, k1, BiomeBase.MESA_PLATEAU.id, BiomeBase.MESA.id) && !this.b(aint, aint1, j1, i1, k, k1, BiomeBase.MEGA_TAIGA.id, BiomeBase.TAIGA.id)) { int l1; int i2; int j2; int k2; if (k1 == BiomeBase.DESERT.id) { l1 = aint[j1 + 1 + (i1 + 1 - 1) * (k + 2)]; i2 = aint[j1 + 1 + 1 + (i1 + 1) * (k + 2)]; j2 = aint[j1 + 1 - 1 + (i1 + 1) * (k + 2)]; k2 = aint[j1 + 1 + (i1 + 1 + 1) * (k + 2)]; if (l1 != BiomeBase.ICE_PLAINS.id && i2 != BiomeBase.ICE_PLAINS.id && j2 != BiomeBase.ICE_PLAINS.id && k2 != BiomeBase.ICE_PLAINS.id) { aint1[j1 + i1 * k] = k1; } else { aint1[j1 + i1 * k] = BiomeBase.EXTREME_HILLS_PLUS.id; } } else if (k1 == BiomeBase.SWAMPLAND.id) { l1 = aint[j1 + 1 + (i1 + 1 - 1) * (k + 2)]; i2 = aint[j1 + 1 + 1 + (i1 + 1) * (k + 2)]; j2 = aint[j1 + 1 - 1 + (i1 + 1) * (k + 2)]; k2 = aint[j1 + 1 + (i1 + 1 + 1) * (k + 2)]; if (l1 != BiomeBase.DESERT.id && i2 != BiomeBase.DESERT.id && j2 != BiomeBase.DESERT.id && k2 != BiomeBase.DESERT.id && l1 != BiomeBase.COLD_TAIGA.id && i2 != BiomeBase.COLD_TAIGA.id && j2 != BiomeBase.COLD_TAIGA.id && k2 != BiomeBase.COLD_TAIGA.id && l1 != BiomeBase.ICE_PLAINS.id && i2 != BiomeBase.ICE_PLAINS.id && j2 != BiomeBase.ICE_PLAINS.id && k2 != BiomeBase.ICE_PLAINS.id) { if (l1 != BiomeBase.JUNGLE.id && k2 != BiomeBase.JUNGLE.id && i2 != BiomeBase.JUNGLE.id && j2 != BiomeBase.JUNGLE.id) { aint1[j1 + i1 * k] = k1; } else { aint1[j1 + i1 * k] = BiomeBase.JUNGLE_EDGE.id; } } else { aint1[j1 + i1 * k] = BiomeBase.PLAINS.id; } } else { aint1[j1 + i1 * k] = k1; } } } } return aint1; }