forked from Simnation/Main
106 lines
No EOL
3.2 KiB
Lua
106 lines
No EOL
3.2 KiB
Lua
---@diagnostic disable: duplicate-set-field
|
|
local resourceName = "lation_ui"
|
|
local configValue = BridgeClientConfig.ProgressBarSystem
|
|
if (configValue == "auto" and GetResourceState(resourceName) ~= "started") or (configValue ~= "auto" and configValue ~= resourceName) then return end
|
|
|
|
ProgressBar = ProgressBar or {}
|
|
|
|
---This function converts a QB progress bar options table to an lation progress bar options table.
|
|
---@param options table
|
|
---@return table
|
|
local function convertFromQB(options)
|
|
if not options then return options end
|
|
local prop1 = options.prop or {}
|
|
local prop2 = options.propTwo or {}
|
|
local props = {
|
|
{
|
|
model = prop1?.model,
|
|
bone = prop1?.bone,
|
|
pos = prop1?.coords,
|
|
rot = prop1?.rotation,
|
|
},
|
|
{
|
|
model = prop2?.model,
|
|
bone = prop2?.bone,
|
|
pos = prop2?.coords,
|
|
rot = prop2?.rotation,
|
|
}
|
|
}
|
|
return {
|
|
duration = options.duration,
|
|
label = options.label,
|
|
description = options?.description,
|
|
icon = options?.icon,
|
|
iconColor = options?.iconColor,
|
|
iconAnimation = options?.iconAnimation,
|
|
useWhileDead = options.useWhileDead,
|
|
canCancel = options.canCancel,
|
|
disable = {
|
|
move = options.controlDisables?.disableMovement,
|
|
car = options.controlDisables?.disableCarMovement,
|
|
combat = options.controlDisables?.disableCombat,
|
|
mouse = options.controlDisables?.disableMouse
|
|
},
|
|
anim = {
|
|
dict = options.animation?.animDict,
|
|
clip = options.animation?.anim,
|
|
flag = options.animation?.flags or 49,
|
|
},
|
|
prop = props,
|
|
}
|
|
end
|
|
|
|
---This function converts a ox progress bar options table to an lation progress bar options table.
|
|
---@param options table
|
|
---@return table
|
|
local function convertFromOx(options)
|
|
if not options then return options end
|
|
local prop1 = options.prop or {}
|
|
local prop2 = options.propTwo or {}
|
|
return {
|
|
duration = options.duration,
|
|
label = options.label,
|
|
description = options?.description,
|
|
icon = options?.icon,
|
|
iconColor = options?.iconColor,
|
|
iconAnimation = options?.iconAnimation,
|
|
useWhileDead = options.useWhileDead,
|
|
canCancel = options.canCancel,
|
|
disable = options.disable,
|
|
anim = options.anim,
|
|
prop = {
|
|
{
|
|
model = prop1?.model,
|
|
bone = prop1?.bone,
|
|
pos = prop1?.coords,
|
|
rot = prop1?.rotation,
|
|
},
|
|
{
|
|
model = prop2?.model,
|
|
bone = prop2?.bone,
|
|
pos = prop2?.coords,
|
|
rot = prop2?.rotation,
|
|
}
|
|
},
|
|
}
|
|
end
|
|
|
|
---This function opens a progress bar.
|
|
---@param options table
|
|
---@param cb any
|
|
---@param isQBInput boolean||optional
|
|
---@return boolean
|
|
function ProgressBar.Open(options, cb, isQBInput)
|
|
if isQBInput then
|
|
options = convertFromQB(options)
|
|
else
|
|
options = convertFromOx(options)
|
|
end
|
|
|
|
local success = exports.lation_ui:progressBar(options)
|
|
|
|
if cb then cb(not success) end
|
|
return success
|
|
end
|
|
|
|
return ProgressBar |