コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: ROLExtensions.cs プロジェクト: RCrockford/ROLibrary
        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);
            }
        }