]> git.lizzy.rs Git - Crafter.git/commitdiff
Make player's head pitch match where they're looking
authoroilboi <47129783+oilboi@users.noreply.github.com>
Sat, 23 May 2020 22:37:21 +0000 (18:37 -0400)
committeroilboi <47129783+oilboi@users.noreply.github.com>
Sat, 23 May 2020 22:37:21 +0000 (18:37 -0400)
mods/player_api/api.lua

index 658abda1baa92b9ee43076d6a723ce9aae9213b6..f9ccedf00548d4c562cc719563a86132449526a2 100644 (file)
@@ -176,12 +176,17 @@ function minetest.calculate_knockback(player, ...)
        return old_calculate_knockback(player, ...)
 end
 
+--converts yaw to degrees
+local degrees = function(yaw)
+       return(yaw*180.0/math.pi)
+end
+
 -- Check each player and apply animations
 minetest.register_globalstep(function()
        for _, player in pairs(minetest.get_connected_players()) do
                --update the player wielded item model
                player_api.set_wielded_item(player)
-               
+
                local name = player:get_player_name()
                local model_name = player_model[name]
                local model = model_name and models[model_name]
@@ -197,6 +202,13 @@ minetest.register_globalstep(function()
                        local meta = player:get_meta()
                        local movement_state = meta:get_string("player.player_movement_state")
 
+                       local pitch = -degrees(player:get_look_vertical())
+                       if movement_state == "3" then
+                               pitch = pitch + 15
+                       end
+                       player:set_bone_position("Head", vector.new(0,6.3,0), vector.new(pitch,0,0))
+
+
                        -- Apply animations based on what the player is doing
                        if player:get_hp() == 0 then
                                player_set_animation(player, "lay")