34 lines
636 B
GDScript
34 lines
636 B
GDScript
extends Node
|
|
|
|
var room_tile_dict = {}
|
|
|
|
var path_grid = AStar3D.new()
|
|
|
|
var neighbor_array = [
|
|
Vector3i(0, 0, -1),
|
|
Vector3i(1, 0, 0),
|
|
Vector3i(0, 0, 1),
|
|
Vector3i(-1, 0, 0),
|
|
]
|
|
|
|
func _ready():
|
|
self.name = str("Room", self.get_instance_id())
|
|
|
|
init_path_grid()
|
|
|
|
|
|
|
|
pass
|
|
|
|
func init_path_grid():
|
|
|
|
for i in room_tile_dict.keys():
|
|
var id = path_grid.get_available_point_id()
|
|
path_grid.add_point(id, i)
|
|
|
|
for n in neighbor_array:
|
|
if room_tile_dict.has(i + n):
|
|
var closest = path_grid.get_closest_point(i + n)
|
|
if (i + n) == Vector3i(path_grid.get_point_position(closest)):
|
|
path_grid.connect_points(id, closest)
|