public static void ROLupdateUIScaleEditControl(this PartModule module, string fieldName, float min, float max, float increment, bool flight, bool editor, bool forceUpdate, float forceValue = 0) { float seg = (max - min) / increment; int numOfIntervals = Mathf.RoundToInt(seg) + 1; BaseField field = module.Fields[fieldName]; if (increment <= 0 || numOfIntervals <= 1) { field.guiActive = false; field.guiActiveEditor = false; return; } float sliderInterval = increment * 0.05f; field.guiActive = flight; field.guiActiveEditor = editor; float[] intervals = new float[numOfIntervals]; float[] increments = new float[numOfIntervals]; for (int i = 0; i < numOfIntervals; i++) { intervals[i] = min + (increment * i); increments[i] = sliderInterval; } module.ROLupdateUIScaleEditControl(fieldName, intervals, increments, forceUpdate, forceValue); }
public static void ROLupdateUIScaleEditControl(this PartModule module, string fieldName, float min, float max, float increment, bool flight, bool editor, bool forceUpdate, float forceValue = 0) { BaseField field = module.Fields[fieldName]; if (increment <= 0)//div/0 error { field.guiActive = false; field.guiActiveEditor = false; return; } float seg = (max - min) / increment; int numOfIntervals = (int)Math.Round(seg) + 1; float sliderInterval = increment * 0.05f; float[] intervals = new float[numOfIntervals]; float[] increments = new float[numOfIntervals]; UI_Scene scene = HighLogic.LoadedSceneIsFlight ? UI_Scene.Flight : UI_Scene.Editor; if (numOfIntervals <= 1)//not enough data... { field.guiActive = false; field.guiActiveEditor = false; MonoBehaviour.print("ERROR: Not enough data to create intervals: " + min + " : " + max + " :: " + increment); } else { field.guiActive = flight; field.guiActiveEditor = editor; intervals = new float[numOfIntervals]; increments = new float[numOfIntervals]; for (int i = 0; i < numOfIntervals; i++) { intervals[i] = min + (increment * (float)i); increments[i] = sliderInterval; } module.ROLupdateUIScaleEditControl(fieldName, intervals, increments, forceUpdate, forceValue); } }