Commit Graph
98 Commits
Author SHA1 Message Date
soarqin 66ecebaca7 fix(UXAssist): start late-discovered mod features 2026-07-11 14:25:46 +08:00
soarqin db15c65961 chore: remove BlueprintTweaks patch, the PR is merged as well 2026-07-07 23:49:54 +08:00
soarqin ab1d20683d fix(UXAssist): centralize mod-feature lifecycle to prevent duplicate execution
ModFeatureRegistry is a static class with shared collections accumulating
features from all mods. Dependent mods (CheatEnabler, UniverseGenTweaks)
each independently called InitAll/StartAll/OnInputUpdateAll/OnUpdateAll/
UninitAll, re-running lifecycle for ALL accumulated features including
other mods' — per-frame Update ran 2-3x (breaking CheatEnabler key toggles
to net no-ops), Init/Start/Uninit ran 2-3x (double RegisterExporter causing
save corruption, double SettingChanged subscriptions, double keybind
registration).

Fix:
- Init now runs eagerly at Discover/Register time (Awake-phase), preserving
  the original timing that keybind registration depends on (game's
  UIOptionWindow._OnCreate copies keybinds only after all plugins load)
- InitAll removed entirely
- StartAll/UninitAll/OnInputUpdateAll/OnUpdateAll made internal so only
  UXAssist (host, same assembly, no InternalsVisibleTo) can drive them
- Start deferred to UXAssist.Start (after all dependents' Awake complete;
  BepInEx runs all Awakes before any Start)
- Per-feature Started idempotency + per-frame Time.frameCount guards as
  defense-in-depth
- Dependent mods reduced to Discover-only in Awake

Document the Init/Start timing contract on IModFeature and
ModFeatureAttribute so future mods can rely on it.
2026-06-29 02:56:54 +08:00
soarqin 036243fd4a refactor: centralize localization keys and remove runtime Chinese literals 2026-06-23 21:19:42 +08:00
soarqin f822c1a5c6 refactor(UXAssist): drive lifecycle and save dispatch via ModFeatureRegistry 2026-06-23 03:18:36 +08:00
soarqin ce199374b4 refactor(UXAssist): split UIFunctions into UI sub-features 2026-06-23 03:13:23 +08:00
soarqin dace35a691 refactor(UXAssist): split LogisticsPatch into focused classes 2026-06-23 02:56:19 +08:00
soarqin f2abb7cc2c refactor(UXAssist): split FactoryPatch into focused classes 2026-06-23 02:42:21 +08:00
soarqin cc783937e6 chore: move Increase maximum power usage in Logistic Stations and Advanced Mining Machines from CheatEnabler to UXAssist 2026-06-16 22:56:01 +08:00
soarqin 5e501ea649 UXAssist: add 3 options to Initialize Planet 2026-03-07 19:42:14 +08:00
soarqin 2e13206346 UXAssist: bug fix 2026-02-13 23:29:22 +08:00
soarqin 39578559aa UXAssist: Auto construct 2026-02-04 22:04:02 +08:00
soarqin 78e86aeafe ready for next release of UXAssist 2026-01-23 03:05:40 +08:00
soarqin b2c04c1dff work in progress 2025-12-02 00:10:02 +08:00
soarqin 29ee32b11b work in progress 2025-11-30 18:08:13 +08:00
soarqin 45445f82a1 UXAssist v1.4.5 2025-11-14 15:59:48 +08:00
soarqin 1a242af84e work in progress 2025-11-14 15:42:24 +08:00
soarqin 6f5b779d58 work in progress 2025-11-12 02:43:26 +08:00
soarqin 96f160926c work in progress 2025-11-10 22:39:58 +08:00
soarqin 052c23d3b7 ready for UXAssist 1.4.4 release 2025-11-06 00:45:40 +08:00
soarqin d711dd25ef remove cpu affinity settings, as they are officially supported 2025-09-29 23:34:17 +08:00
soarqin e909b6d9d2 rename GameLogicProc back to make things compatible with old dependants 2025-09-29 23:34:17 +08:00
soarqin 9d9a12c1af more fixes to make sure nothing working wrong on game 2025-09-29 23:34:17 +08:00
soarqin 1d11ba90bd we make them compile first 2025-09-29 23:34:17 +08:00
soarqin 73ebcf1aa3 more works 2025-09-28 17:36:19 +08:00
soarqin 96a9e8a570 Logistics Panel Info fix 2025-09-24 02:51:41 +08:00
soarqin 0178c8cc2e work in progress 2025-08-10 15:16:53 +08:00
soarqin a9286d2839 UXAssist: add a minor option to auto logistics config 2025-06-04 11:44:13 +08:00
soarqin dc246170ac UXAssist: buffer tweaks for ejector and silo 2025-05-29 04:33:37 +08:00
soarqin f7e1a27be1 UXAsisst 1.3.6 2025-05-25 10:55:03 +08:00
soarqin 586ce9a427 Auto-config logistic stations: Can set Max. Charging Power for Battlefield Analysis Base now. 2025-05-04 00:52:42 +08:00
soarqin 780ad3d3ec minor fix, with TODO updated 2025-05-02 18:48:02 +08:00
soarqin f407928579 UXAssist v1.3.2 2025-04-28 19:40:38 +08:00
soarqin 5545d7a2bf UXAssist v1.3.2 2025-04-27 19:31:49 +08:00
soarqin b86825c645 Add an option to auto-config logistics 2025-04-25 15:36:32 +08:00
soarqin 40aa331294 work in progress 2025-04-24 03:10:16 +08:00
soarqin 1ae4aa3ecb work in progress 2025-04-23 02:50:33 +08:00
soarqin e765f0f42d work in progress 2025-04-22 01:58:07 +08:00
soarqin 2a3fed7180 UXAssist v1.2.20 2025-04-21 14:05:52 +08:00
soarqin 78379165e8 work in progress 2025-04-21 00:42:55 +08:00
soarqin 3c8f258a1b UXAssist: new feature for 1.2.20 2025-04-19 22:40:26 +08:00
soarqin 1d01fdbd15 UXAssist v1.2.19 2025-04-16 15:49:14 +08:00
soarqin db0970c3c4 UXAsssit: buffer count for LabComponent 2025-04-16 02:33:46 +08:00
soarqin ac7f2ef63c UXAssist WIP: finished shortcuts for show stars' name 2025-04-15 21:04:22 +08:00
soarqin 5674d601ec WIP for UXAssist new features 2025-04-13 20:06:37 +08:00
soarqin adcce8e298 UXAssist: add profile based option 2025-03-25 21:36:22 +08:00
soarqin 087ceac1e3 WIP for UXAssist 1.2.16 2025-03-17 17:37:41 +08:00
soarqin 833bc3b0ac tip-fix 2024-12-06 21:21:51 +08:00
soarqin 26df57f911 WIP 2024-10-12 20:53:25 +08:00
soarqin 9d795e0ca4 WIP 2024-09-25 21:00:24 +08:00