void Update() { //save current map if (Input.GetButtonDown(_debugSettings.SaveMapInput)) { RoomBuilder.CurrentLoadedReadingMap.WallTiles = RoomBuilder.WallTiles; RoomBuilder.CurrentLoadedReadingMap.DoorTiles = RoomBuilder.DoorTiles; RoomBuilder.CurrentLoadedReadingMap.WalckableTiles = RoomBuilder.WalckableTiles; RoomBuilder.CurrentLoadedReadingMap.EnemyTiles = RoomBuilder.EnemyTiles; RoomBuilder.CurrentLoadedReadingMap.RoomSwitcherTiles = RoomBuilder.RoomSwitcherTiles; RoomBuilder.CurrentLoadedReadingMap.DungeonEnterTiles = RoomBuilder.DungeonEnterTiles; RoomBuilder.CurrentLoadedReadingMap.ChestTiles = RoomBuilder.ChestTiles; Debug.Log("Saved " + RoomBuilder.CurrentLoadedReadingMap.name); AssetDatabase.Refresh(); EditorUtility.SetDirty(RoomBuilder.CurrentLoadedReadingMap); AssetDatabase.SaveAssets(); } //edit mode if (Input.GetKeyDown(_debugSettings.EditModeKey)) { RoomBuilder.EditorMode = !RoomBuilder.EditorMode; Debug.Log("Editor Mode now: " + RoomBuilder.EditorMode); } //recreate room if (Input.GetKeyDown(_debugSettings.RecreateRoomKey)) { if (_sceneController.GetActiveSceneIndex() == (int)SceneIndex.Village) { Debug.Log("recreate room isn't a featured made for the village"); } else if (_sceneController.GetActiveSceneIndex() == (int)SceneIndex.Dungeon) { StartCoroutine(waitForAllToDie()); Debug.Log("Pressed " + _debugSettings.RecreateRoomKey + " and recreated the last saved " + RoomBuilder.CurrentLoadedReadingMap); } } //KillEnemies if (Input.GetKeyDown(_debugSettings.KillAllEnemiesKey)) { if (_sceneController.GetActiveSceneIndex() == (int)SceneIndex.Village) { Debug.Log("Looks like enemies spawning is not supported yet on the village map"); } else if (_sceneController.GetActiveSceneIndex() == (int)SceneIndex.Dungeon) { RoomBuilder.DebugDeleteEnemiesOnMap(); Debug.Log("Deleted Enemies"); } } //ResetMapToDraw if (Input.GetKeyDown(_debugSettings.ResetMapWhenEditingKey)) { if (_sceneController.GetActiveSceneIndex() == (int)SceneIndex.Village) { Debug.Log("Resetting the map isn't allowed in the village map"); } else if (_sceneController.GetActiveSceneIndex() == (int)SceneIndex.Dungeon) { RoomBuilder.FalseIfYouWantEmpty = false; RoomBuilder.CreateRoom(RoomBuilder.CurrentLoadedReadingMap); GameManager.SetupRoom(); RoomBuilder.FalseIfYouWantEmpty = true; Debug.Log("Map Reset"); } } //PressToGetInfo if (Input.GetKeyDown(_debugSettings.GetInfoKey)) { Debug.Log("Current Map: " + RoomBuilder.CurrentLoadedReadingMap + " / " + RoomBuilder.CurrentLoadedReadingMap.WallTiles.Count + " Walls" + " / " + RoomBuilder.CurrentLoadedReadingMap.WalckableTiles.Count + " Walckable" + " / " + RoomBuilder.CurrentLoadedReadingMap.EnemyTiles.Count + " Enemies" + " / " + RoomBuilder.CurrentLoadedReadingMap.DoorTiles.Count + " Doors" + " / " + RoomBuilder.CurrentLoadedReadingMap.RoomSwitcherTiles.Count + " RoomSwitchs" + " / " + RoomBuilder.CurrentLoadedReadingMap.DungeonEnterTiles.Count + " DungeonEnter"); } if (Input.GetKeyDown(_debugSettings.LoadOtherMap)) { if (_sceneController.GetActiveSceneIndex() == (int)SceneIndex.Village) { _sceneController.LoadScene((int)SceneIndex.Dungeon); } else if (_sceneController.GetActiveSceneIndex() == (int)SceneIndex.Dungeon) { _sceneController.LoadScene((int)SceneIndex.Village); } } }
public override void OnInspectorGUI() { DrawDefaultInspector(); RoomBuilder builder = (RoomBuilder)target; GUILayout.Label("-------------------------------------------------"); if (GUILayout.Button("Initialize")) { failCheck = builder.Init(); if (failCheck) { EditorUtility.DisplayDialog("Failed", builder.GetReason(), "Continue"); } } GUILayout.Label("Create Exit: "); GUILayout.BeginHorizontal(); if (GUILayout.Button("Up")) { failCheck = builder.CreateExit(Exit.Orientation.Up); if (failCheck) { EditorUtility.DisplayDialog("Failed", builder.GetReason(), "Continue"); } } if (GUILayout.Button("Down")) { failCheck = builder.CreateExit(Exit.Orientation.Down); if (failCheck) { EditorUtility.DisplayDialog("Failed", builder.GetReason(), "Continue"); } } if (GUILayout.Button("Left")) { failCheck = builder.CreateExit(Exit.Orientation.Left); if (failCheck) { EditorUtility.DisplayDialog("Failed", builder.GetReason(), "Continue"); } } if (GUILayout.Button("Right")) { failCheck = builder.CreateExit(Exit.Orientation.Right); if (failCheck) { EditorUtility.DisplayDialog("Failed", builder.GetReason(), "Continue"); } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Clear Exits:"); if (GUILayout.Button("Clear")) { if (builder.exits.Count > 0) { builder.exits.Clear(); } } GUILayout.EndHorizontal(); GUILayout.Label("-------------------------------------------------"); GUILayout.BeginHorizontal(); GUILayout.Label("Add Collider Point: "); if (GUILayout.Button("Add")) { builder.AddColliderPoint(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Complete room's collider:"); if (GUILayout.Button("Complete")) { failCheck = builder.CompleteCollider(); if (failCheck) { EditorUtility.DisplayDialog("Failed", builder.GetReason(), "Continue"); } } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Clear Points")) { failCheck = builder.ClearPoints(); if (failCheck) { EditorUtility.DisplayDialog("Failed", builder.GetReason(), "Continue"); } } if (GUILayout.Button("Clear Colls")) { failCheck = builder.ClearColliders(); if (failCheck) { EditorUtility.DisplayDialog("Failed", builder.GetReason(), "Continue"); } } GUILayout.EndHorizontal(); GUILayout.Label("-------------------------------------------------"); GUILayout.Label("Create room asset using settings: "); GUILayout.BeginHorizontal(); GUILayout.Label("Room Name: "); roomName = EditorGUILayout.TextField(roomName, GUILayout.Height(20f), GUILayout.Width(50f)); if (GUILayout.Button("Create Room")) { failCheck = builder.CreateRoom(); if (failCheck) { EditorUtility.DisplayDialog("Failed", builder.GetReason(), "Continue"); } else { if (!string.IsNullOrEmpty(roomName)) { CreateScriptableRoomAsset(builder.editing, roomName); } else { EditorUtility.DisplayDialog("Failed", "Room field must be entered.", "Continue"); } } } GUILayout.EndHorizontal(); GUILayout.Label("Debugging:"); GUILayout.BeginHorizontal(); if (GUILayout.Button("Debug Exits")) { builder.DebugExits(); } if (GUILayout.Button("Debug Colls")) { builder.DebugColliders(); } GUILayout.EndHorizontal(); }