From 596d70e72f16c9c11711ff1ab483a47d6f53dea0 Mon Sep 17 00:00:00 2001 From: Michatec Date: Sun, 15 Feb 2026 18:47:56 +0100 Subject: [PATCH] First --- .editorconfig | 16 +++ README.md | 70 +++++++++ client/frameworks.lua | 60 ++++++++ client/hud.lua | 58 ++++++++ client/minimap.lua | 68 +++++++++ client/seatbelt.lua | 62 ++++++++ client/vehicle.lua | 52 +++++++ client/voice.lua | 53 +++++++ fxmanifest.lua | 43 ++++++ server/seatbelt.lua | 3 + shared/init.lua | 120 ++++++++++++++++ stream/circlemap.ytd | Bin 0 -> 13400 bytes web/assets/images/logo.png | Bin 0 -> 44171 bytes web/assets/sounds/buckle.ogg | Bin 0 -> 24565 bytes web/assets/sounds/unbuckle.ogg | Bin 0 -> 21278 bytes web/index.html | 80 +++++++++++ web/js/circles.js | 66 +++++++++ web/js/listener.js | 251 +++++++++++++++++++++++++++++++++ web/style.css | 97 +++++++++++++ 19 files changed, 1099 insertions(+) create mode 100644 .editorconfig create mode 100644 README.md create mode 100644 client/frameworks.lua create mode 100644 client/hud.lua create mode 100644 client/minimap.lua create mode 100644 client/seatbelt.lua create mode 100644 client/vehicle.lua create mode 100644 client/voice.lua create mode 100644 fxmanifest.lua create mode 100644 server/seatbelt.lua create mode 100644 shared/init.lua create mode 100644 stream/circlemap.ytd create mode 100644 web/assets/images/logo.png create mode 100644 web/assets/sounds/buckle.ogg create mode 100644 web/assets/sounds/unbuckle.ogg create mode 100644 web/index.html create mode 100644 web/js/circles.js create mode 100644 web/js/listener.js create mode 100644 web/style.css diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..591ddda --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +end_of_line = lf +insert_final_newline = true +charset = utf-8 +trim_trailing_whitespace = true +indent_size = 2 +indent_style = space + +[*.lua] +indent_size = 4 +indent_style = tab \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..57c7607 --- /dev/null +++ b/README.md @@ -0,0 +1,70 @@ +# xhud + +xhud is a FiveM HUD for ox_core or ESX Legacy. + +## Dependencies + +- ox_lib + +This also requires a framework of your choice between ox_core and es_extended. +Note that if you are using ESX, you will also need esx_status and esx_basicneeds. + +## Download & Installation + +- Go to the [releases page](https://github.com/Michatec/xhud/releases "Releases page") and download the latest release +- Place it inside the `resources` directory +- Add the resource to your `server.cfg` after dependencies to make sure it's started correctly at server startup: + +``` command +ensure xhud +``` + +## Configuration + +You can add these settings directly to your 'server.cfg', or add them to a separate file (i.e. hud.cfg) and call it with exec. **Convars must be set before starting xhud.** + +The values below are defaults and should not be explicitly set unless changing the value. + +``` yaml +### Shared + +# Seabelt system +setr hud:seatbelt false + +### Client + +# Stress Indicator +setr hud:stress false + +# Stamina Indicator +setr hud:stamina false + +# Fuel Indicator +setr hud:fuel false + +# Vehicles speed: "imperial" or "metric" +setr hud:unitsystem "imperial" + +# Radar mode: by default, the radar is only enabled while sitting on a vehicle. +# Set this to true to have it always enabled. This will also enable the map cycler. +setr hud:persistentRadar false + +# Radar shape +setr hud:circleMap true + +# Keys for map cycler and seatbelt +setr hud:cyclemapKey "Z" +setr hud:seatbeltKey "B" + +# Voice Indicator +setr hud:voice false + +# Voice system: "pma-voice" or "saltychat" +setr hud:voiceService "pma-voice" + +# Server logo +setr hud:logo true + +# Version check against GitHub repo (Recommended) +setr hud:versioncheck true +``` diff --git a/client/frameworks.lua b/client/frameworks.lua new file mode 100644 index 0000000..d4a8464 --- /dev/null +++ b/client/frameworks.lua @@ -0,0 +1,60 @@ +if GetResourceState('ox_core'):find('start') then + local file = ('imports/%s.lua'):format(IsDuplicityVersion() and 'server' or 'client') + local import = LoadResourceFile('ox_core', file) + local chunk = assert(load(import, ('@@ox_core/%s'):format(file))) + chunk() + + if player then + PlayerLoaded = true + end + + RegisterNetEvent('ox:playerLoaded', function() + PlayerLoaded = true + InitializeHUD() + end) + + RegisterNetEvent('ox:playerLogout', function() + PlayerLoaded = false + HUD = false + SendMessage('toggleHud', HUD) + end) + + AddEventHandler('ox:statusTick', function(values) + SendMessage('status', values) + end) +end + +if GetResourceState('es_extended'):find('start') then + local ESX = exports['es_extended']:getSharedObject() + if ESX.PlayerLoaded then + PlayerLoaded = true + end + + RegisterNetEvent('esx:playerLoaded') + AddEventHandler('esx:playerLoaded', function() + PlayerLoaded = true + InitializeHUD() + end) + + RegisterNetEvent('esx:onPlayerLogout') + AddEventHandler('esx:onPlayerLogout', function() + PlayerLoaded = false + HUD = false + SendMessage('toggleHud', HUD) + end) + + AddEventHandler('esx_status:onTick', function(data) + local hunger, thirst, stress + for i = 1, #data do + if data[i].name == 'thirst' then thirst = math.floor(data[i].percent) end + if data[i].name == 'hunger' then hunger = math.floor(data[i].percent) end + if data[i].name == 'stress' then stress = math.floor(data[i].percent) end + end + + SendMessage('status', { + hunger = hunger, + thirst = thirst, + stress = GetConvar('hud:stress', 'false') and stress, + }) + end) +end diff --git a/client/hud.lua b/client/hud.lua new file mode 100644 index 0000000..108efbc --- /dev/null +++ b/client/hud.lua @@ -0,0 +1,58 @@ +local curPaused +local lastHealth, lastArmour +local onSurface, isResting + +CreateThread(function() + while true do + if HUD then + local paused = IsPauseMenuActive() + if paused ~= curPaused then + SendMessage('toggleHud', not paused) + curPaused = paused + end + + local curHealth = GetEntityHealth(cache.ped) + if curHealth ~= lastHealth then + SendMessage('setHealth', { + current = curHealth, + max = GetEntityMaxHealth(cache.ped) + }) + lastHealth = curHealth + end + + local curArmour = GetPedArmour(cache.ped) + if curArmour ~= lastArmour then + SendMessage('setArmour', curArmour) + lastArmour = curArmour + end + + if GetConvar('hud:stamina', 'false') == 'true' then + local curStamina = GetPlayerStamina(cache.playerId) + local maxStamina = GetPlayerMaxStamina(cache.playerId) + if curStamina < maxStamina then + SendMessage('setStamina', { + current = curStamina, + max = maxStamina + }) + isResting = false + elseif not isResting then + SendMessage('setStamina', false) + isResting = true + end + end + + local curUnderwaterTime = GetPlayerUnderwaterTimeRemaining(cache.playerId) + if curUnderwaterTime < maxUnderwaterTime then + SendMessage('setOxygen', { + current = curUnderwaterTime, + max = maxUnderwaterTime + }) + onSurface = false + elseif not onSurface then + SendMessage('setOxygen', false) + onSurface = true + end + end + Wait(200) + end +end) diff --git a/client/minimap.lua b/client/minimap.lua new file mode 100644 index 0000000..c24f6a2 --- /dev/null +++ b/client/minimap.lua @@ -0,0 +1,68 @@ +local mapLimit +local mapState = 1 +local persistentRadar = GetConvar('hud:persistentRadar', 'false') + +if GetConvar('hud:circleMap', 'true') == 'true' then + mapLimit = 1 +else + mapLimit = 3 +end + +if persistentRadar == 'true' then + local function setRadarState() + if mapState == 0 then + DisplayRadar(false) + elseif mapState == 1 then + DisplayRadar(true) + SetBigmapActive(false, false) + elseif mapState == 2 then + DisplayRadar(true) + SetBigmapActive(true, false) + elseif mapState == 3 then + DisplayRadar(true) + SetBigmapActive(true, true) + end + end + + CreateThread(function() + repeat Wait(100) until HUD + setRadarState() + end) + + lib.addKeybind({ + name = 'cyclemap', + description = 'Cycle Map', + defaultKey = GetConvar('hud:cyclemapKey', 'Z'), + onPressed = function() + if mapState == mapLimit then + mapState = 0 + else + mapState += 1 + end + + setRadarState() + end, + }) +end + +CreateThread(function() + local minimap = RequestScaleformMovie('minimap') + repeat Wait(100) until HasScaleformMovieLoaded(minimap) + while true do + if HUD then + BeginScaleformMovieMethod(minimap, 'SETUP_HEALTH_ARMOUR') + ScaleformMovieMethodAddParamInt(3) + EndScaleformMovieMethod() + + if persistentRadar == 'false' then + local isRadarHidden = IsRadarHidden() + local isPedUsingAnyVehicle = cache.vehicle and true or false + if isPedUsingAnyVehicle == isRadarHidden then + DisplayRadar(isPedUsingAnyVehicle) + SetRadarZoom(1150) + end + end + end + Wait(500) + end +end) diff --git a/client/seatbelt.lua b/client/seatbelt.lua new file mode 100644 index 0000000..f06cf38 --- /dev/null +++ b/client/seatbelt.lua @@ -0,0 +1,62 @@ +if GetConvar('hud:seatbelt', 'false') == 'true' then + local isBuckled = false + SetFlyThroughWindscreenParams(15.0, 20.0, 17.0, 2000.0) + + local function Buckled() + CreateThread(function() + while isBuckled do + lib.disableControls() + Wait(0) + end + end) + end + + local function Seatbelt(status) + if status then + SendMessage('playSound', 'buckle') + SendMessage('setSeatbelt', { toggled = true, buckled = true }) + SetFlyThroughWindscreenParams(1000.0, 1000.0, 0.0, 0.0) + lib.disableControls:Add(75) + Buckled() + else + SendMessage('playSound', 'unbuckle') + SendMessage('setSeatbelt', { toggled = true, buckled = false }) + SetFlyThroughWindscreenParams(15.0, 20.0, 17.0, 2000.0) + lib.disableControls:Remove(75) + end + isBuckled = status + end + + local inVehicle + CreateThread(function() + while true do + if HUD then + local isPedUsingAnyVehicle = cache.vehicle and true or false + if isPedUsingAnyVehicle ~= inVehicle then + SendMessage('setSeatbelt', { toggled = isPedUsingAnyVehicle }) + if not isPedUsingAnyVehicle and isBuckled then isBuckled = false end + inVehicle = isPedUsingAnyVehicle + end + end + Wait(1000) + end + end) + + lib.addKeybind({ + name = 'seatbelt', + description = 'Toggle Seatbelt', + defaultKey = GetConvar('hud:seatbeltKey', 'B'), + onPressed = function() + if cache.vehicle then + local curVehicleClass = GetVehicleClass(cache.vehicle) + + if curVehicleClass ~= 8 + and curVehicleClass ~= 13 + and curVehicleClass ~= 14 + then + Seatbelt(not isBuckled) + end + end + end, + }) +end diff --git a/client/vehicle.lua b/client/vehicle.lua new file mode 100644 index 0000000..1957f6d --- /dev/null +++ b/client/vehicle.lua @@ -0,0 +1,52 @@ + local electricModels = { + [`airtug`] = true, + [`caddy`] = true, + [`caddy2`] = true, + [`caddy3`] = true, + [`cyclone`] = true, + [`cyclone2`] = true, + [`dilettante`] = true, + [`dilettante2`] = true, + [`imorgon`] = true, + [`iwagen`] = true, + [`khamelion`] = true, + [`neon`] = true, + [`omnisegt`] = true, + [`powersurge`] = true, + [`raiden`] = true, + [`rcbandito`] = true, + [`surge`] = true, + [`tezeract`] = true, + [`virtue`] = true, + [`voltic`] = true, + [`voltic2`] = true, +} + +local offVehicle, model + +CreateThread(function() + while true do + if HUD then + if cache.vehicle then + model = GetEntityModel(cache.vehicle) + + SendMessage('setVehicle', { + speed = { + current = GetEntitySpeed(cache.vehicle), + max = GetVehicleModelMaxSpeed(model) + }, + unitsMultiplier = GetConvar('hud:unitsystem', 'imperial') == 'metric' and 3.6 or 2.236936, + fuel = GetConvar('hud:fuel', 'false') and not IsThisModelABicycle(model) and + GetVehicleFuelLevel(cache.vehicle), + electric = electricModels[model] + }) + + offVehicle = false + elseif not offVehicle then + SendMessage('setVehicle', false) + offVehicle = true + end + end + Wait(200) + end +end) diff --git a/client/voice.lua b/client/voice.lua new file mode 100644 index 0000000..a79ab0d --- /dev/null +++ b/client/voice.lua @@ -0,0 +1,53 @@ +if GetConvar('hud:voice', 'false') == 'true' then + local service = GetConvar('hud:voiceService', 'pma-voice') + + local voiceCon, voiceDisc + local isTalking, isSilent + + CreateThread(function() + while true do + if HUD then + if service == 'pma-voice' then + voiceCon = MumbleIsConnected() + isTalking = NetworkIsPlayerTalking(cache.playerId) + end + + if service == 'pma-voice' and voiceCon + or service == 'saltychat' and voiceCon > 0 + then + if isTalking then + SendMessage('setVoice', isTalking) + isSilent = false + elseif not isSilent then + SendMessage('setVoice', isTalking) + isSilent = true + end + voiceDisc = false + elseif not voiceDisc then + SendMessage('setVoice', 'disconnected') + voiceDisc = true + isSilent = nil + end + end + Wait(200) + end + end) + + if service == 'pma-voice' then + AddEventHandler('pma-voice:setTalkingMode', function(mode) + SendMessage('setVoiceRange', mode) + end) + elseif service == 'saltychat' then + AddEventHandler('SaltyChat_PluginStateChanged', function(_voiceCon) + voiceCon = _voiceCon + end) + + AddEventHandler('SaltyChat_TalkStateChanged', function(_isTalking) + isTalking = _isTalking + end) + + AddEventHandler('SaltyChat_VoiceRangeChanged', function(range, index, count) + SendMessage('setVoiceRange', index) + end) + end +end diff --git a/fxmanifest.lua b/fxmanifest.lua new file mode 100644 index 0000000..0725b5e --- /dev/null +++ b/fxmanifest.lua @@ -0,0 +1,43 @@ +--[[ FX Information ]]-- +fx_version 'cerulean' +use_experimental_fxv2_oal 'yes' +lua54 'yes' +game 'gta5' + +--[[ Resource Information ]]-- +name 'xhud' +version '1.1.1' +description 'A FiveM HUD for ox_core or ESX Legacy.' +license 'MIT License' +author 'Michatec' +repository 'https://github.com/Michatec/xhud' + +--[[ Manifest ]]-- +dependencies { + 'ox_lib' +} + +shared_scripts { + '@ox_lib/init.lua', + 'shared/init.lua' +} + +client_scripts { + 'client/frameworks.lua', + 'client/hud.lua', + 'client/vehicle.lua', + 'client/minimap.lua', + 'client/seatbelt.lua', + 'client/voice.lua' +} + +server_scripts { + 'server/seatbelt.lua' +} + +ui_page 'web/index.html' + +files { + 'web/index.html', + 'web/**/*' +} diff --git a/server/seatbelt.lua b/server/seatbelt.lua new file mode 100644 index 0000000..17a26fe --- /dev/null +++ b/server/seatbelt.lua @@ -0,0 +1,3 @@ +if GetConvar('hud:seatbelt', 'false') == 'true' then + SetConvarReplicated('game_enableFlyThroughWindscreen', 'true') +end diff --git a/shared/init.lua b/shared/init.lua new file mode 100644 index 0000000..af91a84 --- /dev/null +++ b/shared/init.lua @@ -0,0 +1,120 @@ +if not IsDuplicityVersion() then + HUD = false + + local NuiReady = false + RegisterNUICallback('nuiReady', function(_, cb) + NuiReady = true + cb({}) + end) + + ---Easier NUI Messages + ---@param action string + ---@param message any + function SendMessage(action, message) + SendNUIMessage({ + action = action, + message = message + }) + end + + ---Initialize HUD + function InitializeHUD() + DisplayRadar(false) + repeat Wait(100) until PlayerLoaded and NuiReady + + if GetConvar('hud:circleMap', 'true') == 'true' then + RequestStreamedTextureDict('circlemap', false) + repeat Wait(100) until HasStreamedTextureDictLoaded('circlemap') + AddReplaceTexture('platform:/textures/graphics', 'radarmasksm', 'circlemap', 'radarmasksm') + + SetMinimapClipType(1) + SetMinimapComponentPosition('minimap', 'L', 'B', -0.017, -0.02, 0.207, 0.32) + SetMinimapComponentPosition('minimap_mask', 'L', 'B', 0.06, 0.00, 0.132, 0.260) + SetMinimapComponentPosition('minimap_blur', 'L', 'B', 0.005, -0.05, 0.166, 0.257) + else + SetMinimapComponentPosition('minimap', 'L', 'B', 0.0, -0.035, 0.18, 0.21) + SetMinimapComponentPosition('minimap_mask', 'L', 'B', 0.0, -0.05, 0.132, 0.19) + SetMinimapComponentPosition('minimap_blur', 'L', 'B', -0.025, -0.015, 0.3, 0.25) + end + + + SetRadarBigmapEnabled(true, false) + SetRadarBigmapEnabled(false, false) + Wait(500) + + if IsPedSwimming(cache.ped) then + lib.notify({ + id = 'xhud:swimming', + title = 'HUD', + description = 'Looks like you are swimming, please don\'t go underwater while the HUD is loading.', + type = 'inform', + duration = 5000 + }) + local timer = 5000 + while not maxUnderwaterTime do + Wait(1000) + timer -= 1000 + if not IsPedSwimmingUnderWater(cache.ped) then + maxUnderwaterTime = timer == 0 and GetPlayerUnderwaterTimeRemaining(cache.playerId) or nil + else + timer = 5000 + lib.notify({ + id = 'xhud:initializing', + title = 'HUD', + description = 'Please stay on the surface for at least 5 seconds!', + type = 'inform', + duration = 5000 + }) + end + end + else + maxUnderwaterTime = GetPlayerUnderwaterTimeRemaining(cache.playerId) + end + + SendMessage('setPlayerId', cache.serverId) + + if GetConvar('hud:logo', 'true') == 'true' then + SendMessage('setLogo') + end + + HUD = true + SendMessage('toggleHud', HUD) + end + + AddEventHandler('onResourceStart', function(resourceName) + if cache.resource ~= resourceName then return end + InitializeHUD() + end) + + -- Commands + lib.addCommand('togglehud', { + help = 'Toggle the HUD visibility', + }, function() + HUD = not HUD + SendMessage('toggleHud', HUD) + lib.notify({ + id = 'xhud:toggle', + title = 'HUD', + description = HUD and 'HUD enabled' or 'HUD disabled', + type = 'inform', + duration = 2000 + }) + end) + + lib.addCommand('reloadhud', { + help = 'Reload the HUD', + }, function() + InitializeHUD() + lib.notify({ + id = 'xhud:reload', + title = 'HUD', + description = 'HUD reloaded successfully', + type = 'inform', + duration = 2000 + }) + end) +else + if GetConvar('hud:versioncheck', 'true') == 'true' then + lib.versionCheck('michatec/xhud') + end +end diff --git a/stream/circlemap.ytd b/stream/circlemap.ytd new file mode 100644 index 0000000000000000000000000000000000000000..36f860dc722eb78fef61b6510fd7887e61943c88 GIT binary patch literal 13400 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 BGM)ec literal 0 HcmV?d00001 diff --git a/web/assets/images/logo.png b/web/assets/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9bb809461aa1827629b07906dfc47c04a34959aa GIT binary patch literal 44171 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 z

+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 + + + + + + xHUD + + + + + +

+
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+
+
+
+ + + + + + + + diff --git a/web/js/circles.js b/web/js/circles.js new file mode 100644 index 0000000..23be38a --- /dev/null +++ b/web/js/circles.js @@ -0,0 +1,66 @@ +export default { + HealthIndicator: new ProgressBar.Circle("#HealthIndicator", { + strokeWidth: 13, + trailWidth: 13, + duration: 600, + }), + ArmourIndicator: new ProgressBar.Circle("#ArmourIndicator", { + color: "rgb(0, 140, 255)", + trailColor: "rgb(35, 35, 35)", + strokeWidth: 13, + trailWidth: 13, + duration: 600, + }), + StaminaIndicator: new ProgressBar.Circle("#StaminaIndicator", { + color: "rgb(255, 255, 204)", + trailColor: "rgb(35, 35, 35)", + strokeWidth: 13, + trailWidth: 13, + duration: 600, + }), + HungerIndicator: new ProgressBar.Circle("#HungerIndicator", { + color: "rgb(255, 164, 59)", + trailColor: "rgb(35, 35, 35)", + strokeWidth: 13, + trailWidth: 13, + duration: 600, + }), + ThirstIndicator: new ProgressBar.Circle("#ThirstIndicator", { + color: "rgb(0, 140, 170)", + trailColor: "rgb(35, 35, 35)", + strokeWidth: 13, + trailWidth: 13, + duration: 600, + }), + StressIndicator: new ProgressBar.Circle("#StressIndicator", { + color: "rgb(255, 74, 104)", + trailColor: "rgb(35, 35, 35)", + strokeWidth: 13, + trailWidth: 13, + duration: 600, + }), + OxygenIndicator: new ProgressBar.Circle("#OxygenIndicator", { + trailColor: "rgb(35, 35, 35)", + strokeWidth: 13, + trailWidth: 13, + duration: 600, + }), + SpeedIndicator: new ProgressBar.Circle("#SpeedIndicator", { + color: "rgb(255, 255, 255)", + trailColor: "rgb(35, 35, 35)", + strokeWidth: 13, + trailWidth: 13, + duration: 600, + }), + FuelIndicator: new ProgressBar.Circle("#FuelIndicator", { + trailColor: "rgb(35, 35, 35)", + strokeWidth: 13, + trailWidth: 13, + duration: 600, + }), + VoiceIndicator: new ProgressBar.Circle("#VoiceIndicator", { + strokeWidth: 13, + trailWidth: 13, + duration: 100, + }), +}; diff --git a/web/js/listener.js b/web/js/listener.js new file mode 100644 index 0000000..cc433bf --- /dev/null +++ b/web/js/listener.js @@ -0,0 +1,251 @@ +"use strict"; +import Circle from "./circles.js"; + +window.onload = (event) => { + fetch(`https://${GetParentResourceName()}/nuiReady`); + + const Container = document.getElementById("Container"); + const Logo = document.getElementById("Logo"); + const ID = document.getElementById("ID"); + + const Speed = document.getElementById("SpeedIndicator"); + const Fuel = document.getElementById("FuelIndicator"); + const Voice = document.getElementById("VoiceIndicator"); + const Armour = document.getElementById("ArmourIndicator"); + const Stamina = document.getElementById("StaminaIndicator"); + const Oxygen = document.getElementById("OxygenIndicator"); + const Health = document.getElementById("HealthIndicator"); + const Hunger = document.getElementById("HungerIndicator"); + const Thirst = document.getElementById("ThirstIndicator"); + const Stress = document.getElementById("StressIndicator"); + + const HealthIcon = document.getElementById("HealthIcon"); + const SpeedIcon = document.getElementById("SpeedIcon"); + const VoiceIcon = document.getElementById("VoiceIcon"); + const OxygenIcon = document.getElementById("OxygenIcon"); + const FuelIcon = document.getElementById("FuelIcon"); + const HungerIcon = document.getElementById("HungerIcon"); + const ThirstIcon = document.getElementById("ThirstIcon"); + const StressIcon = document.getElementById("StressIcon"); + + const Seatbelt = document.getElementById("SeatbeltIcon"); + const Buckle = document.getElementById("buckle"); + const Unbuckle = document.getElementById("unbuckle"); + + Circle.VoiceIndicator.animate(0.66); + + window.addEventListener("message", function (event) { + let action = event.data.action; + let data = event.data.message; + + if (action == "toggleHud") { + Container.style.display = data ? "flex" : "none"; + } + + if (action == "setLogo") { + Logo.style.display = "block"; + } + + if (action == "setPlayerId") { + if (data) { + ID.style.display = "block"; + ID.textContent = "#" + data; + } else { + ID.style.display = "none"; + } + } + + if (action == "setHealth") { + Health.style.display = "block"; + + let health = (data.current - 100) / (data.max - 100); + health < 0 && (health = 0); + + if (health) { + HealthIcon.classList.remove("fa-skull"); + HealthIcon.classList.add("fa-heart"); + } else { + HealthIcon.classList.remove("fa-heart"); + HealthIcon.classList.add("fa-skull"); + } + + Circle.HealthIndicator.trail.setAttribute( + "stroke", + health ? "rgb(35, 35, 35)" : "rgb(255, 0, 0)" + ); + Circle.HealthIndicator.path.setAttribute( + "stroke", + health ? "rgb(0, 255, 100)" : "rgb(255, 0, 0)" + ); + Circle.HealthIndicator.animate(health); + } + + if (action == "setArmour") { + Armour.style.display = "block"; + Circle.ArmourIndicator.animate(data / 100, function () { + Armour.style.display = data == 0 && "none"; + }); + } + + if (action == "setStamina") { + if (data) { + Stamina.style.display = "block"; + + let stamina = data.current / data.max; + stamina < 0 && (stamina = 0); + stamina < 0.1 && StaminaIcon.classList.toggle("flash"); + + Circle.StaminaIndicator.path.setAttribute( + "stroke", + stamina < 0.1 ? "rgb(255, 0, 0)" : "rgb(255, 255, 200)" + ); + Circle.StaminaIndicator.animate(stamina); + } else { + Circle.StaminaIndicator.animate(1, function () { + Stamina.style.display = "none"; + }); + } + } + + if (action == "setOxygen") { + if (data) { + Oxygen.style.display = "block"; + + let oxygen = data.current / data.max; + oxygen < 0 && (oxygen = 0); + oxygen < 0.1 && OxygenIcon.classList.toggle("flash"); + + Circle.OxygenIndicator.path.setAttribute( + "stroke", + oxygen < 0.1 ? "rgb(255, 0, 0)" : "rgb(0, 140, 255)" + ); + Circle.OxygenIndicator.animate(oxygen); + } else { + Circle.OxygenIndicator.animate(1, function () { + Oxygen.style.display = "none"; + }); + } + } + + if (action == "setVehicle") { + if (data) { + Speed.style.display = "block"; + + let speed = data.speed.current * data.unitsMultiplier; + let maxSpeed = data.speed.max * data.unitsMultiplier; + let percSpeed = (speed / maxSpeed) * 0.7; + let fuel = data.fuel && data.fuel / 100; + + percSpeed > 1 && (percSpeed = 1); + percSpeed >= 0.01 && SpeedIcon.classList.remove("fa-tachometer-alt"); + percSpeed >= 0.01 && (SpeedIcon.textContent = Math.floor(speed)); + percSpeed < 0.01 && SpeedIcon.classList.add("fa-tachometer-alt"); + percSpeed < 0.01 && (SpeedIcon.textContent = ""); + + if (data.electric == true) { + FuelIcon.classList.remove("fa-gas-pump"); + FuelIcon.classList.add("fa-bolt"); + fuel = 1; + } else { + FuelIcon.classList.remove("fa-bolt"); + FuelIcon.classList.add("fa-gas-pump"); + } + + Fuel.style.display = fuel !== false ? "block" : "none"; + fuel <= 0.15 && FuelIcon.classList.toggle("flash"); + Circle.FuelIndicator.path.setAttribute( + "stroke", + fuel > 0.15 ? "rgb(255, 255, 255)" : "rgb(255, 0, 0)" + ); + + Circle.SpeedIndicator.animate(percSpeed); + Circle.FuelIndicator.animate(fuel); + } else { + Circle.SpeedIndicator.animate(0, function () { + Speed.style.display = "none"; + }); + Circle.FuelIndicator.animate(0, function () { + Fuel.style.display = "none"; + }); + } + } + + if (action == "setVoice") { + Voice.style.display = "block"; + if (data == "disconnected") { + VoiceIcon.classList.remove("fa-microphone"); + VoiceIcon.classList.add("fa-times"); + Circle.VoiceIndicator.path.setAttribute("stroke", "rgb(255, 0, 0)"); + Circle.VoiceIndicator.trail.setAttribute("stroke", "rgb(255, 0, 0)"); + } else { + VoiceIcon.classList.remove("fa-times"); + VoiceIcon.classList.add("fa-microphone"); + Circle.VoiceIndicator.path.setAttribute( + "stroke", + data ? "rgb(255, 255, 0)" : "rgb(169, 169, 169)" + ); + Circle.VoiceIndicator.trail.setAttribute("stroke", "rgb(35, 35, 35)"); + } + } + + if (action == "setVoiceRange") { + switch (data) { + case 0: + data = 15; + break; + case 1: + data = 33; + break; + case 2: + data = 66; + break; + case 3: + data = 100; + break; + default: + data = 33; + break; + } + + Circle.VoiceIndicator.animate(data / 100); + } + + if (action == "status") { + Hunger.style.display = "block"; + Thirst.style.display = "block"; + Stress.style.display = data.stress > 5 && "block"; + + data.hunger < 15 && HungerIcon.classList.toggle("flash"); + data.thirst < 15 && ThirstIcon.classList.toggle("flash"); + data.stress > 50 && StressIcon.classList.toggle("flash"); + + Circle.HungerIndicator.animate(data.hunger / 100); + Circle.ThirstIndicator.animate(data.thirst / 100); + Circle.StressIndicator.animate(data.stress / 100, function () { + Stress.style.display = data.stress <= 5 && "none"; + }); + } + + if (action == "setSeatbelt") { + Seatbelt.style.display = data.toggled ? "block" : "none"; + Seatbelt.style.color = data.buckled + ? "rgb(0, 255, 100)" + : "rgb(255, 100, 100)"; + } + + if (action == "playSound") { + switch (data) { + case "unbuckle": + Unbuckle.volume = 0.2; + Unbuckle.play(); + break; + case "buckle": + Buckle.volume = 0.2; + Buckle.play(); + break; + default: + break; + } + } + }); +}; diff --git a/web/style.css b/web/style.css new file mode 100644 index 0000000..ea4a6d6 --- /dev/null +++ b/web/style.css @@ -0,0 +1,97 @@ +body { + margin: 0; +} + +img { + width: 100%; +} + +#Container { + width: 100%; + height: 100%; + overflow: hidden; + margin: 0; + display: none; + flex-direction: column; +} + +#IconsContainer { + margin-top: auto; +} + +#Icons { + display: flex; + gap: 20px; + margin: 20px 50px; +} + +.Icon { + position: relative; + width: 50px; + height: 50px; + border-radius: 50%; + background: rgb(50, 50, 50); + display: none; +} + +.Icon i { + color: white; + position: absolute; + font-size: 16px; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); +} + +/* Customisations */ + +#SpeedIcon:not(.fa-tachometer-alt) { + font-family: sans-serif; + font-size: 18px; +} + +#ID { + font-family: sans-serif; + font-weight: 700; + font-size: 16px; +} + +.outerIcon { + color: #fff; + font-size: 1.2rem; + height: 50px; + text-shadow: 1px 1px 10px #000; + text-align: center; + line-height: 50px; + display: none; +} + +/* Logo */ + +#Logo { + position: absolute; + top: 20px; + right: 40px; + max-width: 128px; + opacity: 0.8; + display: none; +} + +/* Animations */ + +.flash { + -webkit-animation: flash 1s; + animation: flash 1s; +} + +@keyframes flash { + 0% { + opacity: 1; + } + 50% { + opacity: 0.5; + } + 100% { + opacity: 1; + } +}