Add furniture counter

This commit is contained in:
Bill 2021-02-26 01:59:48 -05:00
parent a6a19a595b
commit bf9c6e9400
2 changed files with 42 additions and 25 deletions

View File

@ -36,7 +36,7 @@ export class FurnitureConverter extends SWFConverter
{
await this._furniDownloader.download(directory, async (habboAssetSwf: HabboAssetSWF) =>
{
spinner.text = 'Parsing Furniture: ' + habboAssetSwf.getDocumentClass();
spinner.text = (`Parsing Furniture: ${ habboAssetSwf.getDocumentClass() } (${ this._furniDownloader.totalFinished } / ${ this._furniDownloader.totalItems })`);
spinner.render();

View File

@ -10,6 +10,9 @@ import { FurnitureDataConverter } from '../furnituredata/FurnitureDataConverter'
@singleton()
export class FurnitureDownloader
{
private _totalItems: number = 0;
private _totalFinished: number = 0;
constructor(
private readonly _furnitureDataConverter: FurnitureDataConverter,
private readonly _configuration: Configuration,
@ -25,6 +28,7 @@ export class FurnitureDownloader
if(!furniData) throw new Error('invalid_furnidata');
const classNames: string[] = [];
const revisions: number[] = [];
if(furniData.roomitemtypes !== undefined)
{
@ -42,17 +46,7 @@ export class FurnitureDownloader
if(classNames.indexOf(className) >= 0) continue;
classNames.push(className);
try
{
await this.extractFurniture(revision, className, callback);
}
catch (error)
{
console.log();
console.error(`Error parsing ${ className }: ` + error.message);
}
revisions.push(revision);
}
}
}
@ -73,22 +67,35 @@ export class FurnitureDownloader
if(classNames.indexOf(className) >= 0) continue;
classNames.push(className);
try
{
await this.extractFurniture(revision, className, callback);
}
catch (error)
{
console.log();
console.error(`Error parsing ${ className }: ` + error.message);
this._logger.logError(`Error parsing ${ className }: ` + error.message);
}
revisions.push(revision);
}
}
}
this._totalItems = classNames.length;
this._totalFinished = 0;
while(this._totalFinished < this._totalItems)
{
const className = classNames[this._totalFinished];
const revision = revisions[this._totalFinished];
try
{
await this.extractFurniture(revision, className, callback);
}
catch (error)
{
console.log();
console.error(`Error parsing ${ className }: ` + error.message);
this._logger.logError(`Error parsing ${ className }: ` + error.message);
}
this._totalFinished++;
}
}
public async parseFurniData(): Promise<IFurnitureData>
@ -123,4 +130,14 @@ export class FurnitureDownloader
await callback(newHabboAssetSWF, className);
}
public get totalItems(): number
{
return this._totalItems;
}
public get totalFinished(): number
{
return this._totalFinished;
}
}