Saltar al contenido principal

Vistas, pestañas y herencia

Una vista es una pantalla de un menú. Todas las vistas comparten el mismo armazón (la franja de pestañas, el pie), y solo cambia el contenido.

Declarar vistas​

En views, añade una entrada por pantalla:

CampoFunción
idLo usan gui:view y las pestañas.
nameEtiqueta usada en la ruta de navegación. Si falta, se usa el id.
titleTítulo de esta vista. Vacío mantiene el título del menú. Acepta {breadcrumb}, {view} y {root}.
parentIdVista padre, para la ruta de navegación y para mantener encendida la pestaña del padre.
framesAsignación explícita de un id de marco a un id de layout.
criteria, viewPermissionLa vista es inaccesible y su pestaña se oculta cuando no se cumplen.
activeStyleCómo se ve la pestaña mientras está activa: glint, material, customModelData, nameFormat, loreSuffix.

En el Open GUI, defaultViewId es la vista que se abre primero (la primera declarada cuando está vacío). breadcrumbSeparator es el texto MiniMessage entre los segmentos de la ruta de navegación, y pushHistoryOnViewSwitch hace que gui:back vuelva a la vista anterior tras un cambio de pestaña.

Rellenar los marcos​

En un layout frame, establece el layoutId de un marco en @view. Para la vista activa, la extensión busca el layout en este orden:

  1. la asignación frames de la vista para ese id de marco;
  2. un layout llamado <view id>_<frame id>, por ejemplo island_content para el marco content y la vista island;
  3. las mismas dos búsquedas en la cadena de parentId.

Un marco que no se resuelve a nada se queda vacío. Solo el layout raíz del menú (mainLayoutId) resuelve los marcos @view.

Pestañas​

Da a un item de pestaña buttonPrefix view: y buttonType igual al id de la vista. Al hacer clic en él, cambia a la vista, y adopta el activeStyle de la vista mientras esa vista o una de sus hijas está activa. Las pestañas de vistas inaccesibles se ocultan.

Se usa la primera vista a la que el jugador puede acceder cuando la solicitada está oculta. Una vista solicitada que no existe se registra como Unknown view.

Heredar un menú​

baseMenuId es el id de entrada de un Open GUI que actúa como plantilla. El hijo hereda su layoutPool, views, mainLayoutId, defaultViewId y size, y la cadena se sigue hasta la raíz, de modo que un menú puede heredar una plantilla de dominio que a su vez hereda un armazón global. Un layout del hijo con el mismo id sustituye al heredado, y lo mismo ocurre con las vistas. El storagePool se hereda solo del padre directo. Un mainLayoutId en blanco en el hijo usa el del padre.

Comprueba que el padre existe, que cada layoutId existe en el conjunto combinado y que dos menús no heredan el uno del otro.

En la práctica​

Crea un menú plantilla con un marco de pestañas fijo y un marco de contenido @view, y luego crea un hijo por dominio que solo sobrescriba los layouts de contenido. Los layouts de contenido pueden ser simple, scrollable o paginated sin tocar la franja de pestañas.