diff --git a/init.lua b/init.lua index 96eedd8..438464a 100644 --- a/init.lua +++ b/init.lua @@ -34,16 +34,22 @@ minetest.register_globalstep(function(dtime) for i=1, #players do local name = players[i]:get_player_name() if mcl_player.player_attached[name] and not players[i]:get_attach() and - (players[i]:get_player_control().up == true or - players[i]:get_player_control().down == true or - players[i]:get_player_control().left == true or - players[i]:get_player_control().right == true or - players[i]:get_player_control().jump == true or - players[i]:get_player_control().sneak == true) then + (players[i]:get_player_control().up == true or + players[i]:get_player_control().down == true or + players[i]:get_player_control().left == true or + players[i]:get_player_control().right == true or + players[i]:get_player_control().jump == true or + players[i]:get_player_control().sneak == true) then + players[i]:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0}) + players[i]:set_physics_override(1, 1, 1) + mcl_player.player_attached[name] = false + mcl_player.player_set_animation(players[i], "stand", 30) + end + -- check the node below player (and if it's air, just unmount) + if minetest.get_node(vector.offset(players[i]:get_pos(),0,-1,0)).name == "air" then players[i]:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0}) players[i]:set_physics_override(1, 1, 1) mcl_player.player_attached[name] = false - mcl_player.player_set_animation(players[i], "stand", 30) end end end)