aboutsummaryrefslogtreecommitdiff
path: root/advtrains
diff options
context:
space:
mode:
Diffstat (limited to 'advtrains')
-rw-r--r--advtrains/texture.lua6
-rw-r--r--advtrains/trainhud.lua12
2 files changed, 15 insertions, 3 deletions
diff --git a/advtrains/texture.lua b/advtrains/texture.lua
index 1ecc91b..e6d83b0 100644
--- a/advtrains/texture.lua
+++ b/advtrains/texture.lua
@@ -125,12 +125,12 @@ local function add_segmentbar(n, self, x, y, w, h, m, c, ...)
local bs = ss - m
for k = 1, argc, 3 do
local lower, upper, fill = argv[k], argv[k+1], argv[k+2]
- lower = math.max(0, math.floor(lower)+1)
+ lower = math.max(0, math.floor(lower))+1
upper = math.min(c, math.floor(upper))
- if lower < upper then
+ if lower <= upper then
local args = {x, y, w, h, fill}
args[n+2] = bs
- args[n] = args[n] + ss*lower
+ args[n] = args[n] + ss*(lower-1)
for i = lower, upper do
self:add_fill(unpack(args))
args[n] = args[n] + ss
diff --git a/advtrains/trainhud.lua b/advtrains/trainhud.lua
index b8eb512..b2744ad 100644
--- a/advtrains/trainhud.lua
+++ b/advtrains/trainhud.lua
@@ -225,6 +225,18 @@ function advtrains.hud_train_format(train, flip)
if lzb and lzb.checkpoints then
local oc = lzb.checkpoints
for i = 1, #oc do
+ if advtrains.interlocking then
+ local udata = oc[i].udata
+ if udata and udata.signal_pos then
+ local sigd = advtrains.interlocking.db.get_sigd_for_signal(udata.signal_pos)
+ if sigd then
+ local tcbs = advtrains.interlocking.db.get_tcbs(sigd) or {}
+ if tcbs.route_rsn then
+ table.insert(st, ("%s: %s"):format(minetest.pos_to_string(sigd.p), tcbs.route_rsn))
+ end
+ end
+ end
+ end
local spd = oc[i].speed
spd = advtrains.speed.min(spd, train.speed_restriction)
if spd == -1 then spd = nil end