public static MapDescription <int> GetBasicMapDescription(IGraph <int> graph, IRoomDescription basicRoomDescription, IRoomDescription corridorRoomDescription = null, bool withCorridors = false) { var mapDescription = new MapDescription <int>(); foreach (var room in graph.Vertices) { mapDescription.AddRoom(room, basicRoomDescription); } var counter = graph.VerticesCount; foreach (var connection in graph.Edges) { if (withCorridors) { mapDescription.AddRoom(counter, corridorRoomDescription); mapDescription.AddConnection(connection.From, counter); mapDescription.AddConnection(connection.To, counter); counter++; } else { mapDescription.AddConnection(connection.From, connection.To); } } return(mapDescription); }
public Room(TNode node, GridPolygon shape, IntVector2 position, bool isCorridor, IRoomDescription roomDescription, Transformation transformation, IList <Transformation> transformations) { Node = node; Shape = shape; Position = position; IsCorridor = isCorridor; RoomDescription = roomDescription; Transformation = transformation; Transformations = transformations; Doors = null; }
public Room(TNode node, PolygonGrid2D shape, Vector2Int position, bool isCorridor, RoomTemplate roomTemplate, IRoomDescription roomDescription, TransformationGrid2D transformation, List <TransformationGrid2D> transformations, RoomTemplateInstance roomTemplateInstance) { Node = node; Shape = shape; Position = position; IsCorridor = isCorridor; RoomTemplate = roomTemplate; Transformation = transformation; Transformations = transformations; RoomTemplateInstance = roomTemplateInstance; RoomDescription = roomDescription; }
/// <summary> /// Adds a given room to the level description. /// </summary> public void AddRoom(TRoom room, IRoomDescription roomDescription) { if (roomDescription == null) { throw new ArgumentNullException(nameof(roomDescription)); } if (roomDescriptions.ContainsKey(room)) { throw new ArgumentException($"Map description already contains node {room}", nameof(room)); } roomDescriptions.Add(room, roomDescription); }