public static String randomTexture(EntityLiving var0, String var1) { if (var1 != null && var1.startsWith("/mob/") && var1.endsWith(".png")) { String var2 = var1 + ":" + var0.entityId; String var3 = (String) cache.get(var2); if (var3 == null) { MobRandomizer$ExtraInfo var4 = MobRandomizer$ExtraInfo.getInfo(var0); MobRuleList var5 = MobRuleList.get(var1); var3 = var5.getSkin( MobRandomizer$ExtraInfo.access$100(var4), MobRandomizer$ExtraInfo.access$200(var4), MobRandomizer$ExtraInfo.access$300(var4), MobRandomizer$ExtraInfo.access$400(var4), MobRandomizer$ExtraInfo.access$500(var4)); cache.put(var2, var3); if (cache.size() > 250) { while (cache.size() > 200) { cache.remove(cache.keySet().iterator().next()); } } } return var3; } else { return var1; } }
static MobRuleList$MobRuleEntry load(Properties properties, int index, int limit) { String skinList = properties.getProperty("skins." + index, "").trim().toLowerCase(); int[] skins; int chooser; if (!skinList.equals("*") && !skinList.equals("all") && !skinList.equals("any")) { skins = MCPatcherUtils.parseIntegerList(skinList, 1, limit); if (skins.length <= 0) { return null; } for (chooser = 0; chooser < skins.length; ++chooser) { --skins[chooser]; } } else { skins = new int[limit]; for (chooser = 0; chooser < skins.length; skins[chooser] = chooser++) {; } } WeightedIndex var11 = WeightedIndex.create(skins.length, properties.getProperty("weights." + index, "")); if (var11 == null) { return null; } else { String biomeList = MCPatcherUtils.getStringProperty(properties, "biomes." + index, ""); BitSet biomes; if (biomeList.isEmpty()) { biomes = null; } else { biomes = new BitSet(); if (MobRuleList.access$000() != null) { try { MobRuleList.access$000().invoke((Object) null, new Object[] {biomeList, biomes}); } catch (Throwable var10) { var10.printStackTrace(); MobRuleList.access$002((Method) null); } } } int minHeight = MCPatcherUtils.getIntProperty(properties, "minHeight." + index, -1); int maxHeight = MCPatcherUtils.getIntProperty(properties, "maxHeight." + index, Integer.MAX_VALUE); if (minHeight < 0 || minHeight > maxHeight) { minHeight = -1; maxHeight = Integer.MAX_VALUE; } return new MobRuleList$MobRuleEntry(skins, var11, biomes, minHeight, maxHeight); } }