This commit is contained in:
Eigeen 2023-12-22 20:10:52 +08:00
parent f2cb2e3787
commit bb9397e934
Signed by: eigeen
GPG Key ID: B730E75AFABD2ED8
1 changed files with 15 additions and 24 deletions

View File

@ -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()