1
0
mirror of https://github.com/metrostroi-repo/MetrostroiAddon.git synced 2026-05-02 00:42:29 +00:00
This commit is contained in:
g_brzhezinskiy
2021-01-02 12:51:45 +03:00
commit 1d05caf866
613 changed files with 337020 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
--------------------------------------------------------------------------------
-- 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