78 lines
1.8 KiB
Lua
78 lines
1.8 KiB
Lua
|
|
local GetResourceKvpString = GetResourceKvpString
|
|
local SetResourceKvp = SetResourceKvp
|
|
local PlaySoundFromEntity = PlaySoundFromEntity
|
|
|
|
---@class GlobalSettings
|
|
GlobalSettings = {}
|
|
|
|
---@class Settings
|
|
local Settings = {
|
|
showhud = true,
|
|
cinemtic = false,
|
|
circlemap = false,
|
|
showspeedometer = true,
|
|
showplayerstatus = true,
|
|
showminimap = true,
|
|
speedunitmph = true,
|
|
squaremap = false,
|
|
}
|
|
|
|
---@return boolean
|
|
LoadHud = function ()
|
|
::Repeat::
|
|
|
|
local data = GetResourceKvpString('Hud:Data')
|
|
|
|
if data then
|
|
GlobalSettings = json.decode(data)
|
|
else
|
|
SetResourceKvp('Hud:Data', json.encode(Settings))
|
|
goto Repeat
|
|
end
|
|
|
|
local response = StreamMinimap()
|
|
return response
|
|
end
|
|
|
|
|
|
---@param data table
|
|
RegisterNUICallback('settings', function (data, cb)
|
|
local value = data.input
|
|
|
|
GlobalSettings[data.option] = value
|
|
SetResourceKvp('Hud:Data', json.encode(GlobalSettings))
|
|
|
|
if data.option == 'showhud' then
|
|
DisplayHud(GlobalSettings[data.option])
|
|
elseif data.option == 'circlemap' then
|
|
StreamMinimap()
|
|
elseif data.option == 'cinemtic' then
|
|
--Todo
|
|
end
|
|
|
|
PlaySoundFromEntity(-1, "BACK", cache.ped, "HUD_FRONTEND_DEFAULT_SOUNDSET", 0, 0)
|
|
|
|
cb{{}}
|
|
end)
|
|
|
|
|
|
|
|
|
|
RegisterNUICallback('exitsettings', function (data, cb)
|
|
SetNuiFocus(false, false)
|
|
PlaySoundFromEntity(-1, "BACK", cache.ped, "HUD_FRONTEND_DEFAULT_SOUNDSET", 0, 0)
|
|
cb{{}}
|
|
end)
|
|
|
|
lib.addKeybind({
|
|
name = 'hud:settings',
|
|
description = 'Toggle Hud Settings',
|
|
defaultKey = 'i',
|
|
onPressed = function(self)
|
|
PlaySoundFromEntity(-1, "BACK", cache.ped, "HUD_FRONTEND_DEFAULT_SOUNDSET", 0, 0)
|
|
NuiMessage('settings',GlobalSettings)
|
|
SetNuiFocus(true, true)
|
|
end,
|
|
})
|