private static bool PerformOperation(TextEditor te, UIUnityEvents.TextEditOp operation) { switch (operation) { case UIUnityEvents.TextEditOp.MoveLeft: { te.MoveLeft(); break; } case UIUnityEvents.TextEditOp.MoveRight: { te.MoveRight(); break; } case UIUnityEvents.TextEditOp.MoveUp: { te.MoveUp(); break; } case UIUnityEvents.TextEditOp.MoveDown: { te.MoveDown(); break; } case UIUnityEvents.TextEditOp.MoveLineStart: { te.MoveLineStart(); break; } case UIUnityEvents.TextEditOp.MoveLineEnd: { te.MoveLineEnd(); break; } case UIUnityEvents.TextEditOp.MoveTextStart: { te.MoveTextStart(); break; } case UIUnityEvents.TextEditOp.MoveTextEnd: { te.MoveTextEnd(); break; } case UIUnityEvents.TextEditOp.MovePageUp: case UIUnityEvents.TextEditOp.MovePageDown: case UIUnityEvents.TextEditOp.SelectPageUp: case UIUnityEvents.TextEditOp.SelectPageDown: { Debug.Log(string.Concat("Unimplemented: ", operation)); break; } case UIUnityEvents.TextEditOp.MoveGraphicalLineStart: { te.MoveGraphicalLineStart(); break; } case UIUnityEvents.TextEditOp.MoveGraphicalLineEnd: { te.MoveGraphicalLineEnd(); break; } case UIUnityEvents.TextEditOp.MoveWordLeft: { te.MoveWordLeft(); break; } case UIUnityEvents.TextEditOp.MoveWordRight: { te.MoveWordRight(); break; } case UIUnityEvents.TextEditOp.MoveParagraphForward: { te.MoveParagraphForward(); break; } case UIUnityEvents.TextEditOp.MoveParagraphBackward: { te.MoveParagraphBackward(); break; } case UIUnityEvents.TextEditOp.MoveToStartOfNextWord: { te.MoveToStartOfNextWord(); break; } case UIUnityEvents.TextEditOp.MoveToEndOfPreviousWord: { te.MoveToEndOfPreviousWord(); break; } case UIUnityEvents.TextEditOp.SelectLeft: { te.SelectLeft(); break; } case UIUnityEvents.TextEditOp.SelectRight: { te.SelectRight(); break; } case UIUnityEvents.TextEditOp.SelectUp: { te.SelectUp(); break; } case UIUnityEvents.TextEditOp.SelectDown: { te.SelectDown(); break; } case UIUnityEvents.TextEditOp.SelectTextStart: { te.SelectTextStart(); break; } case UIUnityEvents.TextEditOp.SelectTextEnd: { te.SelectTextEnd(); break; } case UIUnityEvents.TextEditOp.ExpandSelectGraphicalLineStart: { te.ExpandSelectGraphicalLineStart(); break; } case UIUnityEvents.TextEditOp.ExpandSelectGraphicalLineEnd: { te.ExpandSelectGraphicalLineEnd(); break; } case UIUnityEvents.TextEditOp.SelectGraphicalLineStart: { te.SelectGraphicalLineStart(); break; } case UIUnityEvents.TextEditOp.SelectGraphicalLineEnd: { te.SelectGraphicalLineEnd(); break; } case UIUnityEvents.TextEditOp.SelectWordLeft: { te.SelectWordLeft(); break; } case UIUnityEvents.TextEditOp.SelectWordRight: { te.SelectWordRight(); break; } case UIUnityEvents.TextEditOp.SelectToEndOfPreviousWord: { te.SelectToEndOfPreviousWord(); break; } case UIUnityEvents.TextEditOp.SelectToStartOfNextWord: { te.SelectToStartOfNextWord(); break; } case UIUnityEvents.TextEditOp.SelectParagraphBackward: { te.SelectParagraphBackward(); break; } case UIUnityEvents.TextEditOp.SelectParagraphForward: { te.SelectParagraphForward(); break; } case UIUnityEvents.TextEditOp.Delete: { return te.Delete(); } case UIUnityEvents.TextEditOp.Backspace: { return te.Backspace(); } case UIUnityEvents.TextEditOp.DeleteWordBack: { return te.DeleteWordBack(); } case UIUnityEvents.TextEditOp.DeleteWordForward: { return te.DeleteWordForward(); } case UIUnityEvents.TextEditOp.Cut: { return te.Cut(); } case UIUnityEvents.TextEditOp.Copy: { te.Copy(); break; } case UIUnityEvents.TextEditOp.Paste: { return te.Paste(); } case UIUnityEvents.TextEditOp.SelectAll: { te.SelectAll(); break; } case UIUnityEvents.TextEditOp.SelectNone: { te.SelectNone(); break; } default: { goto case UIUnityEvents.TextEditOp.SelectPageDown; } } return false; }
//******************************************************* //Includes all the GUI elements //******************************************************* public void OnGUI() { if (!atPlayerWall) { //If not at wall terminal jack in - "show crosshair" Vector3 mPos = Input.mousePosition; //GUI.DrawTexture (new Rect (mPos.x - 32, Screen.height - mPos.y - 32, 64, 64), cursorImage); } else if (atPlayerWall && Input.GetKeyDown("e")) { //GameObject.Find("Initialization").GetComponent<CursorTime>().showCursor=false; //If at wall terminal show default cursor instead } if (guiEnabled) { GUI.Box(new Rect(0, 0, Screen.width, Screen.height), "List of Functions"); if (showError) { GUI.Label(new Rect(Screen.width * 0.4f, Screen.height * 0.45f, Screen.width * 0.3f, Screen.height * 0.1f), errorString); if (GUI.Button(new Rect(Screen.width * 0.47f, Screen.height * 0.55f, Screen.width * 0.06f, Screen.height * 0.04f), "sorry")) { showError = false; } } GUI.SetNextControlName("textarea"); GUI.TextArea(new Rect(Screen.width * 0.2f, Screen.width * 0.04f, Screen.width * 0.75f, Screen.height * 0.75f), code); if (showError) { GUI.Label(new Rect(Screen.width * 0.4f, Screen.height * 0.45f, Screen.width * 0.3f, Screen.height * 0.1f), errorString); if (GUI.Button(new Rect(Screen.width * 0.47f, Screen.height * 0.55f, Screen.width * 0.06f, Screen.height * 0.04f), "sorry")) { showError = false; } } editor = (TextEditor)GUIUtility.GetStateObject(typeof(TextEditor), GUIUtility.keyboardControl); editor.SelectNone(); editor.MoveLineEnd(); int temp; // Button that inserts the method that shoots a bullet if (GUI.Button(new Rect(Screen.width * 0.02f, Screen.height * 0.48f, Screen.width * 0.1f, Screen.height * 0.05f), "Cheat now!")) { GUI.FocusControl("textarea"); editor = goToNextEmptyLine(editor, code); code = "public class game{\n" + "\tpublic static void main(String[] args){\n" + "\t\tint rolledNumber = (int)(Math.random() * 6 ) + 1;\n" + "\t\tswitch(rolledNumber){\n" + "\t\t\tcase 1:\n" + "\t\t\t\ttopFace = 1;\n" + "\t\t\tcase 2:\n" + "\t\t\t\ttopFace = 2;\n" + "\t\t\tcase 3:\n" + "\t\t\t\ttopFace = 3;\n" + "\t\t\tcase 4:\n" + "\t\t\t\ttopFace = 4;\n" + "\t\t\tcase 5:\n" + "\t\t\t\ttopFace = 5;\n" + "\t\t\tcase 6:\n" + "\t\t\t\ttopFace = 6;\n" + "\t\t}\n" + "\t\ttopFace = 6;\n" + "\t}\n" + "}"; facesClicked = true; } // Button that activates the user's code if (GUI.Button(new Rect(Screen.width * 0.6f, Screen.height * 0.9f, Screen.width * 0.08f, Screen.height * 0.05f), "Submit")) { TextChanger.Update(); if (facesClicked) { GameObject.Find("Initialization").GetComponent<PoisonTime>().cheating = true; GameObject.Find("d67").GetComponent<DiceRotateLoaded>().loaded = true; } resume(); } // Button that closes the UI and disregards changes if (GUI.Button(new Rect(Screen.width * 0.7f, Screen.height * 0.9f, Screen.width * 0.08f, Screen.height * 0.05f), "Cancel")) { resume(); } // Button that restores the code in the textArea to its original state if (GUI.Button(new Rect(Screen.width * 0.8f, Screen.height * 0.9f, Screen.width * 0.08f, Screen.height * 0.05f), "Reset")) { code = restoreCode(); text = ""; //output=""; forStart = 0; forFinish = 0; value = 0; } } }
//******************************************************* //Includes all the GUI elements //******************************************************* public void OnGUI() { if (!atOpponentWall) { //If not at wall terminal jack in - "show crosshair" Vector3 mPos = Input.mousePosition; //GUI.DrawTexture (new Rect (mPos.x - 32, Screen.height - mPos.y - 32, 64, 64), cursorImage); } else if (atOpponentWall && Input.GetKeyDown("e")) { //GameObject.Find("Initialization").GetComponent<CursorTime>().showCursor=false; //If at wall terminal show default cursor instead } if (guiEnabled) { GUI.Box(new Rect(0, 0, Screen.width, Screen.height), "List of Functions"); if (showError) { GUI.Label(new Rect(Screen.width * 0.4f, Screen.height * 0.45f, Screen.width * 0.3f, Screen.height * 0.1f), errorString); if (GUI.Button(new Rect(Screen.width * 0.47f, Screen.height * 0.55f, Screen.width * 0.06f, Screen.height * 0.04f), "sorry")) { showError = false; } } GUI.SetNextControlName("textarea"); GUI.TextArea(new Rect(Screen.width * 0.3f, Screen.width * 0.04f, Screen.width * 0.65f, Screen.height * 0.75f), code); if (showError) { GUI.Label(new Rect(Screen.width * 0.4f, Screen.height * 0.45f, Screen.width * 0.3f, Screen.height * 0.1f), errorString); if (GUI.Button(new Rect(Screen.width * 0.47f, Screen.height * 0.55f, Screen.width * 0.06f, Screen.height * 0.04f), "sorry")) { showError = false; } } editor = (TextEditor)GUIUtility.GetStateObject(typeof(TextEditor), GUIUtility.keyboardControl); editor.SelectNone(); editor.MoveLineEnd(); int temp; // for loop starting value textfield //******************************************************* string fs = GUI.TextField(new Rect(Screen.width * 0.22f, Screen.height * 0.28f, Screen.width * 0.04f, Screen.height * 0.05f), forStart.ToString()); if (int.TryParse(fs, out temp)) { forStart = Mathf.Clamp(temp, 0, 100); } else if (fs == "") { forStart = 0; } //******************************************************* GUI.Label(new Rect(Screen.width * 0.22f, Screen.height * 0.24f, Screen.width * 0.04f, Screen.height * 0.05f), ("start")); //for loop parameter title //for loop ending value textfield //******************************************************* string ff = GUI.TextField(new Rect(Screen.width * 0.26f, Screen.height * 0.28f, Screen.width * 0.04f, Screen.height * 0.05f), forFinish.ToString()); if (int.TryParse(ff, out temp)) { forFinish = Mathf.Clamp(temp, 0, 100); } else if (ff == "") { forFinish = 0; } //******************************************************* string val = GUI.TextField(new Rect(Screen.width * 0.22f, Screen.height * 0.56f, Screen.width * 0.04f, Screen.height * 0.05f), value.ToString()); if (int.TryParse(val, out temp)) { value = Mathf.Clamp(temp, 0, 100); } else if (val == "") { value = 0; } GUI.Label(new Rect(Screen.width * 0.26f, Screen.height * 0.24f, Screen.width * 0.04f, Screen.height * 0.05f), ("finish")); //for loop parameter title // Button that inserts a Random generator function if (GUI.Button(new Rect(Screen.width * 0.02f, Screen.height * 0.28f, Screen.width * 0.2f, Screen.height * 0.1f), "Assign a Random int between")) { GUI.FocusControl("textarea"); editor = goToNextEmptyLine(editor, code); int num = getNumOfTabs(code, editor.pos); if ((countLinesBefore(code, editor.pos) >= 2) && (countLinesAfter(code, editor.pos) >= 2) && isBlankLine(code, editor.pos)) { randClicked = true; if (!switchClicked && !facesClicked) rand1 = true; if ((forFinish == 6) && (forStart == 1)) { randCorrect = true; code = addToCode(code, editor, "rolledNumber = (int)(Math.random() * " + ff + " + " + fs + ");\n" + addedTabs(num)); } else { randCorrect = false; errorString = randFalseError; showError = true; } } else { errorString = cantType; showError = true; } } // Button inserts a switch statement if (GUI.Button(new Rect(Screen.width * 0.02f, Screen.height * 0.42f, Screen.width * 0.2f, Screen.height * 0.1f), "Add Switch Statement")) { GUI.FocusControl("textarea"); editor = goToNextEmptyLine(editor, code); editor.MoveLineEnd(); int num = getNumOfTabs(code, editor.pos); if ((countLinesBefore(code, editor.pos) >= 2) && (countLinesAfter(code, editor.pos) >= 2) && isBlankLine(code, editor.pos)) { if (!switchClicked) { code = addToCode(code, editor, "switch(rolledNumber){\n" + addedTabs(num) + "\tcase 1:\n" + "\t\t" + addedTabs(num) + "\n" + addedTabs(num) + "\t\tbreak;\n" + addedTabs(num) + "\tcase 2:\n" + "\t\t" + addedTabs(num) + "\n" + addedTabs(num) + "\t\tbreak;\n" + addedTabs(num) + "\tcase 3:\n" + "\t\t" + addedTabs(num) + "\n" + addedTabs(num) + "\t\tbreak;\n" + addedTabs(num) + "\tcase 4:\n" + "\t\t" + addedTabs(num) + "\n" + addedTabs(num) + "\t\tbreak;\n" + addedTabs(num) + "\tcase 5:\n" + "\t\t" + addedTabs(num) + "\n" + addedTabs(num) + "\t\tbreak;\n" + addedTabs(num) + "\tcase 6:\n" + "\t\t" + addedTabs(num) + "\n" + addedTabs(num) + "\t\tbreak;\n" + addedTabs(num) + "\tdefault:\n" + addedTabs(num) + "\t\tSystem.out.println(\"Wrong value, check your random generation\");"); switchClicked = true; } else { errorString = switch1Error; showError = true; } if (randClicked && !facesClicked) switch2 = true; } else { errorString = cantType; showError = true; } } // Button that assigns a number to face if (GUI.Button(new Rect(Screen.width * 0.02f, Screen.height * 0.56f, Screen.width * 0.2f, Screen.height * 0.1f), "Assign an int to topFace")) { GUI.FocusControl("textarea"); editor = goToNextEmptyLine(editor, code); if (randClicked && switchClicked) face3 = true; if (((value == 1) || (value == 2) || (value == 3) || (value == 4) || (value == 5)) && !randClicked && !switchClicked) { errorString = cheatError; showError = true; } else if ((countLinesBefore(code, editor.pos) >= 2) && (countLinesAfter(code, editor.pos) >= 2) && isBlankLine(code, editor.pos)) { if (countLinesBefore(code, editor.pos) == 7) if (value == 1) case1 = true; else case1 = false; if (countLinesBefore(code, editor.pos) == 10) if (value == 2) case2 = true; else case2 = false; if (countLinesBefore(code, editor.pos) == 13) if (value == 3) case3 = true; else case3 = false; if (countLinesBefore(code, editor.pos) == 16) if (value == 4) case4 = true; else case4 = false; if (countLinesBefore(code, editor.pos) == 19) if (value == 5) case5 = true; else case5 = false; if (countLinesBefore(code, editor.pos) == 22) if (value == 6) case6 = true; else case6 = false; if ((case1) && (case2) && (case3) && (case4) && (case5) && (case6)) facesCorrect = true; if ((value > 6) || (value < 1)) { errorString = wrongFace; showError = true; } else { facesClicked = true; code = addToCode(code, editor, "topFace = " + value + " ;"); } } else { errorString = cantType; showError = true; } } // Button that activates the user's code if (GUI.Button(new Rect(Screen.width * 0.6f, Screen.height * 0.9f, Screen.width * 0.08f, Screen.height * 0.05f), "Submit")) { TextChanger.Update(); if (facesCorrect && face3 && switch2 && rand1 && randCorrect) { audio.PlayOneShot (missionComplete); GameObject.Find("d6").GetComponent<DiceRotateLoaded>().loaded = false; GameObject.Find("Initialization").GetComponent<PoisonTime>().cheating = false; } resume(); } // Button that closes the UI and disregards changes if (GUI.Button(new Rect(Screen.width * 0.7f, Screen.height * 0.9f, Screen.width * 0.08f, Screen.height * 0.05f), "Cancel")) { code = restoreCode(); resetValues(); resume(); } // Button that restores the code in the textArea to its original state if (GUI.Button(new Rect(Screen.width * 0.8f, Screen.height * 0.9f, Screen.width * 0.08f, Screen.height * 0.05f), "Reset")) { code = restoreCode(); } } }