Initial commit
Some checks failed
Build / build (push) Has been cancelled

This commit is contained in:
Shinuwa 2026-09-18 14:54:32 +02:00
commit 07eb6dc053
318 changed files with 339857 additions and 0 deletions

56
docs/IMPLEMENTATION.md Normal file
View file

@ -0,0 +1,56 @@
# Réalisation et validation V1
Cible : Minecraft 1.21.1 / NeoForge 21.1.235 / Java 21 / Easy NPC Core 7.12.1.
## Implémentation
- [x] Identité du mod, configurations, intégration obligatoire Easy NPC.
- [x] Boutique persistante, cinq objets de construction, inventaires et outil de liaison.
- [x] Validation des zones, parcours, spécialisations et chunks, contours côté client.
- [x] Framework extensible et production Vanilla : 2×2, 3×3, four, haut fourneau, fumoir, taille de pierre, forge.
- [x] Provenance par boutique/session/propriétaire, lots manuels, exclusion des anciens résultats et des apports automatiques.
- [x] Graphe de recettes, alternatives, cycles, quantités, restes, combustible et stock sans doublons.
- [x] Sessions STANDARD/CHILL, commandes jusqu’à trois lignes, livraison atomique pour les interactions normales, paiement et crédit persistant.
- [x] Clients Easy NPC, file, navigation, dialogues, sortie, récupération des blocages, réputation et fermetures.
- [x] Écrans, modèles utilisant les textures Vanilla, recettes d’obtention, traductions FR/EN, documentation et scripts d’installation/validation.
- [x] Extension de test ajoutant famille, station, recette et handler sans modifier le cœur.
## Contrôles exécutés — 17 septembre 2026
**14 tests unitaires**, sans échec :
- Règles des deux modes, réputation CHILL à 500, progression STANDARD.
- Prix multi-produit et arrondi unique après multiplicateur.
- Recettes récursives, tailles de lots, restes, ressources partagées, alternatives, cycles, combustible, budget de recherche et absence de mutation lors d’un échec.
**21 GameTests**, sans échec sur serveur Minecraft/NeoForge avec Easy NPC :
- Sérialisation de boutique, modes et invalidation des anciens marquages.
- Livraison exacte sur plusieurs piles, surplus et refus sans consommation partielle.
- Craft 2×2, 3×3 et shift-craft ; rejet des intermédiaires externes et fabrications hors zone.
- Fours manuels, haut fourneau, fumoir ; rejet du chargement automatique, des anciennes sorties et des mélanges par entonnoir.
- Tailleur de pierre, transformation netherite, restes de fabrication marqués.
- Permissions des stockages, limitation des sessions, inventaire plein et crédit restant.
- Transfert stockage → grille → curseur sans duplication du stock.
- Humanoïde et villageois Easy NPC : apparition, navigation et suppression.
- Cycle client → commande → fabrication → livraison → paiement → départ ; double validation sans double paiement.
- Fermeture neutre après obstruction du parcours.
- Extension indépendante de production ; entonnoir incapable de retirer le stock sécurisé.
Les joueurs simulés des GameTests ne négocient pas les canaux réseau Easy NPC : son API peut journaliser un refus de bulle de dialogue vers ces connexions simulées. La synchronisation avec un vrai client est couverte séparément.
**Test graphique automatisé réussi**, dans un affichage Xvfb isolé : chargement des mods, connexion au serveur intégré, création d’une boutique, arrivée du PNJ au comptoir, réception de la commande et affichage de l’écran français. Capture inspectée : `run/clientSmoke/counter-smoke.png`. Témoin d’exécution : `run/clientSmoke/counter-smoke.ok`.
**Construction du JAR réussie.** Rapports unitaires : `build/reports/tests/test/index.html`. Bilan serveur : `build/reports/gametest.log`. Le script de vérification exige un bilan non vide de tests réussis, en plus du code de sortie Gradle.
## Limites des preuves et recette manuelle
Les tests automatiques ne remplacent pas une partie prolongée. Les points suivants restent à éprouver avant de qualifier une version publique de stable :
- Deux vrais joueurs sur un serveur dédié : réapprovisionnement par un ami, reconnexion, échanges rapides et inventaires pleins.
- Arrêt puis redémarrage complet d’un serveur avec boutiques et crédits, récupération des anciens PNJ dans des chunks chargés ultérieurement. La sérialisation et l’invalidation par session sont testées ; cette séquence disque/processus complète n’est pas automatisée.
- Déchargement réel des chunks, rechargement de datapacks et reconfiguration en cours de jeu.
- Parcours avec relief, obstacles mobiles et autres types d’entités Easy NPC configurés.
- Équilibrage des prix, de la patience et des quantités ; performances avec un modpack volumineux et de nombreuses boutiques actives.
La V1 utilise des recettes à résultat déterministe. Les objets à composants particuliers et mécanismes non pris en charge sont exclus. L’estimation de combustible/durée est conservatrice pour les machines déjà en cours de cuisson. Farmer’s Delight, automatisation admissible, assistants, feu de camp et recettes spéciales sont prévus après cette version.