Thème et packs de ressources
Toutes les couleurs et tous les espacements de Galdur UI viennent d’un seul fichier, theme.json. Il est relu avec les ressources, et un pack de ressources peut en changer tout ou partie.
theme.json
assets/galdurui/theme.json est la seule source de la charte : les couleurs, et les espacements dans la section spacing.
{ "background": "#2A2420", "surface": "#352E29", "text": "#F8F3E8", "text_muted": "#C9BEAD", "accent": "#B8341F", "accent_hover": "#D9573D", "accent_pressed": "#952A18", "ember": "#D98A1F", "spacing": { "panel_padding": 16, "gap": 8, "button_padding_x": 6, "button_min_width": 40, "button_height": 20, "list_row_height": 12, "scrollbar_width": 4, "field_height": 16, "tab_height": 16, "tab_padding_x": 8, "progress_height": 12 }}Couleurs
| Clé | Sert à |
|---|---|
background | Fond principal des écrans (charbon). |
surface | Éléments posés sur le fond : listes, champs. |
text | Couleur principale du texte (crème). |
text_muted | Texte secondaire, moins contrasté. |
accent | Couleur d’accent au repos (redstone). |
accent_hover | Accent sous la souris ou le focus clavier. |
accent_pressed | Accent pendant l’appui. |
ember | Couleur secondaire chaude, pour les mises en valeur. |
Écris les couleurs en "#RRGGBB" (opaque) ou "#AARRGGBB". Un entier JSON est accepté ; s’il tient sur 24 bits (≤ 0xFFFFFF, donc sans octet alpha), il est lu comme RRGGBB opaque, avec un avertissement dans le journal, plutôt que de donner une couleur invisible.
Les espacements sont en pixels d’interface. Ils s’appliquent à la prochaine construction d’un écran.
Le changer avec un pack de ressources
Mets un theme.json au même chemin dans un pack de ressources : assets/galdurui/theme.json. Il peut être partiel : le fichier du jar fournit les valeurs par défaut de chaque clé absente.
{ "background": "#18222E", "surface": "#22303F", "accent": "#2F6FB8", "accent_hover": "#4F8FD9", "accent_pressed": "#24568F", "ember": "#3FC1D9", "spacing": { "button_height": 24, "gap": 12 }}C’est le pack thème bleu fourni par le mod de test (Options → Packs de ressources). text et la plupart des espacements manquent : ils reprennent les valeurs par défaut. Une couleur invalide (ni #RRGGBB ni #AARRGGBB) écrit un avertissement et garde aussi la valeur par défaut.
Minecraft ignore F3+T tant qu’un écran est ouvert. Dans /galdurui test, utilise le bouton « Reload theme ».
Lire le thème dans le code
GaldurTheme donne les couleurs en ARGB (0xAARRGGBB), le format attendu par les méthodes de rendu de Minecraft, et les espacements en pixels.
int accent = GaldurTheme.accent();int gap = GaldurTheme.gap();int custom = GaldurTheme.colorOrDefault("mymod_energy", 0xFF3FC1D9);Relis couleurs et espacements à chaque image ou à chaque init(), jamais dans un champ static final : un pack de ressources peut les changer à tout moment.
Tes propres clés
Un mod peut lire ses propres clés de couleur avec colorOrDefault(key, fallback) et les tester avec has(key). Un pack de ressources qui veut habiller ton mod ajoute la clé dans son theme.json ; sans elle, ta valeur de repli est utilisée.
Un panneau au thème autour des layouts vanilla
GaldurPanelLayout entoure n’importe quel layout vanilla d’un panneau de fond au thème, avec la marge du thème. Utilise-le pour donner à un Screen fait main le même rendu que les fenêtres Galdur UI. Le panneau est dessiné avec un sprite en niveaux de gris teinté par le thème : voir Sprites.