From a872cdbcd4b6e4e67fa37a8d4202d7a4b84e4263 Mon Sep 17 00:00:00 2001 From: myk002 Date: Tue, 6 Dec 2022 14:42:27 -0800 Subject: [PATCH] no onChangeState fn, let scripts attach themselves --- docs/plugins/script-manager.rst | 8 +++++--- plugins/lua/script-manager.lua | 10 +++------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/docs/plugins/script-manager.rst b/docs/plugins/script-manager.rst index 2301c2f6e..3644b5337 100644 --- a/docs/plugins/script-manager.rst +++ b/docs/plugins/script-manager.rst @@ -2,9 +2,11 @@ script-manager ============== .. dfhack-tool:: - :summary: Manages startup tasks for scripts. + :summary: Triggers startup tasks for scripts. :tags: dev :no-command: -This plugin connects ``onStateChange()`` hooks for scripts so they can load -saved state and handles enabled state tracking and reporting. +This plugin loads all scripts that are declared as modules so that they can +put state change hooks in place for loading persistent data. It also scans for +global ``isEnabled()`` functions and gathers them for script enabled state +tracking and reporting for the `enable` command. diff --git a/plugins/lua/script-manager.lua b/plugins/lua/script-manager.lua index 4d750091e..4e3889ba9 100644 --- a/plugins/lua/script-manager.lua +++ b/plugins/lua/script-manager.lua @@ -26,7 +26,8 @@ end local enabled_map = {} -local function process_global(env_name, env, global_name, target) +local function process_script(env_name, env) + local global_name = 'isEnabled' local fn = env[global_name] if not fn then return end if type(fn) ~= 'function' then @@ -35,12 +36,7 @@ local function process_global(env_name, env, global_name, target) ' value is not a function'):format(global_name, env_name)) return end - target[env_name] = fn -end - -local function process_script(env_name, env) - process_global(env_name, env, 'onStateChange', dfhack.onStateChange) - process_global(env_name, env, 'isEnabled', enabled_map) + enabled_map[env_name] = fn end function init()