From 5e0c49345a8a0701c84f8d220bbdd3b9d28ba580 Mon Sep 17 00:00:00 2001 From: BlockMen Date: Sun, 6 Jul 2014 11:12:48 +0200 Subject: [PATCH] Fix boats again --- mods/boats/init.lua | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/mods/boats/init.lua b/mods/boats/init.lua index 3fb0b132..e668ed2d 100644 --- a/mods/boats/init.lua +++ b/mods/boats/init.lua @@ -40,6 +40,7 @@ local boat = { driver = nil, v = 0, last_v = 0, + removed = false } function boat.on_rightclick(self, clicker) @@ -76,9 +77,18 @@ function boat.get_staticdata() end function boat.on_punch(self, puncher, time_from_last_punch, tool_capabilities, direction) + if not puncher or not puncher:is_player() or self.removed then + return + end puncher:set_detach() - self.object:remove() - if puncher and puncher:is_player() and not minetest.setting_getbool("creative_mode") then + default.player_attached[puncher:get_player_name()] = false + + self.removed = true + -- delay remove to ensure player is detached + minetest.after(0.1,function() + self.object:remove() + end) + if not minetest.setting_getbool("creative_mode") then puncher:get_inventory():add_item("main", "boats:boat") end end