Types et contrats
Toutes les classes publiques sont dans net.turtle.ef5am.api.client.settings. L’API est fournie dans le source set client.
ElytraF5SettingsApi
| Membre | Comportement |
|---|---|
API_VERSION | Constante de compatibilité actuelle : 1. |
registerCategory(category) | Inscrit une catégorie pendant l’initialisation client. Lève une erreur si l’identifiant est mal formé ou déjà utilisé, ou si les options ne respectent pas leurs contraintes. |
registeredCategories() | Retourne une copie de la liste des catégories inscrites à cet instant. |
SettingsCategory
SettingsCategory(
id: String,
title: Component,
options: List<SettingsOption>,
icon: Identifier? = null
)- id : identifiant namespacé, par exemple
examplemod:visuals. Caractères autorisés : minuscules, chiffres,_ . -dans le namespace ; le chemin accepte aussi/. - title : texte de catégorie, de préférence
Component.translatable(...). - options : liste ordonnée des lignes d’option.
- icon : identifiant de texture 16 × 16 facultatif. Exemple :
Identifier.fromNamespaceAndPath("examplemod", "textures/gui/settings.png").
SettingsOption commun
Chaque option a un id local à sa catégorie, un title et une description. La description est montrée comme infobulle et doit être traduisible.
BooleanSettingOption
BooleanSettingOption(
id, title, description,
currentValue: () -> Boolean,
onChanged: (Boolean) -> Unit
)Le fournisseur currentValue est interrogé lors de la création de l’écran. Votre callback doit mettre à jour la valeur dans votre configuration en mémoire.
ChoiceSettingOption
ChoiceSettingOption(
id, title, description,
choices: List<SettingsChoice>,
currentChoice: () -> String,
onChanged: (String) -> Unit
)
SettingsChoice(id: String, title: Component)Les identifiants des choix doivent être uniques et la valeur de currentChoice() doit correspondre à un choix existant au moment où la catégorie est enregistrée. Le contrôle affiche le titre du choix, mais le callback reçoit son identifiant.
ActionSettingOption
ActionSettingOption(
id, title, description,
buttonTitle: Component,
action: (Screen) -> Unit
)Le callback reçoit l’écran ElytraF5 actuel. Pour ouvrir un écran enfant et permettre un retour correct, passez cette valeur comme parent de votre écran.
Validation et limites
- Les identifiants de catégorie sont uniques globalement ; les identifiants d’option sont uniques dans leur catégorie.
- Les identifiants d’option acceptent minuscules, chiffres,
.,_et-. - Un sélecteur de choix doit avoir au moins une valeur, sans doublon.
- L’icône manquante ou introuvable utilise une icône de secours.
- Un trop grand nombre de catégories ou de lignes est navigable par défilement.
- Les fonctions de valeur restent détenues par le mod contributeur ; l’API ne sérialise pas votre configuration.