mirror of
https://github.com/metrostroi-repo/MetrostroiAddon.git
synced 2026-05-02 00:42:29 +00:00
init
This commit is contained in:
120
lua/metrostroi/systems/sys_81_720_rv.lua
Normal file
120
lua/metrostroi/systems/sys_81_720_rv.lua
Normal file
@@ -0,0 +1,120 @@
|
||||
--------------------------------------------------------------------------------
|
||||
-- 81-720 reverser
|
||||
--------------------------------------------------------------------------------
|
||||
-- Copyright (C) 2013-2018 Metrostroi Team & FoxWorks Aerospace s.r.o.
|
||||
-- Contains proprietary code. See license.txt for additional information.
|
||||
--------------------------------------------------------------------------------
|
||||
Metrostroi.DefineSystem("81_720_RV")
|
||||
|
||||
TRAIN_SYSTEM.KROMatrix = {
|
||||
{"KRO9", "10"},
|
||||
{ 1 , 0, 1 },
|
||||
{"KRO11", "12"},
|
||||
{ 0, 0, 1 },
|
||||
{"KRO15", "16"},
|
||||
{ 1, 0, 0 },
|
||||
{"KRO13", "14"},
|
||||
{ 1, 0, 1 },
|
||||
{"KRO1", "2" },
|
||||
{ 1, 0, 1 },
|
||||
{"KRO5", "6" },
|
||||
{ 0, 1, 0 },
|
||||
{"KRO3", "4" },
|
||||
{ 0, 0, 1 },
|
||||
{"KRO7", "8" },
|
||||
{ 1, 1, 0 },
|
||||
}
|
||||
TRAIN_SYSTEM.KRRMatrix = {
|
||||
{"KRR7", "8" },
|
||||
{ 1, 0, 1 },
|
||||
{"KRR3", "4" },
|
||||
{ 0, 0, 1 },
|
||||
{"KRR13", "14"},
|
||||
{ 1, 0, 0 },
|
||||
{"KRR11", "12"},
|
||||
{ 1, 0, 1 },
|
||||
{"KRR1", "2" },
|
||||
{ 1, 0, 1 },
|
||||
{"KRR15", "16"},
|
||||
{ 1, 0, 1 },
|
||||
{"KRR5", "6" },
|
||||
{ 0, 0, 1 },
|
||||
{"KRR9", "10"},
|
||||
{ 1 , 0, 0 },
|
||||
}
|
||||
function TRAIN_SYSTEM:Initialize()
|
||||
self.KROPosition = 0
|
||||
self.KRRPosition = 0
|
||||
self.ChangeSpeed = 0.10
|
||||
|
||||
-- Initialize contacts values
|
||||
for i=1,#self.KROMatrix/2 do
|
||||
local v = self.KROMatrix[i*2-1]
|
||||
self[v[1].."-"..v[2]] = 0
|
||||
end
|
||||
for i=1,#self.KRRMatrix/2 do
|
||||
local v = self.KRRMatrix[i*2-1]
|
||||
self[v[1].."-"..v[2]] = 0
|
||||
end
|
||||
end
|
||||
|
||||
function TRAIN_SYSTEM:Inputs()
|
||||
return { "KROSet", "KRRSet", }
|
||||
end
|
||||
local outputs = { "KROPosition","KRRPosition"}
|
||||
for i=1,#TRAIN_SYSTEM.KROMatrix/2 do
|
||||
local v = TRAIN_SYSTEM.KROMatrix[i*2-1]
|
||||
table.insert(outputs,v[1].."-"..v[2])
|
||||
end
|
||||
for i=1,#TRAIN_SYSTEM.KRRMatrix/2 do
|
||||
local v = TRAIN_SYSTEM.KRRMatrix[i*2-1]
|
||||
table.insert(outputs,v[1].."-"..v[2])
|
||||
end
|
||||
function TRAIN_SYSTEM:Outputs()
|
||||
return outputs
|
||||
end
|
||||
|
||||
function TRAIN_SYSTEM:TriggerInput(name,value)
|
||||
local prevKROPosition = self.KROPosition
|
||||
-- Change position
|
||||
if name == "KROSet" then
|
||||
if (self.Enabled ~= 0) and (math.floor(value) ~= self.KROPosition) then
|
||||
local prevKROPosition = self.KROPosition
|
||||
self.KROPosition = math.floor(value)
|
||||
if self.KROPosition > 1 then self.KROPosition = 1 end
|
||||
if self.KROPosition < -1 then self.KROPosition = -1 end
|
||||
if prevKROPosition ~= self.KROPosition then
|
||||
self.Train:PlayOnce("kro_"..prevKROPosition.."_"..self.KROPosition,"cabin",1)
|
||||
end
|
||||
end
|
||||
end
|
||||
if name == "KRRSet" then
|
||||
if (self.Enabled ~= 0) and (math.floor(value) ~= self.KRRPosition) then
|
||||
local prevKRRPosition = self.KRRPosition
|
||||
self.KRRPosition = math.floor(value)
|
||||
if self.KRRPosition > 1 then self.KRRPosition = 1 end
|
||||
if self.KRRPosition < -1 then self.KRRPosition = -1 end
|
||||
if prevKRRPosition ~= self.KRRPosition then
|
||||
self.Train:PlayOnce("krr_"..prevKRRPosition.."_"..self.KRRPosition,"cabin",1)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function TRAIN_SYSTEM:Think()
|
||||
local Train = self.Train
|
||||
-- Move controller
|
||||
self.Timer = self.Timer or CurTime()
|
||||
-- Update contacts
|
||||
for i=1,#self.KROMatrix/2 do
|
||||
local v = self.KROMatrix[i*2-1]
|
||||
local d = self.KROMatrix[i*2]
|
||||
self[v[1].."-"..v[2]] = d[self.KROPosition+2]
|
||||
end
|
||||
for i=1,#self.KRRMatrix/2 do
|
||||
local v = self.KRRMatrix[i*2-1]
|
||||
local d = self.KRRMatrix[i*2]
|
||||
self[v[1].."-"..v[2]] = d[self.KRRPosition+2]
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user