DungeonGraph.cs 883 B

1234567891011121314151617181920212223242526272829303132
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. namespace DunGen
  4. {
  5. public class DungeonGraph
  6. {
  7. public readonly List<DungeonGraphNode> Nodes = new List<DungeonGraphNode>();
  8. public readonly List<DungeonGraphConnection> Connections = new List<DungeonGraphConnection>();
  9. public DungeonGraph(Dungeon dungeon, IEnumerable<Tile> additionalTiles)
  10. {
  11. Dictionary<Tile, DungeonGraphNode> nodeMap = new Dictionary<Tile, DungeonGraphNode>();
  12. var allTiles = dungeon.AllTiles.Concat(additionalTiles);
  13. foreach (var tile in allTiles)
  14. {
  15. var node = new DungeonGraphNode(tile);
  16. nodeMap[tile] = node;
  17. Nodes.Add(node);
  18. }
  19. foreach (var conn in dungeon.Connections)
  20. {
  21. var nodeConn = new DungeonGraphConnection(nodeMap[conn.A.Tile], nodeMap[conn.B.Tile], conn.A, conn.B);
  22. Connections.Add(nodeConn);
  23. }
  24. }
  25. }
  26. }