mirror of
https://github.com/Michatec/wk_wars2x.git
synced 2026-04-01 00:16:27 +02:00
Restructured cl_radar.lua to be more readable
This commit is contained in:
252
cl_radar.lua
252
cl_radar.lua
@@ -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,16 +319,13 @@ 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 )
|
end
|
||||||
else
|
|
||||||
return math.ceil( speed * 3.6 )
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function RADAR:ResetCapturedVehicles()
|
function RADAR:ResetCapturedVehicles()
|
||||||
self.capturedVehicles = {}
|
self.capturedVehicles = {}
|
||||||
@@ -337,8 +348,70 @@ function RADAR:FilterCapturedVehicles()
|
|||||||
if ( v.veh == veh and k ~= b ) then table.remove( self.capturedVehicles, b ) end
|
if ( v.veh == veh and k ~= b ) then table.remove( self.capturedVehicles, b ) end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--[[------------------------------------------------------------------------
|
||||||
|
Radar dynamic sphere radius functions
|
||||||
|
------------------------------------------------------------------------]]--
|
||||||
|
function RADAR:GetDynamicDataValue( key )
|
||||||
|
return self.vars.sphereSizes[key]
|
||||||
end
|
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 = {}
|
||||||
|
|
||||||
@@ -418,53 +491,7 @@ function RADAR:GetVehiclesForAntenna()
|
|||||||
end
|
end
|
||||||
|
|
||||||
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
|
||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user