package net.minecraft.world.gen.layer;
public class GenLayerZoom extends GenLayer
{
private static final String __OBFID = "CL_00000572";
public GenLayerZoom(long p_i2134_1_, GenLayer p_i2134_3_)
{
super(p_i2134_1_);
super.parent = p_i2134_3_;
}
/**
* Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
* amounts, or biomeList[] indices based on the particular GenLayer subclass.
*/
public int[] getInts(int areaX, int areaY, int areaWidth, int areaHeight)
{
int var5 = areaX >> 1;
int var6 = areaY >> 1;
int var7 = (areaWidth >> 1) + 2;
int var8 = (areaHeight >> 1) + 2;
int[] var9 = this.parent.getInts(var5, var6, var7, var8);
int var10 = var7 - 1 << 1;
int var11 = var8 - 1 << 1;
int[] var12 = IntCache.getIntCache(var10 * var11);
int var14;
for (int var13 = 0; var13 < var8 - 1; ++var13)
{
var14 = (var13 << 1) * var10;
int var15 = 0;
int var16 = var9[var15 + 0 + (var13 + 0) * var7];
for (int var17 = var9[var15 + 0 + (var13 + 1) * var7]; var15 < var7 - 1; ++var15)
{
this.initChunkSeed((long)(var15 + var5 << 1), (long)(var13 + var6 << 1));
int var18 = var9[var15 + 1 + (var13 + 0) * var7];
int var19 = var9[var15 + 1 + (var13 + 1) * var7];
var12[var14] = var16;
var12[var14++ + var10] = this.selectRandom(new int[] {var16, var17});
var12[var14] = this.selectRandom(new int[] {var16, var18});
var12[var14++ + var10] = this.selectModeOrRandom(var16, var18, var17, var19);
var16 = var18;
var17 = var19;
}
}
int[] var20 = IntCache.getIntCache(areaWidth * areaHeight);
for (var14 = 0; var14 < areaHeight; ++var14)
{
System.arraycopy(var12, (var14 + (areaY & 1)) * var10 + (areaX & 1), var20, var14 * areaWidth, areaWidth);
}
return var20;
}
/**
* Magnify a layer. Parms are seed adjustment, layer, number of times to magnify
*/
public static GenLayer magnify(long p_75915_0_, GenLayer p_75915_2_, int p_75915_3_)
{
Object var4 = p_75915_2_;
for (int var5 = 0; var5 < p_75915_3_; ++var5)
{
var4 = new GenLayerZoom(p_75915_0_ + (long)var5, (GenLayer)var4);
}
return (GenLayer)var4;
}
}