mirror of
https://github.com/ElCeejo/creatura.git
synced 2025-04-30 13:51:41 -04:00
Fix crash, Change anim timing
This commit is contained in:
parent
b8178480c7
commit
a4804fc465
1 changed files with 7 additions and 7 deletions
14
methods.lua
14
methods.lua
|
@ -215,12 +215,12 @@ creatura.register_movement_method("creatura:pathfind", function(self, pos2)
|
||||||
-- Moving
|
-- Moving
|
||||||
self:set_gravity(-9.8)
|
self:set_gravity(-9.8)
|
||||||
if yaw_diff < pi * (turn_rate * 0.1) then
|
if yaw_diff < pi * (turn_rate * 0.1) then
|
||||||
self:animate(movement_data.anim or "walk")
|
|
||||||
self:set_forward_velocity(speed)
|
self:set_forward_velocity(speed)
|
||||||
else
|
else
|
||||||
self:set_forward_velocity(speed * 0.5)
|
self:set_forward_velocity(speed * 0.5)
|
||||||
turn_rate = turn_rate * 1.5
|
turn_rate = turn_rate * 1.5
|
||||||
end
|
end
|
||||||
|
self:animate(movement_data.anim or "walk")
|
||||||
self:turn_to(tgt_yaw, turn_rate)
|
self:turn_to(tgt_yaw, turn_rate)
|
||||||
if self:pos_in_box(pos2)
|
if self:pos_in_box(pos2)
|
||||||
or (waypoint
|
or (waypoint
|
||||||
|
@ -262,12 +262,12 @@ creatura.register_movement_method("creatura:theta_pathfind", function(self, pos2
|
||||||
-- Moving
|
-- Moving
|
||||||
self:set_gravity(-9.8)
|
self:set_gravity(-9.8)
|
||||||
if yaw_diff < pi * (turn_rate * 0.1) then
|
if yaw_diff < pi * (turn_rate * 0.1) then
|
||||||
self:animate(movement_data.anim or "walk")
|
|
||||||
self:set_forward_velocity(speed)
|
self:set_forward_velocity(speed)
|
||||||
else
|
else
|
||||||
self:set_forward_velocity(speed * 0.5)
|
self:set_forward_velocity(speed * 0.5)
|
||||||
turn_rate = turn_rate * 1.5
|
turn_rate = turn_rate * 1.5
|
||||||
end
|
end
|
||||||
|
self:animate(movement_data.anim or "walk")
|
||||||
self:turn_to(tgt_yaw, turn_rate)
|
self:turn_to(tgt_yaw, turn_rate)
|
||||||
if self:pos_in_box(pos2)
|
if self:pos_in_box(pos2)
|
||||||
or (waypoint
|
or (waypoint
|
||||||
|
@ -302,12 +302,12 @@ creatura.register_movement_method("creatura:neighbors", function(self, pos2)
|
||||||
-- Moving
|
-- Moving
|
||||||
self:set_gravity(-9.8)
|
self:set_gravity(-9.8)
|
||||||
if yaw_diff < pi * 0.25 then
|
if yaw_diff < pi * 0.25 then
|
||||||
self:animate(movement_data.anim or "walk")
|
|
||||||
self:set_forward_velocity(speed)
|
self:set_forward_velocity(speed)
|
||||||
else
|
else
|
||||||
self:set_forward_velocity(speed * 0.5)
|
self:set_forward_velocity(speed * 0.5)
|
||||||
turn_rate = turn_rate * 1.5
|
turn_rate = turn_rate * 1.5
|
||||||
end
|
end
|
||||||
|
self:animate(movement_data.anim or "walk")
|
||||||
self:turn_to(tgt_yaw, turn_rate)
|
self:turn_to(tgt_yaw, turn_rate)
|
||||||
if self:pos_in_box(pos2)
|
if self:pos_in_box(pos2)
|
||||||
or (waypoint
|
or (waypoint
|
||||||
|
@ -325,20 +325,20 @@ local function get_obstacle_avoidance(self, goal)
|
||||||
pos.y = pos.y + 1
|
pos.y = pos.y + 1
|
||||||
local yaw2goal = dir2yaw(vec_dir(pos, goal))
|
local yaw2goal = dir2yaw(vec_dir(pos, goal))
|
||||||
local outset = vec_add(pos, vec_multi(yaw2dir(yaw2goal), width))
|
local outset = vec_add(pos, vec_multi(yaw2dir(yaw2goal), width))
|
||||||
local collide, col_pos = get_collision(self, outset, yaw2goal)
|
local collide, col_pos = get_collision(self, yaw2goal)
|
||||||
local avd_pos
|
local avd_pos
|
||||||
if collide then
|
if collide then
|
||||||
for i = 45, 180, 45 do
|
for i = 45, 180, 45 do
|
||||||
angle = rad(i)
|
angle = rad(i)
|
||||||
dir = vec_multi(yaw2dir(yaw2goal + angle), width)
|
dir = vec_multi(yaw2dir(yaw2goal + angle), width)
|
||||||
avd_pos = vec_center(vec_add(pos, dir))
|
avd_pos = vec_center(vec_add(pos, dir))
|
||||||
if not get_collision(self, avd_pos, yaw2goal) then
|
if not get_collision(self, yaw2goal) then
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
angle = -rad(i)
|
angle = -rad(i)
|
||||||
dir = vec_multi(yaw2dir(yaw2goal + angle), width)
|
dir = vec_multi(yaw2dir(yaw2goal + angle), width)
|
||||||
avd_pos = vec_center(vec_add(pos, dir))
|
avd_pos = vec_center(vec_add(pos, dir))
|
||||||
if not get_collision(self, avd_pos, yaw2goal) then
|
if not get_collision(self, yaw2goal) then
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -375,12 +375,12 @@ creatura.register_movement_method("creatura:obstacle_avoidance", function(self,
|
||||||
-- Moving
|
-- Moving
|
||||||
self:set_gravity(-9.8)
|
self:set_gravity(-9.8)
|
||||||
if yaw_diff < pi * 0.25 then
|
if yaw_diff < pi * 0.25 then
|
||||||
self:animate(movement_data.anim or "walk")
|
|
||||||
self:set_forward_velocity(speed)
|
self:set_forward_velocity(speed)
|
||||||
else
|
else
|
||||||
self:set_forward_velocity(speed * 0.5)
|
self:set_forward_velocity(speed * 0.5)
|
||||||
turn_rate = turn_rate * 1.5
|
turn_rate = turn_rate * 1.5
|
||||||
end
|
end
|
||||||
|
self:animate(movement_data.anim or "walk")
|
||||||
self:turn_to(tgt_yaw, turn_rate)
|
self:turn_to(tgt_yaw, turn_rate)
|
||||||
if self:pos_in_box(pos2)
|
if self:pos_in_box(pos2)
|
||||||
or (waypoint
|
or (waypoint
|
||||||
|
|
Loading…
Add table
Reference in a new issue