Почему godot считает здесь, что точка 24, 39 находится вне [P: (-18, -8), S: (40, 40)]?

Вроде ничего не предвещает беды. И тут:

E 0:00:01:0246   map.gd:35 @ _ready(): Can't set if point is disabled. Point (24, 39) out of bounds [P: (-18, -8), S: (40, 40)].
  <Ошибка C++>   Condition "!is_in_boundsv(p_id)" is true.
  <Исходный код C++>core/math/a_star_grid_2d.cpp:209 @ set_point_solid()
  <Трассировка стека>map.gd:35 @ _ready()

Спросил chatgpt насчёт этого, но он считает, что мне реально нужно проверить находится ли точка в регионе (лол)

Хочу убрать клетки из AStarGrid, чтобы он не допускал построение пути через них. Ниже код:

func _ready() -> void:
    var tilemapSize = get_used_rect().end - get_used_rect().position
    var mapRect = Rect2i(-18,-8, 40, 40)
    
    var tileSize = tile_set.tile_size
    astar.region = mapRect
    astar.cell_size = tileSize
    astar.default_compute_heuristic = AStarGrid2D.HEURISTIC_MANHATTAN
    astar.default_estimate_heuristic = AStarGrid2D.HEURISTIC_MANHATTAN
    astar.diagonal_mode = AStarGrid2D.DIAGONAL_MODE_NEVER
    astar.update()
    
    for i in tilemapSize.x:
        for j in tilemapSize.y:
            var coords = Vector2i(i, j)
            var tileData = get_cell_tile_data(coords)

            if tileData and tileData.get_custom_data('Type') == 'Wall':
                astar.set_point_solid(coords)
            elif tileData and tileData.get_custom_data('Type') == 'Void':
                astar.set_point_solid(coords)
    pass

Что, блин, здесь не так? ( Важно отметить, что он, похоже, любую точку считает вне [P: (-18, -8), S: (40, 40)]


Ответы (0 шт):