package net.minecraft.world.gen;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import net.minecraft.block.Block;
import net.minecraft.util.MathHelper;
import net.minecraft.world.biome.BiomeGenBase;
public class FlatGeneratorInfo
{
/** List of layers on this preset. */
private final List flatLayers = new ArrayList();
/** List of world features enabled on this preset. */
private final Map worldFeatures = new HashMap();
private int field_82654_c = 0;
/**
* Return the biome used on this preset.
*/
public int getBiome()
{
return this.field_82654_c;
}
/**
* Set the biome used on this preset.
*/
public void setBiome(int par1)
{
this.field_82654_c = par1;
}
/**
* Return the list of world features enabled on this preset.
*/
public Map getWorldFeatures()
{
return this.worldFeatures;
}
/**
* Return the list of layers on this preset.
*/
public List getFlatLayers()
{
return this.flatLayers;
}
public void func_82645_d()
{
int var1 = 0;
FlatLayerInfo var3;
for (Iterator var2 = this.flatLayers.iterator(); var2.hasNext(); var1 += var3.getLayerCount())
{
var3 = (FlatLayerInfo)var2.next();
var3.setMinY(var1);
}
}
public String toString()
{
StringBuilder var1 = new StringBuilder();
var1.append(2);
var1.append(";");
int var2;
for (var2 = 0; var2 < this.flatLayers.size(); ++var2)
{
if (var2 > 0)
{
var1.append(",");
}
var1.append(((FlatLayerInfo)this.flatLayers.get(var2)).toString());
}
var1.append(";");
var1.append(this.field_82654_c);
if (!this.worldFeatures.isEmpty())
{
var1.append(";");
var2 = 0;
Iterator var3 = this.worldFeatures.entrySet().iterator();
while (var3.hasNext())
{
Entry var4 = (Entry)var3.next();
if (var2++ > 0)
{
var1.append(",");
}
var1.append(((String)var4.getKey()).toLowerCase());
Map var5 = (Map)var4.getValue();
if (!var5.isEmpty())
{
var1.append("(");
int var6 = 0;
Iterator var7 = var5.entrySet().iterator();
while (var7.hasNext())
{
Entry var8 = (Entry)var7.next();
if (var6++ > 0)
{
var1.append(" ");
}
var1.append((String)var8.getKey());
var1.append("=");
var1.append((String)var8.getValue());
}
var1.append(")");
}
}
}
else
{
var1.append(";");
}
return var1.toString();
}
private static FlatLayerInfo func_82646_a(String par0Str, int par1)
{
String[] var2 = par0Str.split("x", 2);
int var3 = 1;
int var5 = 0;
if (var2.length == 2)
{
try
{
var3 = Integer.parseInt(var2[0]);
if (par1 + var3 >= 256)
{
var3 = 256 - par1;
}
if (var3 < 0)
{
var3 = 0;
}
}
catch (Throwable var7)
{
return null;
}
}
int var4;
try
{
String var6 = var2[var2.length - 1];
var2 = var6.split(":", 2);
var4 = Integer.parseInt(var2[0]);
if (var2.length > 1)
{
var5 = Integer.parseInt(var2[1]);
}
if (Block.blocksList[var4] == null)
{
var4 = 0;
var5 = 0;
}
if (var5 < 0 || var5 > 15)
{
var5 = 0;
}
}
catch (Throwable var8)
{
return null;
}
FlatLayerInfo var9 = new FlatLayerInfo(var3, var4, var5);
var9.setMinY(par1);
return var9;
}
private static List func_82652_b(String par0Str)
{
if (par0Str != null && par0Str.length() >= 1)
{
ArrayList var1 = new ArrayList();
String[] var2 = par0Str.split(",");
int var3 = 0;
String[] var4 = var2;
int var5 = var2.length;
for (int var6 = 0; var6 < var5; ++var6)
{
String var7 = var4[var6];
FlatLayerInfo var8 = func_82646_a(var7, var3);
if (var8 == null)
{
return null;
}
var1.add(var8);
var3 += var8.getLayerCount();
}
return var1;
}
else
{
return null;
}
}
public static FlatGeneratorInfo createFlatGeneratorFromString(String par0Str)
{
if (par0Str == null)
{
return getDefaultFlatGenerator();
}
else
{
String[] var1 = par0Str.split(";", -1);
int var2 = var1.length == 1 ? 0 : MathHelper.parseIntWithDefault(var1[0], 0);
if (var2 >= 0 && var2 <= 2)
{
FlatGeneratorInfo var3 = new FlatGeneratorInfo();
int var4 = var1.length == 1 ? 0 : 1;
List var5 = func_82652_b(var1[var4++]);
if (var5 != null && !var5.isEmpty())
{
var3.getFlatLayers().addAll(var5);
var3.func_82645_d();
int var6 = BiomeGenBase.plains.biomeID;
if (var2 > 0 && var1.length > var4)
{
var6 = MathHelper.parseIntWithDefault(var1[var4++], var6);
}
var3.setBiome(var6);
if (var2 > 0 && var1.length > var4)
{
String[] var7 = var1[var4++].toLowerCase().split(",");
String[] var8 = var7;
int var9 = var7.length;
for (int var10 = 0; var10 < var9; ++var10)
{
String var11 = var8[var10];
String[] var12 = var11.split("\\(", 2);
HashMap var13 = new HashMap();
if (var12[0].length() > 0)
{
var3.getWorldFeatures().put(var12[0], var13);
if (var12.length > 1 && var12[1].endsWith(")") && var12[1].length() > 1)
{
String[] var14 = var12[1].substring(0, var12[1].length() - 1).split(" ");
for (int var15 = 0; var15 < var14.length; ++var15)
{
String[] var16 = var14[var15].split("=", 2);
if (var16.length == 2)
{
var13.put(var16[0], var16[1]);
}
}
}
}
}
}
else
{
var3.getWorldFeatures().put("village", new HashMap());
}
return var3;
}
else
{
return getDefaultFlatGenerator();
}
}
else
{
return getDefaultFlatGenerator();
}
}
}
public static FlatGeneratorInfo getDefaultFlatGenerator()
{
FlatGeneratorInfo var0 = new FlatGeneratorInfo();
var0.setBiome(BiomeGenBase.plains.biomeID);
var0.getFlatLayers().add(new FlatLayerInfo(1, Block.bedrock.blockID));
var0.getFlatLayers().add(new FlatLayerInfo(2, Block.dirt.blockID));
var0.getFlatLayers().add(new FlatLayerInfo(1, Block.grass.blockID));
var0.func_82645_d();
var0.getWorldFeatures().put("village", new HashMap());
return var0;
}
}