From 5044de8542be67c03822f63494a4327faa8d6281 Mon Sep 17 00:00:00 2001 From: numzero Date: Thu, 21 May 2020 00:00:00 +0300 Subject: [PATCH 1/2] Prevent pushing multinode parts by pistons/movestones These could damage multinode devices pushing single node only --- filter.lua | 2 ++ splitter.lua | 2 ++ 2 files changed, 4 insertions(+) diff --git a/filter.lua b/filter.lua index 090a726..a912f50 100644 --- a/filter.lua +++ b/filter.lua @@ -115,6 +115,7 @@ minetest.register_node("digiline_routing:filter", { }, }, }) +mesecon.register_mvps_stopper("digiline_routing:filter") minetest.register_node("digiline_routing:filter_b", { description = "<> Digiline Filter (Part B)", @@ -144,3 +145,4 @@ minetest.register_node("digiline_routing:filter_b", { }, }, }) +mesecon.register_mvps_stopper("digiline_routing:filter_b") diff --git a/splitter.lua b/splitter.lua index f40f4e3..874cd4d 100644 --- a/splitter.lua +++ b/splitter.lua @@ -84,6 +84,7 @@ minetest.register_node("digiline_routing:splitter", { }, }, }) +mesecon.register_mvps_stopper("digiline_routing:splitter") minetest.register_node("digiline_routing:splitter_b", { description = "<> Digiline Splitter (Part B)", @@ -113,3 +114,4 @@ minetest.register_node("digiline_routing:splitter_b", { }, }, }) +mesecon.register_mvps_stopper("digiline_routing:splitter_b") From 3d6132d1a6d23ded7386c600d26fccc4ebed0011 Mon Sep 17 00:00:00 2001 From: numzero Date: Thu, 21 May 2020 13:42:34 +0300 Subject: [PATCH 2/2] Prevent placing multinodes into non-buildable-to nodes --- multiblock.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/multiblock.lua b/multiblock.lua index 7c19d64..901ffcb 100644 --- a/multiblock.lua +++ b/multiblock.lua @@ -5,11 +5,14 @@ digiline_routing.multiblock = {} digiline_routing.multiblock.build2 = function(node1, node2, itemstack, placer, pointed_thing) local under = pointed_thing.under + local above = pointed_thing.above local pos if minetest.registered_items[minetest.get_node(under).name].buildable_to then pos = under + elseif minetest.registered_items[minetest.get_node(above).name].buildable_to then + pos = above else - pos = pointed_thing.above + return itemstack, false end if digiline_routing.is_protected(pos, placer) then