5 return parent.pathlib_node_g + static_cost;
13 return parent.pathlib_node_g + static_cost;
18 return parent.pathlib_node_g +
vlen(parent.origin - to);
26 return parent.pathlib_node_g +
vlen(parent.origin - to);
38 float h =
fabs(a.x - b.x);
53 float hx =
fabs(a.x - b.x);
54 float hy =
fabs(a.y - b.y);
82 float hx =
fabs(a.x - b.x);
83 float hy =
fabs(a.y - b.y);
85 float h_diag =
min(hx,hy);
86 float h_str = hx + hy;
104 float hx =
fabs(point.x - end.x);
105 float hy =
fabs(point.y - end.y);
106 float hz =
fabs(point.z - end.z);
108 float h_diag = min3(hx,hy,hz);
109 float h_str = hx + hy + hz;
116 float m =
vlen(d1 - d2);
124 float hx =
fabs(a.x - b.x);
125 float hy =
fabs(a.y - b.y);
126 float hz =
fabs(a.z - b.z);
128 float h_diag = min3(hx,hy,hz);
129 float h_str = hx + hy + hz;
float pathlib_g_euclidean_water(entity parent, vector to, float static_cost)
float pathlib_h_diagonal(vector a, vector b)
This heuristic consider both straight and diagonal moves to have the same cost.
float pathlib_h_euclidean(vector a, vector b)
This heuristic only considers the straight line distance.
float pathlib_movecost_waterfactor
float pathlib_g_static_water(entity parent, vector to, float static_cost)
float pathlib_h_diagonal3(vector a, vector b)
float pathlib_h_diagonal2sdp(vector preprev, vector prev, vector point, vector end)
This heuristic consider both straight and diagonal moves, But has a separate cost for diagonal moves...
float pathlib_g_static(entity parent, vector to, float static_cost)
vector(float skel, float bonenum) _skel_get_boneabs_hidden
float pathlib_movecost_diag
float pathlib_h_manhattan(vector a, vector b)
Manhattan heuristic means we expect to move up, down left or right No diagonal moves expected...
float pathlib_h_diagonal2(vector a, vector b)
This heuristic consider both straight and diagonal moves, but has a separate cost for diagonal moves...
float pathlib_g_euclidean(entity parent, vector to, float static_cost)