forked from Simnation/Main
68 lines
2 KiB
Lua
68 lines
2 KiB
Lua
--[[ All helper functions and variables are defined here ]]
|
|
|
|
---@alias FrameworkType 'esx'|'qb'|'qbx'
|
|
|
|
--[[ Start ox_lib.locale ]]
|
|
lib.locale()
|
|
|
|
shared = {}
|
|
shared.resource = GetCurrentResourceName()
|
|
|
|
--- Checks if the given resource is started.
|
|
---@param resourceName string
|
|
---@return boolean
|
|
function shared.IsResourceStart(resourceName)
|
|
return GetResourceState(resourceName) == 'started'
|
|
end
|
|
|
|
--- Returns the name of the active framework ('qb', 'esx', 'qbx').
|
|
---@return FrameworkType|nil
|
|
function shared.GetFrameworkName()
|
|
if shared.IsResourceStart('es_extended') then
|
|
return 'esx'
|
|
elseif shared.IsResourceStart('qbx_core') then
|
|
return 'qbx'
|
|
elseif shared.IsResourceStart('qb-core') then
|
|
return 'qb'
|
|
end
|
|
return nil
|
|
end
|
|
|
|
--- Retrieves the core object of the active framework.
|
|
--- @return table|nil
|
|
function shared.GetFrameworkObject()
|
|
local frameworkName = shared.GetFrameworkName()
|
|
if not frameworkName then return nil end
|
|
if frameworkName == 'esx' then
|
|
return exports['es_extended']:getSharedObject()
|
|
elseif frameworkName == 'qbx' then
|
|
return exports['qb-core']:GetCoreObject()
|
|
elseif frameworkName == 'qb' then
|
|
return exports['qb-core']:GetCoreObject()
|
|
end
|
|
end
|
|
|
|
--- Formats and returns a string combining the script name and event.
|
|
--- Created for the convenience of the developer.
|
|
--- @param event string
|
|
--- @return string
|
|
function _e(event)
|
|
return shared.resource .. ':' .. event
|
|
end
|
|
|
|
function shared.deepCopy(orig)
|
|
local orig_type = type(orig)
|
|
local copy
|
|
if orig_type == 'table' then
|
|
copy = {}
|
|
for orig_key, orig_value in next, orig, nil do
|
|
copy[shared.deepCopy(orig_key)] = shared.deepCopy(orig_value)
|
|
end
|
|
setmetatable(copy, shared.deepCopy(getmetatable(orig)))
|
|
else -- number, string, boolean, etc
|
|
copy = orig
|
|
end
|
|
return copy
|
|
end
|
|
|
|
shared.framework = shared.GetFrameworkName()
|