Files
community_bridge/init.lua
T

97 lines
2.8 KiB
Lua

Bridge = {}
local function registerModule(moduleName, moduleTable)
local wrappedModule = {}
for functionName, func in pairs(moduleTable) do
wrappedModule[functionName] = func
end
print("Registering module:", moduleName)
Bridge[moduleName] = wrappedModule
end
function Bridge.RegisterModule(moduleName, moduleTable)
if not moduleTable then
moduleTable = Framework
registerModule(moduleName, moduleTable)
return
end
if Bridge[moduleName] then
print("Module already registered:", moduleName)
return
end
registerModule(moduleName, moduleTable)
end
--TODO: Create a way to overide functions or create a new functions for module
-- local OverRide = function(module, key, value)
-- module[key] = value
-- end
-- RegisterCompatibility = function(moduleName, key, func)
-- local module = Bridge[moduleName] or {}
-- if not module[key] then
-- module[key] = func
-- print("Registered function for:", moduleName, key)
-- else
-- print("Key already exists for:", moduleName, key)
-- end
-- Bridge[moduleName] = module
-- Bridge[moduleName].OverRide = function(k, v)
-- OverRide(module, k, v)
-- end
-- end
-- exports('RegisterCompatibility', RegisterCompatibility)
Bridge.RegisterModule("Inventory", Inventory)
Bridge.RegisterModule("Framework", Framework)
Bridge.RegisterModule("Notify", Notify)
Bridge.RegisterModule("Utility", Utility)
Bridge.RegisterModule("Progressbar", Progressbar)
Bridge.RegisterModule("Clothing", Clothing)
Bridge.RegisterModule("Menu", Menu)
Bridge.RegisterModule("Language", Language)
Bridge.RegisterModule("Debugger", Debugger)
Bridge.RegisterModule("Doorlock", Doorlock)
Bridge.RegisterModule("Phone", Phone)
Bridge.RegisterModule("Vehicle", Vehicle)
Bridge.RegisterModule("Dispatch", Dispatch)
Bridge.RegisterModule("Weather", Weather)
Bridge.RegisterModule("Target", Target)
Bridge.RegisterModule("Table", Table)
Bridge.RegisterModule("Math", Math)
Bridge.RegisterModule("Prints", Prints)
-- Fill the bridge tables with player data.
function FillBridgeTables()
PlayerLoaded = true
PlayerIdentifier = Framework.GetPlayerIdentifier()
PlayerJobName, PlayerJobLabel, PlayerJobGradeName, PlayerJobGradeLevel = Framework.GetPlayerJob()
end
-- Clean the bridge tables.
function ClearClientSideVariables()
PlayerLoaded = false
PlayerIdentifier = nil
PlayerJobName = nil
PlayerJobLabel = nil
PlayerJobGradeName = nil
PlayerJobGradeLevel = nil
StoredOldClothing = {}
end
CreateThread(function()
for k, v in pairs(Bridge) do
if type(v) == 'table' then
exports(k, function()
return v
end)
else
exports(k, v)
end
end
end)
exports('Bridge', function()
return Bridge
end)