Hi i get "illegal start of expression" compiling error
ZMOD.java:1295: illegal start of expression
for (int j = 0; j < paramArrayOfgz.length; j++) localArrayList.add(paramArrayOfgz[j] = = paramArrayOfgz[j]);
^
1 error
Press any key to continue . . .
the whole code is this
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.PrintStream;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Collections;
import java.util.ConcurrentModificationException;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Random;
import net.minecraft.client.Minecraft;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;
public class ZMod
{
public static final String version = "4.3";
public static Minecraft mc;
private static String path;
private static PrintStream out;
private static String logPath;
private static String firstError;
private static ZFR text;
private static ZRG render;
private static Properties conf;
private static boolean exceptionReported;
private static boolean[] keys = new boolean[256];
public static Random rnd = new Random();
public static boolean modCloudEnabled;
public static boolean modCartEnabled;
public static boolean modWieldEnabled;
public static boolean modBuildEnabled;
public static boolean modCompassEnabled;
public static boolean modSunEnabled;
public static boolean modCraftEnabled;
public static boolean modFlyEnabled;
public static boolean modPathEnabled;
public static boolean modRecipeEnabled;
public static boolean modSafeEnabled;
public static boolean modBoomEnabled;
public static boolean modSpawnEnabled;
public static boolean modOreEnabled;
public static boolean modTeleportEnabled;
public static int keyBaseInfo;
public static int keyCloudToggle;
public static int keyCloudUp;
public static int keyCloudDown;
public static int keyCloudVanilla;
public static int keyCartStop;
public static int keyCartPerpetual;
public static int keyWield;
public static int keyBuildToggle;
public static int keyBuildA;
public static int keyBuildB;
public static int keyCompassSet;
public static int keyCompassToggle;
public static int keySunTimeAdd;
public static int keySunTimeSub;
public static int keySunStop;
public static int keySunTimeNormal;
public static int keyCraftAll;
public static int keyPathShow;
public static int keyPathDelete;
public static int keyFlyOn;
public static int keyFlyOff;
public static int keyFlyUp;
public static int keyFlyDown;
public static int keyFlySpeed;
public static int keyFlyToggle;
public static int keySafeShow;
public static boolean optBaseDisableWarning;
public static boolean optBaseShowInfo;
public static boolean optCloudShow;
public static boolean optCloudVanilla;
public static boolean optCartPerpetual;
public static boolean optWieldBowFirst;
public static boolean optBuild;
public static boolean optCompassShowPos;
public static boolean optPathShow;
public static boolean optRecipeShowId;
public static boolean optRecipeDump;
public static boolean optBuildLockQuantity;
public static boolean optOreLavaFloor;
public static float optCloudOffset;
public static float optCartSpeedAccumCap;
public static float optCartAcceleration;
public static float optPathMin;
public static float optPathAnimSpeed;
public static float optBoomScaleTNT;
public static float optBoomScaleCreeper;
public static double optFlySpeedVertical;
public static double optFlySpeedMulNormal;
public static double optFlySpeedMulModifier;
public static int optSunTimeStep;
public static int optPathPoints;
public static int optPathSpacing;
public static int optBoomSafeRange;
public static String tagCloudVanilla;
public static String tagCartPerpetual;
public static String tagBuildEnabled;
public static String tagCompassAlternate;
public static String tagSunTime;
public static String tagFly;
public static String tagSafe;
public static float optBoomDropOreChance;
public static float optBoomDropChance;
public static boolean optSpawnAllowInNonAir;
public static boolean optSpawnAllowOnNonNatural;
public static boolean optSpawnAllowOnGrass;
public static boolean optSpawnAllowOnCobble;
public static boolean optSpawnAllowOnSand;
public static boolean optSpawnAllowOnGravel;
public static boolean optSpawnAllowOnTree;
public static int optSpawnPigReduction;
public static int optSpawnChickenReduction;
public static int optSpawnCowReduction;
public static int optSpawnSheepReduction;
public static int optSpawnSquidReduction;
public static int optSpawnGhastReduction;
public static int optSpawnSpiderReduction;
public static int optSpawnSkeletonReduction;
public static int optSpawnCreeperReduction;
public static int optSpawnZombieReduction;
public static int optSpawnSlimeReduction;
public static int optSpawnPigZombieReduction;
public static boolean optSpawnSupportMods;
public static int[] optOreCoalRule;
public static int[] optOreIronRule;
public static int[] optOreGoldRule;
public static int[] optOreBlueRule;
public static int[] optOreRedRule;
public static int[] optOreDiamondRule;
private static int optTeleportItem;
private static int optTeleportPlayer;
private static int optTeleportCritter;
private static final int safeMax = 1024;
private static boolean buildActive;
private static double cartSpeed;
private static float[] buildOriginal;
private static float pathAnimCur;
private static float[] pathf;
private static int[][] buildSets;
private static int pathCount;
private static int pathLast;
private static int compassOX;
private static int compassOY;
private static int compassOZ;
private static int compassMX;
private static int compassMY;
private static int compassMZ;
private static boolean compassHaveOrig;
private static boolean compassHaveMine;
private static boolean compassShowOrig = true;
public static long sunTimeOffset = 0L;
public static long sunTimeMoment;
public static boolean sunTimeStop = false; public static boolean fly = false;
private static List recipesSP;
private static List recipesMP;
private static Object cmanager;
private static ZMod.Mark[] safeMark = new ZMod.Mark[1024];
private static int safeCur;
private static int safeUpdate;
private static boolean safeShow;
private static HashMap teleportNames;
private static Field fCMRecipes;
private static Field fCBTable;
private static Field fDamage;
private static Field fSpawnX;
private static Field fSpawnY;
private static Field fSpawnZ;
private static Field fTime;
public static int[] block = new int[256];
public static int KNOWN = 1; public static int SOLID = 2; public static int LIQUID = 4; public static int CRAFT = 8; public static int BASIC = 16; public static int SPACE = 32; public static int TREE = 64; public static int GRASS = 128; public static int COBBLE = 256; public static int DECAL = 512; public static int SAND = 1024; public static int GRAVEL = 2048; public static int ORE = 4096; public static int OBSIDIAN = 8192; public static int SPAWN = 16384; public static int TOUCH = 32768;
public static fd player;
public static dt world;
public static mh renderer;
public static boolean isMenu;
public static boolean isMultiplayer;
public static boolean isHell;
public static double posX;
public static double posY;
public static double posZ;
public static double motionX;
public static double motionY;
public static double motionZ;
public static om inWhat;
public static gy inv;
public static gz[] invItems;
public static dc spawn;
public static final int GHAST = 1;
public static final int COW = 2;
public static final int SPIDER = 3;
public static final int SHEEP = 4;
public static final int SKELLY = 5;
public static final int CREEPER = 6;
public static final int ZOMBIE = 7;
public static final int SLIME = 8;
public static final int PIG = 9;
public static final int CHICKEN = 10;
public static final int SQUID = 11;
public static final int PIGZOMBIE = 12;
public static final int PLAYER = 13;
public static final int LIVING = 14;
private static long prevTick;
private static long curTick;
private static float seconds;
public static double flyMX;
public static double flyMY;
public static double flyMZ;
private static HashMap pNames;
private static HashSet<String> pFiles;
private static List pList;
private static final int IGNORE = 0;
private static final int NAMEMAP = 1;
private static final int RECIPES = 2;
private static final int fix(double paramDouble)
{
return (int)Math.floor(paramDouble);
}
public static void initialize(Minecraft paramMinecraft)
{
mc = paramMinecraft;
block[0] = (KNOWN | SPACE | BASIC);
block[1] = (KNOWN | SOLID | BASIC);
block[2] = (KNOWN | SOLID | GRASS);
block[3] = (KNOWN | SOLID | BASIC);
block[4] = (KNOWN | SOLID | COBBLE);
block[5] = (KNOWN | SOLID | CRAFT);
block[6] = (KNOWN | SPACE | DECAL);
block[7] = (KNOWN | SOLID | BASIC);
block[8] = (KNOWN | SPACE | LIQUID);
block[9] = (KNOWN | SPACE | LIQUID);
block[10] = (KNOWN | LIQUID);
block[11] = (KNOWN | LIQUID);
block[12] = (KNOWN | SOLID | SAND);
block[13] = (KNOWN | SOLID | GRAVEL);
block[14] = (KNOWN | SOLID | ORE | BASIC);
block[15] = (KNOWN | SOLID | ORE | BASIC);
block[16] = (KNOWN | SOLID | ORE | BASIC);
block[17] = (KNOWN | SOLID | TREE);
block[18] = (KNOWN | SOLID | TREE);
block[19] = (KNOWN | SOLID | CRAFT);
block[20] = (KNOWN | SOLID | CRAFT);
block[21] = (KNOWN | SOLID | ORE | BASIC);
block[22] = (KNOWN | SOLID | CRAFT);
block[23] = (KNOWN | SOLID | CRAFT);
block[24] = (KNOWN | SOLID | CRAFT);
block[25] = (KNOWN | SOLID | CRAFT);
block[26] = (KNOWN | SOLID | CRAFT);
block[35] = (KNOWN | SOLID | CRAFT);
block[37] = (KNOWN | SPACE | DECAL);
block[38] = (KNOWN | SPACE | DECAL);
block[39] = (KNOWN | SPACE | DECAL);
block[40] = (KNOWN | SPACE | DECAL);
block[41] = (KNOWN | SOLID | CRAFT);
block[42] = (KNOWN | SOLID | CRAFT);
block[43] = (KNOWN | SOLID | CRAFT);
block[44] = (KNOWN | SOLID | CRAFT);
block[45] = (KNOWN | SOLID | CRAFT);
block[46] = (KNOWN | SOLID | CRAFT);
block[47] = (KNOWN | SOLID | CRAFT);
block[48] = (KNOWN | SOLID | BASIC);
block[49] = (KNOWN | SOLID | OBSIDIAN);
block[50] = (KNOWN | SPACE | DECAL);
block[51] = (KNOWN | SPACE | DECAL);
block[52] = (KNOWN | SOLID | BASIC);
block[53] = (KNOWN | SOLID | CRAFT);
block[54] = (KNOWN | SOLID | CRAFT);
block[55] = (KNOWN | SPACE | DECAL);
block[56] = (KNOWN | SOLID | ORE | BASIC);
block[57] = (KNOWN | SOLID | CRAFT);
block[58] = (KNOWN | SOLID | CRAFT);
block[59] = (KNOWN | SPACE | DECAL);
block[60] = (KNOWN | SOLID | CRAFT);
block[61] = (KNOWN | SOLID | CRAFT);
block[62] = (KNOWN | SOLID | CRAFT);
block[63] = (KNOWN | SPACE | DECAL | TOUCH);
block[64] = (KNOWN | SPACE | DECAL | TOUCH);
block[65] = (KNOWN | SPACE | DECAL);
block[66] = (KNOWN | SPACE | DECAL);
block[67] = (KNOWN | SOLID | CRAFT);
block[68] = (KNOWN | SPACE | DECAL | TOUCH);
block[69] = (KNOWN | SPACE | DECAL | TOUCH);
block[70] = (KNOWN | SPACE | DECAL);
block[71] = (KNOWN | SPACE | DECAL | TOUCH);
block[72] = (KNOWN | SPACE | DECAL);
block[73] = (KNOWN | SOLID | ORE | BASIC);
block[74] = (KNOWN | SOLID | ORE | BASIC);
block[75] = (KNOWN | SPACE | DECAL);
block[76] = (KNOWN | SPACE | DECAL);
block[77] = (KNOWN | SPACE | DECAL);
block[78] = (KNOWN | SPACE);
block[79] = (KNOWN | SOLID | BASIC);
block[80] = (KNOWN | SOLID | CRAFT);
block[81] = (KNOWN | SOLID | BASIC);
block[82] = (KNOWN | SOLID | BASIC);
block[83] = (KNOWN | SPACE | DECAL);
block[84] = (KNOWN | SOLID | CRAFT);
block[85] = (KNOWN | SOLID | CRAFT);
block[86] = (KNOWN | SOLID | BASIC);
block[87] = (KNOWN | SOLID | BASIC);
block[88] = (KNOWN | SOLID | BASIC);
block[89] = (KNOWN | SOLID | BASIC);
block[90] = (KNOWN | SPACE);
block[91] = (KNOWN | SOLID | CRAFT);
block[92] = (KNOWN | SOLID | CRAFT | TOUCH);
block[93] = (KNOWN | SOLID | CRAFT | TOUCH);
block[94] = (KNOWN | SOLID | CRAFT | TOUCH);
for (int i = 0; i < 256; i++) { if (!spawnCheckA(i)) continue; block[i] |= SPAWN; }
try {
path = Minecraft.b().getCanonicalPath(); } catch (Exception localException1) { path = ""; }
path = new StringBuilder().append(path).append(File.separatorChar).append("mods").append(File.separatorChar).append("zombe").append(File.separatorChar).toString();
try { File localFile1 = new File(path); localFile1.mkdirs(); } catch (Exception localException2) { path = ""; }
try {
File localFile2 = new File(new StringBuilder().append(path).append("log.txt").toString()); out = new PrintStream(localFile2); logPath = localFile2.getCanonicalPath(); } catch (Exception localException3) { logPath = "failed to create one :("; out = System.out; }
out.println("=========== logging ===========");
out.println("ZModPack: version 4.3");
out.println(new StringBuilder().append("Log started at: ").append(new Timestamp(new Date().getTime())).toString());
conf = new Properties();
try
{
Properties localProperties;
(localProperties = new Properties()).load(new FileInputStream(new StringBuilder().append(path).append("config.txt").toString()));
conf = localProperties;
log("info: processing configuration");
} catch (Exception localException4) {
err("error: failed to load configuration from config.txt", localException4);
}
try
{
fDamage = getField(gz.class, "d");
fCBTable = getField(jv.class, "a");
fCMRecipes = getField(fr.class, "b");
fSpawnX = getField(dc.class, "b");
fSpawnY = getField(dc.class, "c");
fSpawnZ = getField(dc.class, "d");
fTime = getField(dc.class, "e");
keyBaseInfo = getBind("keyBaseInfo", 66);
optBaseDisableWarning = getBool("optBaseDisableWarning", false);
int j = 0;
if ((ZMod.modCloudEnabled = getBool("modCloudEnabled", false)) == true) {
log("info: loading config for \"cloud\"");
keyCloudToggle = getBind("keyCloudToggle", 55);
keyCloudVanilla = getBind("keyCloudVanilla", 47);
keyCloudUp = getBind("keyCloudUp", 0);
keyCloudDown = getBind("keyCloudDown", 0);
optCloudShow = getBool("optCloudShow", true);
optCloudOffset = getFloat("optCloudOffset", 24.0F, -64.0F, 64.0F);
tagCloudVanilla = getString("tagCloudVanilla", "no-could-mod");
j++;
}
if ((ZMod.modCartEnabled = getBool("modCartEnabled", false)) == true) {
log("info: loading config for \"cart\"");
keyCartStop = getBind("keyCartStop", 28);
keyCartPerpetual = getBind("keyCartPerpetual", 200);
optCartSpeedAccumCap = getFloat("optCartSpeedAccumCap", 1.0F, 0.5F, 5.0F);
optCartAcceleration = getFloat("optCartAcceleration", 2.0F, 0.5F, 10.0F);
tagCartPerpetual = getString("tagCartPerpetual", "perpetual");
j++;
}
if ((ZMod.modWieldEnabled = getBool("modWieldEnabled", false)) == true) {
log("info: loading config for \"wield\"");
keyWield = getBind("keyWield", 19);
optWieldBowFirst = getBool("optWieldBowFirst", true);
j++;
}
Object localObject1;
Object localObject2;
if ((ZMod.modBuildEnabled = getBool("modBuildEnabled", false)) == true) {
log("info: loading config for \"build\"");
keyBuildToggle = getBind("keyBuildToggle", 48);
keyBuildA = getBind("keyBuildA", 42);
keyBuildB = getBind("keyBuildB", 29);
optBuild = getBool("optBuild", false);
optBuildLockQuantity = getBool("optBuildLockQuantity", true);
tagBuildEnabled = getString("tagBuildEnabled", "builder");
localObject1 = new String[] { getString("optBuildA1", "smooth, cobble, grass, dirt, sand, gravel, clay, obsidian, sandstone"), getString("optBuildA2", "trunk, pine, birch, wood, shelves, chest, workbench, jukebox, furnace"), getString("optBuildA3", "woolYellow, woolOrange, woolRed, woolPink, woolMagenta, woolPurple, woolBlue, woolCyan, woolLightBlue"), getString("optBuildA4", "wool, woolLightGray, woolGray, woolBlack, woolBrown, woolGreen, woolLime, cage, sponge"), getString("optBuildA5", "snowcap, ice, snow, water, lava, fire, glass, pumpkinC, torch"), getString("optBuildA6", "sapling, leaves, flowerY, flowerR, shroomB, shroomR, cactus, pumpkin, reed"), getString("optBuildA7", "blockG, blockI, blockD, blockB, blockL, mossy, nether, soul, 0"), getString("optBuildA8", "oreG, oreI, oreC, oreD, oreR, oreY, oreL, 0, torch"), getString("optBuildA9", "doorW, doorI, switch, red, plateS, plateW, button, dispenser, note"), getString("optBuildB1", "ladder, tracks, fence, stairC, stairW, sign, half, double, picture"), getString("optBuildB2", "pickD, cart, boat, saddle, tnt, cake, 0, 0, torch"), getString("optBuildB3", ""), getString("optBuildB4", ""), getString("optBuildB5", ""), getString("optBuildB6", ""), getString("optBuildB7", ""), getString("optBuildB8", "arrow, compass"), getString("optBuildB9", "bucketW, watch, glass, appleG, swordD, bow, shovelD, pickD, torch") };
buildSets = new int[localObject1.length][9];
parse(new ArrayList(), "names.txt", 1);
for (int k = 0; k < localObject1.length; k++) if (!localObject1[k].equals("")) {
localObject2 = localObject1[k].split("[\t ]*,[\t ]*");
int m = localObject2.length; if (m > 9) m = 9;
for (int n = 0; n < m; n++) {
if (pNames.containsKey(localObject2[n])) { buildSets[k][n] = ((Integer)(Integer)pNames.get(localObject2[n])).intValue();
} else {
int i1 = parseIdInfo(localObject2[n]);
if (i1 == -1) err(new StringBuilder().append("error: config.txt @ optBuild").append(k > 9 ? "B" : "A").append(k % 9 + 1).append(" - unknown item name or invalid code: \"").append(localObject2[n]).append("\"").toString()); else
buildSets[k][n] = i1;
}
}
}
j++;
}
if ((ZMod.modCompassEnabled = getBool("modCompassEnabled", false)) == true) {
log("info: loading config for \"compass\"");
keyCompassSet = getBind("keyCompassSet", 210);
keyCompassToggle = getBind("keyCompassToggle", 199);
tagCompassAlternate = getString("tagCompassAlternate", "altSpawn");
optCompassShowPos = getBool("optCompassShowPos", true);
j++;
}
if ((ZMod.modSunEnabled = getBool("modSunEnabled", false)) == true) {
log("info: loading config for \"sun\"");
keySunTimeAdd = getBind("keySunTimeAdd", 78);
keySunTimeSub = getBind("keySunTimeSub", 74);
keySunStop = getBind("keySunStop", 207);
keySunTimeNormal = getBind("keySunTimeNormal", 13);
optSunTimeStep = getInt("optSunTimeStep", 30, 1, 600) * 20;
tagSunTime = getString("tagSunTime", "time");
if (!checkClass(sd.class)) { err("error: sd.class has not been installed - sun mod disabled"); modSunEnabled = false; } else {
j++;
}
}
if ((ZMod.modCraftEnabled = getBool("modCraftEnabled", false)) == true) {
log("info: loading config for \"craft\"");
keyCraftAll = getBind("keyCraftAll", 42);
if (!checkClass(gg.class)) { err("error: gg.class has not been installed - craft mod disabled"); modCraftEnabled = false; } else {
j++;
}
}
if ((ZMod.modFlyEnabled = getBool("modFlyEnabled", false)) == true) {
log("info: loading config for \"fly\"");
keyFlyOn = getBind("keyFlyOn", 0);
keyFlyOff = getBind("keyFlyOff", 0);
keyFlyUp = getBind("keyFlyUp", 18);
keyFlyDown = getBind("keyFlyDown", 16);
keyFlySpeed = getBind("keyFlySpeed", 42);
keyFlyToggle = getBind("keyFlyToggle", 33);
optFlySpeedVertical = getFloat("optFlySpeedVertical", 0.2F, 0.1F, 1.0F);
optFlySpeedMulNormal = getFloat("optFlySpeedMulNormal", 1.0F, 0.1F, 10.0F);
optFlySpeedMulModifier = getFloat("optFlySpeedMulModifier", 2.0F, 1.0F, 10.0F);
tagFly = getString("tagFly", "flying");
if (!checkClass(fd.class)) { err("error: fd.class has not been installed - fly mod disabled"); modFlyEnabled = false; } else {
j++;
}
}
if ((ZMod.modPathEnabled = getBool("modPathEnabled", false)) == true) {
log("info: loading config for \"path\"");
keyPathShow = getBind("keyPathShow", 14);
keyPathDelete = getBind("keyPathDelete", 211);
optPathPoints = getInt("optPathPoints", 8192, 256, 32768); pathf = new float[3 * optPathPoints];
optPathSpacing = getInt("optPathSpacing", 6, 0, 32) + 2;
optPathMin = getFloat("optPathMin", 0.25F, 0.1F, 4.0F); optPathMin *= optPathMin;
optPathAnimSpeed = getFloat("optPathAnimSpeed", 8.0F, 0.0F, 32.0F);
optPathShow = getBool("optPathShow", false);
j++;
}
if ((ZMod.modRecipeEnabled = getBool("modRecipeEnabled", false)) == true) {
log("info: loading config for \"recipe\"");
optRecipeShowId = getBool("optRecipeShowId", true);
optRecipeDump = getBool("optRecipeDump", false);
cmanager = fr.a();
recipesSP = (List)getValue(fCMRecipes, cmanager);
recipesMP = new ArrayList();
log(new StringBuilder().append("info: ").append(recipesSP.size()).append(" SP recipes before loading mod").toString());
parse(recipesSP, "recipes.txt", 2); Collections.sort(recipesSP, new ii((fr)cmanager));
log(new StringBuilder().append("info: ").append(recipesSP.size()).append(" SP recipes after loading mod").toString());
parse(recipesMP, "recipes-mp.txt", 2); Collections.sort(recipesMP, new ii((fr)cmanager));
log(new StringBuilder().append("info: ").append(recipesMP.size()).append(" vanilla recipes for MP compatibility").toString());
if (optRecipeDump) {
log("==== recipe dump ====");
localObject1 = getField(gv.class, "b"); Field localField1 = getField(gv.class, "c"); localObject2 = getField(gv.class, "d"); Field localField2 = getField(gv.class, "e");
Field localField3 = getField(pp.class, "b"); Field localField4 = getField(pp.class, "a");
for (int i2 = 0; i2 < recipesSP.size(); i2++)
{
Object localObject3;
Object localObject4;
Object localObject5;
String str;
int i3;
if ((recipesSP.get(i2) instanceof gv)) {
localObject3 = recipesSP.get(i2);
localObject4 = getValue(localField2, localObject3);
localObject5 = (Object[])(Object[])getValue((Field)localObject2, localObject3);
str = new StringBuilder().append("type normal : ").append(getItemsId(localObject4)).append("/").append(getItemsInfo(localObject4)).append(" ").append(getValue((Field)localObject1, localObject3)).append(" ").append(getValue(localField1, localObject3)).toString();
for (i3 = 0; i3 < localObject5.length; i3++) str = new StringBuilder().append(str).append(localObject5[i3] == null ? Integer.valueOf(0) : new StringBuilder().append(" ").append(getItemsId(localObject5[i3])).append("/").append(getItemsInfo(localObject5[i3])).toString()).toString();
}
else if ((recipesSP.get(i2) instanceof pp)) {
localObject3 = recipesSP.get(i2);
localObject4 = getValue(localField4, localObject3);
localObject5 = (List)getValue(localField3, localObject3);
str = new StringBuilder().append("type shapeless : ").append(getItemsId(localObject4)).append("/").append(getItemsInfo(localObject4)).append(" ").append(((List)localObject5).size()).append(" 0").toString();
for (i3 = 0; i3 < ((List)localObject5).size(); i3++) str = new StringBuilder().append(str).append(" ").append(getItemsId(((List)localObject5).get(i3))).append("/").append(getItemsInfo(((List)localObject5).get(i3))).toString();
}
else {
str = new StringBuilder().append("type: KST ").append(recipesSP.get(i2)).toString();
}
log(str);
}
}
j++;
}
if ((ZMod.modSafeEnabled = getBool("modSafeEnabled", false)) == true) {
log("info: loading config for \"safe\"");
keySafeShow = getBind("keySafeShow", 38);
tagSafe = getString("tagSafe", "safe");
j++;
}
if ((ZMod.modBoomEnabled = getBool("modBoomEnabled", false)) == true) {
log("info: loading config for \"boom\"");
optBoomDropChance = getInt("optBoomDropChance", 30, 0, 100) / 100.0F;
optBoomDropOreChance = getInt("optBoomDropOreChance", 100, 0, 100) / 100.0F;
optBoomScaleTNT = getFloat("optBoomScaleTNT", 1.0F, 0.1F, 10.0F);
optBoomScaleCreeper = getFloat("optBoomScaleCreeper", 1.0F, 0.1F, 10.0F);
optBoomSafeRange = getInt("optBoomSafeRange", 16, -1, 32);
if (!checkClass(getClass("na"))) { err("error: na.class has not been installed - boom mod disabled"); modBoomEnabled = false; } else {
j++;
}
}
if ((ZMod.modSpawnEnabled = getBool("modSpawnEnabled", false)) == true) {
log("info: loading config for \"spawn\"");
optSpawnSupportMods = getBool("optSpawnSupportMods", true);
optSpawnAllowInNonAir = getBool("optSpawnAllowInNonAir", false);
optSpawnAllowOnNonNatural = getBool("optSpawnAllowOnNonNatural", false);
optSpawnAllowOnGrass = getBool("optSpawnAllowOnGrass", true);
optSpawnAllowOnCobble = getBool("optSpawnAllowOnCobble", false);
optSpawnAllowOnSand = getBool("optSpawnAllowOnSand", true);
optSpawnAllowOnGravel = getBool("optSpawnAllowOnGravel", true);
optSpawnAllowOnTree = getBool("optSpawnAllowOnTree", false);
optSpawnPigReduction = getInt("optSpawnPigReduction", 75, 0, 100);
optSpawnChickenReduction = getInt("optSpawnChickenReduction", 0, 0, 100);
optSpawnCowReduction = getInt("optSpawnCowReduction", 0, 0, 100);
optSpawnSheepReduction = getInt("optSpawnSheepReduction", 0, 0, 100);
optSpawnSquidReduction = getInt("optSpawnSquidReduction", 0, 0, 100);
optSpawnSpiderReduction = getInt("optSpawnSpiderReduction", 0, 0, 100);
optSpawnSkeletonReduction = getInt("optSpawnSkeletonReduction", 0, 0, 100);
optSpawnCreeperReduction = getInt("optSpawnCreeperReduction", 0, 0, 100);
optSpawnZombieReduction = getInt("optSpawnZombieReduction", 0, 0, 100);
optSpawnSlimeReduction = getInt("optSpawnSlimeReduction", 0, 0, 100);
optSpawnGhastReduction = getInt("optSpawnGhastReduction", 0, 0, 100);
optSpawnPigZombieReduction = getInt("optSpawnPigZombieReduction", 0, 0, 100);
j++;
}
if ((ZMod.modOreEnabled = getBool("modOreEnabled", false)) == true) {
log("info: loading config for \"ore\"");
optOreLavaFloor = getBool("optOreLavaFloor", true);
optOreCoalRule = parseRule(getString("optOreCoalRule", "75/80/48/8/16/1 10/120/32/128/4/1 5/120/64/1/128/1"));
optOreIronRule = parseRule(getString("optOreIronRule", "100/80/16/8/16/1 100/96/8/16/8/1 5/120/64/128/1/1"));
optOreGoldRule = parseRule(getString("optOreGoldRule", "50/32/4/4/16/1 5/96/8/8/64/1"));
optOreBlueRule = parseRule(getString("optOreBlueRule", "100/32/8/2/8/1 5/56/48/64/2/1 5/96/48/1/32/1/1"));
optOreRedRule = parseRule(getString("optOreRedRule", "100/32/8/2/8/1 10/120/96/64/1/1"));
optOreDiamondRule = parseRule(getString("optOreDiamondRule", "75/16/4/2/8/1 100/32/2/128/2/11 10/120/16/2/8/1"));
j++;
}
if ((ZMod.modTeleportEnabled = getBool("modTeleportEnabled", false)) == true) {
log("info: loading config for \"teleport\"");
localObject1 = null;
try {
parse(new ArrayList(), "names.txt", 1);
teleportNames = pNames;
localObject1 = getString("optTeleportItem", "blockI"); optTeleportItem = (teleportNames.containsKey(localObject1) ? (Integer)teleportNames.get(localObject1) : new Integer((String)localObject1)).intValue();
localObject1 = getString("optTeleportPlayer", "blockG"); optTeleportPlayer = (teleportNames.containsKey(localObject1) ? (Integer)teleportNames.get(localObject1) : new Integer((String)localObject1)).intValue();
localObject1 = getString("optTeleportCritter", "blockD"); optTeleportCritter = (teleportNames.containsKey(localObject1) ? (Integer)teleportNames.get(localObject1) : new Integer((String)localObject1)).intValue();
j++;
} catch (Exception localException6) {
modTeleportEnabled = false;
err(new StringBuilder().append("error: invalid item name or id - teleport mod disabled : \"").append((String)localObject1).append("\"").toString(), localException6);
}
}
if ((j == 0) && (!optBaseDisableWarning)) err("warning: no mods are enabled! Read the readme.txt!");
log("info: configuration loaded");
}
catch (Exception localException5) {
err("error: initialization failed", localException5);
}
}
public static void initOverrides()
{
log("info: init text"); mc.p = (ZMod.text = new ZFR(mc.x, "/font/default.png", mc.o));
log("info: init render"); mc.f = (ZMod.render = new ZRG(mc, mc.o));
}
public static void pingUpdateHandle()
{
if (keyPress(keyBaseInfo)) optBaseShowInfo = !optBaseShowInfo;
player = mc.g;
world = mc.e;
renderer = mc.s;
if ((player == null) || (world == null) || (renderer == null)) return;
isMenu = mc.q != null;
isMultiplayer = mc.k();
posX = getEntityPosX(player); posY = getEntityPosY(player); posZ = getEntityPosZ(player);
motionX = player.aL; motionY = player.aM; motionZ = player.aN;
isHell = worldGetId(fix(posX), 127, fix(posZ)) == 7;
inWhat = player.aD;
inv = player.f;
invItems = inv.a;
spawn = world.v();
if ((modCloudEnabled) && (!isMenu)) {
if (keyPress(keyCloudVanilla)) optCloudVanilla = !optCloudVanilla;
if (keyPress(keyCloudToggle)) if (optCloudVanilla) optCloudVanilla = false; else optCloudShow = !optCloudShow;
if (keyPress(keyCloudUp)) if (optCloudVanilla) optCloudVanilla = false; else optCloudOffset += 1.0F;
if (keyPress(keyCloudDown)) if (optCloudVanilla) optCloudVanilla = false; else optCloudOffset -= 1.0F;
}
if ((!isMultiplayer) && (modCartEnabled) && ((inWhat instanceof tj))) {
double d1 = inWhat.aL + motionX * optCartAcceleration; double d2 = inWhat.aN + motionZ * optCartAcceleration;
double d3 = Math.sqrt(d1 * d1 + d2 * d2);
if ((!isMenu) && (keyPress(keyCartPerpetual))) {
optCartPerpetual = !optCartPerpetual;
if (optCartPerpetual) cartSpeed = d3;
}
if ((d3 > optCartSpeedAccumCap) || ((optCartPerpetual) && (d3 > 0.001D))) {
double d4 = optCartPerpetual ? cartSpeed / d3 : optCartSpeedAccumCap / d3;
d1 *= d4; d2 *= d4;
}
if ((!isMenu) && (keyDown(keyCartStop))) { d1 = d2 = 0.0D; optCartPerpetual = false; }
inWhat.aL = d1; inWhat.aN = d2;
}
int j;
int m;
int i1;
int i2;
int i;
int i4;
if ((modWieldEnabled) && (!isMenu) && (keyPress(keyWield))) {
j = -1; m = -1; i1 = getInvCur();
i2 = 0;
for (i = 0; i < invItems.length; i++) {
i4 = invItems[i] == null ? 0 : getItemsId(invItems[i]);
if (i4 == 262) i2 = 1;
if (i >= 9) continue; if (i4 == 261) { j = i; } else { if ((i4 != 268) && (i4 != 272) && (i4 != 267) && (i4 != 276)) continue; m = i; }
}
if (i2 == 0) j = -1;
if (j == -1) j = m; else if (m == -1) m = j;
i4 = optWieldBowFirst ? j : m;
if (i1 == i4) i4 = i4 == j ? m : j;
if (i4 != -1) setInvCur(i4);
}
if ((!isMultiplayer) && (modBuildEnabled))
{
if (buildOriginal == null) {
buildOriginal = new float[256];
for (i = 0; i < 256; i++) { if (qk.m[i] == null) continue; buildOriginal[i] = qk.m[i].bl; }
}
if (!isMenu) {
if (keyPress(keyBuildToggle)) optBuild = !optBuild;
if (optBuild) {
if (!buildActive) {
for (i = 0; i < 256; i++) { if (qk.m[i] == null) continue; qk.m[i].bl = ((block[i] & TOUCH) != 0 ? buildOriginal[i] : 0.0F); }
buildActive = true;
}
j = -1;
if (keyDown(keyBuildA)) for (i = 2; i <= 10; i++) { if (!keyPress(i)) continue; j = i - 2; }
if (keyDown(keyBuildB)) for (i = 2; i <= 10; i++) { if (!keyPress(i)) continue; j = 9 + i - 2; }
if (j != -1) for (m = 0; m < 9; m++) { if (buildSets[j][m] == 0) continue; invItems[m] = newItemsE(buildSets[j][m], 8); }
}
}
if ((optBuild) && (optBuildLockQuantity)) for (i = 0; i < invItems.length; i++) { if (invItems[i] == null) continue; setItemsCount(invItems[i], 8); }
}
if ((buildActive) && ((!optBuild) || (isMultiplayer))) {
for (i = 0; i < 256; i++) { if (qk.m[i] == null) continue; qk.m[i].bl = buildOriginal[i]; }
buildActive = false;
}
int i5;
if (modCompassEnabled) {
j = ((Integer)getValue(fSpawnX, spawn)).intValue();
m = ((Integer)getValue(fSpawnY, spawn)).intValue();
i1 = ((Integer)getValue(fSpawnZ, spawn)).intValue();
i2 = fix(posX); i4 = fix(posY); i5 = fix(posZ);
if ((!compassHaveOrig) || (((j != compassOX) || (m != compassOY) || (i1 != compassOZ)) && ((j != compassMX) || (m != compassMY) || (i1 != compassMZ)))) {
compassOX = j; compassOY = m; compassOZ = i1; compassHaveOrig = true;
}
if (!isMenu) {
if (keyPress(keyCompassToggle)) compassShowOrig = !compassShowOrig;
if (keyPress(keyCompassSet)) {
compassMX = i2; compassMY = i4; compassMZ = i5;
compassHaveMine = true;
compassShowOrig = false;
}
}
if (compassShowOrig) { j = compassOX; m = compassOY; i1 = compassOZ; } else { j = compassMX; m = compassMY; i1 = compassMZ; }
setValue(fSpawnX, spawn, Integer.valueOf(j));
setValue(fSpawnY, spawn, Integer.valueOf(m));
setValue(fSpawnZ, spawn, Integer.valueOf(i1));
}
if (modSunEnabled) {
long l = ((Long)getValue(fTime, spawn)).longValue();
if (!isMenu) {
if (keyPress(keySunTimeAdd)) { if (sunTimeStop) sunTimeMoment += optSunTimeStep; sunTimeOffset += optSunTimeStep; }
if (keyPress(keySunTimeSub)) { if (sunTimeStop) sunTimeMoment -= optSunTimeStep; sunTimeOffset -= optSunTimeStep; }
if (keyPress(keySunStop)) { sunTimeStop = !sunTimeStop; if (sunTimeStop) sunTimeMoment = l;
}
if (keyPress(keySunTimeNormal)) { sunTimeStop = false; sunTimeOffset = 0L; }
}
if (sunTimeStop) { sunTimeOffset -= l - sunTimeMoment; sunTimeMoment = l;
}
}
if ((modFlyEnabled) && (!isMenu)) {
if (keyPress(keyFlyToggle)) fly = !fly;
else if (keyDown(keyFlyOn)) fly = true;
else if (keyDown(keyFlyOff)) fly = false;
}
if ((modPathEnabled) && (!isMenu)) {
if (keyPress(keyPathShow)) optPathShow = !optPathShow;
if (keyPress(keyPathDelete)) pathCount = 0;
}
if (modRecipeEnabled) {
setValue(fCMRecipes, cmanager, isMultiplayer ? recipesMP : recipesSP);
}
if ((modSafeEnabled) && (!isMenu) && (keyPress(keySafeShow)))
safeShow = !safeShow;
int i6;
int i7;
if ((modSpawnEnabled) && (!isMultiplayer)) {
List localList1 = getEntities();
Iterator localIterator1 = localList1.iterator();
i1 = 0;
if (!optSpawnAllowOnGrass) i1 |= GRASS;
if (!optSpawnAllowOnCobble) i1 |= COBBLE;
if (!optSpawnAllowOnSand) i1 |= SAND;
if (!optSpawnAllowOnGravel) i1 |= GRAVEL;
if (!optSpawnAllowOnTree) i1 |= TREE;
if (!optSpawnAllowOnNonNatural) i1 |= CRAFT;
while (localIterator1.hasNext()) {
om localom = (om)localIterator1.next();
if (getEntityAge(localom) == 3) {
i4 = 0;
switch (getEntityType(localom)) { case 1:
if ((optSpawnGhastReduction != 0) && (rnd.nextInt(100) < optSpawnGhastReduction)) i4 = 1; break;
case 2:
if ((optSpawnCowReduction != 0) && (rnd.nextInt(100) < optSpawnCowReduction)) i4 = 1; break;
case 3:
if ((optSpawnSpiderReduction != 0) && (rnd.nextInt(100) < optSpawnSpiderReduction)) i4 = 1; break;
case 4:
if ((optSpawnSheepReduction != 0) && (rnd.nextInt(100) < optSpawnSheepReduction)) i4 = 1; break;
case 5:
if ((optSpawnSkeletonReduction != 0) && (rnd.nextInt(100) < optSpawnSkeletonReduction)) i4 = 1; break;
case 6:
if ((optSpawnCreeperReduction != 0) && (rnd.nextInt(100) < optSpawnCreeperReduction)) i4 = 1; break;
case 7:
if ((optSpawnZombieReduction != 0) && (rnd.nextInt(100) < optSpawnZombieReduction)) i4 = 1; break;
case 8:
if ((optSpawnSlimeReduction != 0) && (rnd.nextInt(100) < optSpawnSlimeReduction)) i4 = 1; break;
case 9:
if ((optSpawnPigReduction != 0) && (rnd.nextInt(100) < optSpawnPigReduction)) i4 = 1; break;
case 10:
if ((optSpawnChickenReduction != 0) && (rnd.nextInt(100) < optSpawnChickenReduction)) i4 = 1; break;
case 11:
if ((optSpawnSquidReduction != 0) && (rnd.nextInt(100) < optSpawnSquidReduction)) i4 = 1; break;
case 12:
if ((optSpawnPigZombieReduction != 0) && (rnd.nextInt(100) < optSpawnPigZombieReduction)) i4 = 1; break;
case 14:
if (optSpawnSupportMods);
break;
case 13:
default:
continue;
if (i4 == 0) {
i5 = fix(getEntityPosX(localom)); i6 = fix(getEntityPosY(localom)); i7 = fix(getEntityPosZ(localom));
if ((!optSpawnAllowInNonAir) && ((block[worldGetId(i5, i6, i7)] & DECAL) != 0)) i4 = 1;
if ((i1 != 0) && ((block[worldGetId(i5, i6 - 1, i7)] & i1) != 0)) i4 = 1;
}
if (i4 != 0) localom.H();
}
}
}
}
int i3;
Object localObject1;
if ((modOreEnabled) && (!isMultiplayer) && (!isHell)) {
int k = fix(posX) >> 4; int n = fix(posZ) >> 4;
for (i6 = k - 3; i6 <= k + 3; i6++) for (i7 = n - 3; i7 <= n + 3; i7++) {
i1 = (i6 << 4) + 3; i3 = (i7 << 4) + 3;
localObject1 = worldGetChunkData(i6, i7);
if (localObject1[1024] == 7) {
localObject1[1024] = 0; localObject1[1025] = 7;
for (i = 0; i < localObject1.length; i++) {
i5 = localObject1[i] & 0xFF;
if ((block[i5] & ORE) != 0) { localObject1[i] = 1;
} else if ((i5 == 7) && ((i & 0x7F) > 1)) { localObject1[i] = (optOreLavaFloor ? 11 : 1); } else {
if ((i & 0x7F) != 1) continue; localObject1[i] = 7;
}
}
oreDistribute(localObject1, optOreCoalRule, 16);
oreDistribute(localObject1, optOreIronRule, 15);
oreDistribute(localObject1, optOreGoldRule, 14);
oreDistribute(localObject1, optOreBlueRule, 21);
oreDistribute(localObject1, optOreRedRule, 73);
oreDistribute(localObject1, optOreDiamondRule, 56);
chunkNeedsUpdate(i6, i7);
}
}
}
if ((modTeleportEnabled) && (!isMultiplayer)) {
List localList2 = getEntities();
Iterator localIterator2 = localList2.iterator();
try
{
while (localIterator2.hasNext()) {
localObject1 = (om)localIterator2.next();
i1 = getEntityType(localObject1);
i3 = fix(getEntityPosX((om)localObject1)); i4 = fix(getEntityPosY((om)localObject1)) - 1; i5 = fix(getEntityPosZ((om)localObject1)); i7 = 0;
i6 = worldGetId(i3, i4, i5);
if ((block[i6] & SOLID) == 0) { i4--; i6 = worldGetId(i3, i4, i5); i7++; }
if (((i1 == 0) && ((i6 != optTeleportItem) || (!(localObject1 instanceof fs)))) ||
((i1 != 0) && (i1 != 13) && (i6 != optTeleportCritter)) || (
(i1 == 13) && (i6 != optTeleportPlayer))) continue;
String[] arrayOfString = null;
i6 = worldGetId(i3, i4 + 1, i5); if ((i6 == 63) || (i6 == 68)) arrayOfString = getSignText(i3, i4 + 1, i5);
i6 = worldGetId(i3, i4 + 2, i5); if ((i6 == 63) || (i6 == 68)) arrayOfString = getSignText(i3, i4 + 2, i5);
if (arrayOfString == null)
continue;
i3 = 0; i4 = -1; i5 = 0;
for (i = 0; i < arrayOfString.length; i++) if ((arrayOfString[i] != null) && (arrayOfString[i].length() > 1))
{
Object localObject2;
if (arrayOfString[i].charAt(0) == '!') {
localObject2 = arrayOfString[i].substring(1).split(",");
if (localObject2.length != 3) break;
i3 = new Integer(localObject2[0]).intValue();
i4 = new Integer(localObject2[1]).intValue();
i5 = new Integer(localObject2[2]).intValue();
} else if (arrayOfString[i].charAt(0) == '?') {
localObject2 = arrayOfString[i].substring(1);
i6 = teleportNames.containsKey(localObject2) ? ((Integer)teleportNames.get(localObject2)).intValue() : parseIdInfo((String)localObject2);
i6 &= 65535;
if (((i1 != 0) && (i1 != 13) && (i6 == i1)) || (
(i1 == 0) && (getItemsId(((fs)localObject1).a) == i6))) continue;
i4 = -1; break;
}
}
if (i4 == -1)
continue;
setEntityPos((om)localObject1, 0.5D + i3, 0.5D + (i4 + i7), 0.5D + i5);
if (i1 != 13) break; world.a((om)localObject1, "mob.slime", 0.4F, ((rnd.nextFloat() - rnd.nextFloat()) * 0.2F + 1.0F) * 0.8F);
}
}
catch (ConcurrentModificationException localConcurrentModificationException)
{
}
}
}
private static void oreDistribute(byte[] paramArrayOfByte, int[] paramArrayOfInt, byte paramByte)
{
for (int i = 0; i < paramArrayOfInt.length; i += 6) {
int j = paramArrayOfInt[(i + 0)];
int k = paramArrayOfInt[(i + 1)];
int m = paramArrayOfInt[(i + 2)];
int n = paramArrayOfInt[(i + 3)];
int i1 = paramArrayOfInt[(i + 4)];
int i2 = paramArrayOfInt[(i + 5)];
if ((j >= 100) || (rnd.nextInt(100) < j))
while (n-- > 0) {
int i3 = rnd.nextInt(14) + 1; int i4 = rnd.nextInt(1 + k - m) + m; int i5 = rnd.nextInt(14) + 1;
int i6 = i3 << 11 | i5 << 7 | i4;
if ((paramArrayOfByte[i6] == 1) && (paramArrayOfByte[(i6 - 1)] == 1) && (paramArrayOfByte[(i6 + 1)] == i2) && (paramArrayOfByte[(i6 + 128)] == 1) && (paramArrayOfByte[(i6 - 128)] == 1) && (paramArrayOfByte[(i6 + 2048)] == 1) && (paramArrayOfByte[(i6 - 2048)] == 1)) {
int i7 = i1 - 1;
paramArrayOfByte[i6] = paramByte;
while (i7-- > 0)
switch (rnd.nextInt(7)) { case 0:
break;
case 1:
i6++; break;
case 2:
i6--; break;
case 3:
i6 += 128; break;
case 4:
i6 -= 128; break;
case 5:
i6 += 2048; break;
case 6:
i6 -= 2048;
default:
if (i6 < 0) i6 += 32768; else if (i6 >= 32768) i6 -= 32768;
if (paramArrayOfByte[i6] != 1) continue; paramArrayOfByte[i6] = paramByte; }
}
}
}
}
private static final void worldSetId(int paramInt1, int paramInt2, int paramInt3, int paramInt4) {
world.b(paramInt1, paramInt2, paramInt3, paramInt4); }
private static final byte[] worldGetChunkData(int paramInt1, int paramInt2) { return world.c(paramInt1, paramInt2).b;
}
public static int getEntityType(Object paramObject)
{
if ((paramObject instanceof fd)) return 13;
if ((paramObject instanceof aw)) return 1;
if ((paramObject instanceof bc)) return 2;
if ((paramObject instanceof bp)) return 3;
if ((paramObject instanceof cl)) return 4;
if ((paramObject instanceof eg)) return 5;
if ((paramObject instanceof ep)) return 6;
if (((paramObject instanceof qo)) || ((paramObject instanceof kr))) return 7;
if ((paramObject instanceof qm)) return 8;
if ((paramObject instanceof rn)) return 9;
if ((paramObject instanceof rx)) return 10;
if ((paramObject instanceof ss)) return 11;
if ((paramObject instanceof sz)) return 12;
if ((paramObject instanceof iz)) return 14;
return 0;
}
private static final int getEntityAge(Object paramObject) { return ((om)paramObject).bq;
}
public static void pingDrawHandle(float paramFloat)
{
if ((player == null) || (world == null) || (renderer == null)) return;
posX = getEntityPosX(player); posY = getEntityPosY(player); posZ = getEntityPosZ(player);
curTick = System.nanoTime();
float f1 = (float)(curTick - prevTick) * 1.0E-009F;
if (f1 > 1.0F) f1 = 0.0F;
prevTick = curTick;
if ((modPathEnabled) || (modSafeEnabled)) {
float f2 = (float)posX; float f3 = (float)posY; float f4 = (float)posZ;
float f5 = (float)player.bh; float f6 = (float)player.bi; float f7 = (float)player.bj;
float f8 = f5 + (f2 - f5) * paramFloat; float f9 = f6 + (f3 - f6) * paramFloat; float f10 = f7 + (f4 - f7) * paramFloat;
if (modPathEnabled)
{
float f11 = pathf[pathLast] - f2; float f12 = pathf[(pathLast + 1)] - (f3 - 1.25F); float f13 = pathf[(pathLast + 2)] - f4;
float f14 = f11 * f11 + f12 * f12 + f13 * f13;
if (f14 > optPathMin) {
pathLast += 3; if (pathLast >= pathf.length) pathLast = 0;
if (pathCount < optPathPoints) pathCount += 1;
pathf[pathLast] = f2;
pathf[(pathLast + 1)] = (f3 - 1.25F);
pathf[(pathLast + 2)] = f4;
}
if ((optPathShow) && (pathCount > 3)) {
pathAnimCur += f1 * optPathAnimSpeed;
if (pathAnimCur > optPathSpacing) pathAnimCur -= optPathSpacing;
float f15 = pathf[pathLast] - f8; float f16 = pathf[(pathLast + 1)] - f9; float f17 = pathf[(pathLast + 2)] - f10;
int j = pathCount - 1; int k = pathLast; int m = ((pathf.length - pathLast) / 3 + (int)pathAnimCur) % optPathSpacing;
int n = 4;
GL11.glDisable(3553);
GL11.glColor3ub(-1, 32, 32);
GL11.glBegin(1);
do {
float f18 = f15; float f19 = f16; float f20 = f17;
k -= 3; if (k < 0) k = pathf.length - 3;
f15 = pathf[k] - f8; f16 = pathf[(k + 1)] - f9; f17 = pathf[(k + 2)] - f10;
if (optPathSpacing > 2) {
m++; if (m == optPathSpacing) m = 0;
if ((m <= 1) && (n < 0)) { GL11.glVertex3f(f15, f16, f17); GL11.glVertex3f(f18, f19, f20); }
} else if (n < 0) { GL11.glVertex3f(f15, f16, f17); GL11.glVertex3f(f18, f19, f20); }
n--;
j--; } while (j != 0);
GL11.glEnd();
GL11.glEnable(3553);
}
}
if ((modSafeEnabled) && (safeShow)) {
if (--safeUpdate < 0) {
safeUpdate = 16;
reCheckSafe(fix(posX), fix(posY), fix(posZ));
}
GL11.glDisable(3553);
GL11.glColor3ub(-1, 0, 0);
GL11.glBegin(1);
for (int i = 0; i < safeCur; i++) {
ZMod.Mark localMark = safeMark[i];
f5 = localMark.x - f8; f6 = localMark.y - f9; f7 = localMark.z - f10;
GL11.glVertex3f(f5 + 0.5F, f6, f7 + 0.5F); GL11.glVertex3f(f5 - 0.5F, f6, f7 - 0.5F);
GL11.glVertex3f(f5 + 0.5F, f6, f7 - 0.5F); GL11.glVertex3f(f5 - 0.5F, f6, f7 + 0.5F);
}
GL11.glEnd();
GL11.glEnable(3553);
}
}
if ((modCloudEnabled) && (!optCloudVanilla)) {
if (optCloudShow) {
double d = player.bi;
player.bi += (player.aJ - player.bi) * paramFloat - optCloudOffset; render.callSuper(0.0F);
player.bi = d;
}
}
else render.callSuper(paramFloat);
}
public static String pingTextHandle()
{
if ((player == null) || (world == null) || (renderer == null)) return "";
String str = "";
if ((modCloudEnabled) && (optCloudVanilla)) str = new StringBuilder().append(str).append(" ").append(tagCloudVanilla).toString();
if ((!isMultiplayer) && (modCartEnabled) && (optCartPerpetual)) str = new StringBuilder().append(str).append(" ").append(tagCartPerpetual).toString();
if ((!isMultiplayer) && (modBuildEnabled) && (optBuild)) str = new StringBuilder().append(str).append(" ").append(tagBuildEnabled).toString();
if (modCompassEnabled) {
if (optCompassShowPos) str = new StringBuilder().append(str).append(" (").append(fix(posX)).append(",").append(fix(posY)).append(",").append(fix(posZ)).append(")").toString();
if (!compassShowOrig) str = new StringBuilder().append(str).append(" ").append(tagCompassAlternate).toString();
}
if ((modSunEnabled) && (sunTimeOffset != 0L)) str = new StringBuilder().append(str).append(" ").append(tagSunTime).append(sunTimeOffset < 0L ? "" : "+").append(sunTimeOffset / 20L).toString();
if ((modFlyEnabled) && (fly)) str = new StringBuilder().append(str).append(" ").append(tagFly).toString();
if ((modRecipeEnabled) && (optRecipeShowId)) str = new StringBuilder().append(str).append(invItems[getInvCur()] == null ? "" : new StringBuilder().append(" id:").append(getItemsId(invItems[getInvCur()])).append("/").append(getItemsInfo(invItems[getInvCur()])).toString()).toString();
if ((modSafeEnabled) && (safeShow)) str = new StringBuilder().append(str).append(" ").append(tagSafe).toString();
return str;
}
private static final boolean spawnCheckA(int paramInt)
{
return qk.m[paramInt] == null ? false : qk.m[paramInt].a();
}
private static void reCheckSafe(int paramInt1, int paramInt2, int paramInt3) {
safeCur = 0;
int i = SPAWN; int j = SPAWN | LIQUID | SOLID; int k = SPAWN; int m = 0;
if ((modSpawnEnabled) && (!isMultiplayer)) {
if (!optSpawnAllowInNonAir) j |= DECAL;
if (!optSpawnAllowOnNonNatural) m |= CRAFT;
if (!optSpawnAllowOnGrass) m |= GRASS;
if (!optSpawnAllowOnCobble) m |= COBBLE;
if (!optSpawnAllowOnSand) m |= SAND;
if (!optSpawnAllowOnGravel) m |= GRAVEL;
if (!optSpawnAllowOnTree) m |= TREE;
}
for (int n = paramInt1 - 16; n < paramInt1 + 16; n++) for (int i1 = paramInt2 - 16; i1 < paramInt2 + 16; i1++) for (int i2 = paramInt3 - 16; i2 < paramInt3 + 16; i2++)
{
int i3;
if ((((i3 = block[worldGetId(n, i1, i2)]) & i) == 0) ||
((i3 & m) != 0) ||
((block[worldGetId(n, i1 + 1, i2)] & j) != 0) ||
((block[worldGetId(n, i1 + 2, i2)] & k) != 0))
continue;
if (world.c(n >> 4, i2 >> 4).c(n & 0xF, i1 + 1, i2 & 0xF, 16) <= 7) {
safeMark[(safeCur++)] = new ZMod.Mark(n, i1 + 1, i2);
if (safeCur == 1024) return;
}
}
}
public static void calculate(double paramDouble1, double paramDouble2, double paramDouble3)
{
flyMX = paramDouble1; flyMY = paramDouble2; flyMZ = paramDouble3;
if (!fly) return;
flyMY = 0.0D;
if (!isMenu) {
if (keyDown(keyFlyUp)) flyMY += optFlySpeedVertical;
if (keyDown(keyFlyDown)) flyMY -= optFlySpeedVertical;
double d = keyDown(keyFlySpeed) ? optFlySpeedMulModifier : optFlySpeedMulNormal;
flyMX *= d; flyMY *= d; flyMZ *= d;
}
}
public static final int worldGetId(int paramInt1, int paramInt2, int paramInt3) {
return world.a(paramInt1, paramInt2, paramInt3); }
private static final gz newItemsE(int paramInt1, int paramInt2) { return newItems(paramInt1 & 0xFFFF, paramInt2, paramInt1 >> 16); }
private static final gz newItems(int paramInt1, int paramInt2, int paramInt3) { return new gz(paramInt1, paramInt2, paramInt3 == 9999 ? -1 : paramInt3); }
private static final gz newItems(int paramInt1, int paramInt2) { return newItems(paramInt1, paramInt2, 0); }
private static final int getInvCur() { return inv.c; }
private static final void setInvCur(int paramInt) { inv.c = paramInt; }
private static final int getItemsId(Object paramObject) { return ((gz)paramObject).c; }
private static final void setItemsCount(Object paramObject, int paramInt) { ((gz)paramObject).a = paramInt; }
private static final int getItemsInfo(Object paramObject) { return ((gz)paramObject).i(); }
private static final String[] getSignText(int paramInt1, int paramInt2, int paramInt3) { return getSign(paramInt1, paramInt2, paramInt3).a; }
private static final ti getSign(int paramInt1, int paramInt2, int paramInt3) { return (ti)world.b(paramInt1, paramInt2, paramInt3); }
private static final List getEntities() { return world.b; }
private static final void setEntityPos(om paramom, double paramDouble1, double paramDouble2, double paramDouble3) {
paramom.c(0.0D, 0.0D, 0.0D);
paramom.aF = (paramom.bh = paramom.aI = paramDouble1);
paramom.aG = (paramom.bi = paramom.aJ = paramDouble2);
paramom.aH = (paramom.bj = paramom.aK = paramDouble3);
paramom.c(paramDouble1, paramDouble2, paramDouble3);
}
private static final double getEntityPosX(om paramom) { return paramom.aF; }
private static final double getEntityPosY(om paramom) { return paramom.aG; }
private static final double getEntityPosZ(om paramom) { return paramom.aH; }
private static final void chunkNeedsUpdate(int paramInt1, int paramInt2) { paramInt1 <<= 4; paramInt2 <<= 4; world.b(paramInt1, 0, paramInt2, paramInt1 + 15, 127, paramInt2 + 15); }
public static void log(String paramString)
{
out.println(paramString);
}
public static void err(String paramString) {
if (firstError == null) firstError = paramString;
log(paramString);
setMsg("ZMerror", new StringBuilder().append("ZMod: errors detected - one or more mods affected\nFirst ").append(firstError).append("\nLog: ").append(logPath).toString(), 2, 36, 16746632);
}
public static void err(String paramString, Exception paramException) {
err(paramString);
log(new StringBuilder().append("### Exception: ").append(paramException.toString()).toString());
paramException.printStackTrace(out);
}
public static int getBind(String paramString, int paramInt)
{
String str = conf.getProperty(paramString);
if ((str == null) || (str.equals(""))) return paramInt;
int i = Keyboard.getKeyIndex(str);
if (i == 0) { err(new StringBuilder().append("error: config.txt @ ").append(paramString).append(" - invalid key name \"").append(str).append("\"").toString()); return paramInt; }
return i;
}
public static float getFloat(String paramString, float paramFloat1, float paramFloat2, float paramFloat3) {
String str = conf.getProperty(paramString);
if (str == null) return paramFloat1;
float f = new Float(str).floatValue();
if ((f < paramFloat2) || (f > paramFloat3)) { err(new StringBuilder().append("error: config.txt @ ").append(paramString).append(" - must be between ").append(paramFloat2).append(" and ").append(paramFloat3).toString()); return paramFloat1; }
return f;
}
public static int getInt(String paramString, int paramInt1, int paramInt2, int paramInt3) {
String str = conf.getProperty(paramString);
if (str == null) return paramInt1;
int i = new Integer(str).intValue();
if ((i < paramInt2) || (i > paramInt3)) { err(new StringBuilder().append("error: config.txt @ ").append(paramString).append(" - must be between ").append(paramInt2).append(" and ").append(paramInt3).toString()); return paramInt1; }
return i;
}
public static String getString(String paramString1, String paramString2) {
String str = conf.getProperty(paramString1);
if (str == null) return paramString2;
return str;
}
public static boolean getBool(String paramString, boolean paramBoolean) {
String str = conf.getProperty(paramString);
if (str == null) return paramBoolean;
if ((str.equals("1")) || (str.equals("yes")) || (str.equals("true")) || (str.equals("on"))) return true;
if ((str.equals("0")) || (str.equals("no")) || (str.equals("false")) || (str.equals("off"))) return false;
err(new StringBuilder().append("error: config.txt @ ").append(paramString).append(" - must be one of (1, yes, true, on, 0, no, false, off)").toString());
return paramBoolean;
}
private static void reportException(Exception paramException)
{
if (exceptionReported) return;
exceptionReported = true;
err("exception in reflection code encountered !", paramException);
}
public static Field getField(Class paramClass, String paramString) { try { Field localField = paramClass.getDeclaredField(paramString); localField.setAccessible(true); return localField; } catch (Exception localException) { reportException(localException); } return null; }
public static Object getValue(Field paramField, Object paramObject) { try { return paramField.get(paramObject); } catch (Exception localException) { reportException(localException); } return null; }
public static void setValue(Field paramField, Object paramObject1, Object paramObject2) { try { paramField.set(paramObject1, paramObject2); } catch (Exception localException) { reportException(localException); } }
public static Class getClass(String paramString) {
try { return Class.forName(paramString); } catch (Exception localException) { reportException(localException); } return null; }
public static Constructor getConstructor(Class paramClass, Class[] paramArrayOfClass) { try { return paramClass.getConstructor(paramArrayOfClass); } catch (Exception localException) { reportException(localException); } return null; }
public static Method getMethod(Class paramClass, String paramString, Class[] paramArrayOfClass) { try { Method localMethod = paramClass.getDeclaredMethod(paramString, paramArrayOfClass); localMethod.setAccessible(true); return localMethod; } catch (Exception localException) { reportException(localException); } return null; }
public static Method getMethod(Class paramClass, String paramString) { return getMethod(paramClass, paramString, new Class[0]); }
public static Method getMethod(Class paramClass1, String paramString, Class paramClass2) { return getMethod(paramClass1, paramString, new Class[] { paramClass2 }); }
public static Method getMethod(Class paramClass1, String paramString, Class paramClass2, Class paramClass3) { return getMethod(paramClass1, paramString, new Class[] { paramClass2, paramClass3 }); }
public static Method getMethod(Class paramClass1, String paramString, Class paramClass2, Class paramClass3, Class paramClass4) { return getMethod(paramClass1, paramString, new Class[] { paramClass2, paramClass3, paramClass4 }); }
public static Method getMethod(Class paramClass1, String paramString, Class paramClass2, Class paramClass3, Class paramClass4, Class paramClass5) { return getMethod(paramClass1, paramString, new Class[] { paramClass2, paramClass3, paramClass4, paramClass5 }); }
public static Object getNew(Constructor paramConstructor, Object[] paramArrayOfObject) { try { return paramConstructor.newInstance(paramArrayOfObject); } catch (Exception localException) { reportException(localException); } return null; }
public static Object getNew(Constructor paramConstructor, Object paramObject) { return getNew(paramConstructor, new Object[] { paramObject }); }
public static Object getNew(Constructor paramConstructor, Object paramObject1, Object paramObject2) { return getNew(paramConstructor, new Object[] { paramObject1, paramObject2 }); }
public static Object getNew(Constructor paramConstructor, Object paramObject1, Object paramObject2, Object paramObject3) { return getNew(paramConstructor, new Object[] { paramObject1, paramObject2, paramObject3 }); }
public static Object getNew(Constructor paramConstructor, Object paramObject1, Object paramObject2, Object paramObject3, Object paramObject4) { return getNew(paramConstructor, new Object[] { paramObject1, paramObject2, paramObject3, paramObject4 }); }
public static Object getNew(Class paramClass) { try { return paramClass.newInstance(); } catch (Exception localException) { reportException(localException); } return null; }
public static Object getResult(Method paramMethod, Object paramObject, Object[] paramArrayOfObject) { try { return paramMethod.invoke(paramObject, paramArrayOfObject); } catch (Exception localException) { reportException(localException); } return null; }
public static Object getResult(Method paramMethod) { return getResult(paramMethod, null, new Object[0]); }
public static Object getResult(Method paramMethod, Object paramObject) { return getResult(paramMethod, paramObject, new Object[0]); }
public static Object getResult(Method paramMethod, Object paramObject1, Object paramObject2) { return getResult(paramMethod, paramObject1, new Object[] { paramObject2 }); }
public static Object getResult(Method paramMethod, Object paramObject1, Object paramObject2, Object paramObject3) { return getResult(paramMethod, paramObject1, new Object[] { paramObject2, paramObject3 }); }
public static Object getResult(Method paramMethod, Object paramObject1, Object paramObject2, Object paramObject3, Object paramObject4) { return getResult(paramMethod, paramObject1, new Object[] { paramObject2, paramObject3, paramObject4 }); }
public static Object getResult(Method paramMethod, Object paramObject1, Object paramObject2, Object paramObject3, Object paramObject4, Object paramObject5) { return getResult(paramMethod, paramObject1, new Object[] { paramObject2, paramObject3, paramObject4, paramObject5 }); }
public static boolean checkClass(Class paramClass) { try { Field localField = paramClass.getDeclaredField("zmodmarker"); return localField != null; } catch (Exception localException) { }
return false; }
public static void delMsg(String paramString) {
ZFR.delMsg(paramString); }
public static void setMsg(String paramString) { setMsg("debug", paramString, 50, 50, 16777215); }
public static void setMsg(String paramString1, String paramString2, int paramInt1, int paramInt2) { setMsg(paramString1, paramString2, paramInt1, paramInt2, 16777215); }
public static void setMsg(String paramString1, String paramString2, int paramInt1, int paramInt2, int paramInt3) { ZFR.setMsg(paramString1, paramString2, paramInt1, paramInt2, paramInt3); }
public static boolean keyPress(int paramInt) { int i = keys[paramInt] == 0 ? 1 : 0; return ((keys[paramInt] = Keyboard.isKeyDown(paramInt))) && (i != 0); }
public static boolean keyDown(int paramInt) { return Keyboard.isKeyDown(paramInt);
}
private static void parse(List paramList, String paramString, int paramInt)
{
pList = paramList;
pNames = new HashMap();
pFiles = new HashSet();
parseFile(paramString, paramInt);
}
private static void parseFile(String paramString, int paramInt)
{
if (!pFiles.add(paramString)) {
err(new StringBuilder().append("error: recursion detected - \"").append(paramString).append("\" is already included").toString());
return;
}
String str1 = ""; String str2 = new StringBuilder().append(path).append(paramString).toString();
try {
byte[] arrayOfByte = new byte[(int)new File(str2).length()];
BufferedInputStream localBufferedInputStream = new BufferedInputStream(new FileInputStream(str2));
localBufferedInputStream.read(arrayOfByte);
localBufferedInputStream.close();
str1 = new String(arrayOfByte);
log(new StringBuilder().appen