Files
tekton/tests/helpers/gridmap_mock.gd
T
2026-06-26 18:31:17 +08:00

35 lines
1.0 KiB
GDScript

extends Node
# Minimal EnhancedGridMap stand-in for Gauntlet headless tests. Records
# set_cell_item calls so lifecycle tests can run the local sync path without a
# real GridMap. Only the surface the manager touches is implemented.
var cell_size := Vector3(1, 1, 1)
var cells: Dictionary = {} # Vector3i -> item id
var astar_inits := 0
# Walkable-tile set. Items in this list are passable for the bot planner.
# By default everything is walkable except the items the bot calls out
# explicitly via `non_walkable_items`.
var non_walkable_items: Array[int] = []
var columns: int = 20
var rows: int = 20
func is_position_valid(pos: Vector2i) -> bool:
return pos.x >= 0 and pos.x < columns and pos.y >= 0 and pos.y < rows
func set_cell_item(pos: Vector3i, item: int, _orientation: int = 0) -> void:
if item == -1:
cells.erase(pos)
else:
cells[pos] = item
func get_cell_item(pos: Vector3i) -> int:
return cells.get(pos, -1)
func initialize_astar() -> void:
astar_inits += 1
func update_grid_data() -> void:
pass