001 package net.minecraft.src; 002 003 import java.util.ArrayList; 004 import java.util.HashMap; 005 import java.util.Iterator; 006 import java.util.List; 007 import java.util.Map; 008 import java.util.Map.Entry; 009 010 public class FlatGeneratorInfo 011 { 012 /** List of layers on this preset. */ 013 private final List flatLayers = new ArrayList(); 014 015 /** List of world features enabled on this preset. */ 016 private final Map worldFeatures = new HashMap(); 017 private int field_82654_c = 0; 018 019 /** 020 * Return the biome used on this preset. 021 */ 022 public int getBiome() 023 { 024 return this.field_82654_c; 025 } 026 027 /** 028 * Set the biome used on this preset. 029 */ 030 public void setBiome(int par1) 031 { 032 this.field_82654_c = par1; 033 } 034 035 /** 036 * Return the list of world features enabled on this preset. 037 */ 038 public Map getWorldFeatures() 039 { 040 return this.worldFeatures; 041 } 042 043 /** 044 * Return the list of layers on this preset. 045 */ 046 public List getFlatLayers() 047 { 048 return this.flatLayers; 049 } 050 051 public void func_82645_d() 052 { 053 int var1 = 0; 054 FlatLayerInfo var3; 055 056 for (Iterator var2 = this.flatLayers.iterator(); var2.hasNext(); var1 += var3.getLayerCount()) 057 { 058 var3 = (FlatLayerInfo)var2.next(); 059 var3.setMinY(var1); 060 } 061 } 062 063 public String toString() 064 { 065 StringBuilder var1 = new StringBuilder(); 066 var1.append(2); 067 var1.append(";"); 068 int var2; 069 070 for (var2 = 0; var2 < this.flatLayers.size(); ++var2) 071 { 072 if (var2 > 0) 073 { 074 var1.append(","); 075 } 076 077 var1.append(((FlatLayerInfo)this.flatLayers.get(var2)).toString()); 078 } 079 080 var1.append(";"); 081 var1.append(this.field_82654_c); 082 083 if (!this.worldFeatures.isEmpty()) 084 { 085 var1.append(";"); 086 var2 = 0; 087 Iterator var3 = this.worldFeatures.entrySet().iterator(); 088 089 while (var3.hasNext()) 090 { 091 Entry var4 = (Entry)var3.next(); 092 093 if (var2++ > 0) 094 { 095 var1.append(","); 096 } 097 098 var1.append(((String)var4.getKey()).toLowerCase()); 099 Map var5 = (Map)var4.getValue(); 100 101 if (!var5.isEmpty()) 102 { 103 var1.append("("); 104 int var6 = 0; 105 Iterator var7 = var5.entrySet().iterator(); 106 107 while (var7.hasNext()) 108 { 109 Entry var8 = (Entry)var7.next(); 110 111 if (var6++ > 0) 112 { 113 var1.append(" "); 114 } 115 116 var1.append((String)var8.getKey()); 117 var1.append("="); 118 var1.append((String)var8.getValue()); 119 } 120 121 var1.append(")"); 122 } 123 } 124 } 125 126 return var1.toString(); 127 } 128 129 private static FlatLayerInfo func_82646_a(String par0Str, int par1) 130 { 131 String[] var2 = par0Str.split("x", 2); 132 int var3 = 1; 133 int var5 = 0; 134 135 if (var2.length == 2) 136 { 137 try 138 { 139 var3 = Integer.parseInt(var2[0]); 140 141 if (par1 + var3 >= 256) 142 { 143 var3 = 256 - par1; 144 } 145 146 if (var3 < 0) 147 { 148 var3 = 0; 149 } 150 } 151 catch (Throwable var7) 152 { 153 return null; 154 } 155 } 156 157 int var4; 158 159 try 160 { 161 String var6 = var2[var2.length - 1]; 162 var2 = var6.split(":", 2); 163 var4 = Integer.parseInt(var2[0]); 164 165 if (var2.length > 1) 166 { 167 var5 = Integer.parseInt(var2[1]); 168 } 169 170 if (Block.blocksList[var4] == null) 171 { 172 var4 = 0; 173 var5 = 0; 174 } 175 176 if (var5 < 0 || var5 > 15) 177 { 178 var5 = 0; 179 } 180 } 181 catch (Throwable var8) 182 { 183 return null; 184 } 185 186 FlatLayerInfo var9 = new FlatLayerInfo(var3, var4, var5); 187 var9.setMinY(par1); 188 return var9; 189 } 190 191 private static List func_82652_b(String par0Str) 192 { 193 if (par0Str != null && par0Str.length() >= 1) 194 { 195 ArrayList var1 = new ArrayList(); 196 String[] var2 = par0Str.split(","); 197 int var3 = 0; 198 String[] var4 = var2; 199 int var5 = var2.length; 200 201 for (int var6 = 0; var6 < var5; ++var6) 202 { 203 String var7 = var4[var6]; 204 FlatLayerInfo var8 = func_82646_a(var7, var3); 205 206 if (var8 == null) 207 { 208 return null; 209 } 210 211 var1.add(var8); 212 var3 += var8.getLayerCount(); 213 } 214 215 return var1; 216 } 217 else 218 { 219 return null; 220 } 221 } 222 223 public static FlatGeneratorInfo createFlatGeneratorFromString(String par0Str) 224 { 225 if (par0Str == null) 226 { 227 return getDefaultFlatGenerator(); 228 } 229 else 230 { 231 String[] var1 = par0Str.split(";", -1); 232 int var2 = var1.length == 1 ? 0 : MathHelper.parseIntWithDefault(var1[0], 0); 233 234 if (var2 >= 0 && var2 <= 2) 235 { 236 FlatGeneratorInfo var3 = new FlatGeneratorInfo(); 237 int var4 = var1.length == 1 ? 0 : 1; 238 List var5 = func_82652_b(var1[var4++]); 239 240 if (var5 != null && !var5.isEmpty()) 241 { 242 var3.getFlatLayers().addAll(var5); 243 var3.func_82645_d(); 244 int var6 = BiomeGenBase.plains.biomeID; 245 246 if (var2 > 0 && var1.length > var4) 247 { 248 var6 = MathHelper.parseIntWithDefault(var1[var4++], var6); 249 } 250 251 var3.setBiome(var6); 252 253 if (var2 > 0 && var1.length > var4) 254 { 255 String[] var7 = var1[var4++].toLowerCase().split(","); 256 String[] var8 = var7; 257 int var9 = var7.length; 258 259 for (int var10 = 0; var10 < var9; ++var10) 260 { 261 String var11 = var8[var10]; 262 String[] var12 = var11.split("\\(", 2); 263 HashMap var13 = new HashMap(); 264 265 if (var12[0].length() > 0) 266 { 267 var3.getWorldFeatures().put(var12[0], var13); 268 269 if (var12.length > 1 && var12[1].endsWith(")") && var12[1].length() > 1) 270 { 271 String[] var14 = var12[1].substring(0, var12[1].length() - 1).split(" "); 272 273 for (int var15 = 0; var15 < var14.length; ++var15) 274 { 275 String[] var16 = var14[var15].split("=", 2); 276 277 if (var16.length == 2) 278 { 279 var13.put(var16[0], var16[1]); 280 } 281 } 282 } 283 } 284 } 285 } 286 else 287 { 288 var3.getWorldFeatures().put("village", new HashMap()); 289 } 290 291 return var3; 292 } 293 else 294 { 295 return getDefaultFlatGenerator(); 296 } 297 } 298 else 299 { 300 return getDefaultFlatGenerator(); 301 } 302 } 303 } 304 305 public static FlatGeneratorInfo getDefaultFlatGenerator() 306 { 307 FlatGeneratorInfo var0 = new FlatGeneratorInfo(); 308 var0.setBiome(BiomeGenBase.plains.biomeID); 309 var0.getFlatLayers().add(new FlatLayerInfo(1, Block.bedrock.blockID)); 310 var0.getFlatLayers().add(new FlatLayerInfo(2, Block.dirt.blockID)); 311 var0.getFlatLayers().add(new FlatLayerInfo(1, Block.grass.blockID)); 312 var0.func_82645_d(); 313 var0.getWorldFeatures().put("village", new HashMap()); 314 return var0; 315 } 316 }