Files
community_bridge/modules/menu/_oxlib.lua
T
gononono64 0212c21487 resonable changes
minor tweeks for qol and some bug fixes

Registering menus caused data to not be updated when retrieving new info/variables

func check was redundent

removed some prints

added scaleform run loop for qol
2025-02-15 21:16:44 -06:00

54 lines
1.6 KiB
Lua

if GetResourceState('ox_lib') ~= 'started' or (BridgeClientConfig.MenuSystem ~= "ox" and BridgeClientConfig.MenuSystem ~= "auto") then return end
Menus = Menus or {}
--- Converts a QB menu to an Ox menu.
---@param id string The menu ID.
---@param menu table The QB menu data.
---@return table The Ox menu data.
local function QBToOxMenu(id, menu)
local oxMenu = {
id = id,
title = "",
canClose = true,
options = {},
}
for i, v in pairs(menu) do
if v.isMenuHeader then
if oxMenu.title == "" then
oxMenu.title = v.header
end
else
local option = {
title = v.header,
description = v.txt,
icon = v.icon,
args = v.params.args,
onSelect = function(selected, secondary, args)
local params = menu[id]?.options?[selected]?.params
if not params then return end
local event = params.event
local isServer = params.isServer
if not event then return end
if isServer then
return TriggerServerEvent(event, args)
end
return TriggerEvent(event, args)
end
}
table.insert(oxMenu.options, option)
end
end
return oxMenu
end
OpenMenu = function(id, data, useQBinput)
if useQBinput then
data = QBToOxMenu(id, data)
end
lib.registerContext(data)
lib.showContext(id)
return data
end