diff --git a/client/vehicle/main.lua b/client/vehicle/main.lua
index ca2e960..394d5a9 100644
--- a/client/vehicle/main.lua
+++ b/client/vehicle/main.lua
@@ -1,5 +1,6 @@
local cruiseControlStatus = false
local isPassenger = false
+local isSeatbeltOn = false
local function SetCruiseControlState(state)
cruiseControlStatus = state
@@ -9,6 +10,16 @@ exports("CruiseControlState", function(...)
SetCruiseControlState(...)
end)
+local function SetSeatbeltState(state)
+ isSeatbeltOn = state
+end
+
+exports("SeatbeltState",function(...)
+ SetSeatbeltState(...)
+end)
+
+
+
if not Config.Disable.Vehicle then
local inVehicle, vehicleType, playerPos = false, nil, nil
local currentMileage = 0
@@ -100,6 +111,7 @@ if not Config.Disable.Vehicle then
values.damage = engineHealth
values.vehType = vehicleType
values.driver = HUD.Data.Driver
+ values.defaultIndicators.seatbelt = isSeatbeltOn
values.defaultIndicators.tempomat = cruiseControlStatus
values.defaultIndicators.door = doorLockStatus
values.defaultIndicators.light = lightState
diff --git a/shared/config.lua b/shared/config.lua
index 6bc68d2..5883e8f 100644
--- a/shared/config.lua
+++ b/shared/config.lua
@@ -37,6 +37,7 @@ Config = {
["speedo-outer-circle-color"] = "#242222",
["speedo-nooble-color"] = "#48a3cb",
["speedo-nooble-container"] = "#1f2937",
+ ["speedo-seatbelt-icon-color"] = "#D22B2B"
},
},
Disable = {
@@ -48,6 +49,7 @@ Config = {
Money = false,
Info = false,
IndicatorSound = false, --vehicle index sound
+ IndicatorSeatbeltSound = false, --seatbelt sound
VehicleHandlers = false, -- Engine toggle, Indicator lights
MinimapOnFoot = false,
Needle = true,
diff --git a/web/DefaultDatas.js b/web/DefaultDatas.js
index 133285d..30ead83 100644
--- a/web/DefaultDatas.js
+++ b/web/DefaultDatas.js
@@ -14,6 +14,7 @@ let disableDefaultConfig = {
Money: false,
Info: false,
IndicatorSound: false,
+ IndicatorSeatbeltSound: false,
VehicleHandlers: false,
MinimapOnFoot: false,
Needle: false,
@@ -223,6 +224,10 @@ const speedoDefaultColors = [
name: "speedo-nooble-container",
color: "#1f2937",
},
+ {
+ name: "speedo-seatbelt-icon-color",
+ color: "#D22B2B"
+ }
];
const allColors = {
diff --git a/web/src/assets/Components/SettingsPanel/SettingsPanel.jsx b/web/src/assets/Components/SettingsPanel/SettingsPanel.jsx
index 69a3d48..f4f8678 100644
--- a/web/src/assets/Components/SettingsPanel/SettingsPanel.jsx
+++ b/web/src/assets/Components/SettingsPanel/SettingsPanel.jsx
@@ -147,7 +147,7 @@ export const SettingsPanel = () =>{
return(
<>
-
+
diff --git a/web/src/assets/Components/SettingsPanel/pages/SpeedoTemplate.jsx b/web/src/assets/Components/SettingsPanel/pages/SpeedoTemplate.jsx
index a829161..f4f7936 100644
--- a/web/src/assets/Components/SettingsPanel/pages/SpeedoTemplate.jsx
+++ b/web/src/assets/Components/SettingsPanel/pages/SpeedoTemplate.jsx
@@ -16,7 +16,7 @@ export const SpeedoTemplate = (props) => {
return (
-
+
{(progress, i) =>
@@ -34,4 +34,4 @@ export const SpeedoTemplate = (props) => {
);
-};
\ No newline at end of file
+};
diff --git a/web/src/assets/Components/Speedo.css b/web/src/assets/Components/Speedo.css
index 0fea3ef..0751c74 100644
--- a/web/src/assets/Components/Speedo.css
+++ b/web/src/assets/Components/Speedo.css
@@ -24,6 +24,7 @@
--speedo-nooble-color: #48a3cb;
--speedo-nooble-container: #1f2937;
--speedo-scale-size: 0.9;
+ --speedo-seatbelt-icon-color: #D22B2B;
}
/* SVG DONT'T TOUCH PLEASE THANK YOU */
@@ -162,6 +163,10 @@
fill: var(--fuel-icon-color);
}
+.seatbeltIconColor{
+ fill: var(--speedo-seatbelt-icon-color);
+}
+
.indexColor {
fill: var(--left-right-index-color);
}
diff --git a/web/src/assets/Components/Speedo.jsx b/web/src/assets/Components/Speedo.jsx
index 186cec9..b118390 100644
--- a/web/src/assets/Components/Speedo.jsx
+++ b/web/src/assets/Components/Speedo.jsx
@@ -2,6 +2,9 @@ import './Speedo.css'
import {createEffect, createSignal, onCleanup, Show} from "solid-js";
import Sound from '../IndicatorSound.mp3'
+import SeatbeltAlert from '../SeatbeltAlertSound.mp3';
+import SeatbeltOff from '../SeatbeltOffSound.mp3';
+import SeatbeltOn from '../SeatbeltOnSound.mp3';
import {useHudStorageState} from "../Contexts/HudStorage";
import {useSettingsStorageState} from "../Contexts/SettingsStorage";
@@ -129,6 +132,9 @@ const LightIcon = (props) =>