/// <summary> /// Initialize an instance to calculate path details. /// </summary> /// <param name="map">Has to be at least 1x1.</param> /// <exception cref="ArgumentOutOfRangeException"> /// <see cref="Map.Width"/> or <see cref="Map.Height"/> is less than 1.</exception> public PathGenerator(Map map, BuilderRules rules) { if (map.Width < 1) { throw new ArgumentOutOfRangeException($"{nameof(map.Width)} has to be at least 1."); } if (map.Height < 1) { throw new ArgumentOutOfRangeException($"{nameof(map.Height)} has to be at least 1."); } _map = map; int rowCount = (int)Math.Pow(Math.Max(map.Width, map.Height), 3); _results = new Path[rowCount]; _nearestPillars = new NearestPillars(_map); _rules = rules; }
static BuilderViewModel() { _rules = new BuilderRules(); }