From 7c4f1377e452134ab9e4addd0f01360dfa72564a Mon Sep 17 00:00:00 2001 From: Blockhead Date: Wed, 5 Jun 2024 04:09:04 +1000 Subject: Fix section_occupancy: Return empty table Fixes the functioning of the LuaATC function section_occupancy in the presence of no trains. Currently, if there is no train in the section, advtrains.interlocking.db.get_ts will return a table with a nil entry. When that nil value is passed to table.copy, Minetest throws out an error. Instead of passing nil to table.copy, just make a new empty table. --- advtrains_luaautomation/environment.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/advtrains_luaautomation/environment.lua b/advtrains_luaautomation/environment.lua index 6df5248..761e227 100644 --- a/advtrains_luaautomation/environment.lua +++ b/advtrains_luaautomation/environment.lua @@ -233,7 +233,7 @@ if advtrains.interlocking then ts_id = tostring(ts_id) local response = advtrains.interlocking.db.get_ts(ts_id) if not response then return false end - return table.copy(response.trains) + return (response.trains and table.copy(response.trains)) or {} end end -- cgit v1.2.3