From d3850ca205b24a501203c20f4a6a5f2a25abed32 Mon Sep 17 00:00:00 2001 From: Buckaroo Banzai <39065740+BuckarooBanzay@users.noreply.github.com> Date: Sun, 28 Jun 2020 20:57:34 +0200 Subject: [PATCH] Register drawers with mvps_stopper when available (#50) Co-authored-by: BuckarooBanzay --- .luacheckrc | 3 ++- lua/api.lua | 13 +++++++++++++ mod.conf | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/.luacheckrc b/.luacheckrc index 31175a1..a89bc33 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -24,5 +24,6 @@ read_globals = { "pipeworks", "screwdriver", "intllib", - "digilines" + "digilines", + "mesecon" } diff --git a/lua/api.lua b/lua/api.lua index ea1e150..c93f7ca 100755 --- a/lua/api.lua +++ b/lua/api.lua @@ -318,6 +318,8 @@ function drawers.register_drawer(name, def) def.after_dig_node = pipeworks.after_dig end + local has_mesecons_mvps = minetest.get_modpath("mesecons_mvps") + if drawers.enable_1x1 then -- normal drawer 1x1 = 1 local def1 = table.copy(def) @@ -329,6 +331,11 @@ function drawers.register_drawer(name, def) def1.groups.drawer = 1 core.register_node(name .. "1", def1) core.register_alias(name, name .. "1") -- 1x1 drawer is the default one + if has_mesecons_mvps then + -- don't let drawers be moved by pistons, visual glitches and + -- possible duplication bugs occur otherwise + mesecon.register_mvps_stopper(name .. "1") + end end if drawers.enable_1x2 then @@ -341,6 +348,9 @@ function drawers.register_drawer(name, def) def2.tiles4 = nil def2.groups.drawer = 2 core.register_node(name .. "2", def2) + if has_mesecons_mvps then + mesecon.register_mvps_stopper(name .. "2") + end end if drawers.enable_2x2 then @@ -353,6 +363,9 @@ function drawers.register_drawer(name, def) def4.tiles4 = nil def4.groups.drawer = 4 core.register_node(name .. "4", def4) + if has_mesecons_mvps then + mesecon.register_mvps_stopper(name .. "4") + end end if (not def.no_craft) and def.material then diff --git a/mod.conf b/mod.conf index fd27d74..ca346f9 100644 --- a/mod.conf +++ b/mod.conf @@ -1,2 +1,2 @@ name = drawers -optional_depends = default, mcl_core, screwdriver, pipeworks, intllib, moreores, digilines +optional_depends = default, mcl_core, screwdriver, pipeworks, intllib, moreores, digilines, mesecons_mvps