View difference between Paste ID: JagnEnuC and U6NMS9rX
SHOW: | | - or go back to the newest paste.
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-
end )
35+
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
]]