public void Assimilate(MazeRoom room) { for (int i = 0; i < room.cells.Count; i++) { Add(room.cells[i]); } }
private MazeRoom CreateRoom(int indexToExclude) { MazeRoom newRoom = ScriptableObject.CreateInstance <MazeRoom>(); newRoom.settingsIndex = Random.Range(0, roomSettings.Length); if (newRoom.settingsIndex == indexToExclude) { newRoom.settingsIndex = (newRoom.settingsIndex + 1) % roomSettings.Length; } newRoom.settings = roomSettings[newRoom.settingsIndex]; rooms.Add(newRoom); return(newRoom); }
private void CreatePassageInSameRoom(MazeCell cell, MazeCell otherCell, MazeDirection direction) { MazePassage passage = Instantiate <MazePassage>(passagePrefab); passage.Initialize(cell, otherCell, direction); passage = Instantiate <MazePassage>(passagePrefab); passage.Initialize(otherCell, cell, direction.GetOpposite()); if (cell.room != otherCell.room) { MazeRoom roomToAssimilate = otherCell.room; cell.room.Assimilate(roomToAssimilate); rooms.Remove(roomToAssimilate); Destroy(roomToAssimilate); } }
public void Initialize(MazeRoom room) { room.Add(this); transform.GetChild(0).GetComponent <Renderer>().material = room.settings.floorMaterial; }