conteneur_briques.gd 843 B

12345678910111213141516171819202122232425262728293031323334
  1. class_name ConteneurDeBriques
  2. extends Node2D
  3. signal plus_de_briques
  4. ## Doit etre un script de type Mouvement
  5. @export var mouvement: Script
  6. @onready var nombre_enfants: int = get_children().size()
  7. func _ready() -> void:
  8. for node: Node in get_children():
  9. assert(node is Brique or node is ConteneurDeBriques, "Ne peut contenir que des briques")
  10. if node is Brique:
  11. var brique: Brique = node as Brique
  12. brique.eclatee.connect(_quand_enfant_detruit)
  13. elif node is ConteneurDeBriques:
  14. var contenant: ConteneurDeBriques = node as ConteneurDeBriques
  15. contenant.plus_de_briques.connect(_quand_enfant_detruit)
  16. func _physics_process(delta: float) -> void:
  17. if mouvement == null:
  18. return
  19. mouvement.bouger(self, delta)
  20. func _quand_enfant_detruit() -> void:
  21. nombre_enfants -= 1
  22. if nombre_enfants <= 0:
  23. plus_de_briques.emit()