From dfaf85fac1860748590e79d64f34c5dd7d4842e3 Mon Sep 17 00:00:00 2001 From: william Date: Wed, 2 Sep 2026 16:41:56 +0200 Subject: [PATCH] =?UTF-8?q?Retire=20la=20collision=20sur=20les=20images=20?= =?UTF-8?q?de=20fond=20+=20les=20blocs=20de=20logique/timeline=20de=20l'?= =?UTF-8?q?=C3=A9diteur=202D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Deux retours utilisateur sur l'éditeur de scène 2D : - Le panneau "🧱 Collision" (réglages + aperçu visuel sur le canevas) n'apparaît plus pour un objet kind="fond" : jamais un obstacle ni une cible de collision possible (déjà exclu de forgeSolidObstacles côté jeu), ce panneau n'aurait donc aucun effet. - Retire les onglets "🧩 Blocs de logique" et "🎬 Timeline d'animation" de CET éditeur (l'éditeur document, templates/screen_edit.html, les garde tel quel) — en prévision d'un éditeur dédié aux scènes 2D (collision/périmètre -> action), pas encore construit. switchBuilderTab()/ toggleDashCreate() (génériques, nécessaires à l'onglet "Événements" restant) extraites dans un nouveau builder-tabs.js partagé par les deux éditeurs, pour ne plus avoir à charger flow-editor.js/tabs-and-blocks.js/ animation-timeline.js (propres aux blocs/timeline) dans l'éditeur 2D. Co-Authored-By: Claude Sonnet 5 --- static/js/screen_edit/builder-tabs.js | 26 ++ static/js/screen_edit/tabs-and-blocks.js | 26 +- templates/scene_edit.html | 470 +---------------------- templates/screen_edit.html | 1 + 4 files changed, 48 insertions(+), 475 deletions(-) create mode 100644 static/js/screen_edit/builder-tabs.js diff --git a/static/js/screen_edit/builder-tabs.js b/static/js/screen_edit/builder-tabs.js new file mode 100644 index 00000000..984a12ea --- /dev/null +++ b/static/js/screen_edit/builder-tabs.js @@ -0,0 +1,26 @@ +// ---------- Onglets du centre (Écran/Logique/Timeline/Événements pour +// l'éditeur document ; Scène/Événements pour l'éditeur de scène 2D) — un +// seul visible à la fois, chacun occupant tout l'espace disponible. +// Extrait de tabs-and-blocks.js (voir ce fichier) : ces deux fonctions +// sont GÉNÉRIQUES (aucune dépendance aux blocs de logique), donc chargées +// par LES DEUX éditeurs — screen_edit.html (blocs/timeline conservés) ET +// scene_edit.html (blocs/timeline retirés, voir le plan "Éditeur de +// collision" — ce dernier n'a donc plus besoin de charger +// tabs-and-blocks.js/flow-editor.js/animation-timeline.js du tout). ---------- +function switchBuilderTab(tab) { + document.querySelectorAll('.builderTabBtn').forEach(function (btn) { + btn.classList.toggle('active', btn.dataset.tab === tab); + }); + document.querySelectorAll('.builderTabPanel').forEach(function (panel) { + panel.classList.toggle('active', panel.dataset.tabPanel === tab); + }); +} + +function toggleDashCreate(tab) { + var bar = document.getElementById('dashCreate-' + tab); + bar.style.display = bar.style.display === 'none' ? 'flex' : 'none'; + if (bar.style.display === 'flex') { + var firstInput = bar.querySelector('input, select'); + if (firstInput) firstInput.focus(); + } +} diff --git a/static/js/screen_edit/tabs-and-blocks.js b/static/js/screen_edit/tabs-and-blocks.js index 0e6ed5d0..24cf63f0 100644 --- a/static/js/screen_edit/tabs-and-blocks.js +++ b/static/js/screen_edit/tabs-and-blocks.js @@ -1,25 +1,7 @@ -// ---------- Onglets du centre : Écran / Logique de la scène / Timeline -// d'animation — un seul visible à la fois, chacun occupant tout l'espace -// disponible (remplace l'ancien panneau du bas rétractable/redimensionnable -// à la souris : un onglet "prend toute la place" par nature, et en changer -// équivaut à "fermer" celui qu'on quitte). ---------- -function switchBuilderTab(tab) { - document.querySelectorAll('.builderTabBtn').forEach(function (btn) { - btn.classList.toggle('active', btn.dataset.tab === tab); - }); - document.querySelectorAll('.builderTabPanel').forEach(function (panel) { - panel.classList.toggle('active', panel.dataset.tabPanel === tab); - }); -} - -function toggleDashCreate(tab) { - var bar = document.getElementById('dashCreate-' + tab); - bar.style.display = bar.style.display === 'none' ? 'flex' : 'none'; - if (bar.style.display === 'flex') { - var firstInput = bar.querySelector('input, select'); - if (firstInput) firstInput.focus(); - } -} +// switchBuilderTab()/toggleDashCreate() ont déménagé dans builder-tabs.js +// (générique, chargé par les DEUX éditeurs — voir ce fichier) : tout ce +// qui reste ici est propre aux blocs de logique/panneaux flottants, +// jamais chargé par l'éditeur de scène 2D (scene_edit.html). function toggleBlockEditRow(blockId) { document.getElementById('blockEditRow' + blockId).classList.toggle('hidden'); diff --git a/templates/scene_edit.html b/templates/scene_edit.html index 6155da1f..7c0c5652 100644 --- a/templates/scene_edit.html +++ b/templates/scene_edit.html @@ -19,11 +19,11 @@ {% endblock %} {% block content %} + db/games/get_game_type.py). Le graphe de logique générique (blocs de + logique/Timeline d'animation, voir templates/screen_edit.html, gardé + tel quel pour l'éditeur document) a été retiré de CET éditeur à la + demande de l'utilisateur, en prévision d'un éditeur dédié aux scènes + 2D (collision/périmètre -> action), pas encore construit. -->

🎮 Jeu 2D — scène à taille fixe ({{ screen.scene_width }}×{{ screen.scene_height }} px).

@@ -93,8 +93,6 @@
- -
@@ -107,11 +105,12 @@ onmousedown="onSceneObjectMouseDown(event, {{ o.id }})">
{{ o.rendered_html|safe }}
- {% if o.id == selected_id %} + {% if o.id == selected_id and o.kind != 'fond' %} + voir initCollisionBoxOverlay() dans scene-editor.js. JAMAIS pour un + "fond" (voir la même garde sur le panneau "🧱 Collision" plus bas). -->
Glisse pour déplacer, tire le coin pour redimensionner, clique pour sélectionner. Positions en pixels (scène à taille fixe).

-
-
-

Blocs de logique

- -
- - - {% if blocks_view %} - {% for b in blocks_view %} -
- {% endfor %} -
- - - - {% for b in blocks_view %} - - - - - - - - - - - {% endfor %} - -
NomDescriptionObjets concernésNœuds
{{ b.name }}{{ b.description|truncatesentences(3) }}{% if b.element_labels %}{{ b.element_labels|join(', ') }}{% else %}—{% endif %}{{ b.node_count }} - - -
- -
-
-
- {% else %} -

Aucun bloc pour l'instant — crée le premier ci-dessus, puis ouvre-le pour poser des déclencheurs/conditions/actions.

- {% endif %} -
- - - -
-
- - -
- - - -
-
-
-
-
-

Événements personnalisés

@@ -615,7 +175,7 @@
{% else %} -

Aucun événement pour l'instant — crée le premier ci-dessus, puis pose un nœud "Sur un événement personnalisé" (Déclencheur) ou "Déclencher un événement" (Action) dans la Logique de la scène.

+

Aucun événement pour l'instant — crée le premier ci-dessus.

{% endif %}
@@ -666,12 +226,17 @@ + {% if obj.kind != 'fond' %} + petite que son canevas. JAMAIS pour un "fond" (image de décor, + voir add_scene_object.py) : ni obstacle ni cible de collision + possible (forgeSolidObstacles l'exclut déjà côté jeu, voir + static/js/play/personnage-controller.js), ce panneau n'aurait + donc aucun effet. -->
🧱 Collision
@@ -708,6 +273,7 @@

Taille/décalage réglés par rapport au centre de l'objet — laisse la taille par défaut (celle de l'objet) si son image n'a pas de marge inutile.

+ {% endif %} {% if obj.kind == 'personnage' %}
@@ -841,9 +407,7 @@ - - - + {% endblock %} diff --git a/templates/screen_edit.html b/templates/screen_edit.html index 24e29be0..e9110355 100644 --- a/templates/screen_edit.html +++ b/templates/screen_edit.html @@ -1305,6 +1305,7 @@ +