DarkRadiant: master 544e8a6e

Author Committer Branch Timestamp Parent
orbweaver orbweaver master 30.12.2025 16:36 master 71ff1a86
Changeset ScriptingSystem is lazily initialised

Introduce the concept of a lazy module, exposed by a new virtual method
RegisterableModule::isLazy, with a default implementation that returns
false. Instead of being initialised at startup, lazy modules are
initialised when they are first requested by ModuleRegistry::getModule.

Currently the only lazy module is the ScriptingSystem, which is now
initialised when the GUI sets up the Script window and starts making
calls to GlobalScriptingSystem(). This means that the Python module is
not initialised at all during unit tests, replacing the earlier hack
which explicitly disabled Python via a (now removed) virtual method on
ApplicationContext.
mod - include/imodule.h Diff File
mod - include/iscript.h Diff File
mod - plugins/script/ScriptingSystem.cpp Diff File
mod - plugins/script/ScriptingSystem.h Diff File
mod - radiantcore/modulesystem/ModuleRegistry.cpp Diff File
mod - radiantcore/modulesystem/ModuleRegistry.h Diff File
mod - test/TestContext.h Diff File