private List <RoomTemplate> GetPotentialConnectRooms(LevelTemplate levelTemplate, int[] coords, int[] previousCoords) { List <RoomTemplate> potentialRooms = new List <RoomTemplate>(); int[][] surroundingCoords = GetSurroundingCoords(coords); foreach (int[] surroundingCoord in surroundingCoords) { if (surroundingCoord != previousCoords && levelTemplate.IsInside(surroundingCoord)) { RoomTemplate surroundingRoom = levelTemplate.GetMap(surroundingCoord); if (surroundingRoom.GetRoomType() == RoomTemplate.RoomType.MAIN || surroundingRoom.GetRoomType() == RoomTemplate.RoomType.OFFSHOOT) { potentialRooms.Add(surroundingRoom); } } } return(potentialRooms); }
private void CreateLevelFromTemplate(LevelTemplate levelTemplate, Transform mapTransform) { for (int col = 0; col < levelTemplate.GetCols(); ++col) { for (int row = 0; row < levelTemplate.GetRows(); ++row) { RoomTemplate roomTemplate = levelTemplate.GetMap(new int[] { col, row }); if (roomTemplate.GetRoomType() != RoomTemplate.RoomType.EMPTY) { Room room = GenerateRoom(roomTemplate, col, row, mapTransform); if (roomTemplate.GetRoomType() == RoomTemplate.RoomType.SPAWN) { spawnPoint = room.GetSpawnPoint(); } } } } }
public void GenerateRoom(RoomTemplate roomTemplate) { roomType = roomTemplate.GetRoomType(); doors = new List <DoorTile>(); for (int col = 0; col < RoomTemplate.MAX_ROOM_WIDTH; col++) { for (int row = 0; row < RoomTemplate.MAX_ROOM_HEIGHT; row++) { GenerateTile(col, row, roomTemplate.GetTile(col, row)); } } }