2021-01-28 09:12:04 +01:00
|
|
|
import Configuration from "./config/Configuration";
|
|
|
|
import FigureDownloader from "./downloaders/FigureDownloader";
|
|
|
|
import HabboAssetSWF from "./swf/HabboAssetSWF";
|
|
|
|
import SpriteSheetConverter from "./converters/util/SpriteSheetConverter";
|
|
|
|
import FigureConverter from "./converters/figure/FigureConverter";
|
|
|
|
import File from "./utils/File";
|
|
|
|
import FurnitureDownloader from "./downloaders/FurnitureDownloader";
|
|
|
|
import FurnitureConverter from "./converters/furniture/FurnitureConverter";
|
2021-02-02 02:13:17 +01:00
|
|
|
import EffectConverter from "./converters/effect/EffectConverter";
|
|
|
|
import EffectDownloader from "./downloaders/EffectDownloader";
|
2021-02-02 04:43:38 +01:00
|
|
|
import PetDownloader from "./downloaders/PetDownloader";
|
|
|
|
import PetConverter from "./converters/pet/PetConverter";
|
2021-01-28 09:12:04 +01:00
|
|
|
|
|
|
|
(async () => {
|
|
|
|
const config = new Configuration();
|
|
|
|
await config.init();
|
|
|
|
|
|
|
|
const outputFolderFigure = new File(config.getValue("output.folder.figure"));
|
|
|
|
if (!outputFolderFigure.isDirectory()) {
|
|
|
|
outputFolderFigure.mkdirs();
|
|
|
|
}
|
|
|
|
|
|
|
|
const outputFolderFurniture = new File(config.getValue("output.folder.furniture"));
|
|
|
|
if (!outputFolderFurniture.isDirectory()) {
|
|
|
|
outputFolderFurniture.mkdirs();
|
|
|
|
}
|
|
|
|
|
2021-02-02 02:13:17 +01:00
|
|
|
const outputFolderEffect = new File(config.getValue("output.folder.effect"));
|
|
|
|
if (!outputFolderEffect.isDirectory()) {
|
|
|
|
outputFolderEffect.mkdirs();
|
|
|
|
}
|
|
|
|
|
2021-02-02 04:43:38 +01:00
|
|
|
const outputFolderPet = new File(config.getValue("output.folder.pet"));
|
|
|
|
if (!outputFolderPet.isDirectory()) {
|
|
|
|
outputFolderPet.mkdirs();
|
|
|
|
}
|
|
|
|
|
2021-01-28 09:12:04 +01:00
|
|
|
const spriteSheetConverter = new SpriteSheetConverter();
|
|
|
|
const figureConverter = new FigureConverter(config);
|
2021-02-02 02:13:17 +01:00
|
|
|
const furnitureConverter = new FurnitureConverter(config);
|
|
|
|
const effectConverter = new EffectConverter(config);
|
2021-02-02 04:43:38 +01:00
|
|
|
const petConverter = new PetConverter();
|
2021-01-28 09:12:04 +01:00
|
|
|
|
|
|
|
if (config.getBoolean("convert.figure")) {
|
|
|
|
const figureDownloader = new FigureDownloader(config);
|
|
|
|
await figureDownloader.download(async function (habboAssetSwf: HabboAssetSWF) {
|
|
|
|
|
|
|
|
console.log("Attempt parsing figure: " + habboAssetSwf.getDocumentClass());
|
|
|
|
|
|
|
|
try {
|
|
|
|
const spriteSheetType = await spriteSheetConverter.generateSpriteSheet(habboAssetSwf, outputFolderFigure.path, "figure");
|
|
|
|
if (spriteSheetType !== null)
|
|
|
|
await figureConverter.fromHabboAsset(habboAssetSwf, outputFolderFigure.path, "figure", spriteSheetType);
|
|
|
|
|
|
|
|
} catch (e) {
|
|
|
|
console.log("Figure error: " + habboAssetSwf.getDocumentClass());
|
2021-02-02 02:13:17 +01:00
|
|
|
console.log(e);
|
2021-01-28 09:12:04 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
if (config.getBoolean("convert.furniture")) {
|
2021-02-02 02:13:17 +01:00
|
|
|
let count = 0;
|
2021-01-28 09:12:04 +01:00
|
|
|
const furnitureDownloader = new FurnitureDownloader(config);
|
|
|
|
await furnitureDownloader.download(async function (habboAssetSwf: HabboAssetSWF, className: string) {
|
2021-01-31 03:14:17 +01:00
|
|
|
console.log("Attempt parsing furniture: " + habboAssetSwf.getDocumentClass());
|
2021-01-28 09:12:04 +01:00
|
|
|
|
|
|
|
try {
|
2021-02-02 02:13:17 +01:00
|
|
|
const spriteSheetType = await spriteSheetConverter.generateSpriteSheet(habboAssetSwf, outputFolderFurniture.path, "furniture");
|
2021-01-28 09:12:04 +01:00
|
|
|
if (spriteSheetType !== null) {
|
2021-02-02 02:13:17 +01:00
|
|
|
await furnitureConverter.fromHabboAsset(habboAssetSwf, outputFolderFurniture.path, "furniture", spriteSheetType);
|
2021-01-28 09:12:04 +01:00
|
|
|
}
|
|
|
|
} catch (e) {
|
|
|
|
console.log("Furniture error: " + habboAssetSwf.getDocumentClass());
|
|
|
|
console.log(e);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2021-01-31 03:14:17 +01:00
|
|
|
console.log(`Parsed ${++count} furnitures`)
|
2021-01-28 09:12:04 +01:00
|
|
|
}
|
|
|
|
|
2021-02-02 02:13:17 +01:00
|
|
|
if (config.getBoolean("convert.effect")) {
|
|
|
|
const effectDownloader = new EffectDownloader(config);
|
|
|
|
await effectDownloader.download(async function (habboAssetSwf: HabboAssetSWF) {
|
2021-02-02 04:43:38 +01:00
|
|
|
console.log("Attempt parsing effect: " + habboAssetSwf.getDocumentClass());
|
2021-02-02 02:13:17 +01:00
|
|
|
|
|
|
|
try {
|
|
|
|
const spriteSheetType = await spriteSheetConverter.generateSpriteSheet(habboAssetSwf, outputFolderFurniture.path, "effect");
|
|
|
|
if (spriteSheetType !== null) {
|
|
|
|
await effectConverter.fromHabboAsset(habboAssetSwf, outputFolderEffect.path, "effect", spriteSheetType);
|
|
|
|
}
|
|
|
|
} catch (e) {
|
|
|
|
console.log(e);
|
2021-02-02 04:43:38 +01:00
|
|
|
console.log("Effect error: " + habboAssetSwf.getDocumentClass());
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
if (config.getBoolean("convert.pet")) {
|
|
|
|
const petDownloader = new PetDownloader(config);
|
|
|
|
await petDownloader.download(async function (habboAssetSwf: HabboAssetSWF) {
|
|
|
|
console.log("Attempt parsing pet: " + habboAssetSwf.getDocumentClass());
|
|
|
|
|
|
|
|
try {
|
|
|
|
const spriteSheetType = await spriteSheetConverter.generateSpriteSheet(habboAssetSwf, outputFolderPet.path, "pet");
|
|
|
|
if (spriteSheetType !== null) {
|
|
|
|
await petConverter.fromHabboAsset(habboAssetSwf, outputFolderPet.path, "pet", spriteSheetType);
|
|
|
|
}
|
|
|
|
} catch (e) {
|
|
|
|
console.log(e);
|
|
|
|
console.log("Effect error: " + habboAssetSwf.getDocumentClass());
|
2021-02-02 02:13:17 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-01-28 09:12:04 +01:00
|
|
|
console.log('finished!');
|
2021-01-31 03:14:17 +01:00
|
|
|
|
|
|
|
/*
|
|
|
|
outputFolderFurniture.rmdir({
|
|
|
|
recursive: true,
|
|
|
|
force: true
|
|
|
|
});*/
|
2021-01-28 09:12:04 +01:00
|
|
|
})()
|