From 9b9271e5df769a316225a074b533091f65dc728a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Douglas=20da=20Silva=20Souza?= Date: Tue, 23 Jan 2024 20:05:45 +0000 Subject: [PATCH 1/2] Change on scaffolding placement checking --- mods/ITEMS/mcl_bamboo/bamboo_items.lua | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mods/ITEMS/mcl_bamboo/bamboo_items.lua b/mods/ITEMS/mcl_bamboo/bamboo_items.lua index 95d4999fc..24205fdc6 100644 --- a/mods/ITEMS/mcl_bamboo/bamboo_items.lua +++ b/mods/ITEMS/mcl_bamboo/bamboo_items.lua @@ -316,10 +316,15 @@ minetest.register_node(SCAFFOLDING_NAME, { -- A quick check, that may or may not work, to attempt to prevent placing things on the side of other nodes. local dir = vector.subtract(pointed.under, pointed.above) local wdir = minetest.dir_to_wallmounted(dir) + local anode = minetest.get_node(pointed.above).name if wdir == 1 then - minetest.set_node(pointed.above, { name = SCAFFOLDING_NAME, param2 = 0 }) - if not minetest.is_creative_enabled(placer:get_player_name()) then - itemstack:take_item(1) + if anode == "air" or minetest.registered_nodes[anode].buildable_to then + minetest.set_node(pointed.above, { name = SCAFFOLDING_NAME, param2 = 0 }) + if not minetest.is_creative_enabled(placer:get_player_name()) then + itemstack:take_item(1) + end + else + return end return itemstack else From 77a6ac1ef3cc255a1d18c59968dde8a13778c758 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Douglas=20da=20Silva=20Souza?= Date: Tue, 23 Jan 2024 20:46:15 +0000 Subject: [PATCH 2/2] Protection check --- mods/ITEMS/mcl_bamboo/bamboo_items.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_bamboo/bamboo_items.lua b/mods/ITEMS/mcl_bamboo/bamboo_items.lua index 24205fdc6..a7a28257e 100644 --- a/mods/ITEMS/mcl_bamboo/bamboo_items.lua +++ b/mods/ITEMS/mcl_bamboo/bamboo_items.lua @@ -318,7 +318,7 @@ minetest.register_node(SCAFFOLDING_NAME, { local wdir = minetest.dir_to_wallmounted(dir) local anode = minetest.get_node(pointed.above).name if wdir == 1 then - if anode == "air" or minetest.registered_nodes[anode].buildable_to then + if (anode == "air" or minetest.registered_nodes[anode].buildable_to) and not mcl_bamboo.is_protected(pointed.above, placer) then minetest.set_node(pointed.above, { name = SCAFFOLDING_NAME, param2 = 0 }) if not minetest.is_creative_enabled(placer:get_player_name()) then itemstack:take_item(1)