forked from Simnation/Main
122 lines
3.7 KiB
Lua
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
|