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);
            }
        }
    }
Exemplo n.º 2
0
    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();
    }