Advertisement
Guest User

pathfind_testcase_more

a guest
Jul 31st, 2014
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local modname = minetest.get_current_modname()
  2. local modpath = minetest.get_modpath(modname)
  3.  
  4. print("LOADING " .. modname .. " FROM " .. modpath)
  5.  
  6. pos0 = {x=0, y=0, z=0}
  7. pos1 = {x=1, y=0, z=0}
  8. pos2 = {x=0, y=1, z=0}
  9. pos3 = {x=0, y=0, z=1}
  10. pos4 = {x=8, y=16 , z=32}
  11. function imlazy (posa, posb)
  12.         print("First pos: " .. minetest.pos_to_string(posa) .. " Secound pos: " .. minetest.pos_to_string(posb))
  13.         searchdist = 100 -- arbitrary, but larger than any distance needed
  14.                         --Increasing it does make it slower, and uses more ram (learned the hard/fun way.)
  15.         max_jump = 100
  16.         max_drop = 100
  17.         algorithm = {"A*_noprefetch","A*","Dijkstra"    --Real
  18.                 ,"Pangus","Bacon"}                              --Not so real
  19.         for index,value in ipairs(algorithm) do
  20.                 print("Algorithm " .. value)
  21.                 print(dump(minetest.find_path(posa,posb,searchdist,max_jump,max_drop,value)))
  22.         end
  23. end
  24. minetest.register_on_joinplayer(function(player)
  25.  
  26.         imlazy(pos0,pos0)
  27.         imlazy(pos0,pos1)
  28.         imlazy(pos0,pos2)
  29.         imlazy(pos0,pos3)
  30.         imlazy(pos0,pos4)
  31.         imlazy(pos1,pos0)
  32.         imlazy(pos1,pos1)
  33.         imlazy(pos1,pos2)
  34.         imlazy(pos1,pos3)
  35.         imlazy(pos1,pos4)
  36.         imlazy(pos2,pos0)
  37.         imlazy(pos2,pos1)
  38.         imlazy(pos2,pos2)
  39.         imlazy(pos2,pos3)
  40.         imlazy(pos2,pos4)
  41.         imlazy(pos3,pos0)
  42.         imlazy(pos3,pos1)
  43.         imlazy(pos3,pos2)
  44.         imlazy(pos3,pos3)
  45.         imlazy(pos3,pos4)
  46.         imlazy(pos4,pos0)
  47.         imlazy(pos4,pos1)
  48.         imlazy(pos4,pos2)
  49.         imlazy(pos4,pos3)
  50.         imlazy(pos4,pos4)
  51.  
  52. return true
  53.  
  54. --[[minetest.find_path(pos1,pos2,searchdistance,max_jump,max_drop,algorithm)
  55. ^ -> table containing path
  56. ^ returns a table of 3d points representing a path from pos1 to pos2 or nil
  57. ^ pos1: start position
  58. ^ pos2: end position
  59. ^ searchdistance: number of blocks to search in each direction
  60. ^ max_jump: maximum height difference to consider walkable
  61. ^ max_drop: maximum height difference to consider droppable
  62. ^ algorithm: A*_noprefetch(default), A*, Dijkstra
  63. ]]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement