From 6d6a085aa17d403f585b194d1488a5daab2853cb Mon Sep 17 00:00:00 2001 From: Peter Nerlich <peter.nerlich+dev@googlemail.com> Date: Mon, 16 Nov 2020 14:42:36 +0100 Subject: [PATCH] add moreblocks variants to be ignored by trains (only the sensible ones) --- depends.txt | 1 + init.lua | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/depends.txt b/depends.txt index 47379c3..ba37940 100644 --- a/depends.txt +++ b/depends.txt @@ -3,3 +3,4 @@ digilines xpanes basic_materials mesecons_luacontroller +moreblocks diff --git a/init.lua b/init.lua index fa4f1a1..e6fec17 100644 --- a/init.lua +++ b/init.lua @@ -45,6 +45,44 @@ local additional_nonblocknodes={ "mesecons_pressureplates:pressure_plate_stone", } minetest.after(0, function() + local mods = {"moreblocks", "bakedclay", "building_blocks", "my_door_wood", "my_sliding_doors"} + local variants = { + micro_ = nil, + slope = nil, + slab_ = {"_1", "_2", "_quarter", "_two_sides", "_three_sides"}, + stair_ = {"_alt", "_alt_1", "_alt_2", "_alt_4", "_outer"}, + panel_ = {"_1", "_2", "_4"}, + } + local to_add = {} + for i, mod in ipairs(mods) do + for variant, data in pairs(variants) do + if to_add[mod] == nil then + to_add[mod] = {} + end + to_add[mod][variant] = data + end + end + for name, def in pairs(minetest.registered_nodes) do + for mod, variants in pairs(to_add) do + if string.sub(name, 1, #mod+1) == mod .. ":" then + for variant, endings in pairs(variants) do + local prefix = mod .. ":" .. variant + if string.sub(name, 1, #prefix) == prefix then + if endings then + for _, ending in ipairs(endings) do + if string.sub(name, #name - #ending + 1, #name) == ending then + table.insert(additional_nonblocknodes, name) + end + end + else + table.insert(additional_nonblocknodes, name) + end + end + end + end + end + end + for _,name in ipairs(additional_nonblocknodes) do if minetest.registered_nodes[name] then minetest.registered_nodes[name].groups.not_blocking_trains=1 -- GitLab