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

41 lines
1.4 KiB
Lua

--------------------------------------------------------------------------------
-- Failure simulator interface
--------------------------------------------------------------------------------
-- Copyright (C) 2013-2018 Metrostroi Team & FoxWorks Aerospace s.r.o.
-- Contains proprietary code. See license.txt for additional information.
--------------------------------------------------------------------------------
Metrostroi.DefineSystem("FailSim")
TRAIN_SYSTEM.RunEverywhere = true
function TRAIN_SYSTEM:Initialize()
end
function TRAIN_SYSTEM:Outputs()
return {"TrainWireFail"}
end
function TRAIN_SYSTEM:Inputs()
return { "Status", "Fail", "Reset", "TrainWires","ResetTW" }
end
function TRAIN_SYSTEM:TriggerInput(name,value)
if name == "Status" then
if TURBOSTROI then FailSim.Report(nil,"failures") end
elseif name == "Reset" then
if TURBOSTROI then FailSim.Reset() end
elseif name == "Fail" then
if TURBOSTROI then
if math.random() > 0.95 then
local TW = math.floor(math.random(1,self.TrainWires))
print("Generated random train line failure:")
print("[!FAIL!] Outside power in train wire "..TW)
self.TrainWireFail = TW
else FailSim.RandomFailure() end
end
elseif name == "TrainWires" then
self.TrainWires = value
elseif name == "ResetTW" then
self.TrainWireFail = 0
end
end