37 lines
1.0 KiB
Lua
37 lines
1.0 KiB
Lua
GlobalBeginTool = {};
|
|
---@type table<table, fun(o: table)> 回调函数
|
|
GlobalBeginTool.BeginPlayFunctions = {};
|
|
|
|
GlobalBeginTool.ClientAlreadyFunctions = {};
|
|
|
|
---@generic T
|
|
---@param o T
|
|
---@param f fun(o:T) 初始化函数
|
|
function GlobalBeginTool:AddBeginPlay(o, f)
|
|
if o == nil then return end
|
|
if GlobalBeginTool.BeginPlayFunctions[o] ~= nil then return end
|
|
if type(f) ~= "function" then return end
|
|
GlobalBeginTool.BeginPlayFunctions[o] = f;
|
|
end
|
|
|
|
---@generic T
|
|
---@param o T
|
|
---@param f fun(o:T) 初始化函数
|
|
function GlobalBeginTool:AddClientAlready(o, f)
|
|
if o == nil then return end
|
|
if GlobalBeginTool.ClientAlreadyFunctions[o] ~= nil then return end
|
|
if type(f) ~= "function" then return end
|
|
GlobalBeginTool.ClientAlreadyFunctions[o] = f;
|
|
end
|
|
|
|
function GlobalBeginTool:ReceiveBeginPlay()
|
|
for o, f in pairs(self.BeginPlayFunctions) do f(o); end
|
|
self.BeginPlayFunctions = {};
|
|
end
|
|
|
|
function GlobalBeginTool:ReceiveClientAlready()
|
|
for o, f in pairs(self.ClientAlreadyFunctions) do f(o); end
|
|
self.ClientAlreadyFunctions = {};
|
|
end
|
|
|
|
return GlobalBeginTool; |