From: Auke Kok Date: Sat, 12 Mar 2016 06:11:39 +0000 (-0800) Subject: Clean up door tops if fire destroys bottom. X-Git-Tag: 0.4.14~95 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=dfee51c21e1131c9c80fc7382b000954962f8b49;p=oweals%2Fminetest_game.git Clean up door tops if fire destroys bottom. Fixes #909. Door tops are never flammable. This doesn't guard yet against a voxelmanip removing the top node, but that is less of an issue since if a voxelmanip removes the top, then the bottom part remains functional and visibly intact. If the voxelmanip removes the bottom part, but not the top, then this patch makes it clean up the top just fine. --- diff --git a/mods/doors/init.lua b/mods/doors/init.lua index e5962bd3..9300e6ff 100644 --- a/mods/doors/init.lua +++ b/mods/doors/init.lua @@ -339,6 +339,10 @@ function doors.register(name, def) end end + def.on_destruct = function(pos) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + end + minetest.register_node(":" .. name .. "_a", { description = def.description, visual = "mesh", @@ -361,6 +365,7 @@ function doors.register(name, def) can_dig = def.can_dig, on_rotate = def.on_rotate, on_blast = def.on_blast, + on_destruct = def.on_destruct, selection_box = { type = "fixed", fixed = { -1/2,-1/2,-1/2,1/2,3/2,-6/16} @@ -393,6 +398,7 @@ function doors.register(name, def) can_dig = def.can_dig, on_rotate = def.on_rotate, on_blast = def.on_blast, + on_destruct = def.on_destruct, selection_box = { type = "fixed", fixed = { -1/2,-1/2,-1/2,1/2,3/2,-6/16}