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_718_bkcu.lua
g_brzhezinskiy 1d05caf866 init
2021-01-02 12:51:45 +03:00

65 lines
3.0 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
--------------------------------------------------------------------------------
-- 81-718 control circuit switching unit
--------------------------------------------------------------------------------
-- Copyright (C) 2013-2018 Metrostroi Team & FoxWorks Aerospace s.r.o.
-- Contains proprietary code. See license.txt for additional information.
--------------------------------------------------------------------------------
Metrostroi.DefineSystem("81_718_BKCU")
function TRAIN_SYSTEM:Initialize()
self.KM1 = 0 --Контактор-повторитель КР "Назад"
self.KM2 = 0 --Контактор-повторитель КР "Вперёд"
self.KM3 = 0 --Контактор-повторитель КР "0"
self.KM4 = 0 --Реле блокировки постов управления
self.KM5 = 0 --Контактор-повторитель КРУ "Назад"
self.KM6 = 0 --Контактор-повторитель КРУ "Вперёд"
self.KM7 = 0 --Контактор-повторитель КРУ "0"
self.KM8 = 0 --Реле блокировки постов управления
--Контроллер
self.Controller = 0
self.TargetController = 0
end
function TRAIN_SYSTEM:Inputs()
return { "KVUp", "KVDown", "KV1", "KV2", "KV3", "KV4", "KV5", "KV6", "KV7", "ControllerUnlock"}
end
function TRAIN_SYSTEM:Outputs()
return { "Controller" }
end
--if not TURBOSTROI then return end
function TRAIN_SYSTEM:TriggerInput(name,value)
if name == "KVUp" and value > 0 and self.Controller < 3 then
if self.TargetController+1 == 0 and not self.Locker then return end
self.TargetController = self.TargetController + 1
end
if name == "KVDown" and value > 0 and self.TargetController > -3 then
self.TargetController = self.TargetController - 1
end
if name == "KV3" and value > 0 then self.TargetController = 3 end
if name == "KV2" and value > 0 then self.TargetController = 2 end
if name == "KV1" and value > 0 then self.TargetController = 1 end
if name == "KV4" and value > 0 then self.TargetController = 0 end
if name == "KV5" and value > 0 then self.TargetController = -1 end
if name == "KV6" and value > 0 then self.TargetController = -2 end
if name == "KV7" and value > 0 then self.TargetController = -3 end
if name == "ControllerUnlock" then self.Locker = value > 0.5 end
self.ControllerTimer = CurTime()-1
end
function TRAIN_SYSTEM:Think()
if self.ControllerTimer and CurTime() - self.ControllerTimer > 0.03 and self.Controller ~= self.TargetController then
local previousPosition = self.Controller
self.ControllerTimer = CurTime()
if self.TargetController > self.Controller then
self.Controller = self.Controller + 1
else
self.Controller = self.Controller - 1
end
self.Train:PlayOnce("KV_"..previousPosition.."_"..self.Controller, "cabin",0.5)
end
if self.Controller == self.TargetController then
self.ControllerTimer = nil
end
end