public void Init(TilePropagator propagator)
 {
     if (PathSpec is PathSpec pathSpec)
     {
         // Convert PathSpec to EdgedPathSpec
         // As we have a bug with PathSpec ignoring paths of length 2.
         // (probably should use bridge edges instead of articulation points)
         ISet <Direction> allDirections = new HashSet <Direction>(Enumerable.Range(0, propagator.Topology.DirectionsCount).Cast <Direction>());
         var edgedPathSpec = new EdgedPathSpec
         {
             Exits         = pathSpec.Tiles.ToDictionary(x => x, _ => allDirections),
             RelevantCells = pathSpec.RelevantCells,
             RelevantTiles = pathSpec.RelevantTiles,
             TileRotation  = pathSpec.TileRotation,
         };
         pathView = edgedPathSpec.MakeView(propagator);
     }
     else
     {
         pathView = PathSpec.MakeView(propagator);
     }
     pathView.Init();
 }
 public void Init(TilePropagator propagator)
 {
     pathView = PathSpec.MakeView(propagator);
     pathView.Init();
 }