package net.minecraft.world.gen.layer; public class GenLayerVoronoiZoom extends GenLayer { private static final String __OBFID = "CL_00000571"; public GenLayerVoronoiZoom(long p_i2133_1_, GenLayer p_i2133_3_) { super(p_i2133_1_); super.parent = p_i2133_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) { areaX -= 2; areaY -= 2; int var5 = areaX >> 2; int var6 = areaY >> 2; int var7 = (areaWidth >> 2) + 2; int var8 = (areaHeight >> 2) + 2; int[] var9 = this.parent.getInts(var5, var6, var7, var8); int var10 = var7 - 1 << 2; int var11 = var8 - 1 << 2; int[] var12 = IntCache.getIntCache(var10 * var11); int var14; for (int var13 = 0; var13 < var8 - 1; ++var13) { var14 = 0; int var15 = var9[var14 + 0 + (var13 + 0) * var7]; for (int var16 = var9[var14 + 0 + (var13 + 1) * var7]; var14 < var7 - 1; ++var14) { double var17 = 3.6D; this.initChunkSeed((long)(var14 + var5 << 2), (long)(var13 + var6 << 2)); double var19 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D; double var21 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D; this.initChunkSeed((long)(var14 + var5 + 1 << 2), (long)(var13 + var6 << 2)); double var23 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D + 4.0D; double var25 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D; this.initChunkSeed((long)(var14 + var5 << 2), (long)(var13 + var6 + 1 << 2)); double var27 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D; double var29 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D + 4.0D; this.initChunkSeed((long)(var14 + var5 + 1 << 2), (long)(var13 + var6 + 1 << 2)); double var31 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D + 4.0D; double var33 = ((double)this.nextInt(1024) / 1024.0D - 0.5D) * 3.6D + 4.0D; int var35 = var9[var14 + 1 + (var13 + 0) * var7] & 255; int var36 = var9[var14 + 1 + (var13 + 1) * var7] & 255; for (int var37 = 0; var37 < 4; ++var37) { int var38 = ((var13 << 2) + var37) * var10 + (var14 << 2); for (int var39 = 0; var39 < 4; ++var39) { double var40 = ((double)var37 - var21) * ((double)var37 - var21) + ((double)var39 - var19) * ((double)var39 - var19); double var42 = ((double)var37 - var25) * ((double)var37 - var25) + ((double)var39 - var23) * ((double)var39 - var23); double var44 = ((double)var37 - var29) * ((double)var37 - var29) + ((double)var39 - var27) * ((double)var39 - var27); double var46 = ((double)var37 - var33) * ((double)var37 - var33) + ((double)var39 - var31) * ((double)var39 - var31); if (var40 < var42 && var40 < var44 && var40 < var46) { var12[var38++] = var15; } else if (var42 < var40 && var42 < var44 && var42 < var46) { var12[var38++] = var35; } else if (var44 < var40 && var44 < var42 && var44 < var46) { var12[var38++] = var16; } else { var12[var38++] = var36; } } } var15 = var35; var16 = var36; } } int[] var48 = IntCache.getIntCache(areaWidth * areaHeight); for (var14 = 0; var14 < areaHeight; ++var14) { System.arraycopy(var12, (var14 + (areaY & 3)) * var10 + (areaX & 3), var48, var14 * areaWidth, areaWidth); } return var48; } }