Ripped a part utility folder and shoved it into a lib. Changed a lot of Utility prefixes to the modules name. This contains breaking changes. Scripts that use 0.2.0 will need to update to match the new format
48 lines
1.1 KiB
Lua
48 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 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)
|
|
|
|
|
|
|