Tycoon Menu
Tycoon Control Panel (menu à vues)
Ouvre le panneau de contrôle Tycoon — un menu unique piloté par le système de vues génériques de GUIExtension ([MenuViewSupport]). ### Contrat côté page - Le layoutPool contient un frame (celui de [mainLayoutId], ou à défaut le premier frame du pool) dont les frames à contenu variable portent layoutId = "@view". - Chaque vue déclare son layout via frames["<frameId>"], ou par la convention "<viewId>_<frameId>" (donc bestiary_content pour la frame content de la vue bestiary). - Les slots d'onglet portent le tag view:<viewId> : le socle y branche gui:view <viewId> et applique [btc.renaud.gui.api.ViewActiveStyle] quand la vue — ou l'une de ses descendantes — est active. Plus aucun surlignage codé en dur. - Les boutons de contenu gardent le préfixe tycoon_button: résolu par [TycoonButtonResolverLayout], branché via le paramètre decorate de la résolution. Une cible d'ouverture s'écrit "<viewId>" ou "<viewId>:<argument>" (par exemple "research:reptiles") : l'argument est transmis au résolveur de contenu, jamais interprété comme un id de vue. Avec [views] vide, aucune résolution de vue n'a lieu : le pool est parsé à plat.
Поля
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
inventoryTitle | Var<String> | <dark_green>✦ Zoo Tycoon | Titre du menu. Chaque vue peut le remplacer par son propre titre.ПлейсхолдерыЦвета |
inventoryRows | Int | 6 | Nombre de lignes (1-6). |
guiType | GuiType | CUSTOM | Type de GUI. |
layoutPool | List<LayoutData> | empty | Pool de layouts (frame racine + bandeaux + contenu par vue). |
mainLayoutId | String? | — | Layout racine. Vide = le premier layout 'frame' du pool. |
audio | GuiAudioData | — | Audio. |
views | List<MenuViewData> | empty | Écrans adressables de ce menu. Les frames en '@view' et les slots taggés 'view:<id>' se résolvent contre la vue active. |
defaultViewId | String? | — | Vue ouverte en premier. Vide = la première vue déclarée. |
breadcrumbSeparator | String | DEFAULT_BREADCRUMB_SEPARATOR | Séparateur MiniMessage inséré entre les segments du fil d'Ariane par le token {breadcrumb}.Цвета |
baseMenuId | String | — | Entree open_gui servant de chassis partage : son layoutPool et ses vues fusionnent sous les notres (meme id = la notre gagne). |
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. |
Общие поля TypeWriter (criteria, modifiers, triggers)
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
criteria | List<Criteria> | empty | — |
modifiers | List<Modifier> | empty | — |
triggers | List<Ref<TriggerableEntry>> | empty | — |
How to use it
See the Menus section of the extension page for the structure (layoutPool, views, tycoon_button: buttons, view:<viewId> tabs). The menu opens the last view the player used when an action reopens the screen, so panel actions return to where the player was. Open it from a command entry or any trigger.