4.3 KiB
beta.094 — Foyers allumés du Fourneau
La chaleur partagée allume toute la façade du Fourneau, y compris si la cuisson se déroule dans une case intérieure. Les deux ouvertures reçoivent des braises orange et jaunes. La pierre et les trois textures originales sont conservées. Quand la chaleur est épuisée, la façade reprend son aspect éteint.
Les 27 sources de particules des fours composants sont remplacées par une seule animation de façade : une flamme et une fumée dans chacun des deux foyers. Leurs positions correspondent aux pixels des ouvertures, à 0,02 bloc devant la face, dans les quatre orientations. Un four isolé garde son animation native. La dissociation rétablit l'état lumineux individuel des fours.
Assets et rendu
- Original inchangé :
assets/sanctuary/textures/block/fourneau/front.png. - Variante de feu :
assets/sanctuary/textures/block/fourneau/front_on.png. tools/fourneau-embers.jsondélimite les bandes des ouvertures à illuminer.python3 tools/generate-fourneau-models.pyrégénère les modèles éteints/allumés.
La variante a été créée avec l'outil intégré imagegen, puis réduite en 48 × 48 par échantillonnage au plus proche pour la densité native du modèle. La génération ayant aussi redessiné la pierre, le rendu prélève uniquement les pixels de feu dans les ouvertures ; tout le reste utilise l'image originale. Les fines faces de braises sont décalées de 0,002 pixel pour éviter le z-fighting.
Prompt retenu : « Edit the provided 48 by 48 pixel Minecraft furnace facade texture. Create its LIT variant. Preserve the pixel-art grid, grey stone, mortar, arches, outer edges and dimensions. Change only the black/dark interiors of the two arched openings to Minecraft-style orange, red and yellow embers/fire pixels, bright yellow near the bottom, orange above. Flames stay inside the holes. No perspective, border, labels or new elements. »
Le choix du modèle utilise l'état LIT natif. Les snapshots d'assemblage, leurs
paquets réseau et le schéma de sauvegarde restent identiques. Aucun paquet de
particules n'est envoyé par le serveur. Aucun monde personnel n'est modifié.
Le pack de textures intégré reste à son édition beta.090 ; ces assets sont ceux
du mod beta.094.
Vérifications
Le test client natif avec serveur intégré est passé sur un nouveau monde plat de
développement, graine 85 (build/fourneau094-client.log, 1 min 5 s) :
- 27 composants synchronisés à cheval sur quatre chunks, quatre orientations.
- Chauffe réelle depuis une case intérieure, façade entière allumée puis éteinte.
- 800 émissions interceptées à la sortie de l'animation native : coordonnées devant la façade, sur un pixel de feu situé dans une ouverture sombre originale.
- Aucune nouvelle particule à froid ; particules natives d'un four isolé conservées.
- Rechargement des ressources, départ/retour dans les chunks, dissociation, reconstruction et destruction ; conservation du contenu d'origine.
- Captures allumé/éteint inspectées dans
build/fourneau094-evidence/.
Commande du test :
./gradlew :sanctuary:runClientGameTest -x :sanctuary:runGameTest \
-PsanctuaryClientTests=true -PsanctuaryFourneau085ClientTests=true \
-PsanctuaryQuickTests=true -PsanctuaryClientNoVsync=true
Les particules déjà émises finissent naturellement leur durée de vie après l'extinction, comme celles des fours Minecraft. Test natif macOS ; pas de test avec shaders tiers ni de session LAN à deux clients pour cette livraison. Le serveur dédié de GameTest est exclu, conformément au refus antérieur de son EULA. Aucun déploiement personnel ou changement de sauvegarde.
check build assemblePack assembleTestPack -x :sanctuary:runGameTest : réussi
en 2 min 31 s, 124 tâches (build/fourneau094-check.log). La régénération des
216 modèles est reproductible. git diff --check passe.
Les archives normal/Test ont été exportées et vérifiées : Minecraft 26.3,
version beta.094, même JAR Sanctuary intégré aux deux packs, sondes de test
absentes. Les assets existants, JEI et les archives beta.093 sont inchangés.
Le reçu build/fourneau094-artifact.json conserve les empreintes SHA-256 ;
build/verify-fourneau094.py reproduit ces contrôles.