109 lines
6.6 KiB
Markdown
109 lines
6.6 KiB
Markdown
# Recettes JEI — collections et Blocodex
|
||
|
||
Ticket beta.024, suivant la finalisation cosmétique beta.023. État : livré et vérifié localement.
|
||
|
||
## Décisions du créateur
|
||
|
||
Reprendre JEI depuis ses sources Minecraft 26.2, puis adapter la version à
|
||
Minecraft 26.3-pre-2 / Fabric API 0.160.0+26.3. La fabrication manuelle reste
|
||
libre ; l’accès au catalogue et la révélation d’une recette sont distincts.
|
||
Les avancées Minecraft et les découvertes du Blocodex débloquent des collections
|
||
de recettes. Découvrir une planche révèle la **famille de base du bois** :
|
||
bâtons, établi, coffre, portes et constructions simples. Cela ne révèle pas
|
||
automatiquement piston, bouclier ou toute recette contenant une planche.
|
||
|
||
Les recettes peuvent être connues avant l’achat de l’outil de consultation,
|
||
comme l’exploration conservée avant le déblocage de la carte. La vue opérateur
|
||
doit être explicite et permettre de vérifier également la vue d’un habitant.
|
||
Ni consultation ni découverte de recette ne doivent attribuer de faux compteurs
|
||
de blocs possédés, placés ou minés. Le livre de recettes natif reste masqué.
|
||
|
||
## Source examinée
|
||
|
||
Dépôt officiel : https://github.com/mezz/JustEnoughItems, branche `26.2`,
|
||
commit `aae2dfcfb82e6b5bce787ba72bb2eda7339b274f`, version source `30.32.0`.
|
||
Licence MIT, notice mezz à conserver. Copie de travail ignorée :
|
||
`build/jei-26.2-upstream`. Le dépôt voisin `26.2` reste en lecture seule.
|
||
L’intégration historique utilisait JEI `30.29.0.201` et un verrou global à
|
||
30 niveaux ; ses anciens prix ne constituent pas le nouveau contrat de bêta.
|
||
|
||
Le portage se reconstruit depuis les sources fixées et leurs patches. Aucun JAR 26.2 n’est déclaré
|
||
compatible par simple changement du manifeste. Aucune publication ni mise à
|
||
jour d’instance personnelle n’est autorisée par ce ticket.
|
||
|
||
## Contrat de données beta.024
|
||
|
||
Une nouvelle pièce jointe Fabric `sanctuary:recipe_knowledge`, JSON schéma 1,
|
||
contient le reçu d’achat du catalogue (4 niveaux), les identifiants d’objets
|
||
réellement découverts et les identifiants de recettes apprises. Elle est copiée
|
||
à la mort et n’est pas remise à zéro par le prestige. Les anciens formats de
|
||
progression, inventaire et Blocodex ne changent pas. Une valeur absente initialise
|
||
un carnet vide ; une valeur invalide est conservée et bloque l’achat/la consultation.
|
||
|
||
À la connexion, les blocs déjà connus, les statistiques natives d’objets et
|
||
le livre de recettes serveur alimentent le carnet. Ensuite, les découvertes et
|
||
les récompenses natives d’advancements l’enrichissent. Aucune possession de bloc
|
||
n’est créée par la lecture d’une recette. Les recettes spéciales sans découverte
|
||
native restent réservées à la vue opérateur tant qu’une collection ne les enseigne pas.
|
||
|
||
Le serveur envoie le carnet personnel ; le client filtre JEI. Le catalogue coûte
|
||
4 niveaux, indépendamment du nombre de recettes déjà apprises. La vue opérateur
|
||
est une bascule explicite, autorisée côté serveur et révoquée à la perte des droits.
|
||
Ce filtre est une règle d’interface : les fichiers de recettes publics du jeu ne
|
||
sont pas des secrets. Aucune restriction de fabrication manuelle n’est ajoutée.
|
||
|
||
La distribution inclut un fork MIT de JEI compilé depuis le commit fixé, avec
|
||
ses patches conservés dans le dépôt et ses sources téléchargées dans `build/`.
|
||
Les durées de combustible et rendements du composteur devenus contextuels en
|
||
26.3 sont décrits comme dépendants du serveur, sans inventer de valeurs fixes.
|
||
|
||
## Parcours livré
|
||
|
||
**B → Découverte → Recettes**, ou **Progression → Aptitudes → Catalogue de recettes**.
|
||
Le catalogue coûte 4 niveaux. Après achat, R consulte les recettes et U leurs
|
||
utilisations depuis une case survolée ; le bouton + remplit la grille depuis les
|
||
rangées débloquées, jusqu’à six. Les cases de récupération après prestige sont exclues.
|
||
|
||
Les récompenses de recettes des advancements Minecraft sont reprises directement.
|
||
Deux collections additionnelles sont définies en données : les bases du bois à la
|
||
première découverte d’une planche, et l’alchimie après `minecraft:nether/brew_potion`.
|
||
Leurs fichiers sont dans `data/sanctuary/sanctuary_recipe_collections/` et peuvent être
|
||
remplacés/complétés par un datapack (`items`, `item_tags`, `advancements`, `recipes`,
|
||
`recipe_types`). Chaque déclencheur est une alternative ; les recettes effectivement
|
||
présentes sur le serveur sont retenues. `/reload` recharge les collections ; les
|
||
recettes déjà apprises restent enregistrées.
|
||
|
||
Les fluides du catalogue apparaissent lorsque leur seau est découvert. Les plans
|
||
connus montrent ingrédients, résultat et poste de travail sans modifier les compteurs
|
||
Blocodex. Les recettes spéciales sans identifiant/déblocage natif demandent encore
|
||
leurs futures collections ; elles sont consultables en vue opérateur.
|
||
La vue opérateur est temporaire et revient à la vue habitant au changement de serveur.
|
||
La révocation des droits est détectée à la prochaine synchronisation (au plus une
|
||
seconde de ticks serveur). Aucun objet n’est donné par cette bascule.
|
||
|
||
Les règles et limites du port JEI sont détaillées dans
|
||
[PROVENANCE.md](../mods/jei/PROVENANCE.md). La génération du terrain conserve le
|
||
correctif beta.022 et ses valeurs ; ce ticket ne régénère aucun chunk.
|
||
|
||
## Vérifications et artefact
|
||
|
||
`./gradlew check build assemblePack :sanctuary:runClientGameTest` avec les suites
|
||
serveur progression/inventaire/cosmétiques/familiers/construction/minage/tutoriel,
|
||
recettes et startup, et `sanctuaryRecipesClientTests=true` : **réussi**.
|
||
123 tests serveur, 588 288 comparaisons de densité à l’identique, parcours client
|
||
avec catalogue verrouillé, raccourci U réel, fabrication affichée sans établi
|
||
connu, fluides inconnus masqués, vue opérateur puis révocation, transfert réseau
|
||
depuis la sixième rangée, véritable New Game+, mort/respawn et redémarrage.
|
||
Le client vérifie aussi l’achat depuis un Blocodex ouvert par le menu Pause.
|
||
Les captures du parcours ont été inspectées en GUI 2 et GUI 4.
|
||
|
||
Les collections sont résolues une fois par rechargement de données ; les relevés
|
||
sont répartis entre les ticks des habitants. Un carnet inchangé n’est ni sérialisé
|
||
ni renvoyé périodiquement. Les données serveur restent la référence.
|
||
|
||
MRpack local : `build/Sanctuary-beta.024.mrpack`.
|
||
SHA-256 : `fc7d5b9b393a3c1d252e6a98a9b9f26b64e64024a06c876dc1943e4f42dce675`.
|
||
Reçu détaillé : `build/jei024-artifact.json` ; journal de validation :
|
||
`build/jei024-final-check.log`. Les exports beta.020, beta.022 et beta.023 sont
|
||
inchangés. Aucune installation personnelle ni sauvegarde existante n’a été modifiée.
|