/// <summary> /// Gets a category with the specified non-case sensitive name or creates it if required. /// </summary> public static ReadoutCategory GetCategory(string name) { if (Categories.Any(c => c.Name.Equals(name, StringComparison.CurrentCultureIgnoreCase))) { return Categories.Find(c => c.Name.Equals(name, StringComparison.CurrentCultureIgnoreCase)); } var category = new ReadoutCategory(name); Categories.Add(category); return category; }
/// <summary> /// Gets a category with the specified non-case sensitive name or creates it if required. /// </summary> public static ReadoutCategory GetCategory(string name) { if (Categories.Any(c => c.Name.Equals(name, StringComparison.CurrentCultureIgnoreCase))) { return(Categories.Find(c => c.Name.Equals(name, StringComparison.CurrentCultureIgnoreCase))); } var category = new ReadoutCategory(name); Categories.Add(category); return(category); }
/// <summary> /// Gets a list of readout modules which are associated with the specified category. /// </summary> public static List<ReadoutModule> GetCategory(ReadoutCategory category) { return readouts.Where(r => r.Category == category).ToList(); }
/// <summary> /// Sets up and populates the readout library with the stock readouts. /// </summary> static ReadoutLibrary() { try { ReadoutCategory.SetCategory("Orbital", "Readout for orbital manovoeures."); ReadoutCategory.SetCategory("Surface", "Surface and atmospheric readouts."); ReadoutCategory.SetCategory("Vessel", "Vessel performance statistics."); ReadoutCategory.SetCategory("Rendezvous", "Readouts for rendezvous manovoeures."); ReadoutCategory.SetCategory("Thermal", "Thermal characteristics readouts."); ReadoutCategory.SetCategory("Body", "Characteristics of the current SOI."); ReadoutCategory.SetCategory("Miscellaneous", "Miscellaneous readouts."); ReadoutCategory.Selected = ReadoutCategory.GetCategory("Orbital"); // Orbital readouts.Add(new ApoapsisHeight()); readouts.Add(new PeriapsisHeight()); readouts.Add(new TimeToApoapsis()); readouts.Add(new TimeToPeriapsis()); readouts.Add(new Inclination()); readouts.Add(new TimeToEquatorialAscendingNode()); readouts.Add(new TimeToEquatorialDescendingNode()); readouts.Add(new AngleToEquatorialAscendingNode()); readouts.Add(new AngleToEquatorialDescendingNode()); readouts.Add(new Eccentricity()); readouts.Add(new OrbitalSpeed()); readouts.Add(new OrbitalPeriod()); readouts.Add(new LongitudeOfAscendingNode()); readouts.Add(new LongitudeOfPeriapsis()); readouts.Add(new ArgumentOfPeriapsis()); readouts.Add(new TrueAnomaly()); readouts.Add(new MeanAnomaly()); readouts.Add(new MeanAnomalyAtEpoc()); readouts.Add(new EccentricAnomaly()); readouts.Add(new SemiMajorAxis()); readouts.Add(new SemiMinorAxis()); readouts.Add(new AngleToPrograde()); readouts.Add(new AngleToRetrograde()); readouts.Add(new NodeProgradeDeltaV()); readouts.Add(new NodeNormalDeltaV()); readouts.Add(new NodeRadialDeltaV()); readouts.Add(new NodeTotalDeltaV()); readouts.Add(new NodeBurnTime()); readouts.Add(new NodeHalfBurnTime()); readouts.Add(new NodeTimeToManoeuvre()); readouts.Add(new NodeTimeToHalfBurn()); readouts.Add(new NodeAngleToPrograde()); readouts.Add(new NodeAngleToRetrograde()); readouts.Add(new PostBurnApoapsis()); readouts.Add(new PostBurnPeriapsis()); readouts.Add(new PostBurnInclination()); readouts.Add(new PostBurnRealtiveInclination()); readouts.Add(new PostBurnPeriod()); readouts.Add(new PostBurnEccentricity()); readouts.Add(new SpeedAtApoapsis()); readouts.Add(new SpeedAtPeriapsis()); readouts.Add(new TimeToAtmosphere()); readouts.Add(new TripTotalDeltaV()); // Surface readouts.Add(new AltitudeSeaLevel()); readouts.Add(new AltitudeTerrain()); readouts.Add(new VerticalSpeed()); readouts.Add(new VerticalAcceleration()); readouts.Add(new HorizontalSpeed()); readouts.Add(new HorizontalAcceleration()); readouts.Add(new MachNumber()); readouts.Add(new Latitude()); readouts.Add(new Longitude()); readouts.Add(new GeeForce()); readouts.Add(new TerminalVelocity()); readouts.Add(new AtmosphericEfficiency()); readouts.Add(new AtmosphericPressure()); readouts.Add(new Biome()); readouts.Add(new Situation()); readouts.Add(new Slope()); readouts.Add(new ImpactTime()); readouts.Add(new ImpactLongitude()); readouts.Add(new ImpactLatitude()); readouts.Add(new ImpactAltitude()); readouts.Add(new ImpactBiome()); // Vessel readouts.Add(new Name()); readouts.Add(new DeltaVStaged()); readouts.Add(new DeltaVCurrent()); readouts.Add(new DeltaVTotal()); readouts.Add(new DeltaVCurrentTotal()); readouts.Add(new SpecificImpulse()); readouts.Add(new Mass()); readouts.Add(new Thrust()); readouts.Add(new ThrustToWeight()); readouts.Add(new ThrustOffsetAngle()); readouts.Add(new ThrustTorque()); readouts.Add(new SurfaceThrustToWeight()); readouts.Add(new Gravity()); readouts.Add(new Acceleration()); readouts.Add(new SuicideBurnAltitude()); readouts.Add(new SuicideBurnDistance()); readouts.Add(new SuicideBurnDeltaV()); readouts.Add(new IntakeAirUsage()); readouts.Add(new IntakeAirDemand()); readouts.Add(new IntakeAirSupply()); readouts.Add(new IntakeAirDemandSupply()); readouts.Add(new PartCount()); readouts.Add(new Heading()); readouts.Add(new Pitch()); readouts.Add(new Roll()); readouts.Add(new HeadingRate()); readouts.Add(new PitchRate()); readouts.Add(new RollRate()); readouts.Add(new RCSDeltaV()); readouts.Add(new RCSIsp()); readouts.Add(new RCSThrust()); readouts.Add(new RCSTWR()); // Rendezvous readouts.Add(new TargetSelector()); readouts.Add(new PhaseAngle()); readouts.Add(new InterceptAngle()); readouts.Add(new TimeToTransferAngleTime()); readouts.Add(new RelativeVelocity()); readouts.Add(new RelativeSpeed()); readouts.Add(new RelativeInclination()); readouts.Add(new TimeToRelativeAscendingNode()); readouts.Add(new TimeToRelativeDescendingNode()); readouts.Add(new AngleToRelativeAscendingNode()); readouts.Add(new AngleToRelativeDescendingNode()); readouts.Add(new Rendezvous.AltitudeSeaLevel()); readouts.Add(new Rendezvous.ApoapsisHeight()); readouts.Add(new Rendezvous.PeriapsisHeight()); readouts.Add(new Rendezvous.TimeToApoapsis()); readouts.Add(new Rendezvous.TimeToPeriapsis()); readouts.Add(new Distance()); readouts.Add(new Rendezvous.OrbitalPeriod()); readouts.Add(new Rendezvous.SemiMajorAxis()); readouts.Add(new Rendezvous.SemiMinorAxis()); readouts.Add(new Rendezvous.TimeTilClosestApproach()); readouts.Add(new Rendezvous.SeparationAtClosestApproach()); readouts.Add(new Rendezvous.SpeedAtClosestApproach()); readouts.Add(new TargetLatitude()); readouts.Add(new TargetLongitude()); // Thermal readouts.Add(new InternalFlux()); readouts.Add(new ConvectionFlux()); readouts.Add(new RadiationFlux()); readouts.Add(new CriticalPart()); readouts.Add(new CriticalTemperature()); readouts.Add(new CriticalSkinTemperature()); readouts.Add(new CriticalThermalPercentage()); readouts.Add(new HottestPart()); readouts.Add(new HottestTemperature()); readouts.Add(new HottestSkinTemperature()); readouts.Add(new CoolestPart()); readouts.Add(new CoolestTemperature()); readouts.Add(new CoolestSkinTemperature()); // Body readouts.Add(new BodyName()); readouts.Add(new HasAtmosphere()); readouts.Add(new HasOxygen()); readouts.Add(new HighAtmosphereHeight()); readouts.Add(new LowSpaceHeight()); readouts.Add(new HighSpaceHeight()); readouts.Add(new GeostationaryHeight()); readouts.Add(new CurrentSoi()); readouts.Add(new BodyRotationPeriod()); readouts.Add(new BodyOrbitalPeriod()); readouts.Add(new EscapeVelocity()); readouts.Add(new BodyMass()); readouts.Add(new BodyRadius()); readouts.Add(new BodyGravity()); // Misc readouts.Add(new Separator()); readouts.Add(new ClearSeparator()); readouts.Add(new GuiSizeAdjustor()); readouts.Add(new SimulationDelay()); readouts.Add(new VectoredThrustToggle()); readouts.Add(new SystemTime()); readouts.Add(new SystemTime24()); readouts.Add(new SystemDateTime()); readouts.Add(new LogSimToggle()); LoadHelpStrings(); LoadReadoutConfig(); } catch (Exception ex) { MyLogger.Exception(ex); } }
/// <summary> /// Gets a list of readout modules which are associated with the specified category. /// </summary> public static List <ReadoutModule> GetCategory(ReadoutCategory category) { return(readouts.Where(r => r.Category == category).ToList()); }