diff --git a/mods/stairs/init.lua b/mods/stairs/init.lua index 4ba854fa..fabd9642 100644 --- a/mods/stairs/init.lua +++ b/mods/stairs/init.lua @@ -32,7 +32,13 @@ local function rotate_and_place(itemstack, placer, pointed_thing) if placer then local placer_pos = placer:get_pos() if placer_pos then - param2 = minetest.dir_to_facedir(vector.subtract(p1, placer_pos)) + local diff = vector.subtract(p1, placer_pos) + param2 = minetest.dir_to_facedir(diff) + -- The player places a node on the side face of the node he is standing on + if p0.y == p1.y and math.abs(diff.x) <= 0.5 and math.abs(diff.z) <= 0.5 and diff.y < 0 then + -- reverse node direction + param2 = (param2 + 2) % 4 + end end local finepos = minetest.pointed_thing_to_face_pos(placer, pointed_thing)