001    package net.minecraft.world.gen.layer;
002    
003    import net.minecraft.world.biome.BiomeGenBase;
004    
005    public class GenLayerRiverMix extends GenLayer
006    {
007        private GenLayer biomePatternGeneratorChain;
008        private GenLayer riverPatternGeneratorChain;
009    
010        public GenLayerRiverMix(long par1, GenLayer par3GenLayer, GenLayer par4GenLayer)
011        {
012            super(par1);
013            this.biomePatternGeneratorChain = par3GenLayer;
014            this.riverPatternGeneratorChain = par4GenLayer;
015        }
016    
017        /**
018         * Initialize layer's local worldGenSeed based on its own baseSeed and the world's global seed (passed in as an
019         * argument).
020         */
021        public void initWorldGenSeed(long par1)
022        {
023            this.biomePatternGeneratorChain.initWorldGenSeed(par1);
024            this.riverPatternGeneratorChain.initWorldGenSeed(par1);
025            super.initWorldGenSeed(par1);
026        }
027    
028        /**
029         * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
030         * amounts, or biomeList[] indices based on the particular GenLayer subclass.
031         */
032        public int[] getInts(int par1, int par2, int par3, int par4)
033        {
034            int[] var5 = this.biomePatternGeneratorChain.getInts(par1, par2, par3, par4);
035            int[] var6 = this.riverPatternGeneratorChain.getInts(par1, par2, par3, par4);
036            int[] var7 = IntCache.getIntCache(par3 * par4);
037    
038            for (int var8 = 0; var8 < par3 * par4; ++var8)
039            {
040                if (var5[var8] == BiomeGenBase.ocean.biomeID)
041                {
042                    var7[var8] = var5[var8];
043                }
044                else if (var6[var8] >= 0)
045                {
046                    if (var5[var8] == BiomeGenBase.icePlains.biomeID)
047                    {
048                        var7[var8] = BiomeGenBase.frozenRiver.biomeID;
049                    }
050                    else if (var5[var8] != BiomeGenBase.mushroomIsland.biomeID && var5[var8] != BiomeGenBase.mushroomIslandShore.biomeID)
051                    {
052                        var7[var8] = var6[var8];
053                    }
054                    else
055                    {
056                        var7[var8] = BiomeGenBase.mushroomIslandShore.biomeID;
057                    }
058                }
059                else
060                {
061                    var7[var8] = var5[var8];
062                }
063            }
064    
065            return var7;
066        }
067    }