/// <summary> /// Creates a typical waypoint. /// </summary> /// <param name="id">The ID of the waypoint.</param> /// <param name="tier">The position (tier).</param> /// <param name="x">The position (x-coordinate).</param> /// <param name="y">The position (y-coordinate).</param> /// <param name="podStorageLocation">Indicates whether the waypoint serves as a storage location.</param> /// <param name="isQueueWaypoint">Indicates whether the waypoint belongs to a queue.</param> /// <returns>The newly created waypoint.</returns> public Waypoint CreateWaypoint(int id, Tier tier, double x, double y, bool podStorageLocation, bool isQueueWaypoint) { Waypoint wp = new Waypoint(this) { ID = id, Tier = tier, X = x, Y = y, PodStorageLocation = podStorageLocation, IsQueueWaypoint = isQueueWaypoint }; tier.AddWaypoint(wp); Waypoints.Add(wp); WaypointGraph.Add(wp); _idToWaypoint[wp.ID] = wp; // Set volatile ID SetVolatileIDForWaypoint(wp); // Return return(wp); }
/// <summary> /// Creates a new waypoint that serves as the handover point for an elevator. /// </summary> /// <param name="id">The ID of the waypoint.</param> /// <param name="tier">The position (tier).</param> /// <param name="x">The position (x-coordinate).</param> /// <param name="y">The position (y-coordinate).</param> /// <param name="elevator">The elevator.</param> /// <param name="isQueueWaypoint">Indicates whether this waypoint is also a queue waypoint.</param> /// <returns>The newly created waypoint.</returns> public Waypoint CreateWaypoint(int id, Tier tier, Elevator elevator, double x, double y, bool isQueueWaypoint) { Waypoint wp = new Waypoint(this) { ID = id, X = x, Y = y, Elevator = elevator, IsQueueWaypoint = isQueueWaypoint }; tier.AddWaypoint(wp); Waypoints.Add(wp); WaypointGraph.Add(wp); _idToWaypoint[wp.ID] = wp; // Set volatile ID SetVolatileIDForWaypoint(wp); // Return return(wp); }
/// <summary> /// Creates a new waypoint that serves as a storage location. /// </summary> /// <param name="id">The ID of the waypoint.</param> /// <param name="tier">The position (tier).</param> /// <param name="pod">The pod currently stored at it.</param> /// <returns>The newly created waypoint.</returns> public Waypoint CreateWaypoint(int id, Tier tier, Pod pod) { Waypoint wp = new Waypoint(this) { ID = id, X = pod.X, Y = pod.Y, Radius = pod.Radius, PodStorageLocation = true, Pod = pod }; pod.Waypoint = wp; tier.AddWaypoint(wp); Waypoints.Add(wp); WaypointGraph.Add(wp); _idToWaypoint[wp.ID] = wp; // Set volatile ID SetVolatileIDForWaypoint(wp); // Return return(wp); }
/// <summary> /// Creates a new waypoint that serves as the handover point for an output station. /// </summary> /// <param name="id">The ID of the waypoint.</param> /// <param name="tier">The position (tier).</param> /// <param name="station">The station.</param> /// <param name="isQueueWaypoint">Indicates whether this waypoint is also a queue waypoint.</param> /// <returns>The newly created waypoint.</returns> public Waypoint CreateWaypoint(int id, Tier tier, OutputStation station, bool isQueueWaypoint) { Waypoint wp = new Waypoint(this) { ID = id, X = station.X, Y = station.Y, Radius = station.Radius, OutputStation = station, IsQueueWaypoint = isQueueWaypoint }; station.Waypoint = wp; tier.AddWaypoint(wp); Waypoints.Add(wp); WaypointGraph.Add(wp); _idToWaypoint[wp.ID] = wp; // Set volatile ID SetVolatileIDForWaypoint(wp); // Return return(wp); }