001package net.minecraft.world.gen.layer;
002
003public class GenLayerSmooth extends GenLayer
004{
005    public GenLayerSmooth(long par1, GenLayer par3GenLayer)
006    {
007        super(par1);
008        super.parent = par3GenLayer;
009    }
010
011    /**
012     * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
013     * amounts, or biomeList[] indices based on the particular GenLayer subclass.
014     */
015    public int[] getInts(int par1, int par2, int par3, int par4)
016    {
017        int var5 = par1 - 1;
018        int var6 = par2 - 1;
019        int var7 = par3 + 2;
020        int var8 = par4 + 2;
021        int[] var9 = this.parent.getInts(var5, var6, var7, var8);
022        int[] var10 = IntCache.getIntCache(par3 * par4);
023
024        for (int var11 = 0; var11 < par4; ++var11)
025        {
026            for (int var12 = 0; var12 < par3; ++var12)
027            {
028                int var13 = var9[var12 + 0 + (var11 + 1) * var7];
029                int var14 = var9[var12 + 2 + (var11 + 1) * var7];
030                int var15 = var9[var12 + 1 + (var11 + 0) * var7];
031                int var16 = var9[var12 + 1 + (var11 + 2) * var7];
032                int var17 = var9[var12 + 1 + (var11 + 1) * var7];
033
034                if (var13 == var14 && var15 == var16)
035                {
036                    this.initChunkSeed((long)(var12 + par1), (long)(var11 + par2));
037
038                    if (this.nextInt(2) == 0)
039                    {
040                        var17 = var13;
041                    }
042                    else
043                    {
044                        var17 = var15;
045                    }
046                }
047                else
048                {
049                    if (var13 == var14)
050                    {
051                        var17 = var13;
052                    }
053
054                    if (var15 == var16)
055                    {
056                        var17 = var15;
057                    }
058                }
059
060                var10[var12 + var11 * par3] = var17;
061            }
062        }
063
064        return var10;
065    }
066}