HomeCore 1.14.0
API commune pour les appareils et réseaux d'une base Minecraft. HomeCore ne dépend d'aucun mod consommateur : Dashboard, Energy, Furnace, Quarry, Farm, Storage et Tasks utilisent ses contrats sans qu'il connaisse leurs implémentations.
Rôle#
HomeCore définit les contrats communs (fr.lkdm.homecore.api.*) que n'importe quel mod peut implémenter ou consommer :
- DashboardDevice : un appareil logique (bloc, machine, système) identifié par un UUID stable.
- DeviceMetric : une valeur exposée par l'appareil (température, énergie, progression…), avec une fréquence de rafraîchissement (REALTIME, FAST, NORMAL, SLOW, STATIC).
- DeviceAction : une action déclenchable à distance (bouton, curseur), protégée par permission.
- DeviceEvent : un événement publié sur transition d'état (alerte, achèvement…), consommable par abonnement.
- HomeNetwork : un réseau persistant regroupant des appareils et des joueurs avec des rôles.
Permissions#
| Rôle | Permissions par défaut |
|---|---|
| OWNER | Toutes les permissions reconnues |
| ADMIN | VIEW, CONTROL, AUTOMATE, CONFIGURE, MANAGE_NETWORK |
| MEMBER | VIEW, CONTROL, AUTOMATE |
| VIEWER | VIEW |
Chaque appareil vérifie appartenance au réseau, permission CONTROL/spécifique, état ONLINE et validité du paramètre avant d'exécuter une action. Une limite de 10 requêtes par joueur, rechargée à 10/s, protège contre les abus.
Établi électronique HomeLink#
homecore:electronics_workbench est la station d'assemblage partagée par tous les mods HomeLink. Elle occupe 2 blocs, ne consomme ni énergie ni carburant, et fabrique les quatre composants électroniques de base :
| Composant | ID | Rôle |
|---|---|---|
| Circuit Board | homecore:homelink_circuit_board | Électronique de base |
| Microprocessor | homecore:homelink_microprocessor | Traitement et logique |
| Communication Module | homecore:homelink_communication_module | Communication, réseau, détection |
| Control Module | homecore:homelink_control_module | Contrôle de machines et automatisation |
Ces IDs sont stables : les mods consommateurs peuvent les référencer directement sans dépendre les uns des autres.
Recettes#
L'établi se fabrique à la table vanilla. Les quatre composants se fabriquent dans l'établi électronique (recette non positionnelle : une liste d'ingrédients avec quantités, pas de grille figée). La grille 3×3 ci-dessous ne s'applique qu'à l'établi lui-même.
Icônes : rendu 3D des blocs, comme dans l’inventaire ; les objets (lingots, composants…) gardent leur texture réelle.
| Composant (établi) | Ingrédients | Résultat |
|---|---|---|
| Circuit Board |
|
|
| Microprocessor |
|
|
| Communication Module |
|
|
| Control Module |
|
Connecteur HomeLink#
homecore:homelink_connector est l’outil commun pour rattacher un appareil à un HomeNetwork. Il fonctionne avec tout appareil découvert par un provider HomeCore et implémentant NetworkMember : c’est donc le même outil pour les machines de Farm, Quarry, Storage ou Dashboard.
| Geste | Effet |
|---|---|
| Clic dans le vide | Parcourt les réseaux que le joueur peut administrer ; le réseau sélectionné s’affiche dans le message. |
| Clic sur un appareil | Rattache cet appareil au réseau sélectionné. |
| Accroupi + clic sur un appareil relié | Sélectionne le réseau de cet appareil. |
| Accroupi + clic dans le vide | Efface la sélection de l’outil (ne détache aucun appareil). |
La sélection est conservée sur l’objet et les permissions sont revérifiées à chaque utilisation. Le connecteur appelle DashboardAPI.bindDevice() : il exige le droit de configurer la machine et MANAGE_NETWORK sur le réseau d’arrivée comme sur le précédent. Un refus conserve le rattachement existant. Le propriétaire de la machine n’est pas transféré avec son rattachement.
Les outils spécialisés de chaque mod restent utiles pour les associations qui leur sont propres (zones de culture, zone de minage). Les câbles d’énergie de HomeLink Energy et les ports d’objets sont des connexions physiques, distinctes du HomeNetwork.
L’icône ci-dessous est un rendu 3D du connecteur, comme dans l’inventaire. Recette en table vanilla, sur une grille 2 × 2.
Réseaux persistants#
Les HomeNetwork sont sauvegardés dans les SavedData de l'Overworld et partagés entre dimensions. Les UUID d'appareils survivent au redémarrage. Trois états de liaison sont disponibles pour les consommateurs : CONNECTED, UNREACHABLE, OFFLINE. HomeCore ne calcule aucune portée radio : cette logique appartient à chaque mod (voir Dashboard pour son système de répéteurs).
Installer / construire#
./gradlew.bat clean build test javadoc
./gradlew.bat runClient
Le JAR est produit dans build/libs ; installer homecore-1.14.0.jar côté client et serveur. Pour développer un mod consommateur, publier d'abord HomeCore en local avec ./gradlew.bat publishToMavenLocal.
Galerie#
Captures en jeu. Cliquer pour agrandir.