1
0
mirror of https://github.com/metrostroi-repo/MetrostroiAddon.git synced 2026-05-02 00:42:29 +00:00
Files
MetrostroiAddon/lua/metrostroi/systems/sys_81_722_upi.lua
g_brzhezinskiy 1d05caf866 init
2021-01-02 12:51:45 +03:00

47 lines
1.5 KiB
Lua

--------------------------------------------------------------------------------
-- 81-722 I/O module
--------------------------------------------------------------------------------
-- Copyright (C) 2013-2018 Metrostroi Team & FoxWorks Aerospace s.r.o.
-- Contains proprietary code. See license.txt for additional information.
--------------------------------------------------------------------------------
Metrostroi.DefineSystem("81_722_UPI")
TRAIN_SYSTEM.DontAccelerateSimulation = false
function TRAIN_SYSTEM:Initialize()
self.ChangeTimer = CurTime()
self.ControllerPosition = 0
self.TControllerPosition = 0
self.Emergency = 0
self.Cache = {}
self.OldTime = 0
end
function TRAIN_SYSTEM:Inputs()
return { }
end
function TRAIN_SYSTEM:Outputs()
return { "Emergency", "ControllerPosition" }
end
--if not TURBOSTROI then return end
function TRAIN_SYSTEM:TriggerInput(name,value)
end
function TRAIN_SYSTEM:Think()
local Train = self.Train
local CPos = Train.Panel.Controller
if self.TControllerPosition ~= CPos then
if self.TControllerPosition<CPos and CPos>0 or self.TControllerPosition>CPos and CPos<0 or CPos==0 then
table.insert(self.Cache,{CPos,CurTime()+0.2})
else
table.insert(self.Cache,{CPos,CurTime()+0.05})
end
self.TControllerPosition = CPos
end
if #self.Cache>0 and CurTime()-self.Cache[1][2] > 0 then
self.ControllerPosition = self.Cache[1][1] or 0
table.remove(self.Cache,1)
end
self.Emergency = CPos == -3 and 1 or 0
end