From e653f95d37e961700f12abd61de2e68bb52a9c57 Mon Sep 17 00:00:00 2001 From: william Date: Thu, 27 Aug 2026 07:41:48 +0200 Subject: [PATCH] =?UTF-8?q?Ouvre=20les=20onglets=20Logique/Animation=20dan?= =?UTF-8?q?s=20l'=C3=A9diteur=20d'un=20mod=C3=A8le=20r=C3=A9utilisable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ces onglets ("Logique de la scène", "Timeline d'animation") étaient masqués sur l'écran-modèle d'un élément de jeu réutilisable, avec un commentaire expliquant pourquoi : à l'époque, ses enfants étaient COPIÉS en base avec un NOUVEL id à chaque exemplaire posé (instantiate_template_tree) — une logique/animation posée dans le modèle référencerait donc des ids qui n'existent plus une fois l'élément utilisé ailleurs. Ce mécanisme a depuis été retiré (voir le commentaire dans list_elements.py) : le contenu d'un élément de jeu réutilisable est désormais TOUJOURS rechargé EN DIRECT depuis son écran-modèle à chaque affichage, avec les MÊMES ids à chaque exemplaire. Combiné au commit précédent (findTriggerNode/runFlowFrom/collectAnimationClips côté play.html, qui exécutent maintenant correctement un déclencheur/une animation posé dans un modèle, où qu'il soit utilisé), la restriction de cette page n'avait donc plus lieu d'être — elle bloquait justement la fonctionnalité que le commit précédent venait de rendre possible. Les données nécessaires (flow_nodes/flow_edges/elements du modèle, etc.) étaient déjà calculées sans condition par la route (routes/screens/screen_edit.py) ; seul le template masquait les deux onglets et leur contenu derrière {% if not screen.is_template %}. switchBuilderTab() détecte déjà la présence des panneaux via HAS_FLOW_PANEL/HAS_ANIM_PANEL (document.getElementById), donc aucun changement JS n'était nécessaire. Vérifié en rendant réellement /game/test/screens/3/edit (l'écran-modèle "mail content") via le client de test Flask : les deux onglets sont maintenant bien présents, et l'écran normal (id=1) n'est pas affecté. Co-Authored-By: Claude Sonnet 5 --- templates/screen_edit.html | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/templates/screen_edit.html b/templates/screen_edit.html index 6d4102a7..45a873e0 100644 --- a/templates/screen_edit.html +++ b/templates/screen_edit.html @@ -160,20 +160,23 @@ + switchBuilderTab() plus bas). Présents aussi sur un écran-modèle + (élément de jeu réutilisable, ex. "mail content") : ses enfants + gardent désormais TOUJOURS le même id, à chaque exemplaire posé sur + n'importe quelle scène (rechargés en direct depuis ce modèle à + chaque affichage, voir _render_element_type_children côté serveur — + l'ancien mécanisme qui les copiait avec un nouvel id à chaque pose, + instantiate_template_tree, a été retiré). Un déclencheur/une + animation posé ici, sur un enfant du modèle, s'exécute donc bien + partout où ce modèle est utilisé (voir findTriggerNode/ + collectAnimationClips dans templates/play.html). -->
{% set current_aspect = screen.preview_aspect or '9/16' %} - {% if not screen.is_template %}
- {% endif %}
@@ -190,7 +193,6 @@

Glisse pour déplacer, tire le coin pour redimensionner, clique pour sélectionner.

- {% if not screen.is_template %}
@@ -449,7 +451,6 @@
- {% endif %}