class_name Grid extends Node2D @export var ground_radius : float @export var cell_height : float @export var num_collumns : int @export var debug : bool var buildings : Array[Building] = [] func _draw() -> void: if !debug: return for i in range(10): draw_arc(Vector2.ZERO, ground_radius + i * cell_height, 0, TAU, 250, Color.SKY_BLUE, 1.0, true); for i in range(num_collumns): var angle = i * TAU / num_collumns; draw_line(Vector2.ZERO, 10000 * Vector2.from_angle(angle), Color.SKY_BLUE); func add_building_to_collumn(building : Building, collumn : int): # find the height of the top building in the buildings list: building.location = Vector2(collumn, -1) var spot_clear : bool = false while(!spot_clear): building.location.y += 1 spot_clear = true for other in buildings: if other.overlaps(building): spot_clear = false add_child(building) # for testing func _ready() -> void: var packed : PackedScene = preload("res://building.tscn") for i in range(100): var test_building = packed.instantiate() var collumn = randi() % 60 add_building_to_collumn(test_building, collumn)