|
@@ -4,13 +4,21 @@ extends Node2D
|
|
|
|
|
|
signal plus_de_briques
|
|
signal plus_de_briques
|
|
|
|
|
|
|
|
+## Permet de bouger le grougpe de briques au fil du temps.
|
|
## Doit etre un script de type Mouvement
|
|
## Doit etre un script de type Mouvement
|
|
-@export var mouvement: Script
|
|
|
|
|
|
+@export var mouvement_script: GDScript
|
|
|
|
+
|
|
|
|
+var _mouvement: Mouvement
|
|
|
|
|
|
@onready var nombre_enfants: int = get_children().size()
|
|
@onready var nombre_enfants: int = get_children().size()
|
|
|
|
|
|
|
|
|
|
func _ready() -> void:
|
|
func _ready() -> void:
|
|
|
|
+ _branche_comptage_briques()
|
|
|
|
+ _initie_mouvement()
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+func _branche_comptage_briques():
|
|
for node: Node in get_children():
|
|
for node: Node in get_children():
|
|
assert(node is Brique or node is ConteneurDeBriques, "Ne peut contenir que des briques")
|
|
assert(node is Brique or node is ConteneurDeBriques, "Ne peut contenir que des briques")
|
|
if node is Brique:
|
|
if node is Brique:
|
|
@@ -21,11 +29,22 @@ func _ready() -> void:
|
|
contenant.plus_de_briques.connect(_quand_enfant_detruit)
|
|
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:
|
|
func _physics_process(delta: float) -> void:
|
|
- if mouvement == null:
|
|
|
|
|
|
+ if _mouvement == null:
|
|
return
|
|
return
|
|
|
|
|
|
- mouvement.bouger(self, delta)
|
|
|
|
|
|
+ _mouvement.bouger(self, delta)
|
|
|
|
|
|
|
|
|
|
func _quand_enfant_detruit() -> void:
|
|
func _quand_enfant_detruit() -> void:
|