Started refactoring for easier use
This commit is contained in:
@@ -13,10 +13,7 @@ func _ready() -> void:
|
|||||||
%GridDisplay.grid = astarGrid
|
%GridDisplay.grid = astarGrid
|
||||||
|
|
||||||
func generateSimpleGrid() -> AStarGrid2D:
|
func generateSimpleGrid() -> AStarGrid2D:
|
||||||
var grid = AStarGrid2D.new()
|
var grid = newGrid()
|
||||||
grid.cell_size = Vector2(GroundLayer.tile_set.tile_size)
|
|
||||||
grid.region = GroundLayer.get_used_rect()
|
|
||||||
grid.update()
|
|
||||||
|
|
||||||
for id in GroundLayer.get_used_cells():
|
for id in GroundLayer.get_used_cells():
|
||||||
var data: TileData = GroundLayer.get_cell_tile_data(id)
|
var data: TileData = GroundLayer.get_cell_tile_data(id)
|
||||||
@@ -26,20 +23,31 @@ func generateSimpleGrid() -> AStarGrid2D:
|
|||||||
return grid
|
return grid
|
||||||
|
|
||||||
func generateObstacleGrid() -> AStarGrid2D:
|
func generateObstacleGrid() -> AStarGrid2D:
|
||||||
astarGrid = AStarGrid2D.new()
|
var grid = newGrid()
|
||||||
astarGrid.cell_size = Vector2(GroundLayer.tile_set.tile_size)
|
|
||||||
astarGrid.region = GroundLayer.get_used_rect()
|
|
||||||
astarGrid.update()
|
|
||||||
|
|
||||||
var layers = ObstacleLayer.get_children()
|
var layers = ObstacleLayer.get_children()
|
||||||
for layer in layers:
|
for layer in layers:
|
||||||
for id in layer.get_used_cells():
|
for id in layer.get_used_cells():
|
||||||
var data: TileData = layer.get_cell_tile_data(id)
|
var data: TileData = layer.get_cell_tile_data(id)
|
||||||
if data and data.get_custom_data('obstacle'):
|
if data and data.get_custom_data('obstacle'):
|
||||||
astarGrid.set_point_solid(id)
|
grid.set_point_solid(id)
|
||||||
|
|
||||||
return astarGrid
|
return grid
|
||||||
|
|
||||||
|
func newGrid() -> AStarGrid2D:
|
||||||
|
var _astarGrid = AStarGrid2D.new()
|
||||||
|
_astarGrid.default_compute_heuristic = AStarGrid2D.HEURISTIC_MANHATTAN
|
||||||
|
_astarGrid.default_estimate_heuristic = AStarGrid2D.HEURISTIC_MANHATTAN
|
||||||
|
_astarGrid.diagonal_mode = AStarGrid2D.DIAGONAL_MODE_ONLY_IF_NO_OBSTACLES
|
||||||
|
_astarGrid.cell_size = Vector2(GroundLayer.tile_set.tile_size)
|
||||||
|
_astarGrid.region = GroundLayer.get_used_rect()
|
||||||
|
_astarGrid.update()
|
||||||
|
|
||||||
|
return _astarGrid
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
func getGrid():
|
||||||
|
return astarGrid
|
||||||
|
|||||||
Reference in New Issue
Block a user