Dernier sous-package du grand ménage de tools/. Sous-package convert/ :
les convertisseurs offline qui transforment les assets binaires Amiga
(twolev.bin, .256wad, .ptr, etc.) en formats consommables par JME (.j3o, .png,
.wav, .json) et les parsers utilitaires associés.
12 fichiers déplacés
tools/AssetConverter.java→tools/convert/AssetConverter.javatools/ClipsConverter.java→tools/convert/ClipsConverter.javatools/IffExtractor.java→tools/convert/IffExtractor.javatools/LevelJsonExporter.java→tools/convert/LevelJsonExporter.javatools/LevelSceneBuilder.java→tools/convert/LevelSceneBuilder.javatools/LnkParser.java→tools/convert/LnkParser.javatools/RawExtractor.java→tools/convert/RawExtractor.javatools/SbpObjParser.java→tools/convert/SbpObjParser.javatools/SoundConverter.java→tools/convert/SoundConverter.javatools/TextureMapConverter.java→tools/convert/TextureMapConverter.javatools/VectObjConverter.java→tools/convert/VectObjConverter.javatools/WadConverter.java→tools/convert/WadConverter.java
Package interne pour les 12 fichiers : com.ab3d2.tools → com.ab3d2.tools.convert.
Imports croisés mis à jour (4 fichiers)
Les imports créés aux étapes 4a/4b/4c qui pointaient vers com.ab3d2.tools.X
(quand X était à plat dans tools/) ont été mis à jour vers com.ab3d2.tools.convert.X :
dump/VectObjUVDump:import com.ab3d2.tools.TextureMapConverter;→convert.TextureMapConverterinspect/AssetAnalyzer:import com.ab3d2.tools.LnkParser;→convert.LnkParserdiagnose/TextureLayoutExplorer: idem →convert.TextureMapConverterdiagnose/VectObjTextureScan: idem →convert.TextureMapConverter
Imports inter-fichiers (12 internes au même package, inchangés)
Les 12 fichiers se référencent entre eux (ex. VectObjConverter utilise
SbpObjParser et TextureMapConverter, LevelJsonExporter utilise LnkParser,
WadConverter utilise LnkParser). Comme ils sont tous dans le même package
après déplacement, aucun import supplémentaire nécessaire.
Imports externes (à fixer aux étapes 6-7)
Les 4 fichiers convert/ qui importent encore d’autres packages à dissoudre :
convert/AssetConverter:import com.ab3d2.assets.{WadTextureData, WallTextureExtractor};
→ sera mis à jour à l’étape 7 (dissolutionassets/)convert/IffExtractor:import com.ab3d2.assets.AmigaBitplaneDecoder;
→ idem étape 7convert/RawExtractor:import com.ab3d2.assets.AmigaBitplaneDecoder;
→ idem étape 7convert/LevelJsonExporter:import com.ab3d2.core.level.*;
→ sera mis à jour à l’étape 6 (dissolutioncore/)
Imports déjà OK
convert/LevelSceneBuilder:com.ab3d2.world.{BrightnessCalc, WorldScale}— OKconvert/VectObjConverter:com.ab3d2.world.VectObjFrameAnimControl— OK (ajouté étape 2)
build.gradle : 9 mainClass mises à jour
convertAssets:com.ab3d2.tools.convert.AssetConverterconvertLevels:com.ab3d2.tools.convert.LevelJsonExporterconvertSounds:com.ab3d2.tools.convert.SoundConverterconvertWads:com.ab3d2.tools.convert.WadConverterbuildScenes:com.ab3d2.tools.convert.LevelSceneBuilderconvertTextureMaps:com.ab3d2.tools.convert.TextureMapConverterconvertVectObj:com.ab3d2.tools.convert.VectObjConverterextractIff:com.ab3d2.tools.convert.IffExtractorextractRaw:com.ab3d2.tools.convert.RawExtractor
3 fichiers sans task gradle directe (utilisés comme librairies par les autres) :
ClipsConverter, LnkParser, SbpObjParser.
État de tools/ après 4d
Avant cette étape : 12 fichiers à plat + 5 sous-dossiers.
Après : 0 fichier à plat + 6 sous-dossiers (convert/, diagnose/,
dump/, extract/, inspect/, testlevel/).
com.ab3d2.tools/
├── convert/ (12) — cette étape
├── diagnose/ (11) — étape 4c
├── dump/ (7) — étape 4a
├── extract/ — inventory/, sbdepack/, level/ (étape 3)
├── inspect/ (4) — étape 4b
└── testlevel/ (5) — inchangé depuis le début
Étape 4 entièrement terminée 🎉
L’étape 4 (sous-classage de tools/) est COMPLÈTE :
– 4a : 7 fichiers → dump/
– 4b : 4 fichiers → inspect/
– 4c : 11 fichiers → diagnose/
– 4d : 12 fichiers → convert/
Total : 34 fichiers déplacés, 9 imports croisés ajoutés/maj,
29 mainClass gradle mises à jour.
Action attendue de l’utilisateur
gradlew compileJava
C’est la première fois depuis 4a qu’on peut compiler proprement. Si erreur,
signaler les noms de classes manquantes et je corrige.
Plan de migration (rappel)
- ✅ Nettoyage des artefacts
- ✅
VectObjFrameAnimControl(tools → world) - ✅
core/level/full/*→tools/extract/level/ - ✅ Sous-classer
tools/enconvert/,inspect/,dump/,diagnose/ - ⏳ Créer
runtime/, déplacerapp, combat, hud, menu, render, weapon, world - Dissoudre
core/ - Dissoudre
assets/(corrige les imports dans AssetConverter, IffExtractor, RawExtractor) - Bouger
LevelManager→runtime/level/