fine-tune mob velocity

This commit is contained in:
epCode 2022-10-13 19:12:23 -07:00 committed by cora
parent 82153c2af9
commit ba127ecb12

View file

@ -344,9 +344,9 @@ local set_velocity = function(self, v)
local vv = self.object:get_velocity() local vv = self.object:get_velocity()
if vv then if vv then
self.acc={ self.acc={
x = ((sin(yaw) * -v) + c_x)*.3, x = ((sin(yaw) * -v) + c_x)*.27,
y = 0, y = 0,
z = ((cos(yaw) * v) + c_y)*.3, z = ((cos(yaw) * v) + c_y)*.27,
} }
end end
end end
@ -536,6 +536,7 @@ local set_animation = function(self, anim, fixed_frame)
anim = "jockey" anim = "jockey"
end end
if flight_check(self) and self.fly and anim == "walk" then anim = "fly" end if flight_check(self) and self.fly and anim == "walk" then anim = "fly" end
self._current_animation = self._current_animation or "" self._current_animation = self._current_animation or ""
@ -3887,18 +3888,20 @@ local mob_step = function(self, dtime)
--Mob following code. --Mob following code.
follow_flop(self) follow_flop(self)
--set animation speed relitive to velocity --set animation speed relitive to velocity
local v = self.object:get_velocity() local v = self.object:get_velocity()
local v2 = abs(v.x)+abs(v.z)*.833 if v then
self.object:set_animation_frame_speed((v2/self.walk_velocity)*25) local v2 = abs(v.x)+abs(v.z)*.833
self.object:set_animation_frame_speed((v2/self.walk_velocity)*25)
--diffuse object velocity
self.object:set_velocity({x = v.x*.8, y = v.y, z = v.z*.8})
--set_speed --diffuse object velocity
if self.acc then self.object:set_velocity({x = v.x*.85, y = v.y, z = v.z*.85})
self.object:add_velocity(self.acc)
--set_speed
if self.acc then
self.object:add_velocity(self.acc)
end
end end