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