Aller au contenu principal

Session 132undecimus — Réorganisation du code, étape 4d : tools/convert/ (FIN du sous-classage de tools/)

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.javatools/convert/AssetConverter.java
  • tools/ClipsConverter.javatools/convert/ClipsConverter.java
  • tools/IffExtractor.javatools/convert/IffExtractor.java
  • tools/LevelJsonExporter.javatools/convert/LevelJsonExporter.java
  • tools/LevelSceneBuilder.javatools/convert/LevelSceneBuilder.java
  • tools/LnkParser.javatools/convert/LnkParser.java
  • tools/RawExtractor.javatools/convert/RawExtractor.java
  • tools/SbpObjParser.javatools/convert/SbpObjParser.java
  • tools/SoundConverter.javatools/convert/SoundConverter.java
  • tools/TextureMapConverter.javatools/convert/TextureMapConverter.java
  • tools/VectObjConverter.javatools/convert/VectObjConverter.java
  • tools/WadConverter.javatools/convert/WadConverter.java

Package interne pour les 12 fichiers : com.ab3d2.toolscom.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.TextureMapConverter
  • inspect/AssetAnalyzer : import com.ab3d2.tools.LnkParser;convert.LnkParser
  • diagnose/TextureLayoutExplorer : idem → convert.TextureMapConverter
  • diagnose/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 (dissolution assets/)
  • convert/IffExtractor : import com.ab3d2.assets.AmigaBitplaneDecoder;
    → idem étape 7
  • convert/RawExtractor : import com.ab3d2.assets.AmigaBitplaneDecoder;
    → idem étape 7
  • convert/LevelJsonExporter : import com.ab3d2.core.level.*;
    → sera mis à jour à l’étape 6 (dissolution core/)

Imports déjà OK

  • convert/LevelSceneBuilder : com.ab3d2.world.{BrightnessCalc, WorldScale} — OK
  • convert/VectObjConverter : com.ab3d2.world.VectObjFrameAnimControl — OK (ajouté étape 2)

build.gradle : 9 mainClass mises à jour

  • convertAssets : com.ab3d2.tools.convert.AssetConverter
  • convertLevels : com.ab3d2.tools.convert.LevelJsonExporter
  • convertSounds : com.ab3d2.tools.convert.SoundConverter
  • convertWads : com.ab3d2.tools.convert.WadConverter
  • buildScenes : com.ab3d2.tools.convert.LevelSceneBuilder
  • convertTextureMaps : com.ab3d2.tools.convert.TextureMapConverter
  • convertVectObj : com.ab3d2.tools.convert.VectObjConverter
  • extractIff : com.ab3d2.tools.convert.IffExtractor
  • extractRaw : 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)

  1. ✅ Nettoyage des artefacts
  2. VectObjFrameAnimControl (tools → world)
  3. core/level/full/*tools/extract/level/
  4. ✅ Sous-classer tools/ en convert/, inspect/, dump/, diagnose/
  5. ⏳ Créer runtime/, déplacer app, combat, hud, menu, render, weapon, world
  6. Dissoudre core/
  7. Dissoudre assets/ (corrige les imports dans AssetConverter, IffExtractor, RawExtractor)
  8. Bouger LevelManagerruntime/level/

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *