Reset the ignition state when respawning

This commit is contained in:
2025-10-08 23:55:19 +01:00
parent 829056d698
commit bdedd81046
+55 -37
View File
@@ -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