diff --git a/UniverseGenTweaks/CHANGELOG.md b/UniverseGenTweaks/CHANGELOG.md index f0d1e13..b6cca00 100644 --- a/UniverseGenTweaks/CHANGELOG.md +++ b/UniverseGenTweaks/CHANGELOG.md @@ -3,6 +3,8 @@ ## Changelog +* 1.2.11 + * Fix issues which cause universe settings not applied on staring a new game (again again). * 1.2.10 * Fix issues which cause universe settings not applied on staring a new game or loading game (again). * Reset star distance/flatten settings on entering galaxy creation screen. @@ -46,6 +48,8 @@ ## 更新日志 +* 1.2.11 + * (再次再次)修复新建游戏时宇宙设置没有应用的问题 * 1.2.10 * (再次)修复新建游戏或加载存档时宇宙设置没有应用的问题 * 进入宇宙创建界面时重置星系间距/扁平度设置 diff --git a/UniverseGenTweaks/MoreSettings.cs b/UniverseGenTweaks/MoreSettings.cs index f4e2669..917034f 100644 --- a/UniverseGenTweaks/MoreSettings.cs +++ b/UniverseGenTweaks/MoreSettings.cs @@ -99,17 +99,14 @@ public class MoreSettings _minDistSlider.maxValue = 50f; _minDistSlider.value = (float)(_minDist * 10.0); - _minStepTitle.name = "min-step"; _minStepSlider.minValue = (float)(_minDist * 10.0); _minStepSlider.maxValue = (float)(_maxStep * 10.0); _minStepSlider.value = (float)(_minStep * 10.0); - _maxStepTitle.name = "max-step"; _maxStepSlider.minValue = (float)(_minStep * 10.0); _maxStepSlider.maxValue = 100f; _maxStepSlider.value = (float)(_maxStep * 10.0); - _flattenTitle.name = "flatten"; _flattenSlider.minValue = 1f; _flattenSlider.maxValue = 50f; _flattenSlider.value = (float)(_flatten * 50.0); @@ -118,6 +115,8 @@ public class MoreSettings _minStepText.text = _minStep.ToString(); _maxStepText.text = _maxStep.ToString(); _flattenText.text = _flatten.ToString(); + + UniverseGenTweaks.Logger.LogDebug($"Updated slider controls: {_minStepSlider.minValue}, {_minStepSlider.maxValue}, {_maxStepSlider.minValue}, {_maxStepSlider.maxValue}"); } [HarmonyPostfix] @@ -136,24 +135,9 @@ public class MoreSettings flattenLocalizer.stringKey = "扁平度"; _minDistTitle.name = "min-dist"; - _minDistSlider.minValue = 10f; - _minDistSlider.maxValue = 50f; - _minDistSlider.value = (float)(_minDist * 10.0); - _minStepTitle.name = "min-step"; - _minStepSlider.minValue = (float)(_minDist * 10.0); - _minStepSlider.maxValue = (float)(_maxStep * 10.0); - _minStepSlider.value = (float)(_minStep * 10.0); - _maxStepTitle.name = "max-step"; - _maxStepSlider.minValue = (float)(_minStep * 10.0); - _maxStepSlider.maxValue = 100f; - _maxStepSlider.value = (float)(_maxStep * 10.0); - _flattenTitle.name = "flatten"; - _flattenSlider.minValue = 1f; - _flattenSlider.maxValue = 50f; - _flattenSlider.value = (float)(_flatten * 50.0); TransformDeltaY(_minDistTitle.transform, -36f); TransformDeltaY(_minStepTitle.transform, -36f * 2); @@ -164,25 +148,36 @@ public class MoreSettings TransformDeltaY(__instance.sandboxToggle.transform.parent, -36f * 4); TransformDeltaY(__instance.propertyMultiplierText.transform, -36f * 4); TransformDeltaY(__instance.addrText.transform.parent, -36f * 4); + + RemoveAllListeners(); + UpdateSliderControls(); + AddListeners(__instance); } [HarmonyPrefix] [HarmonyPatch(typeof(UIGalaxySelect), nameof(UIGalaxySelect._OnOpen))] - private static void UIGalaxySelect__OnOpen_Prefix() + private static void UIGalaxySelect__OnOpen_Prefix(UIGalaxySelect __instance) { _minDist = DEFAULT_MIN_DIST; _minStep = DEFAULT_MIN_STEP; _maxStep = DEFAULT_MAX_STEP; _flatten = DEFAULT_FLATTEN; + RemoveAllListeners(); UpdateSliderControls(); + AddListeners(__instance); } - [HarmonyPostfix] - [HarmonyPatch(typeof(UIGalaxySelect), nameof(UIGalaxySelect._OnRegEvent))] - private static void UIGalaxySelect__OnRegEvent_Postfix(UIGalaxySelect __instance) + private static void RemoveAllListeners() { _minDistSlider.onValueChanged.RemoveAllListeners(); + _minStepSlider.onValueChanged.RemoveAllListeners(); + _maxStepSlider.onValueChanged.RemoveAllListeners(); + _flattenSlider.onValueChanged.RemoveAllListeners(); + } + + private static void AddListeners(UIGalaxySelect uiGalaxySelect) + { _minDistSlider.onValueChanged.AddListener(val => { var newVal = Mathf.Round(val) / 10.0; @@ -202,9 +197,8 @@ public class MoreSettings } } _minStepSlider.minValue = (float)(_minDist * 10.0); - __instance.SetStarmapGalaxy(); + uiGalaxySelect.SetStarmapGalaxy(); }); - _minStepSlider.onValueChanged.RemoveAllListeners(); _minStepSlider.onValueChanged.AddListener(val => { var newVal = Mathf.Round(val) / 10.0; @@ -212,9 +206,8 @@ public class MoreSettings _minStep = newVal; _maxStepSlider.minValue = (float)(newVal * 10.0); _minStepText.text = _minStep.ToString(); - __instance.SetStarmapGalaxy(); + uiGalaxySelect.SetStarmapGalaxy(); }); - _maxStepSlider.onValueChanged.RemoveAllListeners(); _maxStepSlider.onValueChanged.AddListener(val => { var newVal = Mathf.Round(val) / 10.0; @@ -222,16 +215,15 @@ public class MoreSettings _maxStep = newVal; _minStepSlider.maxValue = (float)(newVal * 10.0); _maxStepText.text = _maxStep.ToString(); - __instance.SetStarmapGalaxy(); + uiGalaxySelect.SetStarmapGalaxy(); }); - _flattenSlider.onValueChanged.RemoveAllListeners(); _flattenSlider.onValueChanged.AddListener(val => { var newVal = Mathf.Round(val) / 50.0; if (newVal.Equals(_flatten)) return; _flatten = newVal; _flattenText.text = _flatten.ToString(); - __instance.SetStarmapGalaxy(); + uiGalaxySelect.SetStarmapGalaxy(); }); } @@ -266,26 +258,21 @@ public class MoreSettings [HarmonyPatch(typeof(GameMain), nameof(GameMain.Start))] private static void GameMain_Start_Prefix() { - _gameMinDist = DEFAULT_MIN_DIST; - _gameMinStep = DEFAULT_MIN_STEP; - _gameMaxStep = DEFAULT_MAX_STEP; - _gameFlatten = DEFAULT_FLATTEN; - } - - [HarmonyPrefix] - [HarmonyPatch(typeof(GameData), nameof(GameData.NewGame))] - private static void GameData_NewGame_Prefix() - { - if (!Enabled.Value) return; - _gameMinDist = _minDist; - _gameMinStep = _minStep; - _gameMaxStep = _maxStep; - _gameFlatten = _flatten; - - _minDist = DEFAULT_MIN_DIST; - _minStep = DEFAULT_MIN_STEP; - _maxStep = DEFAULT_MAX_STEP; - _flatten = DEFAULT_FLATTEN; + if (DSPGame.GameDesc != null) + { + if (GameMain.data != null) return; + _gameMinDist = _minDist; + _gameMinStep = _minStep; + _gameMaxStep = _maxStep; + _gameFlatten = _flatten; + } + else + { + _gameMinDist = DEFAULT_MIN_DIST; + _gameMinStep = DEFAULT_MIN_STEP; + _gameMaxStep = DEFAULT_MAX_STEP; + _gameFlatten = DEFAULT_FLATTEN; + } } [HarmonyTranspiler] diff --git a/UniverseGenTweaks/UniverseGenTweaks.csproj b/UniverseGenTweaks/UniverseGenTweaks.csproj index 346f358..cce291a 100644 --- a/UniverseGenTweaks/UniverseGenTweaks.csproj +++ b/UniverseGenTweaks/UniverseGenTweaks.csproj @@ -6,7 +6,7 @@ UniverseGenTweaks org.soardev.universegentweaks DSP MOD - UniverseGenTweaks - 1.2.10 + 1.2.11 true latest https://nuget.bepinex.dev/v3/index.json diff --git a/UniverseGenTweaks/package/manifest.json b/UniverseGenTweaks/package/manifest.json index 7097ff0..7eae4e9 100644 --- a/UniverseGenTweaks/package/manifest.json +++ b/UniverseGenTweaks/package/manifest.json @@ -1,6 +1,6 @@ { "name": "UniverseGenTweaks", - "version_number": "1.2.10", + "version_number": "1.2.11", "website_url": "https://github.com/soarqin/DSP_Mods/tree/master/UniverseGenTweaks", "description": "Universe Generation Tweaks / 宇宙生成参数调节", "dependencies": [