RPG Profession Menu
RPG Core Profession Menu
Entrée d'action qui ouvre le menu « Compétences ». Le menu est piloté par le système de vues génériques de GUIExtension ([MenuViewSupport]) : une vue globale, puis une vue par métier réellement chargé. La liste des métiers vient de ProfessionRegistry (alimenté par les fichiers YAML/JSON via ProfessionConfigurationLoader) et n'est donc connue qu'à l'exécution — [RpgProfessionViews] la découvre à chaque ouverture, aucune liste n'est écrite dans le code. ### Contrat côté page - Le layoutPool contient un frame (celui désigné par [mainLayoutId], ou à défaut le premier frame du pool) dont les frames à contenu variable portent layoutId = "@view". Ids de frame normalisés : domains (hérité du châssis), subviews, content, actions. - [globalView] et [professionView] portent la configuration des vues : frames, activeStyle, parentId, criteria... [professionView] est cloné pour chaque métier, son identifiant devenant professionViewIdPrefix + <id du métier> et son libellé acceptant les jetons {profession_name} / {profession_id}. - Le bandeau de sous-onglets (subviews) contient des marqueurs rpgcore_button:PROFESSION_TAB (répétables) : ils sont indexés avant l'analyse du pool, puis remplacés au rendu par le n-ième métier. Le slot produit porte le tag view:<id>, ce qui laisse [ViewTabResolverLayout] brancher gui:view et appliquer le style actif. - L'onglet de la vue globale est un item ordinaire de la page avec buttonPrefix = "view:" et buttonType = <id de la vue globale>. - Les boutons de contenu gardent le préfixe rpgcore_button: résolu par [RpgButtonResolverLayout], branché via le paramètre decorate de la résolution.
Campos
| Campo | Tipo | Predeterminado | Descripción |
|---|---|---|---|
inventoryTitle | Var<String> | <white>Compétences | Titre du menu. Chaque vue peut le remplacer par son propre titre.PlaceholdersColores |
inventoryRows | Int | 6 | Nombre de lignes (1-6). |
guiType | GuiType | CUSTOM | Type de GUI. |
layoutPool | List<LayoutData> | empty | Pool de layouts. |
mainLayoutId | String? | — | Layout racine. Vide = le premier layout 'frame' du pool. |
audio | GuiAudioData | — | Audio. |
baseMenuId | String | — | Entrée open_gui servant de châssis partagé : son layoutPool et ses vues fusionnent sous les nôtres (même id = la nôtre gagne). |
globalView | MenuViewData | — | Vue de progression globale, tous métiers confondus. Placée en tête du bandeau et ouverte par défaut. |
professionView | MenuViewData | — | Gabarit cloné pour chaque métier chargé. Le libellé accepte {profession_name} et {profession_id}. |
professionViewIdPrefix | String | — | Préfixe des identifiants de vue de métier. Vide = l'identifiant du métier tel quel. |
views | List<MenuViewData> | empty | Vues supplémentaires déclarées à la main. Un même id remplace la vue générée correspondante. |
defaultViewId | String? | — | Vue ouverte en premier. Vide = la vue globale. |
breadcrumbSeparator | String | DEFAULT_BREADCRUMB_SEPARATOR | Séparateur MiniMessage inséré entre les segments du fil d'Ariane par le token {breadcrumb}.Colores |
pushHistoryOnViewSwitch | Boolean | false | Empiler la vue précédente dans l'historique lors d'un changement d'onglet. Désactivé par défaut : changer d'onglet est une navigation latérale. |
extendToPlayerInventory | Boolean | false | Quand activé, le contenu utilise 7 lignes au lieu de 4 et les boutons migrent dans la hotbar. Nécessite un shell_root_extended dans le layout pool du châssis. |
Campos comunes de TypeWriter (criteria, modifiers, triggers)
| Campo | Tipo | Predeterminado | Descripción |
|---|---|---|---|
criteria | List<Criteria> | empty | — |
modifiers | List<Modifier> | empty | — |
triggers | List<Ref<TriggerableEntry>> | empty | — |