29 lines
811 B
Lua
29 lines
811 B
Lua
-- sends a train to its next station if its in automatic
|
|
function toNextStation(t)
|
|
local l = 0
|
|
for _ in pairs(t.schedule.records) do l = l + 1 end
|
|
|
|
if not t.manual_mode and l > 1 then
|
|
local s = t.schedule
|
|
s.current = math.fmod(s.current, l) + 1
|
|
t.schedule = s
|
|
t.manual_mode = false
|
|
return true
|
|
end
|
|
return false
|
|
end
|
|
|
|
|
|
script.on_event("go-to-next-station", function(event)
|
|
local player = game.players[event.player_index]
|
|
-- 2 alternatives: player is mousing over train or inside a train.
|
|
if player.selected and player.selected.train then
|
|
if toNextStation(player.selected.train) then return end
|
|
end
|
|
|
|
if player.vehicle and player.vehicle.train then
|
|
if toNextStation(player.vehicle.train) then return end
|
|
end
|
|
end)
|
|
|
|
|