class_name SceneManager extends Node2D @onready var game_node: Node2D = $".." @onready var crates: Node2D = $"../crates" var grenade = preload("res://scenes/grenade.tscn") func _ready() -> void: print("scene manager is ready") game_node.destroy.connect(destroy) build_level() func _process(delta: float) -> void: pass func build_level() -> void: update_crates() func make_grenade(grenade_pos: Transform2D, grenade_dir: int) -> void: print("scene manager making grenade") var g:Grenade = grenade.instantiate() g.transform = grenade_pos owner.add_child(g) g.apply_central_impulse(Vector2(grenade_dir, 1)*400) func update_crates() -> void: var crate_total:int = 0 if crates: for obj in crates.get_children(): if obj is BrownBox: if not obj.tree_exited.is_connected(update_crates): obj.tree_exited.connect(update_crates) crate_total += 1 game_node.set_crate_num(crate_total) func destroy(body): if body is BrownBox: body.queue_free()