diff --git a/init.lua b/init.lua index ab88d24..ff17c85 100644 --- a/init.lua +++ b/init.lua @@ -41,14 +41,16 @@ minetest.register_globalstep(function(dtime) 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({speed=1, jump=1, gravity=1}) + playerphysics.remove_physics_factor(players[i], "speed", "mcl_cozy:attached") + playerphysics.remove_physics_factor(players[i], "jump", "mcl_cozy:attached") 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({speed=1, jump=1, gravity=1}) + playerphysics.remove_physics_factor(players[i], "speed", "mcl_cozy:attached") + playerphysics.remove_physics_factor(players[i], "jump", "mcl_cozy:attached") mcl_player.player_attached[name] = false end end @@ -62,13 +64,15 @@ minetest.register_chatcommand("sit", { if minetest.get_node(vector.offset(player:get_pos(),0,-1,0)).name == "air" then return end if mcl_player.player_attached[name] then player:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0}) - player:set_physics_override({speed=1, jump=1, gravity=1}) + playerphysics.remove_physics_factor(player, "speed", "mcl_cozy:attached") + playerphysics.remove_physics_factor(player, "jump", "mcl_cozy:attached") mcl_player.player_attached[name] = false mcl_player.player_set_animation(player, "stand", 30) print_action_stand(name) else player:set_eye_offset({x=0, y=-7, z=2}, {x=0, y=0, z=0}) - player:set_physics_override({speed=0, jump=0, gravity=0}) + playerphysics.add_physics_factor(player, "speed", "mcl_cozy:attached", 0) + playerphysics.add_physics_factor(player, "jump", "mcl_cozy:attached", 0) mcl_player.player_attached[name] = true mcl_player.player_set_animation(player, "sit", 30) print_action_sit(name) @@ -84,13 +88,15 @@ minetest.register_chatcommand("lay", { if minetest.get_node(vector.offset(player:get_pos(),0,-1,0)).name == "air" then return end if mcl_player.player_attached[name] then player:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0}) - player:set_physics_override({speed=1, jump=1, gravity=1}) + playerphysics.remove_physics_factor(player, "speed", "mcl_cozy:attached") + playerphysics.remove_physics_factor(player, "jump", "mcl_cozy:attached") mcl_player.player_attached[name] = false mcl_player.player_set_animation(player, "stand", 30) print_action_stand(name) else player:set_eye_offset({x=0, y=-13, z=0}, {x=0, y=0, z=0}) - player:set_physics_override({speed=0, jump=0, gravity=0}) + playerphysics.add_physics_factor(player, "speed", "mcl_cozy:attached", 0) + playerphysics.add_physics_factor(player, "jump", "mcl_cozy:attached", 0) mcl_player.player_attached[name] = true mcl_player.player_set_animation(player, "lay", 0) print_action_lay(name)