init.lua 604 B

123456789101112131415161718192021222324
  1. local modname = minetest.get_current_modname()
  2. local abs = math.abs
  3. _G[modname] = {}
  4. _G[modname].goto_next_waypoint = function (self,tpos,speed_factor)
  5. local height, pos2 = mobkit.get_next_waypoint(self,tpos)
  6. if not height then return false end
  7. if height <= 0.01 then
  8. local yaw = self.object:get_yaw()
  9. local tyaw = minetest.dir_to_yaw(vector.direction(self.object:get_pos(),pos2))
  10. if abs(tyaw-yaw) > 1 then
  11. mobkit.lq_turn2pos(self,pos2)
  12. end
  13. mobkit.lq_dumbwalk(self,pos2, speed_factor)
  14. else
  15. mobkit.lq_turn2pos(self,pos2)
  16. mobkit.lq_dumbjump(self,height)
  17. end
  18. return true
  19. end