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