40 lines
943 B
Lua
40 lines
943 B
Lua
-- The only public class except for Questie
|
|
---@class QuestieLoader
|
|
QuestieLoader = {}
|
|
|
|
|
|
local modules = {}
|
|
|
|
QuestieLoader._modules = modules -- store reference so modules can be iterated for profiling
|
|
|
|
---@generic T
|
|
---@param name `T` @Module name
|
|
---@return T|{ private: table } @Module reference
|
|
function QuestieLoader:CreateModule(name)
|
|
if (not modules[name]) then
|
|
modules[name] = { private = {} }
|
|
return modules[name]
|
|
else
|
|
return modules[name]
|
|
end
|
|
end
|
|
|
|
---@generic T
|
|
---@param name `T` @Module name
|
|
---@return T|{ private: table } @Module reference
|
|
function QuestieLoader:ImportModule(name)
|
|
if (not modules[name]) then
|
|
modules[name] = { private = {} }
|
|
return modules[name]
|
|
else
|
|
return modules[name]
|
|
end
|
|
end
|
|
|
|
function QuestieLoader:PopulateGlobals() -- called when debugging is enabled
|
|
for name, module in pairs(modules) do
|
|
_G[name] = module
|
|
end
|
|
end
|
|
|