-------------------------------------------------------------------------------- -- Position switch for 81-502/81-703/81-707 (ЕКГ-18A) -------------------------------------------------------------------------------- -- Copyright (C) 2013-2018 Metrostroi Team & FoxWorks Aerospace s.r.o. -- Contains proprietary code. See license.txt for additional information. -------------------------------------------------------------------------------- Metrostroi.DefineSystem("EKG_18A") function TRAIN_SYSTEM:Initialize() -- Rheostat configuration self.Configuration = { -- ## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 [ 1] = { 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1 },-- PS [ 2] = { 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0 },-- PP [ 3] = { 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1 },-- PT1 [ 4] = { 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0 },-- PT2 } self.WrapsAround = true Metrostroi.BaseSystems["EKG"].Initialize(self) -- Rate of rotation (positions per second self.RotationRate = 1.0/0.30 -- Реле РПУ self.Train:LoadSystem("RPU","Relay","RPU-3",{normal_level = 2}) self.PMPos = 0 end function TRAIN_SYSTEM:Inputs(...) return Metrostroi.BaseSystems["EKG"].Inputs(self,...) end function TRAIN_SYSTEM:Outputs(...) return Metrostroi.BaseSystems["EKG"].Outputs(self,...) end function TRAIN_SYSTEM:TriggerInput(...) return Metrostroi.BaseSystems["EKG"].TriggerInput(self,...) end function TRAIN_SYSTEM:Think(...) if self.OldSelectedPosition ~= self.SelectedPosition then self.Train:PlayOnce("pkg",tostring(self.SelectedPosition),1) self.OldSelectedPosition = self.SelectedPosition end self.PMPos = (1.25 < self.Position and self.Position < 1.75 or 3.25 < self.Position and self.Position < 3.75) and 1 or 0 return Metrostroi.BaseSystems["EKG"].Think(self,...) end