@icon("res://composants/objets/brique/IconeConteneurBriques.svg") class_name ConteneurDeBriques extends Node2D signal plus_de_briques ## Permet de bouger le grougpe de briques au fil du temps. ## Doit etre un script de type Mouvement @export var mouvement_script: GDScript var _mouvement: Mouvement @onready var nombre_enfants: int = get_children().size() func _ready() -> void: _branche_comptage_briques() _initie_mouvement() func _branche_comptage_briques(): for node: Node in get_children(): assert(node is Brique or node is ConteneurDeBriques, "Ne peut contenir que des briques") if node is Brique: var brique: Brique = node as Brique brique.eclatee.connect(_quand_enfant_detruit) elif node is ConteneurDeBriques: var contenant: ConteneurDeBriques = node as ConteneurDeBriques contenant.plus_de_briques.connect(_quand_enfant_detruit) func _initie_mouvement(): if mouvement_script == null: return assert(mouvement_script.can_instantiate(), "Doit pouvoir etre mis en mouvement") var mouvement: Object = mouvement_script.new() assert(mouvement is Mouvement, "Mauvais type du script, mouvement attendu") _mouvement = mouvement as Mouvement func _physics_process(delta: float) -> void: if _mouvement == null: return _mouvement.bouger(self, delta) func _quand_enfant_detruit() -> void: nombre_enfants -= 1 if nombre_enfants <= 0: plus_de_briques.emit()