From: Auke Kok <sofar@foo-projects.org>
Date: Sun, 14 Feb 2016 04:00:37 +0000 (-0800)
Subject: Allow building doors on buildable_to nodes.
X-Git-Tag: 0.4.14~131
X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=bbf17c9ecabe3e6f8782d1faf91c34ece361026b;p=oweals%2Fminetest_game.git

Allow building doors on buildable_to nodes.

This code never allowed placing a door on e.g. a grass
plant. The code to handle this isn't that complex. With
this code, doors can be placed on flowers and on normal
node surfaces without issues.
---

diff --git a/mods/doors/init.lua b/mods/doors/init.lua
index 925c94e8..b1a04cc7 100644
--- a/mods/doors/init.lua
+++ b/mods/doors/init.lua
@@ -183,8 +183,15 @@ function doors.register(name, def)
 		inventory_image = def.inventory_image,
 
 		on_place = function(itemstack, placer, pointed_thing)
-			local pos = pointed_thing.above
-			local node = minetest.get_node(pos)
+			local pos = nil
+
+			local node = minetest.get_node(pointed_thing.under)
+			if minetest.registered_nodes[node.name].buildable_to then
+				pos = pointed_thing.under
+			else
+				pos = pointed_thing.above
+				node = minetest.get_node(pos)
+			end
 
 			if not minetest.registered_nodes[node.name].buildable_to then
 				return itemstack