Vues, onglets et héritage
Une vue est un écran d'un menu. Toutes les vues partagent la même structure (la barre d'onglets, le pied de page), et seul le contenu change.
Déclarer des vues
Dans views, ajoutez une entrée par écran :
| Champ | Rôle |
|---|---|
id | Utilisé par gui:view et par les onglets. |
name | Libellé utilisé dans le fil d'Ariane. Se rabat sur l'id. |
title | Titre de cette vue. Vide, il conserve le titre du menu. Accepte {breadcrumb}, {view} et {root}. |
parentId | Vue parente, pour le fil d'Ariane et pour garder allumé l'onglet du parent. |
frames | Correspondance explicite entre l'id d'un cadre et l'id d'une disposition. |
criteria, viewPermission | La vue est inaccessible et son onglet masqué lorsqu'ils ne sont pas satisfaits. |
activeStyle | L'apparence de l'onglet lorsqu'il est actif : glint, material, customModelData, nameFormat, loreSuffix. |
Sur l'Open GUI, defaultViewId est la vue ouverte en premier (la première déclarée si vide). breadcrumbSeparator est le texte MiniMessage placé entre les segments du fil d'Ariane, et pushHistoryOnViewSwitch fait revenir gui:back à la vue précédente après un changement d'onglet.
Remplir les cadres
Dans une disposition frame, définissez le layoutId d'un cadre sur @view. Pour la vue active, l'extension cherche la disposition dans cet ordre :
- la correspondance
framesde la vue pour l'idde ce cadre ; - une disposition nommée
<view id>_<frame id>, par exempleisland_contentpour le cadrecontentet la vueisland; - les deux mêmes recherches le long de la chaîne
parentId.
Un cadre qui ne se résout sur rien reste vide. Seule la disposition racine du menu (mainLayoutId) résout les cadres @view.
Onglets
Donnez à un objet onglet buttonPrefix view: et un buttonType égal à l'id de la vue. Un clic bascule vers la vue, et l'onglet prend l'activeStyle de la vue tant que celle-ci, ou l'un de ses enfants, est active. Les onglets des vues inaccessibles sont masqués.
La première vue accessible au joueur est utilisée lorsque celle demandée est masquée. Une vue demandée qui n'existe pas est journalisée sous la forme Unknown view.
Hériter d'un menu
baseMenuId est l'id d'entrée d'un Open GUI servant de modèle. L'enfant hérite de son layoutPool, de ses views, de mainLayoutId, de defaultViewId et de size, et la chaîne est suivie jusqu'à la racine : un menu peut donc hériter d'un modèle de domaine qui hérite lui-même d'une structure globale. Une disposition de l'enfant ayant le même id remplace celle héritée, et il en va de même pour les vues. Le storagePool n'est hérité que du parent direct. Un mainLayoutId vide sur l'enfant utilise celui du parent.
Vérifiez que le parent existe, que chaque layoutId existe dans le pool fusionné, et que deux menus n'héritent pas l'un de l'autre.
En pratique
Créez un menu modèle avec un cadre d'onglets fixe et un cadre de contenu @view, puis créez un enfant par domaine qui ne remplace que les dispositions de contenu. Les dispositions de contenu peuvent être simple, scrollable ou paginated sans toucher à la barre d'onglets.