forked from Simnation/Main
49 lines
1.1 KiB
Lua
49 lines
1.1 KiB
Lua
local Actions = {}
|
|
Action = {}
|
|
|
|
|
|
if not IsDuplicityVersion() then goto client end
|
|
|
|
function Action.Fire(id, players, ...)
|
|
local action = Actions[id]
|
|
if not action then return end
|
|
if type(players) == "table" then
|
|
for _, player in ipairs(players) do
|
|
TriggerClientEvent(GetCurrentResourceName() .. "client:Action", tonumber(player), id, ...)
|
|
end
|
|
return
|
|
end
|
|
TriggerClientEvent(GetCurrentResourceName() .. "client:Action", tonumber(players or -1), id, ...)
|
|
end
|
|
|
|
if IsDuplicityVersion() then return Actions end
|
|
::client::
|
|
|
|
function Action.Create(id, action)
|
|
assert(type(id) == "string", "id must be a string")
|
|
assert(type(action) == "function", "action must be a function")
|
|
Actions[id] = action
|
|
end
|
|
|
|
function Action.Remove(id)
|
|
Actions[id] = nil
|
|
end
|
|
|
|
function Action.Get(id)
|
|
return Actions[id]
|
|
end
|
|
|
|
function Action.GetAll()
|
|
return Actions
|
|
end
|
|
|
|
RegisterNetEvent(GetCurrentResourceName() .. "client:Action", function(id, ...)
|
|
local action = Actions[id]
|
|
if not action then return end
|
|
action(...)
|
|
end)
|
|
|
|
exports("Action", Action)
|
|
return Action
|
|
|
|
|