26 lines
625 B
GDScript
26 lines
625 B
GDScript
extends BTAction
|
|
class_name BTFetchPathPoint
|
|
func tick(tick: Tick) -> int:
|
|
var npc = tick.actor
|
|
var path = Array(npc.get_meta("path"))
|
|
var valid = npc.get_meta("path_valid")
|
|
if valid <= 0.0:
|
|
# print("no valid path1")
|
|
npc.do_stop()
|
|
return FAILED
|
|
if path.size() == 0:
|
|
# print("no valid path2")
|
|
npc.do_stop()
|
|
return FAILED
|
|
|
|
var point = path[0]
|
|
var npc_pos = npc.global_transform.origin
|
|
if npc_pos.distance_to(point) < 0.5:
|
|
if path.size() > 0:
|
|
point = path.pop_front()
|
|
point.y = npc_pos.y
|
|
npc.set_meta("path_point", point)
|
|
npc.set_meta("path", path)
|
|
# print("fetched path point: ", point)
|
|
return OK
|