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 }