public void Start(Dialog_FormVehicleCaravan formCaravanDialog)
 {
     if (Active)
     {
         Stop();
     }
     currentFormCaravanDialog         = formCaravanDialog;
     caravanInfoFromFormCaravanDialog = new VehicleCaravanTicksPerMoveUtility.VehicleInfo(formCaravanDialog);
     formCaravanDialog.choosingRoute  = true;
     Find.WindowStack.TryRemove(formCaravanDialog, true);
     vehicles = caravanInfoFromFormCaravanDialog.Value.vehicles.Where(v => v is VehiclePawn).ToList();
     InitiateRoutePlanner();
     TryAddWaypoint(formCaravanDialog.CurrentTile, true);
     cantRemoveFirstWaypoint = true;
 }
 public void Stop()
 {
     Active = false;
     for (int i = 0; i < waypoints.Count; i++)
     {
         waypoints[i].Destroy();
     }
     waypoints.Clear();
     cachedTicksToWaypoint.Clear();
     vehicles.Clear();
     if (currentFormCaravanDialog != null)
     {
         currentFormCaravanDialog.Notify_NoLongerChoosingRoute();
     }
     caravanInfoFromFormCaravanDialog = null;
     currentFormCaravanDialog         = null;
     cantRemoveFirstWaypoint          = false;
     ReleasePaths();
     WorldPathTextMeshGenerator.ResetAllTextMeshObjects();
 }
 public VehicleInfo(Dialog_FormVehicleCaravan formCaravanDialog)
 {
     vehicles     = TransferableUtility.GetPawnsFromTransferables(formCaravanDialog.transferables).Where(v => v is VehiclePawn).Cast <VehiclePawn>().ToList();
     massUsage    = formCaravanDialog.MassUsage;
     massCapacity = formCaravanDialog.MassCapacity;
 }