public Godot.Collections.Array GetPath(Vector2 source, Vector2 target) { Vector2 cellSource = _tileMap.WorldToMap(source); Vector2 cellTarget = _tileMap.WorldToMap(target); int sourceId = getPointID((int)cellSource.x, (int)cellSource.y); int targetId = getPointID((int)cellTarget.x, (int)cellTarget.y); Godot.Collections.Array worldPath = new Godot.Collections.Array(); if (!_aStar.HasPoint(sourceId) || !_aStar.HasPoint(targetId)) { return(worldPath); } Vector2[] cellPath = _aStar.GetPointPath(sourceId, targetId); if (cellPath == null || cellPath.Length == 0) { return(worldPath); } // Reverse adding the points for (int index = 0; index < cellPath.Length; index++) { int id = getPointID((int)cellPath[index].x, (int)cellPath[index].y); worldPath.Add(_tilestoWorld[id]); } return(worldPath); }