From 9d33641453f65d2ce8282c56b0921b805772f091 Mon Sep 17 00:00:00 2001 From: Milan2018 Date: Thu, 10 Sep 2020 19:08:36 +0200 Subject: [PATCH] =?UTF-8?q?Aktualizovat=20=E2=80=9Emesecons/mesecons=5Fpis?= =?UTF-8?q?tons/init.lua=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mesecons/mesecons_pistons/init.lua | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/mesecons/mesecons_pistons/init.lua b/mesecons/mesecons_pistons/init.lua index 56a3f73..e4317a1 100644 --- a/mesecons/mesecons_pistons/init.lua +++ b/mesecons/mesecons_pistons/init.lua @@ -86,11 +86,12 @@ local piston_on = function(pos, node) local pistonspec = get_pistonspec(node.name, "offname") local dir = vector.multiply(minetest.facedir_to_dir(node.param2), -1) local pusher_pos = vector.add(pos, dir) - local success, stack, oldstack = mesecon.mvps_push(pusher_pos, dir, max_push) + local owner = minetest.get_meta(pos):get_string("owner") + local success, stack, oldstack = mesecon.mvps_push(pusher_pos, dir, max_push, owner) if not success then return end - minetest.set_node(pos, {param2 = node.param2, name = pistonspec.onname}) + minetest.swap_node(pos, {param2 = node.param2, name = pistonspec.onname}) minetest.set_node(pusher_pos, {param2 = node.param2, name = pistonspec.pusher}) minetest.sound_play("piston_extend", { pos = pos, @@ -103,7 +104,7 @@ end local function piston_off(pos, node) local pistonspec = get_pistonspec(node.name, "onname") - minetest.set_node(pos, {param2 = node.param2, name = pistonspec.offname}) + minetest.swap_node(pos, {param2 = node.param2, name = pistonspec.offname}) piston_remove_pusher(pos, node, not pistonspec.sticky) if not pistonspec.sticky then @@ -111,7 +112,8 @@ local function piston_off(pos, node) end local dir = minetest.facedir_to_dir(node.param2) local pullpos = vector.add(pos, vector.multiply(dir, -2)) - local success, stack, oldstack = mesecon.mvps_pull_single(pullpos, dir, max_pull) + local owner = minetest.get_meta(pos):get_string("owner") + local success, stack, oldstack = mesecon.mvps_pull_single(pullpos, dir, max_pull, owner) if success then mesecon.mvps_move_objects(pullpos, vector.multiply(dir, -1), oldstack, -1) end @@ -281,6 +283,9 @@ minetest.register_node("mesecons_pistons:piston_normal_off", { }}, on_rotate = piston_rotate, on_blast = mesecon.on_blastnode, + after_place_node = function(pos, placer) + minetest.get_meta(pos):set_string("owner", placer:get_player_name()) + end, }) -- onstate @@ -359,6 +364,9 @@ minetest.register_node("mesecons_pistons:piston_sticky_off", { }}, on_rotate = piston_rotate, on_blast = mesecon.on_blastnode, + after_place_node = function(pos, placer) + minetest.get_meta(pos):set_string("owner", placer:get_player_name()) + end, }) -- onstate