mirror of
https://github.com/Michatec/wk_wars2x.git
synced 2026-04-01 00:16:27 +02:00
Antenna modes now displayed, optimisations
This commit is contained in:
16
cl_radar.lua
16
cl_radar.lua
@@ -399,10 +399,12 @@ function RADAR:GetAntennaMode( ant )
|
||||
return self.vars.antennas[ant].mode
|
||||
end
|
||||
|
||||
function RADAR:SetAntennaMode( ant, mode )
|
||||
function RADAR:SetAntennaMode( ant, mode, cb )
|
||||
if ( type( mode ) == "number" ) then
|
||||
if ( mode >= 0 and mode <= 3 ) then
|
||||
if ( mode >= 0 and mode <= 3 and self:IsAntennaTransmitting( ant ) ) then
|
||||
self.vars.antennas[ant].mode = mode
|
||||
|
||||
if ( cb ) then cb() end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -645,7 +647,7 @@ function RADAR:RunControlManager()
|
||||
end
|
||||
|
||||
-- 'Num8' key, toggles front antenna
|
||||
if ( IsDisabledControlJustPressed( 1, 111 ) ) then
|
||||
--[[ if ( IsDisabledControlJustPressed( 1, 111 ) ) then
|
||||
self:ToggleAntenna( "front" )
|
||||
UTIL:Notify( "Front antenna toggled." )
|
||||
end
|
||||
@@ -654,7 +656,7 @@ function RADAR:RunControlManager()
|
||||
if ( IsDisabledControlJustPressed( 1, 112 ) ) then
|
||||
self:ToggleAntenna( "rear" )
|
||||
UTIL:Notify( "Rear antenna toggled." )
|
||||
end
|
||||
end ]]
|
||||
end
|
||||
|
||||
|
||||
@@ -666,12 +668,14 @@ RegisterNUICallback( "closeRemote", function( data )
|
||||
end )
|
||||
|
||||
RegisterNUICallback( "setAntennaMode", function( data )
|
||||
RADAR:SetAntennaMode( data.value, tonumber( data.mode ) )
|
||||
RADAR:SetAntennaMode( data.value, tonumber( data.mode ), function()
|
||||
SendNUIMessage( { _type = "antennaMode", ant = data.value, mode = tonumber( data.mode ) } )
|
||||
end )
|
||||
end )
|
||||
|
||||
RegisterNUICallback( "toggleAntenna", function( data )
|
||||
RADAR:ToggleAntenna( data.value, function()
|
||||
SendNUIMessage( { _type = "antennaXmit", ant = data.value, on = RADAR:IsAntennaTransmitting( data.value ) } )
|
||||
SendNUIMessage( { _type = "antennaXmit", ant = data.value, on = RADAR:IsAntennaTransmitting( data.value ), mode = RADAR:GetAntennaMode( data.value ) } )
|
||||
end )
|
||||
end )
|
||||
|
||||
|
||||
64
nui/radar.js
64
nui/radar.js
@@ -23,6 +23,7 @@ const elements =
|
||||
antennas: {
|
||||
front: {
|
||||
targetSpeed: $( "#frontSpeed" ),
|
||||
fastSpeed: $( "#frontFastSpeed" ),
|
||||
|
||||
dirs: {
|
||||
fwd: $( "#frontDirAway" ),
|
||||
@@ -38,7 +39,6 @@ const elements =
|
||||
},
|
||||
|
||||
fast: {
|
||||
speed: $( "#frontFastSpeed" ),
|
||||
fastLabel: $( "#frontFastLabel" ),
|
||||
lockLabel: $( "#frontFastLockLabel" )
|
||||
}
|
||||
@@ -46,6 +46,7 @@ const elements =
|
||||
|
||||
rear: {
|
||||
targetSpeed: $( "#rearSpeed" ),
|
||||
fastSpeed: $( "#rearFastSpeed" ),
|
||||
|
||||
dirs: {
|
||||
fwd: $( "#rearDirTowards" ),
|
||||
@@ -61,7 +62,6 @@ const elements =
|
||||
},
|
||||
|
||||
fast: {
|
||||
speed: $( "#rearFastSpeed" ),
|
||||
fastLabel: $( "#rearFastLabel" ),
|
||||
lockLabel: $( "#rearFastLockLabel" )
|
||||
}
|
||||
@@ -92,7 +92,7 @@ const remoteButtons =
|
||||
}
|
||||
}
|
||||
|
||||
const antennaModes =
|
||||
const modes =
|
||||
{
|
||||
off: 0,
|
||||
same: 1,
|
||||
@@ -113,14 +113,44 @@ elements.remote.hide();
|
||||
|
||||
// Create the onclick event for the toggle display button
|
||||
remoteButtons.toggleDisplay.click( function() {
|
||||
elements.radar.fadeToggle();
|
||||
toggleRadar();
|
||||
} )
|
||||
|
||||
function toggleRadar()
|
||||
{
|
||||
elements.radar.fadeToggle();
|
||||
}
|
||||
|
||||
function toggleRemote()
|
||||
{
|
||||
elements.remote.toggle();
|
||||
}
|
||||
|
||||
function clearModes( ant )
|
||||
{
|
||||
for ( let i in elements.antennas[ant].modes )
|
||||
{
|
||||
elements.antennas[ant].modes[i].removeClass( "active" );
|
||||
}
|
||||
}
|
||||
|
||||
function clearDirs( ant )
|
||||
{
|
||||
for ( let i in elements.antennas[ant].dirs )
|
||||
{
|
||||
elements.antennas[ant].dirs[i].removeClass( "active_arrow" );
|
||||
}
|
||||
}
|
||||
|
||||
function clearAntenna( ant )
|
||||
{
|
||||
clearModes( ant );
|
||||
clearDirs( ant );
|
||||
|
||||
elements.antennas[ant].targetSpeed.html( "¦¦¦" );
|
||||
elements.antennas[ant].fastSpeed.html( "¦¦¦" );
|
||||
}
|
||||
|
||||
function setLight( ant, cat, item, state )
|
||||
{
|
||||
let obj = elements.antennas[ant][cat][item];
|
||||
@@ -132,18 +162,25 @@ function setLight( ant, cat, item, state )
|
||||
}
|
||||
}
|
||||
|
||||
function setAntennaXmit( ant, state )
|
||||
function setAntennaXmit( ant, state, mode )
|
||||
{
|
||||
setLight( ant, "modes", "xmit", state );
|
||||
|
||||
if ( !state ) {
|
||||
elements.antennas[ant].targetSpeed.html( "¦¦¦" );
|
||||
elements.antennas[ant].fast.speed.html( "HLd" );
|
||||
clearAntenna( ant );
|
||||
elements.antennas[ant].fastSpeed.html( "HLd" );
|
||||
} else {
|
||||
elements.antennas[ant].fast.speed.html( "¦¦¦" );
|
||||
elements.antennas[ant].fastSpeed.html( "¦¦¦" );
|
||||
setAntennaMode( ant, mode );
|
||||
}
|
||||
}
|
||||
|
||||
function setAntennaMode( ant, mode )
|
||||
{
|
||||
setLight( ant, "modes", "same", mode == modes.same );
|
||||
setLight( ant, "modes", "opp", mode == modes.opp );
|
||||
}
|
||||
|
||||
function setAntennaDirs( ant, dir, fastDir )
|
||||
{
|
||||
setLight( ant, "dirs", "fwd", dir == dirs.closing );
|
||||
@@ -160,8 +197,10 @@ function updateDisplays( ps, ants )
|
||||
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 );
|
||||
let e = elements.antennas[ant];
|
||||
|
||||
e.targetSpeed.html( ants[ant][0].speed );
|
||||
e.fastSpeed.html( ants[ant][1].speed );
|
||||
|
||||
setAntennaDirs( ant, ants[ant][0].dir, ants[ant][1].dir );
|
||||
}
|
||||
@@ -216,7 +255,10 @@ window.addEventListener( "message", function( event ) {
|
||||
updateDisplays( item.speed, item.antennas );
|
||||
break;
|
||||
case "antennaXmit":
|
||||
setAntennaXmit( item.ant, item.on );
|
||||
setAntennaXmit( item.ant, item.on, item.on ? item.mode : 0 );
|
||||
break;
|
||||
case "antennaMode":
|
||||
setAntennaMode( item.ant, item.mode );
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user