From bdedd8104681ded951e99a37d9d08a28a96aa8bc Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Wed, 8 Oct 2025 23:55:19 +0100 Subject: [PATCH] Reset the ignition state when respawning --- lua/vehicle/extensions/ESBtnBoxIgnition.lua | 92 ++++++++++++--------- 1 file changed, 55 insertions(+), 37 deletions(-) diff --git a/lua/vehicle/extensions/ESBtnBoxIgnition.lua b/lua/vehicle/extensions/ESBtnBoxIgnition.lua index b1458e8..8c9c630 100644 --- a/lua/vehicle/extensions/ESBtnBoxIgnition.lua +++ b/lua/vehicle/extensions/ESBtnBoxIgnition.lua @@ -18,31 +18,40 @@ local ignitionAcc = 1 local ignitionOn = 2 local ignitionRunning = 3 local curIgnitionPos = 0 +local requestToReset = false + +local function setIgnitionOff() + electrics.setIgnitionLevel(ignitionOff) + curIgnitionPos = ignitionOff + controller.mainController.setEngineIgnition(false) +end + +local function setIgnitionAcc() + electrics.setIgnitionLevel(ignitionAcc) + curIgnitionPos = ignitionAcc + controller.mainController.setEngineIgnition(false) +end + +local function setIgnitionOn() + electrics.setIgnitionLevel(ignitionOn) + curIgnitionPos = ignitionOn + controller.mainController.setEngineIgnition(true) +end local function toggleIgnitionAcc() electrics.toggleIgnitionLevelOnUp() - print("Toggle ignition to accessories") if curIgnitionPos == ignitionAcc then - electrics.setIgnitionLevel(ignitionOff) - curIgnitionPos = ignitionOff - controller.mainController.setEngineIgnition(false) + setIgnitionOff() else - electrics.setIgnitionLevel(ignitionAcc) - curIgnitionPos = ignitionAcc - controller.mainController.setEngineIgnition(false) + setIgnitionAcc() end end local function toggleIgnitionOn() - print("Toggle ignition to on") if curIgnitionPos == ignitionOn then - electrics.setIgnitionLevel(ignitionOff) - curIgnitionPos = ignitionOff - controller.mainController.setEngineIgnition(false) + setIgnitionOff() else - electrics.setIgnitionLevel(ignitionOn) - curIgnitionPos = ignitionOn - controller.mainController.setEngineIgnition(true) + setIgnitionOn() end end @@ -62,7 +71,6 @@ local function turnStarter() end local function releaseStarter() - print("releasing starter") if curIgnitionPos < 2 then return end @@ -70,31 +78,41 @@ local function releaseStarter() controller.mainController.setStarter(false) end --- local function update(dt) --- if starterHeld then --- -- Engine cranked long enough? --- if electrics.values.rpm > 400 then --- -- Engine started --- controller.mainController.setStarter(false) --- setIgnitionLevel(ignitionRunning) --- engineRunning = true --- starterHeld = false --- print("Engine started successfully") --- end --- end - --- -- If engine was running and ignition is turned off → shut down --- if engineRunning and curIgnitionPos < ignitionOn then --- controller.mainController.setEngineIgnition(false) --- engineRunning = false --- print("Engine stopped due to ignition OFF/ACC") --- end --- end - M.toggleIgnitionAcc = toggleIgnitionAcc M.toggleIgnitionOn = toggleIgnitionOn M.turnStarter = turnStarter M.releaseStarter = releaseStarter --- M.update = update + +local function restoreIgnition(level) + print("Restoring ignition to " .. level) + if level == ignitionAcc then + print("Setting ignition to acc") + setIgnitionAcc() + elseif level == ignitionOn then + print("Setting ignition to on") + setIgnitionOn() + end +end + +local function onReset() + -- TODO - find a way of checking if the vehicles eletrics are loaded or something + requestToReset = true +end + +local myTimer = 0 +local function updateGFX(dt) + if not requestToReset then + return + end + + myTimer = myTimer + dt + if myTimer > 1 then + restoreIgnition(curIgnitionPos) + myTimer = 0 + end +end + +M.onReset = onReset +M.updateGFX = updateGFX return M \ No newline at end of file