From a029130d61cff63fc5cb868eacbd7801db07d25b Mon Sep 17 00:00:00 2001 From: Splizard Date: Thu, 4 Jun 2015 10:36:32 +1200 Subject: [PATCH] Fix sleds :) --- src/sled.lua | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/sled.lua b/src/sled.lua index 1f7bfbb..d3b53e2 100644 --- a/src/sled.lua +++ b/src/sled.lua @@ -101,6 +101,16 @@ local function leave_sled(self, player) player:set_detach() default.player_attached[name] = false default.player_set_animation(player, "stand" , 30) + + player:set_physics_override({ + speed = 1, + jump = 1, + }) + player:hud_remove(self.HUD) -- And here is part 2. ~ LazyJ + self.object:remove() + + --Give the sled back again + player:get_inventory():add_item("main", "snow:sled") end function sled:on_rightclick(player) @@ -174,12 +184,6 @@ function sled:on_step(dtime) if player:get_player_control().sneak or not accelerating_possible(vector.round(self.object:getpos())) then leave_sled(self, player) - player:set_physics_override({ - speed = 1, - jump = 1, - }) - player:hud_remove(self.HUD) -- And here is part 2. ~ LazyJ - self.object:remove() end end @@ -194,14 +198,17 @@ minetest.register_craftitem("snow:sled", { liquids_pointable = true, stack_max = 1, - on_use = function(_, placer) + on_use = function(itemstack, placer) if players_sled[placer:get_player_name()] then return end local pos = placer:getpos() if accelerating_possible(vector.round(pos)) then pos.y = pos.y+0.5 - minetest.add_entity(pos, "snow:sled") + + --Get on the sled and remove it from inventory. + minetest.add_entity(pos, "snow:sled"):right_click(placer) + itemstack:take_item(); return itemstack end end, })