class_name SceneManager extends Node2D @onready var triggers: Node2D = $"../Triggers" @onready var creates: Node2D = $"../Creates" @onready var level: Node2D = $"../Level" @onready var game: GameController = $".." # Called when the node enters the scene tree for the first time. func _ready() -> void: #pass # Replace with function body. buildLevel() # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass func buildLevel() ->void: print("building level") updateCreates() updateTriggers() #wire up signals from GameCtroller game.destroySignal.connect(destroy) game.teleportSignal.connect(teleport) game.levelChangeSignal.connect(loadLevel) func updateTriggers()->void: if triggers: for obj in triggers.get_children(): if obj is Trigger: if not obj.AreaTrigger.is_connected(game._on_trigger): obj.AreaTrigger.connect(game._on_trigger) func updateCreates() ->void: #check that there is a create note if creates: var totalCreates = 0 for obj in creates.get_children(): if obj is Create: if not obj.tree_exited.is_connected(updateCreates): obj.tree_exited.connect(updateCreates) totalCreates +=1 #print("Total Creates:"+ str(totalCreates)) game.createUpdate(totalCreates) func destroy(body)->void: body.queue_free() func teleport(body) ->void: if body is Create: var viewport_size = get_viewport().get_visible_rect().size var random_x = randf_range(0,viewport_size.x) var random_y = randf_range(0,viewport_size.y) var newPosition = Vector2(random_x,random_y) body.teleport_to(newPosition) func loadLevel(level:String)->void: print(level) get_tree().call_deferred("change_scene_to_file", level) func makeBullet(targetPosition, speed): print("Make a bullet!")