Versions et compatibilité
Galdur UI suit le versionnage sémantique, mais ses composants héritent de classes de Minecraft : une mise à jour du jeu peut imposer une version majeure.
Versionnage sémantique
Les versions s’écrivent MAJEURE.MINEURE.CORRECTIF :
| Partie | Change quand… |
|---|---|
| CORRECTIF | Corrections de bugs, aucun changement d’API. |
| MINEURE | Nouveautés ; le code écrit pour une mineure précédente de la même majeure compile et marche toujours. |
| MAJEURE | Changement incompatible de api.*, y compris imposé par une mise à jour de Minecraft. |
Une MINEURE peut encore casser l’API. Dépends de [0.1,0.2) plutôt que de [0.1,) dans neoforge.mods.toml. internal.* n’est jamais couvert par ces règles.
Pourquoi les mises à jour de Minecraft comptent
L’API de Galdur UI ne vit pas à côté de Minecraft : ses composants héritent de classes du jeu pour s’intégrer à ses écrans et layouts.
| Classe Galdur UI | Hérite de / implémente (Minecraft) |
|---|---|
api.widget.GaldurButton | AbstractWidget |
api.widget.GaldurLabel | AbstractWidget |
api.widget.GaldurCheckbox | AbstractWidget |
api.widget.GaldurScrollList | AbstractWidget |
api.widget.GaldurSearchField | AbstractWidget (contient un EditBox) |
api.widget.GaldurItemSlot | AbstractWidget |
api.widget.GaldurTabs | AbstractWidget |
api.widget.GaldurProgressBar | AbstractWidget |
api.widget.GaldurIconButton | GaldurButton (donc AbstractWidget) |
api.widget.GaldurItemGrid | AbstractWidget |
api.screen.GaldurContainerScreen | AbstractContainerScreen |
api.menu.GaldurMenu | AbstractContainerMenu (côté logique, se charge sur un serveur) |
api.layout.GaldurPanelLayout | AbstractLayout (donc Layout), Renderable |
Leurs méthodes de rendu prennent un GuiGraphics, et leurs méthodes souris et clavier suivent les signatures d’AbstractWidget. Quand Mojang change ces classes (le rendu en 1.21.6 ou les entrées en 1.21.9, par exemple), l’API de Galdur UI change avec elles : une telle mise à jour peut demander une version majeure de Galdur UI, même si l’essentiel du travail est absorbé en interne.
La règle pour ton mod
N’appelle que l’API Galdur (api.*) pour dessiner et construire tes écrans, jamais GuiGraphics directement, et ne dépends jamais de internal.*. Plus un mod passe par l’API, moins il a de code à reprendre à chaque version de Minecraft.
Versions prises en charge
| Galdur UI | Minecraft | NeoForge | Java |
|---|---|---|---|
| 0.1.x | 1.21.1 | 21.1.x | 21 |
Les changements sont listés dans les Nouveautés.