1
0
mirror of https://github.com/metrostroi-repo/MetrostroiAddon.git synced 2026-05-02 00:42:29 +00:00

Merge pull request #506 from metrostroi-repo/#25

Added ulx.getroutes, ulx.getsigroutes
This commit is contained in:
CrIcKeT98
2022-07-12 02:15:51 +03:00
committed by GitHub

View File

@@ -321,7 +321,7 @@ function ulx.changecab( calling_ply )
if not IsValid(calling_ply) then return end
local Wagon = calling_ply:GetTrain()
if not IsValid(Wagon) then
ULib.tsayError( calling_ply, "You ,ust sit in train",true)
ULib.tsayError( calling_ply, "You must sit in train",true)
return
end
@@ -505,6 +505,75 @@ tps:addParam{ type=ULib.cmds.StringArg, hint="Station or station number", ULib.c
tps:defaultAccess( ULib.ACCESS_ALL )
tps:help( "Teleport between stations." )
function ulx.sroutes( calling_ply, sig )
if not IsValid(calling_ply) then return end
local Train = calling_ply:GetTrain()
if IsValid(Train) and (not sig or sig == "") then
local signal
-- Get train position
local pos = Metrostroi.TrainPositions[Train]
if pos then pos = pos[1] end
-- Get previous ARS section
if pos then
signal = Metrostroi.GetARSJoint(pos.node1,pos.x,Metrostroi.TrainDirections[Train], Train)
end
if signal then
local found = false
for k,v in pairs(signal.Routes or {}) do
if v.RouteName != "" then
found = true
break
end
end
if not found then
ULib.tsayError( calling_ply, "Signal routes not found", true)
return
end
ulx.fancyLog("Routes of signal #s:", signal.Name)
for k,v in pairs(signal.Routes) do
if v.RouteName != "" then
ulx.fancyLog("#s", v.RouteName)
end
end
else
ULib.tsayError( calling_ply, "Signal not found", true)
end
else
local signal = Metrostroi.GetSignalByName(sig)
if not signal and sig then
signal = Metrostroi.GetSignalByName(sig:upper())
end
if not signal then
ULib.tsayError( calling_ply, "Signal not found", true)
return
end
local found = false
for k,v in pairs(signal.Routes or {}) do
if v.RouteName != "" then
found = true
break
end
end
if not found then
ULib.tsayError( calling_ply, "Signal routes not found", true)
return
end
ulx.fancyLog("Routes of signal #s:", signal.Name)
for k,v in pairs(signal.Routes) do
if v.RouteName != "" then
ulx.fancyLog("#s", v.RouteName)
end
end
end
end
local sroutes = ulx.command( CATEGORY_NAME, "ulx sroutes", ulx.sroutes, "!sroutes" )
sroutes:addParam{ type=ULib.cmds.StringArg, hint="Signal", ULib.cmds.optional }
sroutes:defaultAccess( ULib.ACCESS_ALL )
sroutes:help( "Print routes of next signal" )
--Костылииии
function ulx.sopen( calling_ply, arg )
MSignalSayHook(calling_ply,"!sopen "..arg, true)