private void trackLaunch() { MissionLaunch launch = new MissionLaunch { Time = (float)Planetarium.GetUniversalTime(), Body = vessel.mainBody.name, VesselName = vessel.name, Funds = RmmUtil.CalculateVesselPrice(vessel), Crew = RmmUtil.AstronautCrewCount(vessel), Parts = MissionPart.GetMissionPartList(vessel), }; _mission.TrackLaunch(launch); trackingActive = true; trackingPrimary = true; trackingStatus = "Underway"; //----------------------- trackPartCount = RmmUtil.CountVesselParts(vessel); trackCrew = RmmUtil.AstronautCrewCount(vessel); trackCrewCapacity = RmmUtil.CrewCapacityCount(vessel); ScreenMessages.PostScreenMessage("mission tracking-LAUNCH", 4, ScreenMessageStyle.UPPER_CENTER); setOtherModules(); updateTrackingVars(vessel); updateNextLogicTime(vessel); }
private void TrackLanding() { MissionLanding landing = new MissionLanding { Time = Planetarium.GetUniversalTime(), Body = vessel.mainBody.name, Coordinates = MissionCoordinates.GetMissionCoordinates(vessel.latitude, vessel.longitude), Funds = RmmUtil.CalculateVesselPrice(vessel), Crew = (int)trackCrew, CrewCapacity = (int)trackCrewCapacity, Parts = MissionPart.GetMissionPartList(vessel), Resources = MissionResource.GetMissionResourceList(vessel), }; _mission.TrackLanding(landing); trackingPrimary = false; trackingActive = false; trackingStatus = "Landed"; ScreenMessages.PostScreenMessage("mission tracking-LANDING", 4, ScreenMessageStyle.UPPER_CENTER); _partModule.nextLogicTime = 0; updateTrackingVars(vessel); updateNextLogicTime(vessel); }
private void HandleStartTrackingWindow() { if (_startTrackingWindow == null) { return; } if (!WindowManager.IsOpen(_startTrackingWindow)) { CancelStartTracking(); return; } if (_startTrackingVessel != null) { if (RmmUtil.IsTrackingActive(FlightGlobals.ActiveVessel) || !RmmUtil.IsPreLaunch(FlightGlobals.ActiveVessel)) { CancelStartTracking(); return; } _startTrackingWindow.VesselName = _startTrackingVessel.vesselName; _startTrackingWindow.Price = RmmUtil.CalculateVesselPrice(_startTrackingVessel); _startTrackingWindow.MinimumCrew = RmmUtil.AstronautCrewCount(_startTrackingVessel); } else if (_startDockingPort != null) { if (FlightGlobals.ActiveVessel.situation != Vessel.Situations.ORBITING) { CancelStartTracking(); return; } List <Part> dockedVesselParts = RmmUtil.GetDockedParts(_startDockingPort.vessel, _startDockingPort); // determine minimum crew _startTrackingWindow.MinimumCrew = RmmUtil.AstronautCrewCount(dockedVesselParts); // determine minimum resources List <string> propellants = RmmUtil.DetermineProppellantArray(dockedVesselParts); List <Resource> minimumResources = new List <Resource>(); foreach (String propellant in propellants) { var amount = RmmUtil.ReadResource(dockedVesselParts, propellant); if (amount != 0) { Resource resource = new Resource { Name = propellant, Amount = amount, }; minimumResources.Add(resource); } } _startTrackingWindow.MinimumResources = minimumResources; } }