001 package net.minecraft.world.gen.layer;
002
003 import net.minecraft.world.biome.BiomeGenBase;
004
005 public class GenLayerHills extends GenLayer
006 {
007 public GenLayerHills(long par1, GenLayer par3GenLayer)
008 {
009 super(par1);
010 this.parent = par3GenLayer;
011 }
012
013 /**
014 * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
015 * amounts, or biomeList[] indices based on the particular GenLayer subclass.
016 */
017 public int[] getInts(int par1, int par2, int par3, int par4)
018 {
019 int[] var5 = this.parent.getInts(par1 - 1, par2 - 1, par3 + 2, par4 + 2);
020 int[] var6 = IntCache.getIntCache(par3 * par4);
021
022 for (int var7 = 0; var7 < par4; ++var7)
023 {
024 for (int var8 = 0; var8 < par3; ++var8)
025 {
026 this.initChunkSeed((long)(var8 + par1), (long)(var7 + par2));
027 int var9 = var5[var8 + 1 + (var7 + 1) * (par3 + 2)];
028
029 if (this.nextInt(3) == 0)
030 {
031 int var10 = var9;
032
033 if (var9 == BiomeGenBase.desert.biomeID)
034 {
035 var10 = BiomeGenBase.desertHills.biomeID;
036 }
037 else if (var9 == BiomeGenBase.forest.biomeID)
038 {
039 var10 = BiomeGenBase.forestHills.biomeID;
040 }
041 else if (var9 == BiomeGenBase.taiga.biomeID)
042 {
043 var10 = BiomeGenBase.taigaHills.biomeID;
044 }
045 else if (var9 == BiomeGenBase.plains.biomeID)
046 {
047 var10 = BiomeGenBase.forest.biomeID;
048 }
049 else if (var9 == BiomeGenBase.icePlains.biomeID)
050 {
051 var10 = BiomeGenBase.iceMountains.biomeID;
052 }
053 else if (var9 == BiomeGenBase.jungle.biomeID)
054 {
055 var10 = BiomeGenBase.jungleHills.biomeID;
056 }
057
058 if (var10 == var9)
059 {
060 var6[var8 + var7 * par3] = var9;
061 }
062 else
063 {
064 int var11 = var5[var8 + 1 + (var7 + 1 - 1) * (par3 + 2)];
065 int var12 = var5[var8 + 1 + 1 + (var7 + 1) * (par3 + 2)];
066 int var13 = var5[var8 + 1 - 1 + (var7 + 1) * (par3 + 2)];
067 int var14 = var5[var8 + 1 + (var7 + 1 + 1) * (par3 + 2)];
068
069 if (var11 == var9 && var12 == var9 && var13 == var9 && var14 == var9)
070 {
071 var6[var8 + var7 * par3] = var10;
072 }
073 else
074 {
075 var6[var8 + var7 * par3] = var9;
076 }
077 }
078 }
079 else
080 {
081 var6[var8 + var7 * par3] = var9;
082 }
083 }
084 }
085
086 return var6;
087 }
088 }