1
0
Fork 0
forked from Simnation/Main
Main/resources/[standalone]/tgiann-core/client/functions/progressbar.lua
2025-07-09 19:41:05 +02:00

122 lines
3.7 KiB
Lua

local bussy = false
local lang = langs[config.lang]
local lumihud = GetResourceState("tgiann-lumihud") ~= "missing"
local tgiannProgressbar = GetResourceState("tgiann-progressbar") ~= "missing"
tgiCore.Progressbar = function(name, label, duration, useWhileDead, canCancel, disableControls, animation, prop, propTwo, onFinish, onCancel)
if bussy then
tgiCore.notif(lang.alreadyError, "error")
if onCancel then onCancel() end
return false
end
bussy = true
if lumihud then
local success = exports['tgiann-lumihud']:Progress({
name = name:lower(),
duration = duration,
label = label,
useWhileDead = useWhileDead,
canCancel = canCancel,
controlDisables = disableControls,
animation = animation and animation or {},
prop = prop and prop or {},
propTwo = propTwo and propTwo or {},
})
bussy = false
if success then
if onFinish then onFinish() end
else
if onCancel then onCancel() end
end
return success
elseif tgiannProgressbar then
local p = promise.new()
exports['tgiann-progressbar']:Progress({
name = name:lower(),
duration = duration,
label = label,
useWhileDead = useWhileDead,
canCancel = canCancel,
controlDisables = disableControls,
animation = animation and animation or {},
prop = prop and prop or {},
propTwo = propTwo and propTwo or {},
}, function(cancelled)
if not cancelled then
p:resolve(true)
else
p:resolve(false)
end
end)
local success = Citizen.Await(p)
bussy = false
if success then
if onFinish then onFinish() end
else
if onCancel then onCancel() end
end
return success
elseif config.framework == "qb" and not config.qbx then -- QB Framework
local p = promise.new()
tgiCore.core.Functions.Progressbar(
name:lower(),
label,
duration,
useWhileDead,
canCancel,
disableControls,
animation or {},
prop or {},
propTwo or {},
function()
p:resolve(true)
end,
function()
p:resolve(false)
end)
local success = Citizen.Await(p)
bussy = false
if success then
if onFinish then onFinish() end
else
if onCancel then onCancel() end
end
return success
else
local success = lib.progressBar({
duration = duration,
label = label,
useWhileDead = useWhileDead,
canCancel = canCancel,
disable = {
car = disableControls.disableCarMovement,
move = disableControls.disableMovement,
combat = disableControls.disableCombat,
mouse = disableControls.disableMouse,
},
anim = animation and {
dict = animation.animDict,
clip = animation.anim,
flag = animation.flags
},
prop = prop and {
model = prop.model,
pos = prop.coords,
rot = prop.rotation,
bone = prop.bone
},
})
bussy = false
if success then
if onFinish then onFinish() end
else
if onCancel then onCancel() end
end
return success
end
end