mirror of
https://github.com/Michatec/wk_wars2x.git
synced 2026-04-01 08:26:27 +02:00
feat: add power state to sync system
This commit is contained in:
44
cl_radar.lua
44
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
|
-- Used to back up the operator menu and antenna data when the player becomes a passenger
|
||||||
RADAR.backupData = {
|
RADAR.backupData = {
|
||||||
|
power = nil,
|
||||||
om = nil,
|
om = nil,
|
||||||
antennas = {
|
antennas = {
|
||||||
["front"] = nil,
|
["front"] = nil,
|
||||||
@@ -325,6 +326,7 @@ RADAR.backupData = {
|
|||||||
----------------------------------------------------------------------------------]]--
|
----------------------------------------------------------------------------------]]--
|
||||||
function RADAR:GetRadarDataForSync()
|
function RADAR:GetRadarDataForSync()
|
||||||
return {
|
return {
|
||||||
|
power = self.vars.power,
|
||||||
om = self.vars.settings,
|
om = self.vars.settings,
|
||||||
["front"] = self.vars.antennas["front"],
|
["front"] = self.vars.antennas["front"],
|
||||||
["rear"] = self.vars.antennas["rear"]
|
["rear"] = self.vars.antennas["rear"]
|
||||||
@@ -345,6 +347,10 @@ function RADAR:SetAntennaTableData( ant, data )
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function RADAR:GetBackupPowerState()
|
||||||
|
return self.backupData.power
|
||||||
|
end
|
||||||
|
|
||||||
function RADAR:GetBackupOMData()
|
function RADAR:GetBackupOMData()
|
||||||
return self.backupData.om
|
return self.backupData.om
|
||||||
end
|
end
|
||||||
@@ -353,12 +359,16 @@ function RADAR:GetBackupAntennaData( ant )
|
|||||||
return self.backupData.antennas[ant]
|
return self.backupData.antennas[ant]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function RADAR:SetBackupPowerState( state )
|
||||||
|
self.backupData.power = state
|
||||||
|
end
|
||||||
|
|
||||||
function RADAR:SetBackupOMData( data )
|
function RADAR:SetBackupOMData( data )
|
||||||
self.backupData.om = data
|
self.backupData.om = data
|
||||||
end
|
end
|
||||||
|
|
||||||
function RADAR:SetBackupAntennaData( ant, data )
|
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
|
self.backupData.antennas[ant] = data
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -371,6 +381,11 @@ end
|
|||||||
function RADAR:BackupData()
|
function RADAR:BackupData()
|
||||||
local data = self:GetRadarDataForSync()
|
local data = self:GetRadarDataForSync()
|
||||||
|
|
||||||
|
-- Backup power state
|
||||||
|
if ( self:GetBackupPowerState() == nil ) then
|
||||||
|
self:SetBackupPowerState( data.power )
|
||||||
|
end
|
||||||
|
|
||||||
-- Backup operator menu data
|
-- Backup operator menu data
|
||||||
if ( self:GetBackupOMData() == nil ) then
|
if ( self:GetBackupOMData() == nil ) then
|
||||||
self:SetBackupOMData( data.om )
|
self:SetBackupOMData( data.om )
|
||||||
@@ -399,8 +414,13 @@ function RADAR:LoadDataFromDriver( data )
|
|||||||
self:SetAntennaTableData( ant, data[ant] )
|
self:SetAntennaTableData( ant, data[ant] )
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Set the power state
|
||||||
|
self:SetPowerState( data.power, true )
|
||||||
|
|
||||||
-- Update the display
|
-- Update the display
|
||||||
self:SendSettingUpdate()
|
if ( data.power ) then
|
||||||
|
self:SendSettingUpdate()
|
||||||
|
end
|
||||||
end )
|
end )
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -424,15 +444,33 @@ function RADAR:RestoreFromBackup()
|
|||||||
|
|
||||||
-- Restore the antenna data
|
-- Restore the antenna data
|
||||||
if ( antData ~= nil ) then
|
if ( antData ~= nil ) then
|
||||||
|
UTIL:Notify( "Restoring backup " .. ant .. " antenna data" )
|
||||||
self:SetAntennaTableData( ant, antData )
|
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
|
-- Clear the backup
|
||||||
self:SetBackupAntennaData( ant, nil )
|
self:SetBackupAntennaData( ant, nil )
|
||||||
end
|
end
|
||||||
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
|
-- Update the display
|
||||||
self:SendSettingUpdate()
|
if ( pwrState ) then
|
||||||
|
Citizen.SetTimeout( 50, function()
|
||||||
|
self:SendSettingUpdate()
|
||||||
|
end )
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user