{% 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_wrap %}{% endblock %} {% block content %} {% 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 not screen.is_template %} ▶️ Jouer depuis le début {% endif %} {% set current_aspect = screen.preview_aspect or '9/16' %}

É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() if wkey != 'icone' %}
{% endfor %}
🔤 Icônes
{% for slug in fontawesome_icons %} {% endfor %}

Glisse une icône sur le canevas, ou clique dessus pour l'ajouter — sa couleur et sa taille se règlent ensuite dans ses propriétés ("Icône"). Sélection non exhaustive : d'autres icônes pourront être ajoutées à cette liste plus tard si besoin.

🧩 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' %} {% if not screen.is_template %}
{% endif %}
{% 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 screen.is_template %}
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.
{% endif %}
⋮⋮ Propriétés
{% 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 == '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 ('checkbox', 'toggle_token') %}
{% else %} {% if c.key == 'icon_class' %}
{% elif c.key.endswith('_valeur') %}
{% elif 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 == 'align' %}
{% for val, icon in [('left','⬅️'),('center','⬛'),('right','➡️'),('justify','☰')] %} {% endfor %}
{% elif c.type in ('select', 'preset') %}
{% if c.key == 'visibilite_cond_variable' %}

Pas la variable qu'il te faut ? Gérer les variables du jeu ↗

{% endif %} {% endif %} {% endif %}
{% endfor %} {% if ns.started %}
{% endif %}
Enregistré automatiquement
{% endif %} {% endif %}
{% endblock %}