public override void OnSave(ConfigNode node) { FARLogger.Info("saved"); node.AddValue("newGame", newGame); node.AddValue("fractionTransonicDrag", settings.fractionTransonicDrag); node.AddValue("gaussianVehicleLengthFractionForSmoothing", settings.gaussianVehicleLengthFractionForSmoothing); node.AddValue("numAreaSmoothingPasses", settings.numAreaSmoothingPasses); node.AddValue("numDerivSmoothingPasses", settings.numDerivSmoothingPasses); node.AddValue("numVoxelsControllableVessel", voxelSettings.numVoxelsControllableVessel); node.AddValue("numVoxelsDebrisVessel", voxelSettings.numVoxelsDebrisVessel); node.AddValue("minPhysTicksPerUpdate", voxelSettings.minPhysTicksPerUpdate); node.AddValue("useHigherResVoxelPoints", voxelSettings.useHigherResVoxelPoints); node.AddValue("use32BitIndices", DebugVoxelMesh.Use32BitIndices); node.AddValue("index", settings.index); FlightGUI.SaveActiveData(); var flightGUINode = new ConfigNode("FlightGUISettings"); FARLogger.Info("Saving FAR Data"); foreach (ConfigNode configNode in flightGUISettings) { flightGUINode.AddNode(configNode); } node.AddNode(flightGUINode); FARDebugAndSettings.SaveConfigs(node); }
/// <summary> /// Toggle or enable/disable FAR speed display. /// </summary> /// <param name="enabled">Enable/disable the speed display, null value toggles the speed display</param> /// <param name="v">Vessel to toggle or enable/disable speed display for, null to apply <paramref name="enabled"/> globally</param> /// <returns>Success/failure of toggling or enabling/disabling the speed display</returns> public static bool ToggleAirspeedDisplay(bool?enabled = null, Vessel v = null) { if (v == null) { if (enabled == null) { AirspeedSettingsGUI.allEnabled = !AirspeedSettingsGUI.allEnabled; } else { AirspeedSettingsGUI.allEnabled = (bool)enabled; } return(true); } FlightGUI gui = VesselFlightInfo(v); if (gui != null) { AirspeedSettingsGUI airspeedSettingsGUI = gui.airSpeedGUI; if (airspeedSettingsGUI != null) { if (enabled == null) { airspeedSettingsGUI.enabled = !airspeedSettingsGUI.enabled; } else { airspeedSettingsGUI.enabled = (bool)enabled; } return(true); } } return(false); }
private FlightGUI GetFlightInfo(Vessel v) { FlightGUI gui = null; FlightGUI.vesselFlightGUI.TryGetValue(v, out gui); return(gui); }
/// <summary> /// Returns the current aerodynamic torque being experienced by the vehicle in world space /// </summary> /// <param name="v">The vessel that force is being queried</param> /// <returns>The torque on the vessel in world space</returns> public static Vector3 VesselAerodynamicTorque(Vessel v) { FlightGUI gui = VesselFlightInfo(v); if (gui == null) { return(Vector2.zero); } return(gui.InfoParameters.aerodynamicTorque); }
public static double VesselTSFC(Vessel v) { FlightGUI gui = VesselFlightInfo(v); if (gui == null) { return(0.0); } return(gui.InfoParameters.tSFC); }
public static double VesselStallFrac(Vessel v) { FlightGUI gui = VesselFlightInfo(v); if (gui == null) { return(0.0); } return(gui.InfoParameters.stallFraction); }
public static double VesselBallisticCoeff(Vessel v) { FlightGUI gui = VesselFlightInfo(v); if (gui == null) { return(0.0); } return(gui.InfoParameters.ballisticCoeff); }
public static double VesselSideslip(Vessel v) { FlightGUI gui = VesselFlightInfo(v); if (gui == null) { return(0.0); } return(gui.InfoParameters.sideslipAngle); }
public static double VesselRefArea(Vessel v) { FlightGUI gui = VesselFlightInfo(v); if (gui == null) { return(0.0); } return(gui.InfoParameters.refArea); }
public static double VesselDynPres(Vessel v) { FlightGUI gui = VesselFlightInfo(v); if (gui == null) { return(0.0); } return(gui.InfoParameters.dynPres); }
private void FixedUpdate() { if (_vehicleAero == null || !vessel.loaded) { return; } if (_vehicleAero.CalculationCompleted) { _vehicleAero.GetNewAeroData(out _currentAeroModules, out _unusedAeroModules, out _currentAeroSections, out _legacyWingModels); Exposure.VesselBounds = _vehicleAero.VoxelBounds; if (_flightGUI is null) { _flightGUI = vessel.GetComponent <FlightGUI>(); } _flightGUI.UpdateAeroModules(_currentAeroModules, _legacyWingModels); foreach (FARAeroPartModule a in _unusedAeroModules) { a.SetShielded(true); a.ForceLegacyAeroUpdates(); } foreach (FARAeroPartModule a in _currentAeroModules) { a.SetShielded(false); a.ForceLegacyAeroUpdates(); } _vesselIntakeRamDrag.UpdateAeroData(_currentAeroModules); } if (FlightGlobals.ready && _currentAeroSections != null && vessel) { CalculateAndApplyVesselAeroProperties(); } if (_currentGeoModules.Count > geoModulesReady) { CheckGeoModulesReady(); } if (_updateRateLimiter < FARSettingsScenarioModule.VoxelSettings.minPhysTicksPerUpdate) { _updateRateLimiter++; } else if (_updateQueued) { VesselUpdate(_recalcGeoModules); } }
public static double VesselAoA(Vessel v) { FlightGUI gui = VesselFlightInfo(v); if (gui == null) { return(0); } else { return(gui.InfoParameters.aoA); } }
public static double VesselTermVelEst(Vessel v) { FlightGUI gui = VesselFlightInfo(v); if (gui == null) { return(0); } else { return(gui.InfoParameters.termVelEst); } }
public static double VesselDragCoeff(Vessel v) { FlightGUI gui = VesselFlightInfo(v); if (gui == null) { return(0); } else { return(gui.InfoParameters.dragCoeff); } }
public static double VesselEAS(Vessel vessel) { FlightGUI flightgui = VesselFlightInfo(vessel); if (flightgui == null) { return(0.0); } AirspeedSettingsGUI airspeedgui = flightgui.airSpeedGUI; if (airspeedgui == null) { return(0.0); } return(airspeedgui.CalculateEAS()); }
// Use this for initialization public override void Start() { soundManager = GetComponent <FlightSoundManager>(); base.Start(); SetGameState(GameState.Running); GameObject dragonObject = (GameObject)Instantiate(dragonPrefab, new Vector3(-2 * cam.aspect, 0, 0), Quaternion.identity); GetComponent <ScoreGUI>().SetMedalRequirements(bronzeMedalScore, silverMedalScore, goldMedalScore); flightGUI = GetComponent <FlightGUI>(); dragon = dragonObject.GetComponent <Dragon>(); worldBounds.extents = new Vector3(worldBounds.extents.x * cam.aspect, 1, worldBounds.extents.z); backgroundPlane.transform.localScale = new Vector3(cam.aspect, 1, 1); fairyDelay = Random.Range(fairyDelayMin, fairyDelayMax); pickupAudioSource = GetComponent <AudioSource>(); pickupAudioSource.clip = soundManager.Pickup; }