From e9aad541ccab298b3d9604441bccc05d775bce3a Mon Sep 17 00:00:00 2001 From: "Y. Wang" Date: Fri, 2 Jun 2023 15:17:14 +0200 Subject: [PATCH] Fix incorrect speed indicator; include routing info in text HUD --- advtrains/texture.lua | 6 +++--- advtrains/trainhud.lua | 12 ++++++++++++ 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