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 }