From 81751966a60a6610d4185ce29058b50f6c9375e9 Mon Sep 17 00:00:00 2001 From: Dan Date: Fri, 12 Mar 2021 21:21:31 +0000 Subject: [PATCH] feat: add power state to sync system --- cl_radar.lua | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/cl_radar.lua b/cl_radar.lua index 781cccb..9bfd44a 100644 --- a/cl_radar.lua +++ b/cl_radar.lua @@ -312,6 +312,7 @@ RADAR.sorting = { -- Used to back up the operator menu and antenna data when the player becomes a passenger RADAR.backupData = { + power = nil, om = nil, antennas = { ["front"] = nil, @@ -325,6 +326,7 @@ RADAR.backupData = { ----------------------------------------------------------------------------------]]-- function RADAR:GetRadarDataForSync() return { + power = self.vars.power, om = self.vars.settings, ["front"] = self.vars.antennas["front"], ["rear"] = self.vars.antennas["rear"] @@ -345,6 +347,10 @@ function RADAR:SetAntennaTableData( ant, data ) end end +function RADAR:GetBackupPowerState() + return self.backupData.power +end + function RADAR:GetBackupOMData() return self.backupData.om end @@ -353,12 +359,16 @@ function RADAR:GetBackupAntennaData( ant ) return self.backupData.antennas[ant] end +function RADAR:SetBackupPowerState( state ) + self.backupData.power = state +end + function RADAR:SetBackupOMData( data ) self.backupData.om = data end function RADAR:SetBackupAntennaData( ant, data ) - UTIL:Notify( "Trying to set backup for antenna: " .. ant .. " (type: " .. type( ant ) .. ") with data: (type: " .. type( data ) .. ")" ) + -- UTIL:Notify( "Trying to set backup for antenna: " .. ant .. " (type: " .. type( ant ) .. ") with data: (type: " .. type( data ) .. ")" ) self.backupData.antennas[ant] = data end @@ -371,6 +381,11 @@ end function RADAR:BackupData() local data = self:GetRadarDataForSync() + -- Backup power state + if ( self:GetBackupPowerState() == nil ) then + self:SetBackupPowerState( data.power ) + end + -- Backup operator menu data if ( self:GetBackupOMData() == nil ) then self:SetBackupOMData( data.om ) @@ -399,8 +414,13 @@ function RADAR:LoadDataFromDriver( data ) self:SetAntennaTableData( ant, data[ant] ) end + -- Set the power state + self:SetPowerState( data.power, true ) + -- Update the display - self:SendSettingUpdate() + if ( data.power ) then + self:SendSettingUpdate() + end end ) end @@ -424,15 +444,33 @@ function RADAR:RestoreFromBackup() -- Restore the antenna data if ( antData ~= nil ) then + UTIL:Notify( "Restoring backup " .. ant .. " antenna data" ) self:SetAntennaTableData( ant, antData ) + UTIL:Log( "Backup " .. ant .. " antenna, data: (xmit: " .. tostring( antData.xmit ) .. ") (mode: " .. tostring( antData.mode ) .. ") (speedLocked: " .. tostring( antData.speedLocked ) .. ") (fast: " .. tostring( antData.fast ) .. ")" ) + -- Clear the backup self:SetBackupAntennaData( ant, nil ) end end + -- Get the power state + local pwrState = self:GetBackupPowerState() + + UTIL:Notify( "Backup power state: " .. tostring( pwrState ) ) + + if ( pwrState ~= nil ) then + self:SetPowerState( pwrState, true ) + + self:SetBackupPowerState( nil ) + end + -- Update the display - self:SendSettingUpdate() + if ( pwrState ) then + Citizen.SetTimeout( 50, function() + self:SendSettingUpdate() + end ) + end end