Table of Contents

Class GBAStarPathManager

Namespace
GridPlacement.GDScript
Assembly
MoonBark.GridPlacement.GDScript.dll

Manage configuration and path queries for AStarGrid2D instances used by grid targeting.

class GBAStarPathManager extends RefCounted
GBAStarPathManager

Properties

new_grid

var new_grid = grid if grid != null else AStarGrid2D.new()

size

var size: Vector2i = _settings.region_size

region

var region = map.get_used_rect()

grid_region

var grid_region = _grid.region

settings

var settings = settings_override if settings_override != null else _settings

region

var region = map.get_used_rect()

grid_region

var grid_region = _grid.region

snapped_target

var snapped_target = GBPositioning2DUtils.snap_tile_to_region(target_tile, region)

max_steps

var max_steps = max(settings.max_tile_distance, 0)

source_tile

var source_tile = _sample_tile_from_node(source, map)

limited

var limited = _limit_using_astar(source_tile, snapped_target, max_steps, region)

path

var path: PackedVector2Array = _grid.get_point_path(source_tile, target_tile)

index

var index = clamp(max_steps, 0, path.size() - 1)

waypoint

var waypoint: Vector2 = path[index]

tile

var tile = Vector2i(int(round(waypoint.x)), int(round(waypoint.y)))

current

var current = current_tile

steps

var steps = max_steps

step

var step = _step_toward(current, target_tile, diagonal_mode)

dx

var dx = target.x - current.x

dy

var dy = target.y - current.y

step_x

var step_x = 0

step_y

var step_y = 0

local

var local = map.to_local(node.global_position)

Methods

get_grid

func get_grid() -> AStarGrid2D:

Returns

set_grid

func set_grid(grid: AStarGrid2D) -> bool:

Parameters

grid

Returns

configure

func configure(settings: GridTargetingSettings) -> void:

Parameters

settings

Returns

on_region_size_changed

func on_region_size_changed(size: Vector2i) -> void:

Parameters

size

Returns

on_diagonal_mode_changed

func on_diagonal_mode_changed(mode: AStarGrid2D.DiagonalMode) -> void:

Parameters

mode

Returns

on_default_compute_heuristic_changed

func on_default_compute_heuristic_changed(heuristic: AStarGrid2D.Heuristic) -> void:

Parameters

heuristic

Returns

on_default_estimate_heuristic_changed

func on_default_estimate_heuristic_changed(heuristic: AStarGrid2D.Heuristic) -> void:

Parameters

heuristic

Returns

on_cell_shape_changed

func on_cell_shape_changed(shape: AStarGrid2D.CellShape) -> void:

Parameters

shape

Returns

update_region

func update_region(map: TileMapLayer) -> void:

Parameters

map

Returns

update_if_dirty

func update_if_dirty() -> void:

Returns

resolve_target_tile

func resolve_target_tile(source: Node2D, target_tile: Vector2i, map: TileMapLayer, settings_override: GridTargetingSettings = null) -> Vector2i:

Parameters

source
target_tile
map
settings_override

Returns

get_closest_valid_tile

func get_closest_valid_tile(requested_tile: Vector2i, source: Node2D, map: TileMapLayer, settings_override: GridTargetingSettings = null) -> Vector2i:

Parameters

requested_tile
source
map
settings_override

Returns

limit_tile_to_max_distance

func limit_tile_to_max_distance(source: Node2D, target_tile: Vector2i, map: TileMapLayer, settings_override: GridTargetingSettings = null) -> Vector2i:

Parameters

source
target_tile
map
settings_override

Returns