void TaskThreadProcess() { while (true) { switch (state) { case TaskDestinationState.Arret: sw.Restart(); UpdateTaskMode(); break; case TaskDestinationState.AvanceEnCours: if (sw.ElapsedMilliseconds > 500) { state = TaskDestinationState.Avance; } break; case TaskDestinationState.Avance: sw.Restart(); state = TaskDestinationState.AvanceEnCours; UpdateTaskMode(); break; default: break; } Thread.Sleep(100); } }
void UpdateTaskMode() { if (parent.localWorldMap == null) { return; } switch (mode) { case TaskDestinationMode.Stop: if (parent.localWorldMap.DestinationLocation != null) { mode = TaskDestinationMode.Destination; UpdateAndLaunch(parent.localWorldMap.DestinationLocation); } else if (parent.localWorldMap.WaypointLocations.Count >= 1) { mode = TaskDestinationMode.Waypoint; PointD point = parent.localWorldMap.WaypointLocations[0]; UpdateAndLaunch(new Location(point.X, point.Y, 0, 0, 0, 0)); } else { state = TaskDestinationState.Arret; } break; case TaskDestinationMode.Waypoint: if (parent.localWorldMap.DestinationLocation != null) { mode = TaskDestinationMode.Destination; } state = TaskDestinationState.Avance; break; case TaskDestinationMode.Destination: state = TaskDestinationState.Avance; break; default: break; } }
public void SetTaskState(TaskDestinationState state) { this.state = state; }