aboutsummaryrefslogtreecommitdiff
path: root/advtrains_interlocking/signal_api.lua
diff options
context:
space:
mode:
_G.advtrains.interlocking = {}require("ars")local arstb = {{ l
authorY. Wang <yw05@forksworld.de>2022-08-13 16:16:17 +0200
committerY. Wang <yw05@forksworld.de>2023-03-23 20:06:02 +0100
commita4abbf8824f893558861bff2893181ae02ed284d (patch)
tree2aca28114679f5d52c52b868855505c1a56b500e /advtrains_interlocking/signal_api.lua
parent6ae0615309bd5862a7480686ccba01a24b69356b (diff)
-rw-r--r--advtrains_interlocking/signal_api.lua6
1 files changed, 4 insertions, 2 deletions
diff --git a/advtrains_interlocking/signal_api.lua b/advtrains_interlocking/signal_api.lua
index 1c6ed27..e615692 100644
--- a/advtrains_interlocking/signal_api.lua
+++ b/advtrains_interlocking/signal_api.lua
@@ -227,8 +227,10 @@ function advtrains.interlocking.signal_on_aspect_changed(pos)
local ipts, iconn = advtrains.interlocking.db.get_ip_by_signalpos(pos)
if not ipts then return end
local ipos = minetest.string_to_pos(ipts)
-
- advtrains.invalidate_all_paths_ahead(ipos)
+
+ -- FIXME: invalidate_all_paths_ahead does not appear to always work as expected
+ --advtrains.invalidate_all_paths_ahead(ipos)
+ minetest.after(0, advtrains.invalidate_all_paths, ipos)
end
function advtrains.interlocking.signal_rc_handler(pos, node, player, itemstack, pointed_thing)
an class="hl opt">("reads back and forth", function () assert.equals(il.ars_to_text(il.text_to_ars(arstr)),arstr) end) it("handles default routes properly", function () assert.equals(il.ars_to_text(arsdef),defstr) end) end) describe("text_to_ars", function () it("writes table", function() assert.same(il.text_to_ars(arstr),arstb) end) it("handles default routes properly", function () assert.same(il.text_to_ars(defstr),arsdef) end) end) train1 = {} train2 = {} train3 = {} train1.line = "Foo" train1.routingcode = "Boo" train2.line= "Bar" train2.routingcode = "NotBoo NotBoo" train3.routingcode = "Foo Boo Moo Zoo" describe("check_rule_match", function () it("matches rules correctly", function() assert.equals(il.ars_check_rule_match(arstb,train1),1) assert.equals(il.ars_check_rule_match(arsdef,train2),nil) end) it("matches negative rules", function() assert.equals(il.ars_check_rule_match(arstb,train2),3) assert.equals(il.ars_check_rule_match(arstb,train3),nil) end) it("matches RC in a list correctly", function() assert.equals(il.ars_check_rule_match(arsdef,train3),3) end) end)