forked from Simnation/Main
60 lines
1.8 KiB
Lua
60 lines
1.8 KiB
Lua
![]() |
-- version check
|
||
|
Citizen.CreateThread(function()
|
||
|
local vRaw = LoadResourceFile(GetCurrentResourceName(), 'version.json')
|
||
|
if vRaw and config.versionCheck then
|
||
|
local v = json.decode(vRaw)
|
||
|
local url = 'https://raw.githubusercontent.com/DevBlocky/nearest-postal/master/version.json'
|
||
|
PerformHttpRequest(url, function(code, res)
|
||
|
if code == 200 then
|
||
|
local rv = json.decode(res)
|
||
|
if rv.version ~= v.version then
|
||
|
print(([[
|
||
|
-------------------------------------------------------
|
||
|
nearest-postal
|
||
|
UPDATE: %s AVAILABLE
|
||
|
CHANGELOG: %s
|
||
|
-------------------------------------------------------
|
||
|
]]):format(rv.version, rv.changelog))
|
||
|
end
|
||
|
else
|
||
|
print('nearest-postal was unable to check the version')
|
||
|
end
|
||
|
end, 'GET')
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
-- add functionality to get postals server side from a vec3
|
||
|
|
||
|
local postals = nil
|
||
|
Citizen.CreateThread(function()
|
||
|
postals = LoadResourceFile(GetCurrentResourceName(), GetResourceMetadata(GetCurrentResourceName(), 'postal_file'))
|
||
|
postals = json.decode(postals)
|
||
|
for i, postal in ipairs(postals) do
|
||
|
postals[i] = {vec(postal.x, postal.y), code = postal.code}
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
local function getPostalServer(coords)
|
||
|
while postals == nil do
|
||
|
Wait(1)
|
||
|
end
|
||
|
local _total = #postals
|
||
|
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
|
||
|
local _code = postals[_nearestIndex].code
|
||
|
local nearest = {code = _code, dist = _nearestD}
|
||
|
return nearest or nil
|
||
|
end
|
||
|
|
||
|
exports('getPostalServer', function(coords)
|
||
|
return getPostalServer(coords)
|
||
|
end)
|