mirror of
https://github.com/metrostroi-repo/MetrostroiAddon.git
synced 2026-05-02 00:42:29 +00:00
53 lines
2.8 KiB
Lua
53 lines
2.8 KiB
Lua
--------------------------------------------------------------------------------
|
|
-- Реостатный контроллер (ЕКГ-17Б)
|
|
--------------------------------------------------------------------------------
|
|
Metrostroi.DefineSystem("PKG_17B")
|
|
|
|
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 23 24 25 26 27
|
|
[ 1] = { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0 },
|
|
[ 2] = { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0 },
|
|
[ 3] = { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0 },
|
|
[ 4] = { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0 },
|
|
[ 5] = { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
|
|
[ 6] = { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
|
|
[ 7] = { 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
|
|
[ 8] = { 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
|
|
[ 9] = { 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
|
|
[10] = { 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
|
|
[11] = { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
|
|
[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
|
|
[13] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
|
|
[14] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
|
|
[15] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
|
|
[16] = { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
|
|
[17] = { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
|
|
[18] = { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1 },
|
|
}
|
|
self.WrapsAround = true
|
|
Metrostroi.BaseSystems["EKG"].Initialize(self)
|
|
|
|
self.OldPosition = self.Position
|
|
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(...)
|
|
local retval = Metrostroi.BaseSystems["EKG"].Think(self,...)
|
|
|
|
if self.OldPosition ~= math.floor(self.Position+0.5) then
|
|
self.OldPosition = math.floor(self.Position+0.5)
|
|
self.Train:PlayOnce(self.OldPosition%2 > 0 and "prk2" or "prk1","cabin",math.floor(self.Position+0.5))
|
|
end
|
|
return retval
|
|
end
|