private void GenerateDungeonFeatures(int direction) { // Generate architecture for each tree quad recursively ArchitectureGenerator architecture = new ArchitectureGenerator(); architecture.GenerateArchitecture(dungeonGenerator.quadTree); // Generate stairs StairGenerator stairs = new StairGenerator(); stairs.Generate(); // If we cannot solve the level, we need to generate a different one if (!LevelIsSolvable()) { Debug.LogError("Dungeon level cannot be solved. Genrating again..."); GenerateDungeon(direction); return; } // Generate player PlayerGenerator player = new PlayerGenerator(); Stair stair = direction == -1 ? grid.stairDown : grid.stairUp; player.GenerateAtPos(stair.x, stair.y); // Generate furniture FurnitureGenerator furniture = new FurnitureGenerator(); furniture.Generate(); // Generate monsters MonsterGenerator monsters = new MonsterGenerator(); monsters.Generate(); //monsters.GenerateSingle(); // Generate chests ChestGenerator chests = new ChestGenerator(); chests.Generate(); // Generate items ItemGenerator items = new ItemGenerator(); items.Generate(); }
void OnGUI() { EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("Monster"); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Begin Index"); mMonsterGenerator.BeginIndex = EditorGUILayout.IntField(mMonsterGenerator.BeginIndex); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("End Index"); mMonsterGenerator.EndIndex = EditorGUILayout.IntField(mMonsterGenerator.EndIndex); EditorGUILayout.EndHorizontal(); if (!mMonsterGenerator.IsGenerating) { if (GUILayout.Button("Generate")) { mMonsterGenerator.Generate(); } } else { mMonsterGenerator.Update(); } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("Player"); if (GUILayout.Button("Generate")) { mPlayerGenerator.Generate(); } EditorGUILayout.EndVertical(); EditorGUILayout.BeginVertical(); EditorGUILayout.LabelField("Terrain"); if (GUILayout.Button("Generate")) { mTerrainGenerator.Generate(); } EditorGUILayout.EndVertical(); }