extends Node class_name Room var room_to_tile = []: set = setup_path_grid var path_grid = AStar3D.new() var room_to_door = [] var place_id: int = 0 func save(): var save_data = { # Basics "id": self.get_instance_id(), "type": "Room", "scene_file_path": scene_file_path, "parent": get_parent().get_instance_id(), # Connections "place_id": place_id, # Data } return save_data func init_room(new_dict): setup_path_grid(new_dict) for i in new_dict.values(): i.room = self func setup_path_grid(new_array): room_to_tile = new_array for i in room_to_tile: var id = path_grid.get_available_point_id() path_grid.add_point(id, i.grid_pos) for n in Tile.direction_vector_dict.values(): if room_to_tile.has(i.grid_pos + 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)