From 180139dcd281efdd41f228375d095a7187ee45ec Mon Sep 17 00:00:00 2001 From: originalnicodr Date: Sat, 9 Mar 2024 16:12:34 -0300 Subject: [PATCH] Apply the TimeScaleWidget default slider value before adding the listener so it doesn't try to set up the time right away, which might give an error in some games (e.g. Iron Harvest). --- src/UI/Widgets/TimeScaleWidget.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/UI/Widgets/TimeScaleWidget.cs b/src/UI/Widgets/TimeScaleWidget.cs index 4595f84..725bbe4 100644 --- a/src/UI/Widgets/TimeScaleWidget.cs +++ b/src/UI/Widgets/TimeScaleWidget.cs @@ -25,7 +25,7 @@ namespace UnityExplorer.UI.Widgets Toggle overrideTimeScaleToggle; InputFieldRef timeInput; - float desiredTime = 1; + float desiredTime; bool settingTimeScale; bool pause; Slider slider; @@ -117,6 +117,10 @@ namespace UnityExplorer.UI.Widgets GameObject sliderObj = UIFactory.CreateSlider(parent, "Slider_time_scale", out slider); UIFactory.SetLayoutElement(sliderObj, minHeight: 25, minWidth: 75, flexibleWidth: 0); + slider.value = 1; + desiredTime = 1; + previousDesiredTime = 1; + slider.onValueChanged.AddListener((newTimeScale) => { desiredTime = newTimeScale; timeInput.Text = desiredTime.ToString("0.00"); @@ -136,8 +140,6 @@ namespace UnityExplorer.UI.Widgets overrideTimeScaleToggle.isOn = false; overrideTimeScaleToggle.onValueChanged.AddListener(OnOverrideValueChanged); overrideTimeScaleText.text = "Override"; - - slider.value = 1; } static void InitPatch()