Radar display now hides when needed

This commit is contained in:
Dan
2019-12-03 22:10:29 +00:00
parent abf5881792
commit 4b316e7c62
3 changed files with 70 additions and 14 deletions

View File

@@ -43,10 +43,16 @@ PLY.vehClassValid = false
------------------------------------------------------------------------]]-- ------------------------------------------------------------------------]]--
RADAR.vars = RADAR.vars =
{ {
-- The display state
displayed = false,
-- The radar's power -- The radar's power
power = false, power = false,
poweringUp = false, poweringUp = false,
-- Whether the radar is hidden or not
hidden = false,
-- These are the settings that are used in the operator menu -- These are the settings that are used in the operator menu
settings = { settings = {
["fastDisplay"] = true, ["fastDisplay"] = true,
@@ -188,6 +194,15 @@ function RADAR:TogglePower()
end end
end end
function RADAR:ToggleDisplayState()
self.vars.displayed = not self.vars.displayed
SendNUIMessage( { _type = "toggleDisplay" } )
end
function RADAR:GetDisplayState()
return self.vars.displayed
end
function RADAR:SetSettingValue( setting, value ) function RADAR:SetSettingValue( setting, value )
if ( value ~= nil ) then if ( value ~= nil ) then
self.vars.settings[setting] = value self.vars.settings[setting] = value
@@ -229,6 +244,21 @@ function RADAR:SetThreadWaitTime( time )
self.vars.threadWaitTime = time self.vars.threadWaitTime = time
end end
function RADAR:SetDisplayHidden( state )
self.vars.hidden = state
end
function RADAR:GetDisplayHidden()
return self.vars.hidden
end
function RADAR:OpenRemote()
if ( not IsPauseMenuActive() ) then
SendNUIMessage( { _type = "openRemote" } )
SetNuiFocus( true, true )
end
end
--[[------------------------------------------------------------------------ --[[------------------------------------------------------------------------
Radar menu functions Radar menu functions
@@ -811,8 +841,7 @@ function RADAR:RunControlManager()
end end
if ( IsDisabledControlJustPressed( 1, 166 ) ) then if ( IsDisabledControlJustPressed( 1, 166 ) ) then
SendNUIMessage( { _type = "openRemote" } ) self:OpenRemote()
SetNuiFocus( true, true )
end end
if ( IsDisabledControlJustPressed( 1, 117 ) ) then if ( IsDisabledControlJustPressed( 1, 117 ) ) then
@@ -840,6 +869,10 @@ end
--[[------------------------------------------------------------------------ --[[------------------------------------------------------------------------
NUI callback NUI callback
------------------------------------------------------------------------]]-- ------------------------------------------------------------------------]]--
RegisterNUICallback( "toggleDisplay", function()
RADAR:ToggleDisplayState()
end )
RegisterNUICallback( "togglePower", function() RegisterNUICallback( "togglePower", function()
RADAR:TogglePower() RADAR:TogglePower()
end ) end )
@@ -887,7 +920,7 @@ end )
--[[------------------------------------------------------------------------ --[[------------------------------------------------------------------------
Main function Main threads
------------------------------------------------------------------------]]-- ------------------------------------------------------------------------]]--
function RADAR:RunDynamicThreadWaitCheck() function RADAR:RunDynamicThreadWaitCheck()
local speed = self:GetPatrolSpeed() local speed = self:GetPatrolSpeed()
@@ -1021,10 +1054,33 @@ Citizen.CreateThread( function()
PLY.inDriverSeat = GetPedInVehicleSeat( PLY.veh, -1 ) == PLY.ped PLY.inDriverSeat = GetPedInVehicleSeat( PLY.veh, -1 ) == PLY.ped
PLY.vehClassValid = GetVehicleClass( PLY.veh ) == 18 PLY.vehClassValid = GetVehicleClass( PLY.veh ) == 18
print( tostring( PLY.ped ) )
print( tostring( PLY.veh ) )
print( tostring( PLY.inDriverSeat ) )
print( tostring( PLY.vehClassValid ) )
Citizen.Wait( 500 ) Citizen.Wait( 500 )
end end
end ) end )
function RADAR:RunDisplayValidationCheck()
if ( ( ( PLY.veh == 0 or ( PLY.veh ~= 0 and not PLY.vehClassValid ) ) and self:GetDisplayState() and not self:GetDisplayHidden() ) or IsPauseMenuActive() and self:GetDisplayState() ) then
self:SetDisplayHidden( true )
SendNUIMessage( { _type = "hideDisplay", state = true } )
elseif ( PLY.veh ~= 0 and PLY.vehClassValid and self:GetDisplayState() and self:GetDisplayHidden() ) then
self:SetDisplayHidden( false )
SendNUIMessage( { _type = "hideDisplay", state = false } )
end
end
Citizen.CreateThread( function()
while ( true ) do
RADAR:RunDisplayValidationCheck()
Citizen.Wait( 0 )
end
end )
-- Update the vehicle pool every 3 seconds -- Update the vehicle pool every 3 seconds
Citizen.CreateThread( function() Citizen.CreateThread( function()
while ( true ) do while ( true ) do

View File

@@ -112,7 +112,7 @@
</div> </div>
<div id="rc"> <div id="rc">
<button id="toggleDisplay" class="rounded_btn toggle_display">TOGGLE DISPLAY</button> <button id="toggleDisplay" data-nuitype="toggleDisplay" class="rounded_btn toggle_display">TOGGLE DISPLAY</button>
<p class="label">FRONT ANTENNA</p> <p class="label">FRONT ANTENNA</p>

View File

@@ -95,20 +95,16 @@ const dirs =
} }
// Hide the radar and remote, this way we can bypass setting a style of 'display: none;' in the HTML file // Hide the radar and remote, this way we can bypass setting a style of 'display: none;' in the HTML file
// elements.radar.hide(); elements.radar.hide();
elements.remote.hide(); elements.remote.hide();
// Create the onclick event for the toggle display button
elements.toggleDisplay.click( function() {
toggleRadar();
} )
elements.pwrBtn.click( function() { elements.pwrBtn.click( function() {
togglePower(); togglePower();
} ) } )
function toggleRadar() function toggleRadar( state )
{ {
// state ? elements.radar.fadeIn() : elements.radar.fadeOut();
elements.radar.fadeToggle(); elements.radar.fadeToggle();
} }
@@ -127,10 +123,8 @@ function setLight( ant, cat, item, state )
let obj = elements.antennas[ant][cat][item]; let obj = elements.antennas[ant][cat][item];
if ( state ) { if ( state ) {
// if ( cat == "dirs" ) { obj.addClass( "active_arrow" ) } else { obj.addClass( "active" ) };
cat == "dirs" ? obj.addClass( "active_arrow" ) : obj.addClass( "active" ); cat == "dirs" ? obj.addClass( "active_arrow" ) : obj.addClass( "active" );
} else { } else {
// if ( cat == "dirs" ) { obj.removeClass( "active_arrow" ) } else { obj.removeClass( "active" ) };
cat == "dirs" ? obj.removeClass( "active_arrow" ) : obj.removeClass( "active" ); cat == "dirs" ? obj.removeClass( "active_arrow" ) : obj.removeClass( "active" );
} }
} }
@@ -349,6 +343,12 @@ window.addEventListener( "message", function( event ) {
case "openRemote": case "openRemote":
toggleRemote(); toggleRemote();
break; break;
case "toggleDisplay":
toggleRadar( item.state );
break;
case "hideDisplay":
item.state ? elements.radar.fadeOut() : elements.radar.fadeIn();
break;
case "radarPower": case "radarPower":
radarPower( item.state ); radarPower( item.state );
break; break;