public static void updateUIScaleEditControl(this PartModule module, string fieldName, float value) { UI_ScaleEdit widget = null; if (HighLogic.LoadedSceneIsEditor) { widget = (UI_ScaleEdit)module.Fields[fieldName].uiControlEditor; } else if (HighLogic.LoadedSceneIsFlight) { widget = (UI_ScaleEdit)module.Fields[fieldName].uiControlFlight; } else { return; } if (widget == null || widget.partActionItem == null) { return; } UIPartActionScaleEdit ctr = (UIPartActionScaleEdit)widget.partActionItem; var t = widget.onFieldChanged; widget.onFieldChanged = null; ctr.inc.onToggle.RemoveAllListeners(); ctr.dec.onToggle.RemoveAllListeners(); ctr.slider.onValueChanged.RemoveAllListeners(); ctr.Setup(ctr.Window, module.part, module, HighLogic.LoadedSceneIsEditor ? UI_Scene.Editor : UI_Scene.Flight, widget, module.Fields[fieldName]); widget.onFieldChanged = t; }
public static void ROLupdateUIScaleEditControl(this PartModule module, string fieldName, float[] intervals, float[] increments, bool forceUpdate, float forceValue = 0) { UI_ScaleEdit widget = null; if (HighLogic.LoadedSceneIsEditor) { widget = (UI_ScaleEdit)module.Fields[fieldName].uiControlEditor; } else if (HighLogic.LoadedSceneIsFlight) { widget = (UI_ScaleEdit)module.Fields[fieldName].uiControlFlight; } else { return; } if (widget == null) { return; } widget.intervals = intervals; widget.incrementSlide = increments; if (forceUpdate && widget.partActionItem != null) { UIPartActionScaleEdit ctr = (UIPartActionScaleEdit)widget.partActionItem; var t = widget.onFieldChanged; widget.onFieldChanged = null; ctr.inc.onToggle.RemoveAllListeners(); ctr.dec.onToggle.RemoveAllListeners(); ctr.slider.onValueChanged.RemoveAllListeners(); ctr.Setup(ctr.Window, module.part, module, HighLogic.LoadedSceneIsEditor ? UI_Scene.Editor : UI_Scene.Flight, widget, module.Fields[fieldName]); widget.onFieldChanged = t; } }