mirror of
				https://github.com/LoneWolfHT/headanim.git
				synced 2025-11-04 09:45:31 +01:00 
			
		
		
		
	Compare commits
	
		
			6 Commits
		
	
	
		
			v1.0
			...
			fce30158a7
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					fce30158a7 | ||
| 
						 | 
					63fb160951 | ||
| 
						 | 
					0e79459f96 | ||
| 
						 | 
					daac6ff677 | ||
| 
						 | 
					6828735c14 | ||
| 
						 | 
					b3831e32e7 | 
							
								
								
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
			
		||||
MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2020 LoneWolfHT
 | 
			
		||||
Copyright (c) 2020-2021 LoneWolfHT
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
 
 | 
			
		||||
@@ -1,2 +1,7 @@
 | 
			
		||||
# Headanim
 | 
			
		||||
[](https://content.minetest.net/packages/Lone_Wolf/headanim/)
 | 
			
		||||
 | 
			
		||||
Makes player heads follow their look dir in Minetest. Requires version 5.3+
 | 
			
		||||
 | 
			
		||||
## Similar mods
 | 
			
		||||
* https://github.com/minetest-mods/playeranim: A lot more complex (and possibly slower?) than Headanim but looks nicer as a result
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										20
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								init.lua
									
									
									
									
									
								
							@@ -1,5 +1,21 @@
 | 
			
		||||
local get_connected_players = minetest.get_connected_players
 | 
			
		||||
local abs = math.abs
 | 
			
		||||
local deg = math.deg
 | 
			
		||||
local basepos = vector.new(0, 6.35, 0)
 | 
			
		||||
local lastdir = {}
 | 
			
		||||
 | 
			
		||||
minetest.register_globalstep(function(dtime)
 | 
			
		||||
	for _, player in pairs(minetest.get_connected_players()) do
 | 
			
		||||
		player:set_bone_position("Head", vector.new(0, 6.35, 0), vector.new(-math.deg(player:get_look_vertical()), 0, 0))
 | 
			
		||||
	for _, player in pairs(get_connected_players()) do
 | 
			
		||||
		local pname = player:get_player_name()
 | 
			
		||||
		local ldeg = -deg(player:get_look_vertical())
 | 
			
		||||
 | 
			
		||||
		if abs((lastdir[pname] or 0) - ldeg) > 4 then
 | 
			
		||||
			lastdir[pname] = ldeg
 | 
			
		||||
			player:set_bone_position("Head", basepos, {x = ldeg, y = 0, z = 0})
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
minetest.register_on_leaveplayer(function(player)
 | 
			
		||||
	lastdir[player:get_player_name()] = nil
 | 
			
		||||
end)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user