public override void OnStartFinished(StartState state) { base.OnStartFinished(state); if (!HeatShieldPreset.Initialized) { return; } modAblator = part.FindModuleImplementing <ModuleAblator>(); modularPart = part.FindModuleImplementing <ModuleROTank>(); if (HighLogic.LoadedSceneIsEditor && modularPart is ModuleROTank) { modularPart.Fields[nameof(modularPart.currentDiameter)].uiControlEditor.onFieldChanged += (bf, ob) => UpdateHeatshieldValues(); modularPart.Fields[nameof(modularPart.currentVScale)].uiControlEditor.onFieldChanged += (bf, ob) => UpdateHeatshieldValues(); modularPart.Fields[nameof(modularPart.currentDiameter)].uiControlEditor.onSymmetryFieldChanged += (bf, ob) => UpdateHeatshieldValues(); modularPart.Fields[nameof(modularPart.currentVScale)].uiControlEditor.onSymmetryFieldChanged += (bf, ob) => UpdateHeatshieldValues(); } origCost = part.partInfo.cost + 0.01f; // sum eps to avoid 0 cost origMass = part.prefabMass + 0.00001f; // sum eps to avoid 0 mass ApplyPreset(ActivePreset); }
public override void OnStartFinished(StartState state) { base.OnStartFinished(state); modAblator = part.FindModuleImplementing <ModuleAblator>(); modularPart = part.FindModuleImplementing <ModuleROTank>(); if (!(modAblator is ModuleAblator && modularPart is ModuleROTank)) { ROLLog.error($"{part} Unable to find ModuleAblator or ModuleROTank modules"); isEnabled = enabled = false; return; } else { if (modularPart is ModuleROTank) { modularPart.Fields[nameof(modularPart.currentDiameter)].uiControlEditor.onFieldChanged += OnDiameterChange; } UpdateHeatshieldValues(); } }