public static void InvokeJumpDetails(ref dynamic vaProxy) { try { string type = vaProxy.GetText("Type variable"); if (!string.IsNullOrEmpty(type)) { ShipMonitor.JumpDetail detail = ((ShipMonitor)EDDI.Instance.ObtainMonitor("Ship monitor")).JumpDetails(type); vaProxy.SetDecimal("Ship jump detail distance", detail?.distance); vaProxy.SetInt("Ship jump detail jumps", detail?.jumps); vaProxy.SetText("Type variable", null); } } catch (Exception e) { setStatus(ref vaProxy, "Failed to get jump details", e); } }
public static void InvokeRouteDetails(ref dynamic vaProxy) { try { CrimeMonitor crimeMonitor = (CrimeMonitor)EDDI.Instance.ObtainMonitor("Crime monitor"); MaterialMonitor materialMonitor = (MaterialMonitor)EDDI.Instance.ObtainMonitor("Material monitor"); int materialDistance = materialMonitor.maxStationDistanceFromStarLs ?? 10000; string type = vaProxy.GetText("Type variable"); string system = vaProxy.GetText("System variable"); string station = vaProxy.GetText("Station variable"); switch (type) { case "cancel": { NavigationService.Instance.CancelDestination(); } break; case "encoded": { NavigationService.Instance.GetServiceRoute("encoded", materialDistance); } break; case "expiring": { NavigationService.Instance.GetExpiringRoute(); } break; case "facilitator": { int distance = crimeMonitor.maxStationDistanceFromStarLs ?? 10000; bool isChecked = crimeMonitor.prioritizeOrbitalStations; NavigationService.Instance.GetServiceRoute("facilitator", distance, isChecked); } break; case "farthest": { NavigationService.Instance.GetFarthestRoute(); } break; case "guardian": { NavigationService.Instance.GetServiceRoute("guardian", materialDistance); } break; case "human": { NavigationService.Instance.GetServiceRoute("human", materialDistance); } break; case "manufactured": { NavigationService.Instance.GetServiceRoute("manufactured", materialDistance); } break; case "most": { if (string.IsNullOrEmpty(system)) { NavigationService.Instance.GetMostRoute(); } else { NavigationService.Instance.GetMostRoute(system); } } break; case "nearest": { NavigationService.Instance.GetNearestRoute(); } break; case "next": { NavigationService.Instance.GetNextInRoute(); } break; case "raw": { NavigationService.Instance.GetServiceRoute("raw", materialDistance); } break; case "route": { if (string.IsNullOrEmpty(system)) { NavigationService.Instance.GetMissionsRoute(); } else { NavigationService.Instance.GetMissionsRoute(system); } } break; case "scoop": { ShipMonitor.JumpDetail detail = ((ShipMonitor)EDDI.Instance.ObtainMonitor("Ship monitor")).JumpDetails("total"); NavigationService.Instance.GetScoopRoute(detail.distance); } break; case "set": { if (string.IsNullOrEmpty(system)) { NavigationService.Instance.SetDestination(); } else { if (string.IsNullOrEmpty(station)) { NavigationService.Instance.SetDestination(system); } else { NavigationService.Instance.SetDestination(system, station); } } } break; case "source": { if (string.IsNullOrEmpty(system)) { NavigationService.Instance.GetSourceRoute(); } else { NavigationService.Instance.GetSourceRoute(system); } } break; case "update": { if (string.IsNullOrEmpty(system)) { NavigationService.Instance.UpdateRoute(); } else { NavigationService.Instance.UpdateRoute(system); } } break; } vaProxy.SetText("Type variable", null); vaProxy.SetText("System variable", null); } catch (Exception e) { setStatus(ref vaProxy, "Failed to get missions route", e); } }