internal static void UnlockSliderPH(InputSliderUI x, float value, bool defaultRange = false) { var slider = GetSlider(x); var valueRoundedUp = (int)Math.Ceiling(Math.Abs(value)); var max = defaultRange ? 100 : SliderMax; var min = defaultRange ? 0 : SliderMin; if (value > max) { slider.minValue = min; slider.maxValue = valueRoundedUp; } else if (value < min) { slider.minValue = -valueRoundedUp; slider.maxValue = max; } else { slider.minValue = min; slider.maxValue = max; } // Refresh default value marker position Traverse.Create(x).Method("SetDefPos").GetValue(); }
public static void EditModeSetup(InputSliderUI __instance, float val) { var slider = SliderUnlocker.GetSlider(__instance); if (slider.maxValue >= val) { return; } SliderUnlocker.UnlockSliderPH(__instance, val); }
internal static Button GetDefButton(InputSliderUI x) { var defButton = Traverse.Create(x).Field("defButton").GetValue() as Button; if (defButton == null) { throw new ArgumentNullException(nameof(defButton)); } return(defButton); }
internal static CheckableSlider GetSlider(InputSliderUI x) { var slider = Traverse.Create(x).Field("slider").GetValue() as CheckableSlider; if (slider == null) { throw new ArgumentNullException(nameof(slider)); } return(slider); }
internal static InputField GetInputField(InputSliderUI x) { var inputField = Traverse.Create(x).Field("inputField").GetValue() as InputField; if (inputField == null) { throw new ArgumentNullException(nameof(inputField)); } return(inputField); }
internal static void UnlockSliderFromInputPH(InputSliderUI x, float value) { var slider = GetSlider(x); var inputField = GetInputField(x); var absoluteMax = Math.Max(SliderMax, 500f); var absoluteMin = Math.Min(SliderMin, -500f); if (value > absoluteMax) { inputField.text = absoluteMax.ToString(CultureInfo.InvariantCulture); value = absoluteMax; } else if (value < absoluteMin) { inputField.text = absoluteMin.ToString(CultureInfo.InvariantCulture); value = absoluteMin; } UnlockSliderPH(x, value); slider.value = value; }