Reset the ignition state when respawning
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user