Contribuer
Compile Galdur UI, lance-le avec le mod de test, et propose une pull request. Voici comment le dépôt est organisé et les règles qu’il suit.
Compiler et lancer
.\gradlew.bat runClient # lance le client de développement (bibliothèque + mod de test).\gradlew.bat build # compile, lance les tests et produit le jar dans build/libs.\gradlew.bat test # tests unitaires seuls (sans démarrer Minecraft)Il te faut Java 21. Sous Linux et macOS, utilise ./gradlew au lieu de .\gradlew.bat.
Le mod de test
Les écrans de démo, les blocs de test et les outils de debug vivent dans un source set séparé, src/testmod, sous la forme d’un second mod (galduruitest). Les lancements de développement le chargent à côté de Galdur UI ; il n’est jamais dans le jar de la bibliothèque.
| Commande | Effet |
|---|---|
/galdurui test | Écran de démo de tous les widgets. |
/galdurui window | Démo de l’API déclarative GaldurWindow. |
/galdurui debug | Active ou coupe les contours de debug des layouts. |
/galdurui fps | Active ou coupe un compteur de FPS visible sur les écrans (F3 y est masqué). |
/galduruidev chest | Donne un coffre de test (aussi dans l’onglet créatif « Blocs fonctionnels ») qui s’ouvre dans un GaldurContainerScreen. |
/galduruidev terminal | Ouvre un terminal de test : une grille de tous les objets du jeu au-dessus de l’inventaire. |
Le mod de test ajoute aussi un pack de ressources thème bleu (Options → Packs de ressources), qui ne remplace qu’une partie de theme.json.
Organisation
com.galdurstudio.galdurui.api: API publique et stable utilisée par nos mods.api.menuest le seul paquet qui peut se charger sur un serveur dédié ; tous les autres sont côté client.com.galdurstudio.galdurui.internal: implémentation interne, peut changer à tout moment.internal.render.GaldurRenderest la seule classe qui appelleGuiGraphics.- Aucune signature publique de
apin’expose un typeinternal.
Règles
- Ne jamais faire dépendre
api.*d’un typeinternal.*dans une signature publique. - Garder les outils de développement dans le mod de test, jamais dans le jar de la bibliothèque.
- Des méthodes de l’API peuvent rester inutilisées dans le dépôt (
GaldurButton.withSprites,GaldurLabel.getText,GaldurPanelLayout.withSprite…) : elles font partie de l’API offerte aux mods. - Écrire la Javadoc de chaque classe et méthode publique : la référence API de ce site en est générée.
- Mettre à jour les Nouveautés sous
[Unreleased].
Sprites
Si tu changes la forme d’un sprite, régénère-les avec .\gradlew.bat generateSprites et commite les PNG : la CI échoue s’ils ne correspondent plus au générateur. Voir Sprites.
Questions
Ouvre une issue sur GitHub, ou demande sur le Discord : on répond à tout le monde.