/// <summary> /// Stops AutoPilot. Will trigger the given status if not already in that state. /// </summary> /// <param name="newStatus">The new status for AutoPilot. Cannot be Moving</param> /// <exception cref="ArgumentOutOfRangeException">newStatus cannot be Moving</exception> public void Stop(AutoPilotStatus newStatus) { if (newStatus != AutoPilotStatus.Moving) { ticker.Stop(); Client.Self.AutoPilotCancel(); SetStatus(newStatus); lastDistanceChanged = -1; waypointIndex = 0; } else { throw new ArgumentOutOfRangeException("newStatus", "Value cannot be Moving"); } }
//convert status to color public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is AutoPilotStatus) { AutoPilotStatus status = (AutoPilotStatus)value; if (status == AutoPilotStatus.Busy) { return(busyColor); } else if (status == AutoPilotStatus.Free) { return(freeColor); } } return(null); }
/// <summary> /// Sets AutoPilot's Status. If newStatus is different from current Status than it will cause OnStatusChange event trigger. /// </summary> /// <param name="newStatus">The new Status AutoPilot is to be changed to</param> /// <returns>True if OnStatusChanged triggered</returns> private bool SetStatus(AutoPilotStatus newStatus) { AutoPilotStatus oldStatus = status; if (oldStatus != newStatus) { status = newStatus; if (OnStatusChange != null) { OnStatusChange(status, NextWaypoint); } return(true); } else { return(false); } }
/// <summary> /// Sets AutoPilot's Status. If newStatus is different from current Status than it will cause OnStatusChange event trigger. /// </summary> /// <param name="newStatus">The new Status AutoPilot is to be changed to</param> /// <returns>True if OnStatusChanged triggered</returns> private bool SetStatus(AutoPilotStatus newStatus) { AutoPilotStatus oldStatus = status; if (oldStatus != newStatus) { status = newStatus; if (OnStatusChange != null) { OnStatusChange(status, NextWaypoint); } return true; } else { return false; } }