From: Perttu Ahola Date: Sat, 21 Jul 2012 18:23:15 +0000 (+0300) Subject: Actually fix facedir-rotated nodes placed using minetest.env:place_node() X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=0b612539318a688ad24b66392bf39aedf8a01f62;p=zefram%2Fminetest%2Fminetest_engine.git Actually fix facedir-rotated nodes placed using minetest.env:place_node() --- diff --git a/builtin/item.lua b/builtin/item.lua index 756c1de6..5cd28303 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 fb331024..5661a660 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)..")")