From fe9c6871de5db8add9ef196a088b975ed51a4eba Mon Sep 17 00:00:00 2001
From: Jeija <norrepli@gmail.com>
Date: Mon, 15 Feb 2016 16:35:38 +0100
Subject: Fix pistons not connecting to wire and not activating when placing
 up/down pistons from certain directions

---
 mesecons_pistons/init.lua | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

(limited to 'mesecons_pistons')

diff --git a/mesecons_pistons/init.lua b/mesecons_pistons/init.lua
index 49710d3..474f621 100644
--- a/mesecons_pistons/init.lua
+++ b/mesecons_pistons/init.lua
@@ -117,10 +117,16 @@ local piston_orientate = function(pos, placer)
 
 	local node = minetest.get_node(pos)
 	local pistonspec = minetest.registered_nodes[node.name].mesecons_piston
-	if pitch > 55 then --looking upwards
-		minetest.set_node(pos, {name=pistonspec.piston_down})
-	elseif pitch < -55 then --looking downwards
-		minetest.set_node(pos, {name=pistonspec.piston_up})
+
+	-- looking upwards (pitch > 55) / looking downwards (pitch < -55)
+	local nn = nil
+	if pitch > 55 then nn = {name = pistonspec.piston_down} end
+	if pitch < -55 then nn = {name = pistonspec.piston_up} end
+
+	if nn then
+		minetest.set_node(pos, nn)
+		-- minetest.after, because on_placenode for unoriented piston must be processed first
+		minetest.after(0, mesecon.on_placenode, pos, nn)
 	end
 end
 
-- 
cgit v1.2.3