Main/resources/[standalone]/utility_lib/client/functions/general.lua
2025-06-07 08:51:21 +02:00

65 lines
No EOL
2 KiB
Lua

ButtonNotificationInternal = function(msg, beep) -- Skip the multigsub function for faster execution
AddTextEntry('ButtonNotificationInternal', msg)
BeginTextCommandDisplayHelp('ButtonNotificationInternal')
EndTextCommandDisplayHelp(0, true, beep, -1)
end
CreateBlip = function(name, coords, sprite, colour, scale)
local blip = AddBlipForCoord(coords)
SetBlipSprite (blip, sprite)
SetBlipScale (blip, scale or 1.0)
SetBlipColour (blip, colour)
SetBlipAsShortRange(blip, true)
BeginTextCommandSetBlipName('STRING')
AddTextComponentSubstringPlayerName(name)
EndTextCommandSetBlipName(blip)
return blip
end
StartCacheUpdateLoop = function()
Citizen.CreateThread(function()
while true do
currentSlice = GetSelfSlice()
player = PlayerPedId()
Citizen.Wait(Config.UpdateCooldown)
end
end)
end
Emit = function(type, manual, ...)
TriggerEvent("Utility:On:".. (manual and "!" or "") ..type, ...)
end
EmitInteraction = function()
for k,v in pairs(Utility.Cache.Marker) do
local distance = #(GetEntityCoords(PlayerPedId()) - v.coords)
if v.near and distance < v.interaction_distance then
Emit("marker", false, k)
v.near = false
end
end
for k,v in pairs(Utility.Cache.Object) do
local distance = #(GetEntityCoords(PlayerPedId()) - v.coords)
if v.near and distance < v.interaction_distance then
Emit("object", false, k)
v.near = false
end
end
end
-- It is not directly in the fxmanifest because many do not know that the utility lib can run without the utility framework
-- and keep reporting the error "Failed to load script @utility_framework/client/api.lua".
LoadUtilityFrameworkIfFound = function()
if GetResourceState("utility_framework") ~= "missing" then
local init = LoadResourceFile("utility_framework", "client/api.lua")
if init then
load(init, "@utility_framework/client/api.lua")()
end
end
end