From 6cdb47edd231da08b32b8258eaa507ff312134cd Mon Sep 17 00:00:00 2001 From: orwell96 Date: Sun, 12 Aug 2018 13:23:36 +0200 Subject: Add routesetting callbacks. Now, only the signal aspect setting is still missing --- advtrains/helpers.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'advtrains/helpers.lua') diff --git a/advtrains/helpers.lua b/advtrains/helpers.lua index 2160444..c91af34 100644 --- a/advtrains/helpers.lua +++ b/advtrains/helpers.lua @@ -339,3 +339,13 @@ function advtrains.roundfloorpts(pos) return minetest.pos_to_string(advtrains.round_vector_floor_y(pos)) end +-- insert an element into a table if it does not yet exist there +-- equalfunc is a function to compare equality, defaults to == +-- returns true if the element was inserted +function advtrains.insert_once(tab, elem, equalfunc) + for _,e in pairs(tab) do + if equalfunc and equalfunc(elem, e) or e==elem then return false end + end + tab[#tab+1] = elem + return true +end -- cgit v1.2.3