diff --git a/cl_radar.lua b/cl_radar.lua index 2920ae3..83f1f0b 100644 --- a/cl_radar.lua +++ b/cl_radar.lua @@ -375,9 +375,11 @@ end --[[------------------------------------------------------------------------ Radar antenna functions ------------------------------------------------------------------------]]-- -function RADAR:ToggleAntenna( ant ) +function RADAR:ToggleAntenna( ant, cb ) if ( self:IsPowerOn() ) then self.vars.antennas[ant].xmit = not self.vars.antennas[ant].xmit + + if ( cb ) then cb() end end end @@ -668,9 +670,9 @@ RegisterNUICallback( "setAntennaMode", function( data ) end ) RegisterNUICallback( "toggleAntenna", function( data ) - RADAR:ToggleAntenna( data.value ) - - SendNUIMessage( { _type = "antennaXmit", ant = data.value, on = RADAR:IsAntennaTransmitting( data.value ) } ) + RADAR:ToggleAntenna( data.value, function() + SendNUIMessage( { _type = "antennaXmit", ant = data.value, on = RADAR:IsAntennaTransmitting( data.value ) } ) + end ) end ) @@ -713,9 +715,24 @@ function RADAR:Main() -- Work out what has to be sent -- need to find a way to automate this in a loop local av = self:GetActiveVehicles() - local test = { ["front"] = {}, ["rear"] = {} } + data.antennas = { ["front"] = nil, ["rear"] = nil } - if ( self:IsAntennaTransmitting( "front" ) ) then + for ant in UTIL:Values( { "front", "rear" } ) do + if ( self:IsAntennaTransmitting( ant ) ) then + data.antennas[ant] = {} + + for i = 1, 2 do + data.antennas[ant][i] = { speed = "¦¦¦" } + + -- The vehicle data exists for this slot + if ( av[ant][i] ~= nil ) then + data.antennas[ant][i].speed = UTIL:FormatSpeed( self:GetVehSpeedFormatted( av[ant][i].speed ) ) + end + end + end + end + + --[[if ( self:IsAntennaTransmitting( "front" ) ) then if ( av["front"][1] ~= nil ) then test["front"].speed = UTIL:FormatSpeed( self:GetVehSpeedFormatted( av["front"][1].speed ) ) else @@ -741,10 +758,10 @@ function RADAR:Main() else test["rear"].fast = "¦¦¦" end - end + end]] -- Send the update to the NUI side - SendNUIMessage( { _type = "update", speed = data.patrolSpeed, antennas = test } ) + SendNUIMessage( { _type = "update", speed = data.patrolSpeed, antennas = data.antennas } ) self:ResetRadarStage() self:ResetRayTraceState() diff --git a/nui/radar.js b/nui/radar.js index 70ff65b..aa30d5c 100644 --- a/nui/radar.js +++ b/nui/radar.js @@ -137,21 +137,13 @@ function updateDisplays( ps, ants ) { elements.patrolSpeed.html( ps ); - if ( ants["front"].speed != null ) { - elements.antennas["front"].targetSpeed.html( ants["front"].speed ); + for ( let ant in ants ) + { + if ( ants[ant] != null ) { + elements.antennas[ant].targetSpeed.html( ants[ant][0].speed ); + elements.antennas[ant].fast.speed.html( ants[ant][1].speed ); + } } - - if ( ants["front"].fast != null ) { - elements.antennas["front"].fast.speed.html( ants["front"].fast ); - } - - if ( ants["rear"].speed != null ) { - elements.antennas["rear"].targetSpeed.html( ants["rear"].speed ); - } - - if ( ants["rear"].fast != null ) { - elements.antennas["rear"].fast.speed.html( ants["rear"].fast ); - } } // This function is used to send data back through to the LUA side