aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2012-07-21 21:23:15 +0300
committerPerttu Ahola <celeron55@gmail.com>2012-07-21 21:23:15 +0300
commit0b612539318a688ad24b66392bf39aedf8a01f62 (patch)
treee3f48eb66d599767e8310851ae2e29335bd3fa6a
parenta2738dec591e9a399e613b9161a7e3ea98674180 (diff)
downloadminetest-0b612539318a688ad24b66392bf39aedf8a01f62.tar.gz
minetest-0b612539318a688ad24b66392bf39aedf8a01f62.tar.bz2
minetest-0b612539318a688ad24b66392bf39aedf8a01f62.zip
Actually fix facedir-rotated nodes placed using minetest.env:place_node()
-rw-r--r--builtin/item.lua12
-rw-r--r--games/minimal/mods/experimental/init.lua3
2 files changed, 10 insertions, 5 deletions
diff --git a/builtin/item.lua b/builtin/item.lua
index 756c1de6a..5cd28303a 100644
--- a/builtin/item.lua
+++ b/builtin/item.lua
@@ -148,11 +148,13 @@ function minetest.item_place_node(itemstack, placer, pointed_thing)
local dir = {x = under.x - above.x, y = under.y - above.y, z = under.z - above.z}
newnode.param2 = minetest.dir_to_wallmounted(dir)
-- Calculate the direction for furnaces and chests and stuff
- elseif def.paramtype2 == 'facedir' and placer then
- local playerpos = placer:getpos()
- local dir = {x = pos.x - playerpos.x, y = pos.y - playerpos.y, z = pos.z - playerpos.z}
- newnode.param2 = minetest.dir_to_facedir(dir)
- minetest.log("action", "facedir: " .. newnode.param2)
+ elseif def.paramtype2 == 'facedir' then
+ local placer_pos = placer:getpos()
+ if placer_pos then
+ local dir = {x = pos.x - placer_pos.x, y = pos.y - placer_pos.y, z = pos.z - placer_pos.z}
+ newnode.param2 = minetest.dir_to_facedir(dir)
+ minetest.log("action", "facedir: " .. newnode.param2)
+ end
end
-- Add node and update
diff --git a/games/minimal/mods/experimental/init.lua b/games/minimal/mods/experimental/init.lua
index fb3310246..5661a660f 100644
--- a/games/minimal/mods/experimental/init.lua
+++ b/games/minimal/mods/experimental/init.lua
@@ -447,6 +447,9 @@ minetest.register_node("experimental:tester_node_1", {
tile_images = {"wieldhand.png"},
groups = {oddly_breakable_by_hand=2},
sounds = default.node_sound_wood_defaults(),
+ -- This was known to cause a bug in minetest.item_place_node() when used
+ -- via minetest.env:place_node(), causing a placer with no position
+ paramtype2 = "facedir",
on_construct = function(pos)
experimental.print_to_everything("experimental:tester_node_1:on_construct("..minetest.pos_to_string(pos)..")")