Table of Contents

Class GridTargetingService

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

Scene-free grid targeting service. Extracted from GridTargetingSystem (6.0.0-S Phase 1) to make AStar/grid positioning logic directly unit-testable without a scene tree.\n\nHandles: tile-to-world coordinate mapping, closest-valid-tile resolution, AStarGrid2D configuration, and targeting readiness validation.\n\nSignal emission (astar_grid_changed) and input handling stay on the hosting Node — the service is pure logic over injectable state.\n\nUsage: var service := GridTargetingService.new() service.configure(targeting_state, targeting_settings, mode_state, path_manager, logger) var err := service.move_node_to_closest_valid_tile(tile, pos, src)

class GridTargetingService extends RefCounted
GridTargetingService

Properties

map

var map: TileMapLayer = _targeting_state.target_map

resolved_tile

var resolved_tile: Vector2i = p_target_tile

tile

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

map

var map: TileMapLayer = _targeting_state.target_map

map_position

var map_position = p_map.to_local(p_global_position)

issues

var issues: Array[String] = []

issues

var issues: Array[String] = []

state_issues

var state_issues = _targeting_state.get_runtime_issues()

map

var map: TileMapLayer = _targeting_state.target_map

issues

var issues: Array[String] = []

editor_issues

var editor_issues: Array[String] = _targeting_settings.get_editor_issues()

active_grid

var active_grid: AStarGrid2D = null

Methods

configure

func configure( p_targeting_state: GridTargetingState,

move_node_to_closest_valid_tile

func move_node_to_closest_valid_tile(p_target_tile: Vector2i, p_positioner: Node2D, p_source: Node2D) -> Error:

Parameters

p_target_tile
p_positioner
p_source

Returns

move_to_tile

func move_to_tile(p_node: Node2D, p_tile: Vector2) -> Error:

Parameters

p_node
p_tile

Returns

get_tile_from_global_position

func get_tile_from_global_position(p_global_position: Vector2, p_map: Node2D) -> Vector2i:

Parameters

p_global_position
p_map

Returns

update_astar_grid

func update_astar_grid(p_astar: AStarGrid2D) -> void:

Parameters

p_astar

Returns

validate_ready

func validate_ready() -> bool:

Returns

get_targeting_issues

func get_targeting_issues() -> Array[String]:

Returns

get_runtime_issues

func get_runtime_issues() -> Array[String]:

Returns

get_path_manager

func get_path_manager() -> PlacementAStarPathManager:

Returns

get_target_map

func get_target_map() -> TileMapLayer:

Returns