From d8b5620115a7d99517d12f6ee03d5b7e3829eab7 Mon Sep 17 00:00:00 2001
From: epCode <epcode@noreply.git.minetest.land>
Date: Sun, 21 Feb 2021 04:11:20 +0000
Subject: [PATCH] Make head block detection more stable

---
 mods/PLAYER/mcl_playerplus/init.lua | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/mods/PLAYER/mcl_playerplus/init.lua b/mods/PLAYER/mcl_playerplus/init.lua
index 5d7917ed3..a5e71a61f 100644
--- a/mods/PLAYER/mcl_playerplus/init.lua
+++ b/mods/PLAYER/mcl_playerplus/init.lua
@@ -27,6 +27,8 @@ minetest.register_globalstep(function(dtime)
 		local pitch = degrees(player:get_look_vertical()) * -1
 		local yaw = degrees(player:get_look_horizontal()) * -1
 
+		local node_in_head = minetest.registered_nodes[mcl_playerinfo[name].node_head]
+
 		-- controls right and left arms pitch when shooting a bow or punching
 		if string.find(player:get_wielded_item():get_name(), "mcl_bows:bow") and controls.RMB and not controls.LMB and not controls.up and not controls.down and not controls.left and not controls.right then
 			player:set_bone_position("Arm_Right_Pitch_Control", vector.new(-3,5.785,0), vector.new(pitch+90,-30,pitch * -1 * .35))
@@ -45,7 +47,7 @@ minetest.register_globalstep(function(dtime)
 			-- sets eye height, and nametag color accordingly
 			player:set_properties({collisionbox = {-0.35,0,-0.35,0.35,1.8,0.35}, eye_height = 1.35, nametag_color = { r = 225, b = 225, a = 0, g = 225 }})
 
-		elseif minetest.get_item_group(mcl_playerinfo[name].node_head, "water") ~= 0 and player:get_attach() == nil and mcl_sprint.is_sprinting(name) == true or minetest.registered_nodes[mcl_playerinfo[name].node_head].walkable then
+		elseif minetest.get_item_group(mcl_playerinfo[name].node_head, "water") ~= 0 and player:get_attach() == nil and mcl_sprint.is_sprinting(name) == true or node_in_head and node_in_head.walkable then
 			-- controls head pitch when swiming
 			player:set_bone_position("Head", vector.new(0,6.3,0), vector.new(pitch+90,0,0))
 			-- sets eye height, and nametag color accordingly