Le document de cadrage produit cible des formateurs non techniques créant des serious games/quiz gamifiés — l'éditeur générique "document" (blocs de logique en nœuds, timeline d'animation, définitions d'objets/relations, templates réutilisables) est une complexité hors cible que l'effort d'ingénierie récent avait déjà abandonnée au profit du jeu_2d. - Onboarding : ne garde que le parcours "RPG" (jeu_2d), retire Quiz/Embranchement/Créer mon jeu de A à Z (tous document-only) - Suppression en bloc des modules exclusifs au document : routes/elements, routes/element_types, routes/objects, routes/legacy_actions, screens/elements, screens/element_types, screens/widgets, screens/legacy_actions, le rendu render_element_html.py et son cluster, templates/screen_edit.html, templates/game_dashboard.html, flow-editor.js/tabs-and-blocks.js/animation-timeline.js - Dashboard toujours simplifié (un seul mode possible désormais) - Tests document-only supprimés, tests de logique partagée (flow, événements personnalisés, animations) retargetés sur des écrans jeu_2d - Aucune régression jeu_2d : 299 tests passent Carte d'onboarding retravaillée : argumentaire RH non technique (liste à coche, badge "Compatible LMS"), taille et interaction de retournement ajustées.
41 lines
1.6 KiB
Python
41 lines
1.6 KiB
Python
from flask import render_template
|
|
|
|
import db
|
|
import screens
|
|
|
|
from core.flask_app import app
|
|
|
|
|
|
@app.route("/game/<slug>")
|
|
def game_dashboard(slug):
|
|
"""Vue d'ensemble du jeu : juste ses écrans, en cartes avec un aperçu
|
|
de leur contenu, plus un bouton "+ Ajouter un écran" qui ne demande pas
|
|
de type (un seul moteur d'écran : jeu_2d — voir
|
|
routes/screens/screens_new.py)."""
|
|
game = db.game_meta(slug)
|
|
return _render_simple_dashboard(slug, game)
|
|
|
|
|
|
def _render_simple_dashboard(slug, game):
|
|
screen_list = screens.list_screens(slug)
|
|
previews = {}
|
|
for s in screen_list:
|
|
if s["kind"] == "jeu_2d":
|
|
objects = screens.list_scene_objects(slug, s["id"])
|
|
for o in objects:
|
|
o["rendered_html"] = screens.render_scene_object(o)
|
|
# Taille du MONDE (voir screens.resolve_scene_world_size,
|
|
# même calcul que l'éditeur, routes/scenes/scene_edit_view.py)
|
|
# plutôt que scene_width/scene_height (la caméra nominale) :
|
|
# un "fond" plus grand que la caméra dépassait alors le cadre
|
|
# de la miniature (game_dashboard_simple.html), qui n'en
|
|
# montrait que le coin haut-gauche au lieu de la scène entière.
|
|
world_width, world_height = screens.resolve_scene_world_size(s, objects)
|
|
previews[s["id"]] = {
|
|
"kind": "jeu_2d", "objects": objects,
|
|
"world_width": world_width, "world_height": world_height,
|
|
}
|
|
return render_template(
|
|
"game_dashboard_simple.html", game=game, screen_list=screen_list, previews=previews,
|
|
)
|