35 lines
1.0 KiB
GDScript
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
|