Commit Graph
18 Commits
Author SHA1 Message Date
soarqin 69d5a4b3ce feat(UXAssist): set orbital collector product limits 2026-07-22 15:25:30 +08:00
soarqin 53d558a9a4 feat(UXAssist): add advanced auto-navigation 2026-07-22 15:01:34 +08:00
soarqin 82365b3d16 fix(CheatEnabler): retry invalid Dyson shell candidates 2026-07-21 23:53:21 +08:00
soarqin 010ec73c8d fix(CheatEnabler): restore BuildToolOpt station replacement 2026-07-12 18:30:20 +08:00
soarqin 66ecebaca7 fix(UXAssist): start late-discovered mod features 2026-07-11 14:25:46 +08:00
soarqin 15c5bbdd72 feat(cheatenabler): add bounded shell-count input 2026-07-11 01:02:12 +08:00
soarqin 6b03801681 fix: Auto-Construct panel visibility on panel switching 2026-07-11 00:53:06 +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 c2016909ff refactor: phase 5 transpiler docs, mod-compat helpers, and build quality gates 2026-06-23 23:03:13 +08:00
soarqin 036243fd4a refactor: centralize localization keys and remove runtime Chinese literals 2026-06-23 21:19:42 +08:00
soarqin a133fd9e14 refactor(UXAssist): replace magic numbers with constants 2026-06-23 20:25:13 +08:00
soarqin ffd8b91930 UXAssist: add buttons to apply logistics auto-config to current planet's facilities 2026-06-16 03:37:55 +08:00
soarqin c3f3c2e96e AGENTS.md: add rules for decompiling game DLL and looking up in-game terminology 2026-06-16 01:45:20 +08:00
soarqinandSisyphus 93c39e2133 build: remove legacy UpdateGameDlls target and simplify PS1 script
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-22 15:44:34 +08:00
soarqin d7f8dc55d4 build: auto-sync manifest.json version_number from csproj Version during ZipMod 2026-03-22 14:59:28 +08:00
soarqin 109c6afd90 minor fixes 2026-03-20 14:57:25 +08:00
soarqin e2848b4f97 UXAssist v1.5.6 and CheatEnabler v2.4.3, with package target fix 2026-03-16 20:46:51 +08:00
soarqin e91271e137 Add UpdateGameDlls target to auto-refresh publicized game DLLs 2026-03-16 18:23:52 +08:00