diff --git a/EigeenLoader.lua b/EigeenLoader.lua index 3810ad2..4a4d6f8 100644 --- a/EigeenLoader.lua +++ b/EigeenLoader.lua @@ -1,5 +1,5 @@ -- 猫猫虫的 LuaEngine 插件管理框架 --- @version: 1.0.2 +-- @version: 1.0.3 -- -- 自动加载以下目录的lua模块: -- ./eigeen_modules @@ -31,6 +31,7 @@ local MODULE_ROOT = "./Lua/eigeen_modules" -- globals -- 所有模块列表,仅在初始化时加载。后续处理都基于此列表,因此增删改mod需要重载此框架。 local Modules = {} +local Ctx = {} -- 需要执行的模块函数,每次执行前进行处理。 local ExecuteModules = {} @@ -195,7 +196,7 @@ end function on_time() local playerData = engine.Player:new() - local ctx = { + Ctx = { playerData = playerData, worldData = engine.World:new(), questData = engine.Quest:new(), @@ -203,33 +204,28 @@ function on_time() Keypad = Keypad } -- local MetaCtx = { - -- Speed = Speed:new(ctx.playerData), + -- Speed = Speed:new(Ctx.playerData), -- Keypad = Keypad -- } -- MetaCtx.__index = MetaCtx - -- setmetatable(ctx, MetaCtx) + -- setmetatable(Ctx, MetaCtx) -- 建立遍历专用表,而不是遍历modules主表。条件判断操作更改后刷新遍历专用表。 - local wpType = ctx.playerData.Weapon.type - if ctx.playerData.Weapon.type ~= LastWeaponType then - ExecuteModules = buildExecuteModules(ctx) - LastWeaponType = ctx.playerData.Weapon.type + local wpType = Ctx.playerData.Weapon.type + if Ctx.playerData.Weapon.type ~= LastWeaponType then + ExecuteModules = buildExecuteModules(Ctx) + LastWeaponType = Ctx.playerData.Weapon.type end - if ctx.worldData.MapId ~= LastMapID then - ExecuteModules = buildExecuteModules(ctx) - LastMapID = ctx.worldData.MapId + if Ctx.worldData.MapId ~= LastMapID then + ExecuteModules = buildExecuteModules(Ctx) + LastMapID = Ctx.worldData.MapId end -- 执行onTime方法 - executeOnTime(ctx, ExecuteModules) + executeOnTime(Ctx, ExecuteModules) end function on_imgui() - local ctx = { - playerData = engine.Player:new(), - worldData = engine.World:new(), - questData = engine.Quest:new() - } - executeOnImgui(ctx, ExecuteModules) + executeOnImgui(Ctx, ExecuteModules) end function on_init() @@ -238,12 +234,7 @@ function on_init() end function on_switch_scenes() - local ctx = { - playerData = engine.Player:new(), - worldData = engine.World:new(), - questData = engine.Quest:new() - } - executeOnSwitchScenes(ctx, ExecuteModules) + executeOnSwitchScenes(Ctx, ExecuteModules) end function on_monster_create()