// ************************************************************************************ // LEVEL LOADING // ************************************************************************************ public bool GetNextLevel() { int levelToCheck = 0; try { levelToCheck = int.Parse(currentLevel); } catch { Debug.LogWarning("Error in getting the next level! Could not parse currentLevel to int!"); } levelToCheck++; while (levelToCheck < 100) { if (levelReader.CheckIfFileExists(levelToCheck.ToString())) { // If file exists ClearLevel(); // Clear the kevek levelReader.LoadLevel(levelToCheck.ToString()); break; // We get out of this loop } levelToCheck++; } return(true); }
// ************************************************************************************ // GUI // ************************************************************************************ void OnGUI() { if (!enabledOnStartup || Registry.replayViewer.enabled) { return; } // Play and Stop Buttons string btnText = ""; if (isSimulating) { btnText = "Stop"; } else { btnText = "Play"; } if (GUI.Button(new Rect(10, 10, 100, 30), btnText)) { if (isSimulating) { StopSimulation(); } else { StartSimulation(); } } // Displays the current level // GUI.Label(new Rect(Screen.width - 80, 10, 70, 20), "Level: " + map.currentLevel); GUI.enabled = true; MapEditMode = GUI.Toggle(new Rect(10, 50, 100, 20), MapEditMode, "Map Edit Mode"); if (MapEditMode) { HandleEditingModeGUI(); // Disable the GUI if the game is simulating if (isSimulating || currentMode != LevelEditorMode.PlacementMode) { GUI.enabled = false; } else { GUI.enabled = true; } // Make a background box for the spawning buttons GUI.Box(new Rect(0, Screen.height - 100, 620, 100), "Level Objects"); if (GUI.Button(new Rect(10, Screen.height - 140, 100, 30), "Edit Object")) { Debug.Log("Edit tile clicked"); SetCurrentMode(LevelEditorMode.PickToEditMode); } // Spawning buttons if (GUI.Button(new Rect(10, Screen.height - 70, 100, 30), "Tile")) { Debug.Log("Spawn tile clicked"); SetCurrentMode(LevelEditorMode.PlacementMode); objectToSpawn = ObjectType.Tile; } if (GUI.Button(new Rect(110, Screen.height - 70, 100, 30), "Hazard")) { Debug.Log("Spawn hazard clicked"); SetCurrentMode(LevelEditorMode.PlacementMode); objectToSpawn = ObjectType.Hazard; } if (GUI.Button(new Rect(210, Screen.height - 70, 100, 30), "Minibot")) { Debug.Log("Spawn minibot clicked"); SetCurrentMode(LevelEditorMode.PlacementMode); objectToSpawn = ObjectType.Minibot; } if (GUI.Button(new Rect(310, Screen.height - 70, 100, 30), "Box")) { Debug.Log("Spawn box clicked"); SetCurrentMode(LevelEditorMode.PlacementMode); objectToSpawn = ObjectType.Box; } if (GUI.Button(new Rect(410, Screen.height - 70, 100, 30), "Door")) { Debug.Log("Spawn door clicked"); SetCurrentMode(LevelEditorMode.PlacementMode); objectToSpawn = ObjectType.Door; } // 2nd row if (GUI.Button(new Rect(10, Screen.height - 40, 100, 30), "Switch")) { Debug.Log("Spawn switch clicked"); SetCurrentMode(LevelEditorMode.PlacementMode); objectToSpawn = ObjectType.Switch; } if (GUI.Button(new Rect(110, Screen.height - 40, 100, 30), "StepSwitch")) { Debug.Log("Spawn stepSwitch clicked"); SetCurrentMode(LevelEditorMode.PlacementMode); objectToSpawn = ObjectType.StepSwitch; } if (GUI.Button(new Rect(210, Screen.height - 40, 100, 30), "GravInv")) { Debug.Log("Spawn gravity inverter clicked"); SetCurrentMode(LevelEditorMode.PlacementMode); objectToSpawn = ObjectType.GravityInverter; } if (GUI.Button(new Rect(310, Screen.height - 40, 100, 30), "HorInv")) { Debug.Log("Spawn horizontal inverter clicked"); SetCurrentMode(LevelEditorMode.PlacementMode); objectToSpawn = ObjectType.HorizontalInverter; } if (GUI.Button(new Rect(410, Screen.height - 40, 100, 30), "TrigBlocks")) { Debug.Log("Spawn triggerableBlocks clicked"); SetCurrentMode(LevelEditorMode.PlacementMode); objectToSpawn = ObjectType.TriggerableBlock; } if (GUI.Button(new Rect(510, Screen.height - 40, 100, 30), "TrigHazard")) { Debug.Log("Spawn triggerableHazard clicked"); SetCurrentMode(LevelEditorMode.PlacementMode); objectToSpawn = ObjectType.TriggerableHazard; } //if (GUI.Button(new Rect(510, Screen.height - 40, 100, 30), "MovPlatform")) //{ // Debug.Log("Spawn moving platform clicked"); // objectToSpawn = ObjectType.MovingPlatform; //} // We then enable the GUI of the rest GUI.enabled = true; // Clears the whole map if (GUI.Button(new Rect(Screen.width - 110, 40, 100, 30), "New Map")) { Debug.Log("New map clicked"); map.ClearLevel(); if (levelReader.CheckIfFileExists("template")) { levelReader.LoadLevel("template"); } } if (GUI.Button(new Rect(Screen.width - 110, 70, 100, 30), "Clear Map")) { Debug.Log("Clear map clilcked"); map.ClearLevel(); } // Save map mode levelFileName = GUI.TextField(new Rect(Screen.width - 110, 120, 100, 30), levelFileName); if (GUI.Button(new Rect(Screen.width - 110, 150, 100, 30), "Save Map")) { Debug.Log("Save map clicked"); levelWriter.SaveLevel(levelFileName); map.currentLevel = levelFileName; } // Load map mode levelFileName = GUI.TextField(new Rect(Screen.width - 110, 200, 100, 30), levelFileName); if (GUI.Button(new Rect(Screen.width - 110, 230, 100, 30), "Load Map")) { Debug.Log("Load map clicked"); map.ClearLevel(); if (levelReader.CheckIfFileExists(levelFileName)) { levelReader.LoadLevel(levelFileName); } } if (GUI.Button(new Rect(Screen.width - 50, 270, 40, 30), ">>")) { if (map.GetNextLevel()) { Debug.Log("Next map clicked"); } } if (GUI.Button(new Rect(Screen.width - 110, 270, 40, 30), "<<")) { if (map.GetPreviousLevel()) { Debug.Log("Previous map clicked"); } } } }