Record Sanctuary sources through beta.060 and Git validation
Build Sanctuary / build (push) Canceled after 0s
Build Sanctuary / build (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
# beta.060 — objets et blocs sur les mobs
|
||||
|
||||
Ticket `codex/mob-head-blocks-beta060`.
|
||||
|
||||
## Contrat avant implémentation
|
||||
|
||||
Les mobs peuvent porter un exemplaire d'un objet dans un emplacement distinct
|
||||
de leur équipement natif. L'IA continue de se déplacer et d'agir normalement.
|
||||
Le geste confirmé est Maj + clic droit avec l'objet pour équiper, clic droit
|
||||
pour utiliser, Maj + clic droit à main vide pour récupérer. La tête vide
|
||||
retrouve le geste de portage existant. Aucun achat d'aptitude supplémentaire.
|
||||
|
||||
Les blocs réutilisent les interactions de tête existantes : stockage public,
|
||||
établi, four, levier, bouton, torche de redstone, etc. Un seul emplacement,
|
||||
aucun remplacement silencieux. Le retrait et la mort rendent l'objet et le
|
||||
contenu ordinaire ; une Shulker garde son contenu une seule fois. Les mobs
|
||||
hostiles gardent leur comportement et leur armure. Les familiers conservent
|
||||
leur IA et leurs règles d'appartenance ; leur disparition restitue l'objet.
|
||||
|
||||
La source redstone est indexée dans la cellule de la tête, sans poser de bloc.
|
||||
Une poule équipée d'une torche alimente les circuits voisins au fil de ses
|
||||
déplacements. Un levier ou bouton peut être actionné par un joueur. Les coups
|
||||
déclenchent les réactions déjà prévues des blocs portés. Les distances,
|
||||
menus opérateur et contrôles du serveur restent applicables.
|
||||
|
||||
## Données et compatibilité
|
||||
|
||||
Ajout du champ `sanctuary:mob_head`, schéma 1, aux seules entités équipées.
|
||||
Il contient l'exemplaire et l'état du bloc natif (même contrat de session que
|
||||
les joueurs). Les anciennes entités sans champ restent sans objet. Les données
|
||||
illisibles sont conservées et leur équipement est bloqué jusqu'à réparation.
|
||||
Les formats des joueurs, inventaires, générations et chunks ne changent pas.
|
||||
Déchargement : sauvegarde et fermeture des menus, suppression du signal local ;
|
||||
rechargement : restauration sans duplication. Aucune migration de monde existant.
|
||||
Un retour à une version antérieure ne doit pas être fait en sauvegardant les
|
||||
mobs ainsi équipés : récupérer leurs objets avant ce retour.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Le parcours `MobHead060ClientChecks` passe sur Minecraft 26.3-pre-2, dans un
|
||||
monde plat de développement, graine 42. Les commandes sont désactivées après
|
||||
la création pour vérifier l'accès d'un joueur normal.
|
||||
|
||||
- Maintien réel de la touche d'accroupissement et paquet natif d'interaction :
|
||||
une seule torche transférée, aucune mise en portage, récupération à main vide,
|
||||
puis portage de la poule redevenue disponible.
|
||||
- Deux lampes déjà posées : allumage à proximité, extinction après déplacement
|
||||
et signal présent dans la nouvelle cellule. Suppression immédiate de la
|
||||
source lors d'un déchargement natif d'entité, puis restauration après lecture
|
||||
de son NBT et rechargement.
|
||||
- Vrai menu de coffre à trois rangées, sept diamants conservés par sauvegarde,
|
||||
fermeture du visiteur et restitution exacte au retrait. Shulker rendue une
|
||||
seule fois avec cinq émeraudes ; mort avec un baril et quatre lingots, sans
|
||||
duplication lors d'un second nettoyage.
|
||||
- Levier, bouton, pot fleuri, distributeur tirant une flèche après un vrai coup,
|
||||
four fondant du fer avec du charbon et TNT consommée dans une seule entité
|
||||
amorcée. Le coffre porté par le joueur reste fonctionnel.
|
||||
- Extraction des modèles natifs adultes/bébés pour poule, vache, zombie,
|
||||
abeille, slime, morue, Wither et Ender Dragon ; objet ordinaire affichable.
|
||||
Libellés FR/EN et conservation d'un enregistrement invalide vérifiés.
|
||||
- Captures de la poule avec sa torche, des lampes et du coffre ouvert inspectées
|
||||
dans `build/mob-head060-evidence/`.
|
||||
|
||||
Commande native réussie en 1 min 10 s :
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest -x :sanctuary:runGameTest \
|
||||
-PsanctuaryClientTests=true -PsanctuaryMobHead060ClientTests=true \
|
||||
-PsanctuaryQuickTests=true
|
||||
```
|
||||
|
||||
Journal : `build/mob-head060-client.log`, marqueur `MOB_HEAD060_PASS`.
|
||||
`./gradlew check build assemblePack assembleTestPack`, avec les mêmes propriétés
|
||||
et l'exclusion du serveur dédié, réussit en 2 min 15 s (122 tâches).
|
||||
Journal : `build/mob-head060-check.log`.
|
||||
|
||||
Les deux exports packwiz sont vérifiés par `build/verify-mob-head060.py` :
|
||||
1 620 classes conformes au build, références compilées aux nouvelles signatures
|
||||
contrôlées, ressources de jeu et JEI préservés, archives beta.059 intactes.
|
||||
Reçu : `build/mob-head060-artifact.json`.
|
||||
[Pack normal](../build/Sanctuary-beta.060.mrpack) ·
|
||||
[Monde plat rapide](../build/Sanctuary-Test-beta.060.mrpack).
|
||||
|
||||
## Limites de cette livraison
|
||||
|
||||
Les blocs gardent les mêmes limites que sur les joueurs : lit décoratif,
|
||||
piston local sans poussée de terrain, absence de random ticks pour les cultures
|
||||
et conditions natives requises pour les structures multiblocs. Un objet porté
|
||||
ne remplace pas l'IA : les déplacements restent ceux du mob. Les familiers
|
||||
éphémères rendent leur objet au sol lorsqu'ils disparaissent ; l'objet ne se
|
||||
stocke pas dans leur œuf.
|
||||
|
||||
Les modèles ordinaires suivent leur tête animée. Les rendus spécialisés sans
|
||||
modèle de créature standard, notamment le dragon, ont un placement de repli
|
||||
près de leur hauteur de regard, qui pourra demander un ajustement visuel.
|
||||
Le test des variantes est une extraction native ; seules la poule et son
|
||||
interface de coffre ont fait l'objet d'une inspection visuelle de capture.
|
||||
Aucune session avec plusieurs clients humains ou mesure de FPS n'est revendiquée.
|
||||
Aucune installation personnelle, publication de canal ou acceptation d'EULA
|
||||
de serveur dédié.
|
||||
Reference in New Issue
Block a user