{% extends "base.html" %} {% block title %}{{ screen.name }} — {{ game.name }}{% endblock %} {% block content_class %}content-builder{% endblock %} {% block body_class %}builderBody{% endblock %} {% block extra_head %} {% endblock %} {% block breadcrumb %} {{ game.name }} / Écrans /{{ screen.name }} {% endblock %} {% block content %}
{% if not screen.is_template %} ▶️ Jouer depuis le début {% endif %}
{% if screen.is_template %}

🧩 Contenu d'un élément de jeu réutilisable.

{% endif %} {% macro render_tree_node(el) %} {% set kids = children_of.get(el.id, []) %}
{% if kids %} {% else %} {% endif %} {{ widgets.get(el.widget, {}).get('icon', '❔') }} {{ el|elabel }}
{% if kids %}
{% for child in kids %} {{ render_tree_node(child) }} {% endfor %}
{% endif %}
{% endmacro %}
{% set el = elements|selectattr("id", "equalto", selected_id)|first if selected_id else none %}

Éléments de cet écran

{% if top_level_elements %}
{% for el in top_level_elements %} {{ render_tree_node(el) }} {% endfor %}
{% else %}

Aucun élément pour l'instant.

{% endif %}
Ajouter un élément sur l'écran
{% for wkey, w in widgets.items() %}
{% endfor %}
🧩 Mes éléments de jeu{{ ' (' ~ element_types|length ~ ')' if element_types else '' }}
{% if element_types %}
{% for et in element_types %}
{% endfor %}
{% else %}

Pas encore d'élément de jeu personnalisé — crées-en un.

{% endif %}
{% set current_aspect = screen.preview_aspect or '9/16' %}
Aperçu :
{% for el in top_level_elements %}
{{ el.rendered_html|safe }}
{% endfor %}

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

{% if not selected_id %}
Sélectionne un élément (sur l'écran ou dans la liste) pour voir et modifier ses propriétés ici.
{% else %} {% set el = elements|selectattr("id", "equalto", selected_id)|first %} {% if el %} {% set w = widgets.get(el.widget, {}) %}

{{ w.get('icon','❔') }} {{ el|elabel }}{% if el.name %} — {{ w.get('label', el.widget) }}{% endif %}

{% if el.widget in container_widgets %}
📥 Ajouter DANS ce conteneur
{% for wkey, w in widgets.items() %}
{% endfor %}
{% endif %} {% if el.widget == 'onglets' %} {% set tabs = children_of.get(el.id, []) %}
🗂️ Onglets{{ ' (' ~ tabs|length ~ ')' if tabs else '' }}
{% if tabs %}
{% for tab in tabs %}
{% endfor %}
{% else %}

Aucun onglet pour l'instant.

{% endif %}
{% endif %} {% set size_ctrl_keys = ['child-width', 'child-height'] %} {% set size_ctrls = {} %} {% for c in selected_controls if c.key in size_ctrl_keys %}{% set _ = size_ctrls.update({c.key: c}) %}{% endfor %}
Position & taille
{% if el.parent_id %} {% else %} {% endif %}
{% if el.parent_id %}

X/Y ne s'appliquent qu'à un élément posé directement sur l'écran — celui-ci suit la disposition de son conteneur. Largeur/Hauteur : laisser vide garde la taille automatique ; "%" (relatif au conteneur) convient à la plupart des cas, "px" pour une taille précise.

{% endif %}
{% set ns = namespace(last_group=None, started=False) %} {% for c in selected_controls if c.key not in size_ctrl_keys %} {% if c.group != ns.last_group %} {% if ns.started %}
{% endif %}
{{ c.group or 'Propriétés' }}
{% set ns.last_group = c.group %} {% set ns.started = True %} {% endif %}
{% if c.type in ('text', 'url') %} {% if c.allow_upload %}

Colle une adresse (URL) ci-dessus, ou choisis un fichier sur ton ordinateur — il sera hébergé automatiquement avec ce jeu.

{% endif %} {% elif c.type == 'textarea' %} {% elif c.type == 'color' %} {% elif c.type == 'slider' %}
{{ c.value }}{{ c.unit }}
{% elif c.type == 'scale' %}
x{{ c.value }}
{% elif c.type in ('checkbox', 'toggle_token') %} {% elif c.type == 'align' %}
{% for val, icon in [('left','⬅️'),('center','⬛'),('right','➡️'),('justify','☰')] %} {% endfor %}
{% elif c.type in ('select', 'preset') %} {% endif %}
{% endfor %} {% if ns.started %}
{% endif %}
Enregistré automatiquement
{% endif %} {% endif %}
{% if not screen.is_template %}
▸ 🔀 Logique de la scène — nœuds et connexions
Clique un point de sortie d'un nœud, puis le point d'entrée d'un autre nœud, pour les relier. Reclique une connexion pour la supprimer.
▸ 🎬 Timeline d'animation
{% endif %} {% endblock %}