Files
Elite-Gaming-FiveM/resources/Nearest-Postal/cl_render.lua
T
2021-12-03 01:05:09 +00:00

84 lines
2.6 KiB
Lua

-- optimizations
local vec = vec
local Wait = Citizen.Wait
local format = string.format
local RemoveBlip = RemoveBlip
local PlayerPedId = PlayerPedId
local IsHudHidden = IsHudHidden
local SetTextFont = SetTextFont
local SetTextScale = SetTextScale
local SetTextOutline = SetTextOutline
local GetEntityCoords = GetEntityCoords
local EndTextCommandDisplayText = EndTextCommandDisplayText
local BeginTextCommandDisplayText = BeginTextCommandDisplayText
local AddTextComponentSubstringPlayerName = AddTextComponentSubstringPlayerName
-- end optimizations
local nearestPostalText = ""
-- recalculate current postal
Citizen.CreateThread(function()
-- wait for postals to load
while postals == nil do Wait(1) end
local delay = math.max(config.updateDelay and tonumber(config.updateDelay) or 300, 50)
if not delay or tonumber(delay) <= 0 then
error("Invalid render delay provided, it must be a number > 0")
end
local postals = postals
local deleteDist = config.blip.distToDelete
local formatTemplate = config.text.format
local _total = #postals
while true do
local coords = GetEntityCoords(PlayerPedId())
local _nearestIndex, _nearestD
coords = vec(coords[1], coords[2])
for i = 1, _total do
local D = #(coords - postals[i][1])
if not _nearestD or D < _nearestD then
_nearestIndex = i
_nearestD = D
end
end
if pBlip and #(pBlip.p[1] - coords) < deleteDist then
TriggerEvent('chat:addMessage', {
color = { 255, 0, 0 },
args = {
'Postals',
"You've reached your postal destination!"
}
})
RemoveBlip(pBlip.hndl)
pBlip = nil
end
local _code = postals[_nearestIndex].code
nearest = { code = _code, dist = _nearestD }
nearestPostalText = format(formatTemplate, _code, _nearestD)
Wait(delay)
end
end)
-- text display thread
--Citizen.CreateThread(function()
-- local posX = config.text.posX
-- local posY = config.text.posY
-- local _string = "STRING"
-- local _scale = 0.42
-- local _font = 4
-- while true do
-- if nearest and not IsHudHidden() then
-- SetTextScale(_scale, _scale)
-- SetTextFont(_font)
-- SetTextOutline()
-- BeginTextCommandDisplayText(_string)
-- AddTextComponentSubstringPlayerName(nearestPostalText)
-- EndTextCommandDisplayText(posX, posY)
-- end
-- Wait(0)
-- end
--end)