Removed initial load time

This commit is contained in:
Melvin Weiß 2025-10-22 02:04:12 +02:00
parent 248b1915b6
commit 930d9e6d8e
2 changed files with 24 additions and 24 deletions

View file

@ -15,31 +15,9 @@ func _ready() -> void:
if blocks_area:
Grid.buildings.append(self)
#await get_tree().create_timer(0.2).timeout
if get_node_or_null("ObjectList") != null:
var obj_list = $ObjectList
obj_list.call_deferred("reparent", get_tree().get_root().get_node("main"), false)
await get_tree().create_timer(0.2).timeout
var objects_to_be_placed = obj_list.get_children()
for object in objects_to_be_placed:
var offset = object.global_position;
object.global_position = Grid.get_world_position(location, offset)
# The building remembers these objects: If it is destroyed, so are they.
if object is Platform or object is Trap or object is Item:
objects.append(object)
if "building" in object: object.building = self
# This scales platforms hoizontally to make sure they still form a floor without gaps.
if(object.has_method("init_at_horizontal_distortion")):
object.init_at_horizontal_distortion(object.position.length() / Grid.ground_radius)
grid_entrance_callback(object)
func grid_entrance_callback(object : Node):
# Objects receive a callback when placed, starting from the deepest children
for child in object.get_children():
grid_entrance_callback(child)
if object.has_method("_enter_grid"):
object.call_deferred("_enter_grid")
Grid.call_deferred("place_object_list", obj_list, self)
func overlaps(other : Building):
# heights don't overlap

View file

@ -42,10 +42,25 @@ func add_building_to_collumn(building : Building, collumn : int):
building.free()
return false
add_child(building)
return true
func place_object_list(obj_list : Node2D, building):
obj_list.reparent(self, false)
var objects_to_be_placed = obj_list.get_children()
for object in objects_to_be_placed:
var offset = object.global_position;
object.global_position = Grid.get_world_position(building.location, offset)
# The building remembers these objects: If it is destroyed, so are they.
if object is Platform or object is Trap or object is Item:
building.objects.append(object)
if "building" in object: object.building = self
# This scales platforms hoizontally to make sure they still form a floor without gaps.
if(object.has_method("init_at_horizontal_distortion")):
object.init_at_horizontal_distortion(object.position.length() / Grid.ground_radius)
grid_entrance_callback(object)
func get_world_position (location: Vector2, offset: Vector2 = Vector2.ZERO) -> Vector2:
var height = ground_radius + location.y * cell_height - offset.y # currently assumes anchor is bottom left
var angle = (location.x + offset.x / cell_height) * TAU / num_collumns
@ -86,6 +101,13 @@ func add_vine_to(vine, location) -> void:
location = Global.vec_mod(location, num_collumns, true)
vines_per_node[location.x][location.y].append(vine)
func grid_entrance_callback(object : Node):
# Objects receive a callback when placed, starting from the deepest children
for child in object.get_children():
grid_entrance_callback(child)
if object.has_method("_enter_grid"):
object.call_deferred("_enter_grid")
# for testing
#func _ready() -> void:
#