Grid
Grille à N colonnes. Distribue les enfants en lignes successives. La dernière ligne peut être incomplète.
package ca.tawess123.apocalyinterface.api.layout;
Builder
Grid grid = Grid.builder()
.columns(int cols) // nombre de colonnes (requis)
.gap(int gap) // espace entre cellules (défaut : 4 px)
.add(Widget widget) // ajouter un enfant (chaînable, plusieurs fois)
.build();
Options du builder
| Option | Type | Défaut | Description |
|---|---|---|---|
.columns(int) | int | — | Nombre de colonnes. Requis. |
.gap(int) | int | 4 | Espace horizontal et vertical entre cellules, en px. |
.add(Widget) | Widget | — | Ajouter un enfant. Appelable plusieurs fois. |
Hauteur calculée
nb lignes = ceil(nb enfants / nb colonnes)
largeur cell = (largeur disponible - (cols-1) × gap) / cols
hauteur cell = max(hauteurs des enfants sur la ligne)
hauteur totale = Σ(hauteurs de lignes) + (nb lignes - 1) × gap
Exemple
import ca.tawess123.apocalyinterface.api.layout.Grid;
import ca.tawess123.apocalyinterface.api.widget.ItemIcon;
import net.minecraft.world.item.Items;
// Grille 3 colonnes — 5 items (2 lignes : 3 + 2)
Grid recompenses = Grid.builder()
.columns(3)
.gap(4)
.add(ItemIcon.builder().item(Items.DIAMOND).build())
.add(ItemIcon.builder().item(Items.EMERALD).build())
.add(ItemIcon.builder().item(Items.GOLD_INGOT).build())
.add(ItemIcon.builder().item(Items.IRON_INGOT).build())
.add(ItemIcon.builder().item(Items.COAL).build())
.build();
root.add(recompenses);
Cas d'usage typiques
| Cas | Config recommandée |
|---|---|
| Récompenses de quête (items) | columns(3) ou columns(4) + ItemIcon |
| Options de rôle | columns(2) + Button |
| Stats en grille | columns(2) + KeyValueRow |
Voir aussi
- Guide : Système de layout
- Référence Row — 2-3 widgets côte à côte (plus simple que Grid)
- Référence ItemIcon