5.4 KiB
beta.065 — collisions des bateaux collectifs
Branche codex/boat-collisions-beta065.
Problème et portée
Les huit formes de bateaux et radeaux collectifs utilisent le déplacement natif côté serveur. Leurs anciennes limites étaient fondées sur une tuile carrée de 1,375 bloc, alors que les modèles ont une longueur de 28 pixels par module. La coque visible dépassait donc sa collision dans le sens longitudinal. Un virage agrandissait aussi directement les limites sans vérifier le terrain ; après cette intrusion, le déplacement natif pouvait traverser le mur.
Les limites couvrent désormais les coques complètes, et le volume balayé par chaque virage est contrôlé avant le déplacement. Le mouvement natif reste utilisé pour les translations, l’appui au sol et sur l’eau, les formes de blocs et les collisions avec les autres véhicules. Les sièges, les commandes partagées, les moteurs, les vitesses et les règles de chute des piles restent inchangés.
Les modèles et les textures ne changent pas. Les bateaux simples Minecraft conservent leur comportement. Aucune modification de chunk, de recette, de journal ou de format de sauvegarde ; les identifiants existants restent stables. Les positions enregistrées des anciens bateaux ne sont pas déplacées par la mise à jour : seule leur collision utilise les dimensions corrigées.
Collision de la coque
Les huit formes sont couvertes : 1 × 2, 2 × 1, 1 × 3, 3 × 1, 2 × 2, 2 × 3, 3 × 2 et 3 × 3, sur les onze bois. Largeur et longueur de la coque :
- Bois :
colonnes + 0,25×rangées × 1,75 + 0,25blocs, rebords compris. - Bambou :
colonnes × 1,25×rangées × 1,75blocs.
Comme dans le moteur natif, la collision est une boîte alignée sur les axes ; elle englobe la coque orientée. Les rames animées restent décoratives. Un virage vérifie aussi les extrema entre ses deux orientations, pour qu’un coin ne traverse pas un mur avant de revenir dans une position libre. Au contact, l’inertie de rotation s’arrête ; le recul et le glissement le long du mur restent résolus par Minecraft. Les rotations de placement ou de téléportation ne sont pas remplacées par des tentatives de conduite.
Vérification
Client Minecraft 26.3-pre-2 et serveur intégré de développement, monde plat
neuf de graine 65. Le test avant correction traverse effectivement le mur
situé en X=8 : après quinze mouvements avec virage, le centre atteint X=12,55.
Ce même cas passe après correction.
- 88 variantes : 3 168 déplacements contre des murs dans les deux sens de X et Z, huit orientations, diagonales et déplacements de vingt blocs en un appel ; collision native détectée et recul libre de 1,5 bloc.
- 440 virages : contact et tentative de déplacement dans le mur, virages libres, puis cas où les orientations de départ et d’arrivée sont libres mais où le milieu du virage heurterait le mur. Ce dernier cas est refusé.
- 128 passages contre les formes natives minces des barrières et vitres, sur bateaux et radeaux, sans traversée ni recouvrement des blocs.
- 704 modèles orientés : les sommets réels des fonds et rebords sont inclus dans les collisions, côté client. Les rames sont explicitement exclues.
- 16 parcours pilotés avec les vraies touches, huit formes en chêne et en bambou, répartis entre eau et vol avec Allay et les quatre directions : avancer contre le mur, maintenir le virage, reculer. Les limites serveur et client restent à l’intérieur des murs, le pilote reste assis et le recul déplace effectivement le bateau. Deux captures de contact ont été relues.
Journaux locaux : build/boat065-before.log,
build/boat065-control-before.log, build/boat065-fixed-probe.log,
build/boat065-client.log. Captures : build/boat065-evidence/.
Le parcours complet passe en 1 min 59 s.
./gradlew :sanctuary:runClientGameTest -x :sanctuary:runGameTest \
-PsanctuaryClientTests=true -PsanctuaryBoat065ClientTests=true \
-PsanctuaryQuickTests=true -PsanctuaryClientNoVsync=true
Les essais utilisent le serveur intégré ; aucun serveur dédié ni EULA acceptée. Le test client couvre la synchronisation locale ; une session avec plusieurs clients distants et latence n’a pas été relancée pour ce correctif.
Livraison locale
./gradlew check build assemblePack assembleTestPack réussi en 2 min 8 s,
122 tâches, avec -x :sanctuary:runGameTest -PsanctuaryClientTests=true -PsanctuaryQuickTests=true. Les essais serveur intégrés ci-dessus remplacent
les tests dédiés exclus conformément au refus antérieur d’accepter leur EULA.
Les archives normal/Test sont vérifiées : 1 645 classes conformes à la
compilation, aucune classe de test embarquée, mêmes ressources et dépendances
qu’en beta.064. Seule la source principale CrewBoat change, en plus des
métadonnées de version. Modèles, textures, recettes, sièges, moteurs et autres
systèmes restent conservés. Les anciennes archives beta.064 sont intactes.
- Pack normal beta.065, 5721084 octets.
SHA-256 :
71ff1736817e2953f88a8afda5858b2e7ae23c360efdb7e25f149cbff049d764. - Monde plat rapide beta.065, 5740018 octets.
SHA-256 :
4c4931146a05d6f57e9abf2303b039ab7a7bc16471a0b864873b86bef297431d.
Reçu build/boat065-artifact.json, build build/boat065-check.log.
Aucun canal publié, instance Prism ou monde personnel modifié.