30 lines
671 B
GDScript3
30 lines
671 B
GDScript3
|
|
class_name SceneManager extends Node2D
|
||
|
|
|
||
|
|
@onready var game_node: Node2D = $".."
|
||
|
|
@onready var crates: Node2D = $"../crates"
|
||
|
|
|
||
|
|
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 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()
|