Restructured cl_radar.lua to be more readable

This commit is contained in:
Dan
2019-11-11 12:34:28 +00:00
parent 1f587ca4f3
commit d633b09104

View File

@@ -27,6 +27,7 @@ Citizen.CreateThread( function()
SendNUIMessage( { resourcename = resourceName } ) SendNUIMessage( { resourcename = resourceName } )
end ) end )
--[[------------------------------------------------------------------------ --[[------------------------------------------------------------------------
Radar variables Radar variables
------------------------------------------------------------------------]]-- ------------------------------------------------------------------------]]--
@@ -132,8 +133,9 @@ RADAR.sorting = {
} }
} }
--[[------------------------------------------------------------------------ --[[------------------------------------------------------------------------
Radar setters and getters, other functions Radar basics functions
------------------------------------------------------------------------]]-- ------------------------------------------------------------------------]]--
function RADAR:GetPatrolSpeed() function RADAR:GetPatrolSpeed()
return self.vars.patrolSpeed return self.vars.patrolSpeed
@@ -151,22 +153,6 @@ function RADAR:GetMaxCheckDist()
return self.vars.maxCheckDist return self.vars.maxCheckDist
end end
function RADAR:GetRayTraceState()
return self.vars.rayTraceState
end
function RADAR:GetRadarStage()
return self.vars.radarStage
end
function RADAR:GetNumOfRays()
return self.vars.numberOfRays
end
function RADAR:GetCapturedVehicles()
return self.capturedVehicles
end
function RADAR:GetActiveVehicles() function RADAR:GetActiveVehicles()
return self.activeVehicles return self.activeVehicles
end end
@@ -177,6 +163,70 @@ function RADAR:SetPatrolSpeed( speed )
end end
end end
function RADAR:SetFastLimit( limit )
if ( type( limit ) == "number" ) then
if ( limit >= 0 and limit <= 999 ) then
self.vars.fastLimit = limit
end
end
end
function RADAR:SetVehiclePool( pool )
if ( type( pool ) == "table" ) then
self.vars.vehiclePool = pool
end
end
function RADAR:SetActiveVehicles( t )
if ( type( t ) == "table" ) then
self.activeVehicles = t
end
end
--[[------------------------------------------------------------------------
Radar ray trace functions
------------------------------------------------------------------------]]--
function RADAR:GetRayTraceState()
return self.vars.rayTraceState
end
function RADAR:GetNumOfRays()
return self.vars.numberOfRays
end
function RADAR:IncreaseRayTraceState()
self.vars.rayTraceState = self.vars.rayTraceState + 1
end
function RADAR:ResetRayTraceState()
self.vars.rayTraceState = 0
end
function RADAR:CacheNumOfRays()
self.vars.numberOfRays = #self.rayTraces
end
--[[------------------------------------------------------------------------
Radar stage functions
------------------------------------------------------------------------]]--
function RADAR:GetRadarStage()
return self.vars.radarStage
end
function RADAR:IncreaseRadarStage()
self.vars.radarStage = self.vars.radarStage + 1
end
function RADAR:ResetRadarStage()
self.vars.radarStage = 0
end
--[[------------------------------------------------------------------------
Radar antenna functions
------------------------------------------------------------------------]]--
function RADAR:ToggleAntenna( ant ) function RADAR:ToggleAntenna( ant )
self.vars.antennas[ant].xmit = not self.vars.antennas[ant].xmit self.vars.antennas[ant].xmit = not self.vars.antennas[ant].xmit
end end
@@ -239,46 +289,10 @@ function RADAR:SetAntennaFastLock( ant, state )
end end
end end
function RADAR:SetVehiclePool( pool )
if ( type( pool ) == "table" ) then
self.vars.vehiclePool = pool
end
end
function RADAR:SetFastLimit( limit )
if ( type( limit ) == "number" ) then
if ( limit >= 0 and limit <= 999 ) then
self.vars.fastLimit = limit
end
end
end
function RADAR:SetActiveVehicles( t )
if ( type( t ) == "table" ) then
self.activeVehicles = t
end
end
function RADAR:IncreaseRayTraceState()
self.vars.rayTraceState = self.vars.rayTraceState + 1
end
function RADAR:ResetRayTraceState()
self.vars.rayTraceState = 0
end
function RADAR:IncreaseRadarStage()
self.vars.radarStage = self.vars.radarStage + 1
end
function RADAR:ResetRadarStage()
self.vars.radarStage = 0
end
function RADAR:CacheNumOfRays()
self.vars.numberOfRays = #self.rayTraces
end
--[[------------------------------------------------------------------------
Radar sort mode functions
------------------------------------------------------------------------]]--
function RADAR:GetSortModeText() function RADAR:GetSortModeText()
return self.sorting[self.vars.sortMode].name return self.sorting[self.vars.sortMode].name
end end
@@ -305,15 +319,12 @@ function RADAR:ToggleSortMode()
UTIL:Notify( "Radar mode set to " .. self:GetSortModeText() ) UTIL:Notify( "Radar mode set to " .. self:GetSortModeText() )
end end
--[[------------------------------------------------------------------------ --[[------------------------------------------------------------------------
Radar functions Radar captured vehicle functions
------------------------------------------------------------------------]]-- ------------------------------------------------------------------------]]--
function RADAR:GetVehSpeedFormatted( speed ) function RADAR:GetCapturedVehicles()
if ( self.vars.speedType == "mph" ) then return self.capturedVehicles
return math.ceil( speed * 2.236936 )
else
return math.ceil( speed * 3.6 )
end
end end
function RADAR:ResetCapturedVehicles() function RADAR:ResetCapturedVehicles()
@@ -339,6 +350,68 @@ function RADAR:FilterCapturedVehicles()
end end
end end
--[[------------------------------------------------------------------------
Radar dynamic sphere radius functions
------------------------------------------------------------------------]]--
function RADAR:GetDynamicDataValue( key )
return self.vars.sphereSizes[key]
end
function RADAR:DoesDynamicRadiusDataExist( key )
return self:GetDynamicDataValue( key ) ~= nil
end
function RADAR:SetDynamicRadiusKey( key, t )
self.vars.sphereSizes[key] = t
end
function RADAR:InsertDynamicRadiusData( key, radius, actualSize )
if ( self:GetDynamicDataValue( key ) == nil ) then
local tbl = {}
tbl.radius = radius
tbl.actualSize = actualSize
self:SetDynamicRadiusKey( key, tbl )
end
end
function RADAR:GetRadiusData( key )
return self.vars.sphereSizes[key].radius or 5.0, self.vars.sphereSizes[key].actualSize
end
function RADAR:GetDynamicRadius( veh )
local mdl = GetEntityModel( veh )
local key = tostring( mdl )
local dataExists = self:DoesDynamicRadiusDataExist( key )
if ( not dataExists ) then
local min, max = GetModelDimensions( mdl )
local size = max - min
local numericSize = size.x + size.y + size.z
local dynamicRadius = UTIL:Clamp( ( numericSize * numericSize ) / 10, 4.0, 10.0 )
self:InsertDynamicRadiusData( key, dynamicRadius, numericSize )
return dynamicRadius, numericSize
end
return self:GetRadiusData( key )
end
--[[------------------------------------------------------------------------
Radar functions
------------------------------------------------------------------------]]--
function RADAR:GetVehSpeedFormatted( speed )
if ( self.vars.speedType == "mph" ) then
return math.ceil( speed * 2.236936 )
else
return math.ceil( speed * 3.6 )
end
end
function RADAR:GetAllVehicles() function RADAR:GetAllVehicles()
local t = {} local t = {}
@@ -420,52 +493,6 @@ function RADAR:GetVehiclesForAntenna()
return { normVehs["front"], fastVehs["front"], normVehs["rear"], fastVehs["rear"] } return { normVehs["front"], fastVehs["front"], normVehs["rear"], fastVehs["rear"] }
end end
function RADAR:GetDynamicDataValue( key )
return self.vars.sphereSizes[key]
end
function RADAR:DoesDynamicRadiusDataExist( key )
return self:GetDynamicDataValue( key ) ~= nil
end
function RADAR:SetDynamicRadiusKey( key, t )
self.vars.sphereSizes[key] = t
end
function RADAR:InsertDynamicRadiusData( key, radius, actualSize )
if ( self:GetDynamicDataValue( key ) == nil ) then
local tbl = {}
tbl.radius = radius
tbl.actualSize = actualSize
self:SetDynamicRadiusKey( key, tbl )
end
end
function RADAR:GetRadiusData( key )
return self.vars.sphereSizes[key].radius or 5.0, self.vars.sphereSizes[key].actualSize
end
function RADAR:GetDynamicRadius( veh )
local mdl = GetEntityModel( veh )
local key = tostring( mdl )
local dataExists = self:DoesDynamicRadiusDataExist( key )
if ( not dataExists ) then
local min, max = GetModelDimensions( mdl )
local size = max - min
local numericSize = size.x + size.y + size.z
local dynamicRadius = UTIL:Clamp( ( numericSize * numericSize ) / 10, 4.0, 10.0 )
self:InsertDynamicRadiusData( key, dynamicRadius, numericSize )
return dynamicRadius, numericSize
end
return self:GetRadiusData( key )
end
function RADAR:GetIntersectedVehIsFrontOrRear( t ) function RADAR:GetIntersectedVehIsFrontOrRear( t )
if ( t > 10.0 ) then if ( t > 10.0 ) then
return 1 -- vehicle is in front return 1 -- vehicle is in front
@@ -602,8 +629,9 @@ function RADAR:RunControlManager()
end end
end end
--[[------------------------------------------------------------------------ --[[------------------------------------------------------------------------
Test time Main function
------------------------------------------------------------------------]]-- ------------------------------------------------------------------------]]--
function RADAR:Main() function RADAR:Main()
-- Get the local player's ped and store it in a variable -- Get the local player's ped and store it in a variable