From 8adff6ee998aba6bb0899d44cbfae41e1450ceb8 Mon Sep 17 00:00:00 2001 From: Ilya Zhuravlev Date: Sun, 9 Sep 2012 00:54:58 +0400 Subject: [PATCH] Fixed painting placing --- init.lua | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/init.lua b/init.lua index 3ac8af4..4ad4cf0 100644 --- a/init.lua +++ b/init.lua @@ -141,6 +141,9 @@ paintent = { end } +-- just pure magic +local walltoface = {-1, -1, 1, 3, 0, 2} + --paintedcanvas picture inventory item paintedcanvas = { description = "Painted Canvas", @@ -149,10 +152,21 @@ paintedcanvas = { on_place = function(itemstack, placer, pointed_thing) --place node - local placerpos = placer:getpos() local pos = pointed_thing.above - local dir = sub(pos, placerpos) - local fd = minetest.dir_to_facedir(dir) + + local under = pointed_thing.under + local above = pointed_thing.above + local dir = { + x = under.x - above.x, + y = under.y - above.y, + z = under.z - above.z + } + local wm = minetest.dir_to_wallmounted(dir) + + local fd = walltoface[wm + 1] + if fd == -1 then + return itemstack + end minetest.env:add_node(pos, { name = "painting:pic", param2 = fd,