Reset the ignition state when respawning
This commit is contained in:
@@ -18,31 +18,40 @@ local ignitionAcc = 1
|
|||||||
local ignitionOn = 2
|
local ignitionOn = 2
|
||||||
local ignitionRunning = 3
|
local ignitionRunning = 3
|
||||||
local curIgnitionPos = 0
|
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()
|
local function toggleIgnitionAcc()
|
||||||
electrics.toggleIgnitionLevelOnUp()
|
electrics.toggleIgnitionLevelOnUp()
|
||||||
print("Toggle ignition to accessories")
|
|
||||||
if curIgnitionPos == ignitionAcc then
|
if curIgnitionPos == ignitionAcc then
|
||||||
electrics.setIgnitionLevel(ignitionOff)
|
setIgnitionOff()
|
||||||
curIgnitionPos = ignitionOff
|
|
||||||
controller.mainController.setEngineIgnition(false)
|
|
||||||
else
|
else
|
||||||
electrics.setIgnitionLevel(ignitionAcc)
|
setIgnitionAcc()
|
||||||
curIgnitionPos = ignitionAcc
|
|
||||||
controller.mainController.setEngineIgnition(false)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function toggleIgnitionOn()
|
local function toggleIgnitionOn()
|
||||||
print("Toggle ignition to on")
|
|
||||||
if curIgnitionPos == ignitionOn then
|
if curIgnitionPos == ignitionOn then
|
||||||
electrics.setIgnitionLevel(ignitionOff)
|
setIgnitionOff()
|
||||||
curIgnitionPos = ignitionOff
|
|
||||||
controller.mainController.setEngineIgnition(false)
|
|
||||||
else
|
else
|
||||||
electrics.setIgnitionLevel(ignitionOn)
|
setIgnitionOn()
|
||||||
curIgnitionPos = ignitionOn
|
|
||||||
controller.mainController.setEngineIgnition(true)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -62,7 +71,6 @@ local function turnStarter()
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function releaseStarter()
|
local function releaseStarter()
|
||||||
print("releasing starter")
|
|
||||||
if curIgnitionPos < 2 then
|
if curIgnitionPos < 2 then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@@ -70,31 +78,41 @@ local function releaseStarter()
|
|||||||
controller.mainController.setStarter(false)
|
controller.mainController.setStarter(false)
|
||||||
end
|
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.toggleIgnitionAcc = toggleIgnitionAcc
|
||||||
M.toggleIgnitionOn = toggleIgnitionOn
|
M.toggleIgnitionOn = toggleIgnitionOn
|
||||||
M.turnStarter = turnStarter
|
M.turnStarter = turnStarter
|
||||||
M.releaseStarter = releaseStarter
|
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
|
return M
|
||||||
Reference in New Issue
Block a user