public void registerVessel() { if (!SupplyChainController.isVesselTracked(vessel)) { VesselData nvd = new VesselData(vessel); SupplyChainController.registerNewTrackedVessel(nvd); } Events["registerVessel"].active = false; }
public void endFlightTracking() { if (!currentlyTrackingFlight) { Debug.LogError("[SupplyChain] Attempted to end flight tracking without starting!"); return; } updateResourceAmounts(); // are we in a stable non-escape orbit? if (vessel.situation == Vessel.Situations.ORBITING && vessel.orbit.eccentricity > 0 && vessel.orbit.eccentricity < 1) { SupplyPoint to = null; foreach (SupplyPoint point in SupplyChainController.instance.points) { if (point.isVesselAtPoint(vessel)) { Debug.Log("[SupplyChain] Found existing supply point."); to = point; break; } } if (to == null) { Debug.Log("[SupplyChain] Creating new supply point."); to = new OrbitalSupplyPoint(vessel); SupplyChainController.registerNewSupplyPoint(to); } if (!SupplyChainController.isVesselTracked(vessel)) { VesselData nv = new VesselData(vessel); SupplyChainController.registerNewTrackedVessel(nv); } VesselData vd = SupplyChainController.getVesselTrackingInfo(vessel); SupplyLink result = new SupplyLink(vd, flightStartPoint, to); result.timeRequired = (vessel.missionTime - flightStartingMET); result.maxMass = flightStartingMass; Debug.Log("[SupplyChain] Creating new supply link."); Debug.Log("[SupplyChain] From: " + result.location.name); Debug.Log("[SupplyChain] To: " + result.to.name); Debug.Log("[SupplyChain] Total Elapsed MET: " + Convert.ToString(result.timeRequired)); Debug.Log("[SupplyChain] Maximum mass: " + Convert.ToString(result.maxMass)); foreach (int rsc in flightStartingResources.Keys) { if (vesselResourceAmounts[rsc] < flightStartingResources[rsc]) { result.resourcesRequired.Add(rsc, flightStartingResources[rsc] - vesselResourceAmounts[rsc]); Debug.Log("[SupplyChain] Detected resource deficit: " + Convert.ToString(flightStartingResources[rsc] - vesselResourceAmounts[rsc]) + " of " + PartResourceLibrary.Instance.GetDefinition(rsc).name); } } SupplyChainController.registerNewSupplyLink(result); } else { Debug.Log("Canceled flight tracking: not in stable orbit."); } currentlyTrackingFlight = false; Events["endFlightTracking"].guiActive = false; Events["endFlightTracking"].active = false; Events["beginFlightTracking"].guiActive = true; Events["beginFlightTracking"].active = true; }