feat(imports): getNearbyObjects and getClosestObject

Also fixed the return params types for players and vehicles imports
This commit is contained in:
Dolu
2023-01-15 23:21:35 +01:00
committed by Linden
parent 1565187860
commit 0ea6705b16
4 changed files with 56 additions and 2 deletions

View File

@@ -0,0 +1,26 @@
---@param coords vector3 The coords to check from.
---@param maxDistance number The max distance to check.
---@return number? object
---@return vector3? objectCoords
function lib.getClosestObject(coords, maxDistance)
local objects = GetGamePool('CObject')
local closestObject, closestCoords
maxDistance = maxDistance or 2.0
for i = 1, #objects do
local object = objects[i]
local objectCoords = GetEntityCoords(object)
local distance = #(coords - objectCoords)
if distance < maxDistance then
maxDistance = distance
closestObject = object
closestCoords = objectCoords
end
end
return closestObject, closestCoords
end
return lib.getClosestObject

View File

@@ -0,0 +1,28 @@
---@param coords vector3 The coords to check from.
---@param maxDistance number The max distance to check.
---@return table objects
function lib.getNearbyObjects(coords, maxDistance)
local objects = GetGamePool('CObject')
local nearby = {}
local count = 0
maxDistance = maxDistance or 2.0
for i = 1, #objects do
local object = objects[i]
local objectCoords = GetEntityCoords(object)
local distance = #(coords - objectCoords)
if distance < maxDistance then
count += 1
nearby[count] = {
object = object,
coords = coords
}
end
end
return nearby
end
return lib.getNearbyObjects

View File

@@ -1,7 +1,7 @@
---@param coords vector3 The coords to check from.
---@param maxDistance number The max distance to check.
---@param includePlayer boolean Whether or not to include the current player.
---@return number[]
---@return table players
function lib.getNearbyPlayers(coords, maxDistance, includePlayer)
local players = GetActivePlayers()
local nearby = {}

View File

@@ -1,7 +1,7 @@
---@param coords vector3 The coords to check from.
---@param maxDistance number The max distance to check.
---@param includePlayerVehicle boolean Whether or not to include the player's current vehicle.
---@return number[]
---@return table vehicles
function lib.getNearbyVehicles(coords, maxDistance, includePlayerVehicle)
local vehicles = GetGamePool('CVehicle')
local nearby = {}