counter-of-shinuwa/docs/IMPLEMENTATION.md
Shinuwa 07eb6dc053
Some checks failed
Build / build (push) Has been cancelled
Initial commit
2026-09-18 14:54:32 +02:00

56 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.