public void thrustCurveGuiClosed(string preset, FloatCurve curve) { //update the persistent curve data from currentCurve = curve; presetCurveName = preset; thrustCurveName = presetCurveName; if (!usePresetCurve) { customCurveData = currentCurve.ToStringSingleLine(); thrustCurveName = part.partInfo.title + " Custom"; savedCurve = currentCurve.ToStringSingleLine(); updateEngineCurve(); } else { usePresetCurve = true; loadPresetCurve(preset); } }
public void thrustCurveGuiClosed(string preset, FloatCurve curve) { //update the persistent curve data from currentCurve = curve; presetCurveName = preset; usePresetCurve = !string.IsNullOrEmpty(presetCurveName); if (!usePresetCurve) { customCurveData = currentCurve.ToStringSingleLine(); } SSTULog.debug("Updating engine thrust cuve data. Use preset: " + usePresetCurve); updateEngineCurve(); }
/// <summary> /// Initializes this module. Loads custom curve data from persistence if necessary, and updates the engine module with the currently loaded curve. /// </summary> private void initialize() { if (initialized) { return; } initialized = true; ROELog.debug("Initializing..."); if (currentCurve == null) { ROELog.debug("currentCurve is null"); if (!string.IsNullOrEmpty(customCurveData)) { ROELog.debug("Using customCurveData"); //load currentCurve from customCurveData currentCurve = new FloatCurve(); currentCurve.loadSingleLine(customCurveData); savedCurve = currentCurve.ToStringSingleLine(); thrustCurveName = part.partInfo.title + " Custom"; } else if (usePresetCurve && !string.IsNullOrEmpty(presetCurveName)) { ROELog.debug("Using presetCurve: " + presetCurveName); //load currentCurve from PresetCurve data loadPresetCurve(presetCurveName); thrustCurveName = presetCurveName; customCurveData = ""; } else { ROELog.debug("Using curve from existing Engine Module"); //init to the curve that exists in the engine already ModuleEnginesRF pm = part.Modules.GetModule <ModuleEnginesRF>(); usePresetCurve = true; thrustCurveName = part.partInfo.title + " Curve"; currentCurve = new FloatCurve(); currentCurve.loadSingleLine(pm.thrustCurve.ToStringSingleLine()); savedCurve = currentCurve.ToStringSingleLine(); } } updateEngineCurve(); }
private void loadPresetCurve(string presetName) { ConfigNode[] presetNodes = GameDatabase.Instance.GetConfigNodes("ROE_THRUSTCURVE"); ThrustCurvePreset preset; int len = presetNodes.Length; for (int i = 0; i < len; i++) { if (presetNodes[i].GetStringValue("name") == presetName) { ROELog.debug("Updating engine thrust curve data. Use preset: " + usePresetCurve); preset = new ThrustCurvePreset(presetNodes[i]); currentCurve = preset.curve; thrustCurveName = preset.name; savedCurve = currentCurve.ToStringSingleLine(); updateEngineCurve(); break; } } }
/// <summary> /// Applies the 'currentCurve' to the engine module as its active thrust curve. /// </summary> private void updateEngineCurve() { ROELog.debug("Updating engine curve"); if (currentCurve == null) // Code Error { ROELog.error("currentCurve is null"); return; } foreach (ModuleEnginesRF eng in part.FindModulesImplementing <ModuleEnginesRF>()) { ROELog.debug("currentCurve: " + currentCurve.ToStringSingleLine()); ROELog.debug("savedCurve: " + savedCurve); ROELog.debug("Engine curve set to: " + thrustCurveName); currentCurve = new FloatCurve(); currentCurve.loadSingleLine(savedCurve); eng.thrustCurve = currentCurve; ROELog.debug("savedCurve: " + savedCurve); ROELog.debug("New Curve: " + eng.thrustCurve.ToStringSingleLine()); } }