Merge branch 'fix/variable-cleanup' into 'main'

Fix/variable cleanup

See merge request nitro/nitro-renderer!4
This commit is contained in:
Bill 2021-07-26 07:17:27 +00:00
commit 821126f63e
590 changed files with 10275 additions and 6343 deletions

896
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -6,20 +6,20 @@
},
"private": true,
"dependencies": {
"@pixi/filter-adjustment": "^3.1.1",
"@pixi/filter-adjustment": "^4.1.3",
"events": "^3.3.0",
"pako": "^2.0.3",
"pixi.js": "^5.3.3",
"tslib": "^2.0.0",
"pixi.js": "^6.0.4",
"tslib": "^2.3.0",
"xml2js": "^0.4.23"
},
"devDependencies": {
"@types/node": "^14.14.35",
"@types/pako": "^1.0.1",
"@typescript-eslint/eslint-plugin": "^4.15.0",
"@typescript-eslint/parser": "^4.15.0",
"@types/node": "^14.17.5",
"@types/pako": "^1.0.2",
"@typescript-eslint/eslint-plugin": "^4.28.3",
"@typescript-eslint/parser": "^4.28.3",
"create-ts-index": "^1.13.6",
"eslint": "^7.19.0",
"typescript": "~4.2.3"
"eslint": "^7.30.0",
"typescript": "^4.3.5"
}
}

View File

@ -1,6 +1,6 @@
import { BaseTexture, ILoaderOptions, Loader, LoaderResource, Spritesheet, Texture } from 'pixi.js';
import { BaseTexture, ILoaderResource, Loader, LoaderResource, Resource, Spritesheet, Texture } from 'pixi.js';
import { IGraphicAsset } from '../../room';
import { GraphicAssetCollection } from '../../room/object/visualization/utils/GraphicAssetCollection';
import { IGraphicAsset } from '../../room/object/visualization/utils/IGraphicAsset';
import { IGraphicAssetCollection } from '../../room/object/visualization/utils/IGraphicAssetCollection';
import { Disposable } from '../common/disposable/Disposable';
import { INitroLogger } from '../common/logger/INitroLogger';
@ -12,9 +12,8 @@ import { NitroBundle } from './NitroBundle';
export class AssetManager extends Disposable implements IAssetManager
{
private _logger: INitroLogger;
private _textures: Map<string, Texture>;
private _collections: Map<string, GraphicAssetCollection>;
private _pendingUrls: Map<string, Function[]>;
private _textures: Map<string, Texture<Resource>>;
private _collections: Map<string, IGraphicAssetCollection>;
constructor()
{
@ -23,7 +22,6 @@ export class AssetManager extends Disposable implements IAssetManager
this._logger = new NitroLogger(this.constructor.name);
this._textures = new Map();
this._collections = new Map();
this._pendingUrls = new Map();
}
public static removeFileExtension(name: string): string
@ -31,7 +29,7 @@ export class AssetManager extends Disposable implements IAssetManager
return (name.substring(0, name.lastIndexOf('.')) || name);
}
public getTexture(name: string): Texture
public getTexture(name: string): Texture<Resource>
{
if(!name) return null;
@ -42,7 +40,7 @@ export class AssetManager extends Disposable implements IAssetManager
return existing;
}
public setTexture(name: string, texture: Texture): void
public setTexture(name: string, texture: Texture<Resource>): void
{
if(!name || !texture) return;
@ -90,6 +88,8 @@ export class AssetManager extends Disposable implements IAssetManager
this._collections.set(collection.name, collection);
}
return collection;
}
public downloadAsset(assetUrl: string, cb: Function): boolean
@ -110,7 +110,7 @@ export class AssetManager extends Disposable implements IAssetManager
let totalDownloaded = 0;
const onDownloaded = (loader: Loader, resource: LoaderResource, flag: boolean) =>
const onDownloaded = (loader: Loader, resource: ILoaderResource, flag: boolean) =>
{
if(loader) loader.destroy();
@ -134,21 +134,25 @@ export class AssetManager extends Disposable implements IAssetManager
const loader = new Loader();
const options: ILoaderOptions = {
crossOrigin: false,
xhrType: url.endsWith('.nitro') ? 'arraybuffer' : 'json'
};
loader
.use((resource: LoaderResource, next: Function) => this.assetLoader(loader, resource, next, onDownloaded))
.add(url, options)
.add({
url,
crossOrigin: 'anonymous',
xhrType: url.endsWith('.nitro') ? LoaderResource.XHR_RESPONSE_TYPE.BUFFER : LoaderResource.XHR_RESPONSE_TYPE.JSON
})
.use((resource: ILoaderResource, next: Function) =>
{
this.assetLoader(loader, resource, onDownloaded);
next();
})
.load();
}
return true;
}
private assetLoader(loader: Loader, resource: LoaderResource, next: Function, onDownloaded: Function): void
private assetLoader(loader: Loader, resource: ILoaderResource, onDownloaded: Function): void
{
if(!resource || resource.error)
{
@ -186,7 +190,7 @@ export class AssetManager extends Disposable implements IAssetManager
{
const spritesheet = new Spritesheet(baseTexture, assetData.spritesheet);
spritesheet.parse(textures =>
spritesheet.parse(() =>
{
this.createCollection(assetData, spritesheet);
@ -201,7 +205,7 @@ export class AssetManager extends Disposable implements IAssetManager
const spritesheet = new Spritesheet(baseTexture, assetData.spritesheet);
spritesheet.parse(textures =>
spritesheet.parse(() =>
{
this.createCollection(assetData, spritesheet);
@ -254,7 +258,7 @@ export class AssetManager extends Disposable implements IAssetManager
{
const spritesheet = new Spritesheet(baseTexture, assetData.spritesheet);
spritesheet.parse(textures =>
spritesheet.parse(() =>
{
this.createCollection(assetData, spritesheet);
@ -269,7 +273,7 @@ export class AssetManager extends Disposable implements IAssetManager
const spritesheet = new Spritesheet(baseTexture, assetData.spritesheet);
spritesheet.parse(textures =>
spritesheet.parse(() =>
{
this.createCollection(assetData, spritesheet);
@ -312,7 +316,7 @@ export class AssetManager extends Disposable implements IAssetManager
}
}
public get collections(): Map<string, GraphicAssetCollection>
public get collections(): Map<string, IGraphicAssetCollection>
{
return this._collections;
}

View File

@ -1,6 +1,5 @@
import { Spritesheet, Texture } from 'pixi.js';
import { GraphicAssetCollection } from '../../room/object/visualization/utils/GraphicAssetCollection';
import { Resource, Spritesheet, Texture } from 'pixi.js';
import { IGraphicAsset } from '../../room/object/visualization/utils/IGraphicAsset';
import { IGraphicAssetCollection } from '../../room/object/visualization/utils/IGraphicAssetCollection';
import { IAssetData } from './interfaces';
@ -8,12 +7,12 @@ import { IAssetData } from './interfaces';
export interface IAssetManager
{
dispose(): void;
getTexture(name: string): Texture;
setTexture(name: string, texture: Texture): void;
getTexture(name: string): Texture<Resource>;
setTexture(name: string, texture: Texture<Resource>): void;
getAsset(name: string): IGraphicAsset;
getCollection(name: string): IGraphicAssetCollection;
createCollection(data: IAssetData, spritesheet: Spritesheet): IGraphicAssetCollection;
downloadAssets(urls: string[], cb: Function): void;
downloadAsset(url: string, cb: Function): void;
collections: Map<string, GraphicAssetCollection>;
collections: Map<string, IGraphicAssetCollection>;
}

View File

@ -3,7 +3,7 @@ import { IAsset } from './IAsset';
import { IAssetAlias } from './IAssetAlias';
import { IAssetDimension } from './IAssetDimension';
import { IAssetPalette } from './IAssetPalette';
import { ISpritesheetData } from './spritesheet';
import { ISpritesheet } from './spritesheet';
import { IAssetVisualizationData } from './visualization';
export interface IAssetData {
@ -15,7 +15,7 @@ export interface IAssetData {
credits?: string;
soundSample?: number;
action?: { link?: string, startState?: number };
spritesheet?: ISpritesheetData;
spritesheet?: ISpritesheet;
dimensions?: IAssetDimension;
directions?: number[];
assets?: { [index: string]: IAsset };

View File

@ -2,6 +2,10 @@ export interface IAssetPalette
{
id?: number;
source?: string;
master?: boolean;
tags?: string[];
breed?: number;
colorTag?: number;
color1?: string;
color2?: string;
rgb?: [ number, number, number ][];

View File

@ -0,0 +1,7 @@
import { ISpritesheetData } from '@pixi/spritesheet';
import { ISpritesheetMeta } from './ISpritesheetMeta';
export interface ISpritesheet extends ISpritesheetData
{
meta: ISpritesheetMeta;
}

View File

@ -1,8 +0,0 @@
import { ISpritesheetFrame } from './ISpritesheetFrame';
import { ISpritesheetMeta } from './ISpritesheetMeta';
export interface ISpritesheetData
{
meta?: ISpritesheetMeta;
frames?: { [index: string]: ISpritesheetFrame };
}

View File

@ -1,25 +0,0 @@
export interface ISpritesheetFrame
{
frame: {
x: number;
y: number;
w: number;
h: number;
};
rotated: boolean;
trimmed: boolean;
spriteSourceSize: {
x: number;
y: number;
w: number;
h: number;
};
sourceSize: {
w: number;
h: number;
};
pivot: {
x: number;
y: number;
};
}

View File

@ -1,3 +1,2 @@
export * from './ISpritesheetData';
export * from './ISpritesheetFrame';
export * from './ISpritesheet';
export * from './ISpritesheetMeta';

View File

@ -4,6 +4,7 @@ import { IDisposable } from '../common/disposable/IDisposable';
import { INitroLogger } from '../common/logger/INitroLogger';
import { NitroLogger } from '../common/logger/NitroLogger';
import { IEventDispatcher } from './IEventDispatcher';
import { NitroEvent } from './NitroEvent';
export class EventDispatcher extends Disposable implements IEventDispatcher, IDisposable
{
@ -61,7 +62,7 @@ export class EventDispatcher extends Disposable implements IEventDispatcher, IDi
}
}
public dispatchEvent(event: Event): boolean
public dispatchEvent(event: NitroEvent): boolean
{
if(!event) return false;
@ -72,7 +73,7 @@ export class EventDispatcher extends Disposable implements IEventDispatcher, IDi
return true;
}
private processEvent(event: Event): void
private processEvent(event: NitroEvent): void
{
const existing = this._listeners.get(event.type);

View File

@ -1,9 +1,10 @@
import { IDisposable } from '../common/disposable/IDisposable';
import { NitroEvent } from './NitroEvent';
export interface IEventDispatcher extends IDisposable
{
addEventListener(type: string, callback: Function): void
removeEventListener(type: string, callback: Function): void;
removeAllListeners(): void;
dispatchEvent(event: Event): boolean;
dispatchEvent(event: NitroEvent): boolean;
}

View File

@ -1,4 +1,14 @@
export class NitroEvent extends Event
export class NitroEvent
{
public static COMPLETE: string = 'NITRO_COMPLETE';
private _type: string;
constructor(type: string)
{
this._type = type;
}
public get type(): string
{
return this._type;
}
}

View File

@ -7,12 +7,14 @@ export class AdvancedMap<T, U> implements IDisposable
private _array: U[];
private _keys: T[];
constructor()
constructor(map: Map<T, U> = null)
{
this._length = 0;
this._dictionary = new Map();
this._array = [];
this._keys = [];
if(map) for(const [ key, value ] of map.entries()) this.add(key, value);
}
public get length(): number

View File

@ -0,0 +1,4 @@
import { Container } from 'pixi.js';
export class NitroContainer extends Container
{}

View File

@ -0,0 +1,4 @@
import { Filter } from 'pixi.js';
export class NitroFilter extends Filter
{}

View File

@ -0,0 +1,4 @@
import { Rectangle } from 'pixi.js';
export class NitroRectangle extends Rectangle
{}

View File

@ -0,0 +1,4 @@
import { Sprite } from 'pixi.js';
export class NitroSprite extends Sprite
{}

View File

@ -0,0 +1,4 @@
import { Texture } from 'pixi.js';
export class NitroTexture extends Texture
{}

View File

@ -1,3 +1,10 @@
export * from './AdvancedMap';
export * from './INitroPoint';
export * from './NitroAdjustmentFilter';
export * from './NitroContainer';
export * from './NitroFilter';
export * from './NitroPoint';
export * from './NitroRectangle';
export * from './NitroSprite';
export * from './NitroTexture';
export * from './NitroTimer';

View File

@ -6,6 +6,7 @@ import { INitroCore } from '../core/INitroCore';
import { NitroTimer } from '../core/utils/NitroTimer';
import { IRoomManager } from '../room/IRoomManager';
import { IAvatarRenderManager } from './avatar/IAvatarRenderManager';
import { IRoomCameraWidgetManager } from './camera/IRoomCameraWidgetManager';
import { INitroCommunicationManager } from './communication/INitroCommunicationManager';
import { INitroLocalizationManager } from './localization/INitroLocalizationManager';
import { IRoomEngine } from './room/IRoomEngine';
@ -38,6 +39,7 @@ export interface INitro extends Application
sessionDataManager: ISessionDataManager;
roomSessionManager: IRoomSessionManager;
roomManager: IRoomManager;
cameraManager: IRoomCameraWidgetManager;
width: number;
height: number;
time: number;

View File

@ -1,4 +1,5 @@
import { Application, SCALE_MODES, settings } from 'pixi.js';
import { Application, IApplicationOptions, SCALE_MODES, settings } from 'pixi.js';
import { INitroManager } from '..';
import { ConfigurationEvent } from '../core/configuration/ConfigurationEvent';
import { EventDispatcher } from '../core/events/EventDispatcher';
import { IEventDispatcher } from '../core/events/IEventDispatcher';
@ -12,6 +13,8 @@ import { IRoomManager } from '../room/IRoomManager';
import { RoomManager } from '../room/RoomManager';
import { AvatarRenderManager } from './avatar/AvatarRenderManager';
import { IAvatarRenderManager } from './avatar/IAvatarRenderManager';
import { IRoomCameraWidgetManager } from './camera/IRoomCameraWidgetManager';
import { RoomCameraWidgetManager } from './camera/RoomCameraWidgetManager';
import { INitroCommunicationManager } from './communication/INitroCommunicationManager';
import { NitroCommunicationManager } from './communication/NitroCommunicationManager';
import { LegacyExternalInterface } from './externalInterface/LegacyExternalInterface';
@ -26,18 +29,19 @@ import { IRoomSessionManager } from './session/IRoomSessionManager';
import { ISessionDataManager } from './session/ISessionDataManager';
import { RoomSessionManager } from './session/RoomSessionManager';
import { SessionDataManager } from './session/SessionDataManager';
import { SoundManager } from './sound/SoundManager';
import { HabboWebTools } from './utils/HabboWebTools';
LegacyExternalInterface.available;
settings.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT = false;
settings.SCALE_MODE = SCALE_MODES.NEAREST;
settings.ROUND_PIXELS = true;
export class Nitro extends Application implements INitro
{
public static WEBGL_CONTEXT_LOST: string = 'NE_WEBGL_CONTEXT_LOST';
public static WEBGL_UNAVAILABLE: string = 'NE_WEBGL_UNAVAILABLE';
public static RELEASE_VERSION: string = 'NITRO-0-4-0';
public static RELEASE_VERSION: string = 'NITRO-2-0-0';
public static READY: string = 'NE_READY';
private static INSTANCE: INitro = null;
@ -53,30 +57,15 @@ export class Nitro extends Application implements INitro
private _sessionDataManager: ISessionDataManager;
private _roomSessionManager: IRoomSessionManager;
private _roomManager: IRoomManager;
private _cameraManager: IRoomCameraWidgetManager;
private _soundManager: INitroManager;
private _linkTrackers: ILinkEventTracker[];
private _workerTrackers: IWorkerEventTracker[];
private _isReady: boolean;
private _isDisposed: boolean;
constructor(core: INitroCore, options?: {
autoStart?: boolean;
width?: number;
height?: number;
view?: HTMLCanvasElement;
transparent?: boolean;
autoDensity?: boolean;
antialias?: boolean;
preserveDrawingBuffer?: boolean;
resolution?: number;
forceCanvas?: boolean;
backgroundColor?: number;
clearBeforeRender?: boolean;
powerPreference?: string;
sharedTicker?: boolean;
sharedLoader?: boolean;
resizeTo?: Window | HTMLElement;
})
constructor(core: INitroCore, options?: IApplicationOptions)
{
super(options);
@ -93,6 +82,8 @@ export class Nitro extends Application implements INitro
this._sessionDataManager = new SessionDataManager(this._communication);
this._roomSessionManager = new RoomSessionManager(this._communication, this._roomEngine);
this._roomManager = new RoomManager(this._roomEngine, this._roomEngine.visualizationFactory, this._roomEngine.logicFactory);
this._cameraManager = new RoomCameraWidgetManager();
this._soundManager = new SoundManager();
this._linkTrackers = [];
this._workerTrackers = [];
@ -120,7 +111,6 @@ export class Nitro extends Application implements INitro
canvas.className = 'client-canvas';
const instance = new this(new NitroCore(), {
transparent: true,
autoDensity: true,
resolution: window.devicePixelRatio,
width: window.innerWidth,
@ -142,6 +132,8 @@ export class Nitro extends Application implements INitro
if(this._avatar) this._avatar.init();
if(this._soundManager) this._soundManager.init();
if(this._roomEngine)
{
this._roomEngine.sessionDataManager = this._sessionDataManager;
@ -203,6 +195,13 @@ export class Nitro extends Application implements INitro
this._avatar = null;
}
if(this._soundManager)
{
this._soundManager.dispose();
this._soundManager = null;
}
if(this._communication)
{
this._communication.dispose();
@ -221,7 +220,7 @@ export class Nitro extends Application implements INitro
const animationFPS = this.getConfiguration<number>('animation.fps', 24);
const limitsFPS = this.getConfiguration<boolean>('limits.fps', true);
Nitro.instance.ticker.maxFPS = animationFPS;
if(limitsFPS) Nitro.instance.ticker.maxFPS = animationFPS;
}
private onRoomEngineReady(event: RoomEngineEvent): void
@ -391,6 +390,11 @@ export class Nitro extends Application implements INitro
return this._roomManager;
}
public get cameraManager(): IRoomCameraWidgetManager
{
return this._cameraManager;
}
public get width(): number
{
return (this.renderer.width / this.renderer.resolution);

View File

@ -240,19 +240,19 @@ export class AvatarAssetDownloadManager extends EventDispatcher
if(!figureData) return pendingLibraries;
const setKeys = container._Str_1016();
const setKeys = container.getPartTypeIds();
for(const key of setKeys)
{
const set = figureData._Str_740(key);
const set = figureData.getSetType(key);
if(!set) continue;
const figurePartSet = set._Str_1020(container.getPartSetId(key));
const figurePartSet = set.getPartSet(container.getPartSetId(key));
if(!figurePartSet) continue;
for(const part of figurePartSet._Str_806)
for(const part of figurePartSet.parts)
{
if(!part) continue;
@ -284,7 +284,7 @@ export class AvatarAssetDownloadManager extends EventDispatcher
return;
}
const figure = container._Str_1008();
const figure = container.getFigureString();
const pendingLibraries = this.getAvatarFigurePendingLibraries(container);
if(pendingLibraries && pendingLibraries.length)

View File

@ -11,12 +11,12 @@ export class AvatarFigureContainer implements IAvatarFigureContainer
this.parseFigure(figure);
}
public _Str_1016(): IterableIterator<string>
public getPartTypeIds(): IterableIterator<string>
{
return this.partSets().keys();
}
public _Str_744(k: string): boolean
public hasPartType(k: string): boolean
{
return this.partSets().get(k) !== null;
}
@ -30,7 +30,7 @@ export class AvatarFigureContainer implements IAvatarFigureContainer
return existing.get('setid');
}
public _Str_815(k: string): number[]
public getPartColorIds(k: string): number[]
{
const existing = this.partSets().get(k);
@ -39,7 +39,7 @@ export class AvatarFigureContainer implements IAvatarFigureContainer
return existing.get('colorids');
}
public _Str_830(k: string, _arg_2: number, _arg_3: number[]): void
public updatePart(k: string, _arg_2: number, _arg_3: number[]): void
{
const set: Map<string, any> = new Map();
@ -53,12 +53,12 @@ export class AvatarFigureContainer implements IAvatarFigureContainer
existingSets.set(k, set);
}
public _Str_923(k: string): void
public removePart(k: string): void
{
this.partSets().delete(k);
}
public _Str_1008(): string
public getFigureString(): string
{
const parts: string[] = [];
@ -71,7 +71,7 @@ export class AvatarFigureContainer implements IAvatarFigureContainer
setParts.push(key);
setParts.push(this.getPartSetId(key));
setParts = setParts.concat(this._Str_815(key));
setParts = setParts.concat(this.getPartColorIds(key));
parts.push(setParts.join('-'));
}
@ -109,7 +109,7 @@ export class AvatarFigureContainer implements IAvatarFigureContainer
index++;
}
this._Str_830(type, setId, colors);
this.updatePart(type, setId, colors);
}
}
}

View File

@ -99,7 +99,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
this.setDirection(AvatarImage.DEFAULT_AVATAR_SET, AvatarImage.DEFAULT_DIRECTION);
this._actions = [];
this._defaultAction = new ActiveActionData(AvatarAction.POSTURE_STAND);
this._defaultAction._Str_742 = this._structure._Str_1675(AvatarImage.DEFAULT_ACTION);
this._defaultAction.definition = this._structure.getActionDefinition(AvatarImage.DEFAULT_ACTION);
this.resetActions();
this._fullImageCache = new AdvancedMap();
this._animationFrameCount = 0;
@ -109,7 +109,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
{
this.getAvatarPartsForCamera(AvatarSetType.FULL);
return this._cache._Str_1009();
return this._cache.getServerRenderData();
}
public dispose(): void
@ -165,7 +165,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
public getPartColor(k: string): IPartColor
{
return this._structure._Str_867(this._figure, k);
return this._structure.getPartColor(this._figure, k);
}
public setDirection(k: string, _arg_2: number): void
@ -182,7 +182,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
_arg_2 = (_arg_2 - (AvatarDirectionAngle.MAX_DIRECTION + 1));
}
if(this._structure._Str_1939(k))
if(this._structure.isMainAvatarSet(k))
{
this._mainDirection = _arg_2;
}
@ -218,7 +218,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
public getLayerData(k: ISpriteDataContainer): IAnimationLayerData
{
return this._structure._Str_1881(k.animation.id, this._frameCounter, k.id);
return this._structure.getBodyPartData(k.animation.id, this._frameCounter, k.id);
}
public updateAnimationByFrames(k: number = 1): void
@ -246,25 +246,25 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
{
for(const k of this._sortedActions)
{
if(((k._Str_695 == 'fx') && ((((k._Str_727 == '33') || (k._Str_727 == '34')) || (k._Str_727 == '35')) || (k._Str_727 == '36'))))
if(((k.actionType == 'fx') && ((((k.actionParameter == '33') || (k.actionParameter == '34')) || (k.actionParameter == '35')) || (k.actionParameter == '36'))))
{
return (this._mainDirection + this._currentActionsString) + 0;
}
if(((k._Str_695 == 'fx') && ((k._Str_727 == '38') || (k._Str_727 == '39'))))
if(((k.actionType == 'fx') && ((k.actionParameter == '38') || (k.actionParameter == '39'))))
{
return (((this._mainDirection + '_') + this._headDirection) + this._currentActionsString) + (this._frameCounter % 11);
}
if((k._Str_695 === 'dance') && ((k._Str_727 === '1') || (k._Str_727 === '2') || (k._Str_727 === '3') || (k._Str_727 === '4')))
if((k.actionType === 'dance') && ((k.actionParameter === '1') || (k.actionParameter === '2') || (k.actionParameter === '3') || (k.actionParameter === '4')))
{
let frame = (this._frameCounter % 8);
if((k._Str_727 === '3')) frame = (this._frameCounter % 10);
if((k.actionParameter === '3')) frame = (this._frameCounter % 10);
if((k._Str_727 === '4')) frame = (this._frameCounter % 16);
if((k.actionParameter === '4')) frame = (this._frameCounter % 16);
return (((this._mainDirection + k._Str_695) + k._Str_727) + frame);
return (((this._mainDirection + k.actionType) + k.actionParameter) + frame);
}
}
}
@ -279,7 +279,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
this._cachedBodyPartsDirection = _arg_3;
this._cachedBodyPartsGeometryType = _arg_2;
this._cachedBodyPartsAvatarSet = k;
this._cachedBodyParts = this._structure._Str_755(k, _arg_2, _arg_3);
this._cachedBodyParts = this._structure.getBodyParts(k, _arg_2, _arg_3);
}
return this._cachedBodyParts;
}
@ -291,17 +291,17 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
{
return;
}
const _local_2 = this._structure._Str_1664(this._scale, this._mainAction._Str_742._Str_868);
const _local_2 = this._structure.getCanvas(this._scale, this._mainAction.definition.geometryType);
if(_local_2 == null)
{
return;
}
const _local_3 = this.getBodyParts(k, this._mainAction._Str_742._Str_868, this._mainDirection);
const _local_3 = this.getBodyParts(k, this._mainAction.definition.geometryType, this._mainDirection);
let _local_6 = (_local_3.length - 1);
while(_local_6 >= 0)
{
_local_4 = _local_3[_local_6];
const _local_5 = this._cache._Str_1629(_local_4, this._frameCounter, true);
const _local_5 = this._cache.getImageContainer(_local_4, this._frameCounter, true);
_local_6--;
}
}
@ -314,7 +314,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
if(!this._actionsSorted) this.endActionAppends();
const avatarCanvas = this._structure._Str_1664(this._scale, this._mainAction._Str_742._Str_868);
const avatarCanvas = this._structure.getCanvas(this._scale, this._mainAction.definition.geometryType);
if(!avatarCanvas) return null;
@ -331,7 +331,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
this._isCachedImage = false;
}
const _local_6 = this.getBodyParts(setType, this._mainAction._Str_742._Str_868, this._mainDirection);
const _local_6 = this.getBodyParts(setType, this._mainAction.definition.geometryType, this._mainDirection);
this._image = null;
@ -343,7 +343,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
while(partCount >= 0)
{
const set = _local_6[partCount];
const part = this._cache._Str_1629(set, this._frameCounter);
const part = this._cache.getImageContainer(set, this._frameCounter);
if(part)
{
@ -358,17 +358,17 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
return null;
}
isCachable = ((isCachable) && (part._Str_1807));
isCachable = ((isCachable) && (part.isCacheable));
const point = part._Str_1076.clone();
const point = part.regPoint.clone();
if(point)
{
point.x += avatarCanvas.offset.x;
point.y += avatarCanvas.offset.y;
point.x += avatarCanvas._Str_1076.x;
point.y += avatarCanvas._Str_1076.y;
point.x += avatarCanvas.regPoint.x;
point.y += avatarCanvas.regPoint.y;
const partContainer = new Container();
@ -386,7 +386,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
partCount--;
}
if(this._avatarSpriteData && this._avatarSpriteData._Str_832) this.convertToGrayscale(container);
if(this._avatarSpriteData && this._avatarSpriteData.paletteIsGrayscale) this.convertToGrayscale(container);
if(!cache)
{
@ -395,7 +395,10 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
if(this._reusableTexture)
{
Nitro.instance.renderer.render(container, this._reusableTexture, true);
Nitro.instance.renderer.render(container, {
renderTexture: this._reusableTexture,
clear: true
});
}
else
{
@ -404,7 +407,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
if(!this._reusableTexture) return null;
if(this._avatarSpriteData && this._avatarSpriteData._Str_832)
if(this._avatarSpriteData && this._avatarSpriteData.paletteIsGrayscale)
{
//this._reusableTexture = this.applyPalette(this._reusableTexture, this._avatarSpriteData.reds);
}
@ -444,11 +447,11 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
if(!this._actionsSorted) this.endActionAppends();
const avatarCanvas = this._structure._Str_1664(this._scale, this._mainAction._Str_742._Str_868);
const avatarCanvas = this._structure.getCanvas(this._scale, this._mainAction.definition.geometryType);
if(!avatarCanvas) return null;
const setTypes = this.getBodyParts(setType, this._mainAction._Str_742._Str_868, this._mainDirection);
const setTypes = this.getBodyParts(setType, this._mainAction.definition.geometryType, this._mainDirection);
const container = new Sprite();
const sprite = new Sprite(Texture.EMPTY);
@ -462,7 +465,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
while(partCount >= 0)
{
const set = setTypes[partCount];
const part = this._cache._Str_1629(set, this._frameCounter);
const part = this._cache.getImageContainer(set, this._frameCounter);
if(part)
{
@ -477,15 +480,15 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
return null;
}
const point = part._Str_1076.clone();
const point = part.regPoint.clone();
if(point)
{
point.x += avatarCanvas.offset.x;
point.y += avatarCanvas.offset.y;
point.x += avatarCanvas._Str_1076.x;
point.y += avatarCanvas._Str_1076.y;
point.x += avatarCanvas.regPoint.x;
point.y += avatarCanvas.regPoint.y;
const partContainer = new Container();
@ -509,11 +512,11 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
if(!this._actionsSorted) this.endActionAppends();
const avatarCanvas = this._structure._Str_1664(this._scale, this._mainAction._Str_742._Str_868);
const avatarCanvas = this._structure.getCanvas(this._scale, this._mainAction.definition.geometryType);
if(!avatarCanvas) return null;
const setTypes = this.getBodyParts(setType, this._mainAction._Str_742._Str_868, this._mainDirection);
const setTypes = this.getBodyParts(setType, this._mainAction.definition.geometryType, this._mainDirection);
const container = new Container();
const sprite = new Sprite(Texture.EMPTY);
@ -527,7 +530,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
while(partCount >= 0)
{
const set = setTypes[partCount];
const part = this._cache._Str_1629(set, this._frameCounter);
const part = this._cache.getImageContainer(set, this._frameCounter);
if(part)
{
@ -542,15 +545,15 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
return null;
}
const point = part._Str_1076.clone();
const point = part.regPoint.clone();
if(point)
{
point.x += avatarCanvas.offset.x;
point.y += avatarCanvas.offset.y;
point.x += avatarCanvas._Str_1076.x;
point.y += avatarCanvas._Str_1076.y;
point.x += avatarCanvas.regPoint.x;
point.y += avatarCanvas.regPoint.y;
const partContainer = new Container();
@ -568,7 +571,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
partCount--;
}
const image = Nitro.instance.renderer.extract.image(container);
const image = TextureUtils.generateImage(container);
if(!image) return null;
@ -646,9 +649,9 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
for(const k of this._sortedActions)
{
if(k._Str_695 === AvatarAction.EFFECT)
if(k.actionType === AvatarAction.EFFECT)
{
if(!this._effectManager.isAvatarEffectReady(parseInt(k._Str_727))) this._effectManager.downloadAvatarEffect(parseInt(k._Str_727), this);
if(!this._effectManager.isAvatarEffectReady(parseInt(k.actionParameter))) this._effectManager.downloadAvatarEffect(parseInt(k.actionParameter), this);
}
}
@ -741,8 +744,8 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
break;
case AvatarAction.CARRY_OBJECT:
case AvatarAction.USE_OBJECT: {
const _local_4 = this._structure._Str_2018(k);
if(_local_4) _local_3 = _local_4._Str_1350(_local_3);
const _local_4 = this._structure.getActionDefinitionWithState(k);
if(_local_4) _local_3 = _local_4.getParameterValue(_local_3);
this.addActionData(k, _local_3);
break;
}
@ -760,7 +763,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
while(_local_4 < this._actions.length)
{
_local_3 = this._actions[_local_4];
if(((_local_3._Str_695 == k) && (_local_3._Str_727 == _arg_2)))
if(((_local_3.actionType == k) && (_local_3.actionParameter == _arg_2)))
{
return;
}
@ -781,9 +784,9 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
this._sprites = [];
this._avatarSpriteData = null;
this._directionOffset = 0;
this._structure._Str_2101(this);
this._structure.removeDynamicItems(this);
this._mainAction = this._defaultAction;
this._mainAction._Str_742 = this._defaultAction._Str_742;
this._mainAction.definition = this._defaultAction.definition;
this.resetBodyPartCache(this._defaultAction);
return true;
}
@ -799,8 +802,8 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
}
for(const _local_3 of this._sortedActions)
{
_local_2 = this._structure._Str_2018(_local_3._Str_695);
if(((!(_local_2 == null)) && (_local_2._Str_715(_local_3._Str_727))))
_local_2 = this._structure.getActionDefinitionWithState(_local_3.actionType);
if(((!(_local_2 == null)) && (_local_2.getPreventHeadTurn(_local_3.actionParameter))))
{
k = true;
}
@ -817,8 +820,8 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
let k: boolean;
this._currentActionsString = '';
this._sortedActions = this._structure._Str_711(this._actions);
this._animationFrameCount = this._structure._Str_1936(this._sortedActions);
this._sortedActions = this._structure.sortActions(this._actions);
this._animationFrameCount = this._structure.maxFrames(this._sortedActions);
if(!this._sortedActions)
{
@ -833,15 +836,15 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
}
else
{
this._canvasOffsets = this._structure._Str_781(this._sortedActions, this._scale, this._mainDirection);
this._canvasOffsets = this._structure.getCanvasOffsets(this._sortedActions, this._scale, this._mainDirection);
for(const _local_4 of this._sortedActions)
{
this._currentActionsString = (this._currentActionsString + (_local_4._Str_695 + _local_4._Str_727));
this._currentActionsString = (this._currentActionsString + (_local_4.actionType + _local_4.actionParameter));
if(_local_4._Str_695 === AvatarAction.EFFECT)
if(_local_4.actionType === AvatarAction.EFFECT)
{
const _local_5 = parseInt(_local_4._Str_727);
const _local_5 = parseInt(_local_4.actionParameter);
if(this._effectIdInUse !== _local_5) _local_2 = true;
@ -858,7 +861,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
this._effectIdInUse = -1;
}
if(_local_2) this._cache._Str_1086(0);
if(_local_2) this._cache.disposeInactiveActions(0);
if(this._lastActionsString != this._currentActionsString)
{
@ -880,23 +883,23 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
const _local_3: number = Nitro.instance.time;
const _local_4: string[] = [];
for(const k of this._sortedActions) _local_4.push(k._Str_695);
for(const k of this._sortedActions) _local_4.push(k.actionType);
for(const k of this._sortedActions)
{
if((k && k._Str_742) && k._Str_742._Str_861)
if((k && k.definition) && k.definition.isAnimation)
{
const _local_2 = this._structure._Str_720(((k._Str_742.state + '.') + k._Str_727));
const _local_2 = this._structure.getAnimation(((k.definition.state + '.') + k.actionParameter));
if(_local_2 && _local_2._Str_1892())
if(_local_2 && _local_2.hasOverriddenActions())
{
const _local_5 = _local_2._Str_1571();
const _local_5 = _local_2.overriddenActionNames();
if(_local_5)
{
for(const _local_6 of _local_5)
{
if(_local_4.indexOf(_local_6) >= 0) k._Str_707 = _local_2._Str_707(_local_6);
if(_local_4.indexOf(_local_6) >= 0) k.overridingAction = _local_2.overridingAction(_local_6);
}
}
}
@ -910,25 +913,25 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
for(const k of this._sortedActions)
{
if(!((!(k)) || (!(k._Str_742))))
if(!((!(k)) || (!(k.definition))))
{
if(k._Str_742._Str_861 && (k._Str_727 === '')) k._Str_727 = '1';
if(k.definition.isAnimation && (k.actionParameter === '')) k.actionParameter = '1';
this.setActionToParts(k, _local_3);
if(k._Str_742._Str_861)
if(k.definition.isAnimation)
{
this._isAnimating = k._Str_742._Str_801(k._Str_727);
this._isAnimating = k.definition.isAnimated(k.actionParameter);
const _local_2 = this._structure._Str_720(((k._Str_742.state + '.') + k._Str_727));
const _local_2 = this._structure.getAnimation(((k.definition.state + '.') + k.actionParameter));
if(_local_2)
{
this._sprites = this._sprites.concat(_local_2._Str_786);
this._sprites = this._sprites.concat(_local_2.spriteData);
if(_local_2._Str_776()) this._directionOffset = _local_2._Str_1493.offset;
if(_local_2.hasDirectionData()) this._directionOffset = _local_2.directionData.offset;
if(_local_2._Str_872()) this._avatarSpriteData = _local_2._Str_1475;
if(_local_2.hasAvatarData()) this._avatarSpriteData = _local_2.avatarData;
}
}
}
@ -937,20 +940,20 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
private setActionToParts(k: IActiveActionData, _arg_2: number): void
{
if(((k == null) || (k._Str_742 == null)))
if(((k == null) || (k.definition == null)))
{
return;
}
if(k._Str_742._Str_778 == '')
if(k.definition.assetPartDefinition == '')
{
return;
}
if(k._Str_742._Str_779)
if(k.definition.isMain)
{
this._mainAction = k;
this._cache._Str_2014(k._Str_742._Str_868);
this._cache.setGeometryType(k.definition.geometryType);
}
this._cache._Str_1565(k, _arg_2);
this._cache.setAction(k, _arg_2);
this._changes = true;
}
@ -958,15 +961,15 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
{
if(!k) return;
if(k._Str_742._Str_778 === '') return;
if(k.definition.assetPartDefinition === '') return;
if(k._Str_742._Str_779)
if(k.definition.isMain)
{
this._mainAction = k;
this._cache._Str_2014(k._Str_742._Str_868);
this._cache.setGeometryType(k.definition.geometryType);
}
this._cache._Str_741(k);
this._cache.resetBodyPartCache(k);
this._changes = true;
}
@ -1045,7 +1048,7 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
public get mainAction(): string
{
return this._mainAction._Str_695;
return this._mainAction.actionType;
}
public resetEffect(effect: number): void

View File

@ -15,7 +15,7 @@ export class AvatarImageBodyPartContainer
this._regPoint = _arg_2;
this._isCacheable = _arg_3;
this._Str_1225();
this.cleanPoints();
}
public dispose(): void
@ -32,7 +32,7 @@ export class AvatarImageBodyPartContainer
this._offset = null;
}
private _Str_1225(): void
private cleanPoints(): void
{
// this._regPoint.x = this._regPoint.x;
// this._regPoint.y = this._regPoint.y;
@ -40,11 +40,11 @@ export class AvatarImageBodyPartContainer
// this._offset.y = this._offset.y;
}
public _Str_1387(k: Point): void
public setRegPoint(k: Point): void
{
this._regPoint = k;
this._Str_1225();
this.cleanPoints();
}
public get image(): Container
@ -64,7 +64,7 @@ export class AvatarImageBodyPartContainer
this._image = k;
}
public get _Str_1076(): Point
public get regPoint(): Point
{
const clone = this._regPoint.clone();
@ -78,10 +78,10 @@ export class AvatarImageBodyPartContainer
{
this._offset = k;
this._Str_1225();
this.cleanPoints();
}
public get _Str_1807(): boolean
public get isCacheable(): boolean
{
return this._isCacheable;
}

View File

@ -34,7 +34,7 @@ export class AvatarImagePartContainer
if(this._partType === 'ey') this._isColorable = false;
}
public _Str_1674(k: number): number
public getFrameIndex(k: number): number
{
if(!this._frames || !this._frames.length) return 0;
@ -48,7 +48,7 @@ export class AvatarImagePartContainer
return frameNumber;
}
public _Str_2258(k: number): AvatarAnimationFrame
public getFrameDefinition(k: number): AvatarAnimationFrame
{
const frameNumber = (k % this._frames.length);
@ -63,7 +63,7 @@ export class AvatarImagePartContainer
return null;
}
public _Str_1206(k: number): string
public getCacheableKey(k: number): string
{
const frameNumber = (k % this._frames.length);
@ -73,24 +73,24 @@ export class AvatarImagePartContainer
{
const frame = this._frames[frameNumber];
return (this._Str_1502 + ':' + frame._Str_778 + ':' + frame.number);
return (this.partId + ':' + frame.assetPartDefinition + ':' + frame.number);
}
}
return (this._Str_1502 + ':' + frameNumber);
return (this.partId + ':' + frameNumber);
}
public get _Str_1360(): string
public get bodyPartId(): string
{
return this._bodyPartId;
}
public get _Str_1669(): string
public get partType(): string
{
return this._partType;
}
public get _Str_1502(): string
public get partId(): string
{
return this._partId;
}
@ -115,17 +115,17 @@ export class AvatarImagePartContainer
this._isColorable = k;
}
public get _Str_1406(): number
public get paletteMapId(): number
{
return this._paletteMapId;
}
public get _Str_1666(): string
public get flippedPartType(): string
{
return this._flippedPartType;
}
public get _Str_1184(): boolean
public get isBlendable(): boolean
{
return this._isBlendable;
}

View File

@ -126,7 +126,7 @@ export class AvatarRenderManager extends NitroManager implements IAvatarRenderMa
{
if(!this._structure) return;
this._structure._Str_1825(HabboAvatarGeometry.geometry);
this._structure.initGeometry(HabboAvatarGeometry.geometry);
this._geometryReady = true;
@ -137,7 +137,7 @@ export class AvatarRenderManager extends NitroManager implements IAvatarRenderMa
{
if(!this._structure) return;
this._structure._Str_1296(HabboAvatarPartSets.partSets);
this._structure.initPartSets(HabboAvatarPartSets.partSets);
this._partSetsReady = true;
@ -148,7 +148,7 @@ export class AvatarRenderManager extends NitroManager implements IAvatarRenderMa
{
const defaultActions = Nitro.instance.getConfiguration<string>('avatar.default.actions');
if(defaultActions) this._structure._Str_1060(Nitro.instance.core.asset, defaultActions);
if(defaultActions) this._structure.initActions(Nitro.instance.core.asset, defaultActions);
const request = new XMLHttpRequest();
@ -162,7 +162,7 @@ export class AvatarRenderManager extends NitroManager implements IAvatarRenderMa
{
if(!this._structure) return;
this._structure._Str_1620(JSON.parse(request.responseText));
this._structure.updateActions(JSON.parse(request.responseText));
this._actionsReady = true;
@ -185,7 +185,7 @@ export class AvatarRenderManager extends NitroManager implements IAvatarRenderMa
{
if(!this._structure) return;
this._structure._Str_2229(HabboAvatarAnimations.animations);
this._structure.initAnimation(HabboAvatarAnimations.animations);
this._animationsReady = true;
@ -204,7 +204,7 @@ export class AvatarRenderManager extends NitroManager implements IAvatarRenderMa
{
if(err || !results || !results.figuredata) throw new Error('invalid_default_figure_data');
if(this._structure) this._structure._Str_1569(results.figuredata);
if(this._structure) this._structure.initFigureData(results.figuredata);
});
}
@ -308,7 +308,7 @@ export class AvatarRenderManager extends NitroManager implements IAvatarRenderMa
{
let isValid = false;
const typeIds = this._structure._Str_1733(gender, 2);
const typeIds = this._structure.getMandatorySetTypeIds(gender, 2);
if(typeIds)
{
@ -316,32 +316,32 @@ export class AvatarRenderManager extends NitroManager implements IAvatarRenderMa
for(const id of typeIds)
{
if(!container._Str_744(id))
if(!container.hasPartType(id))
{
const figurePartSet = this._structure._Str_2264(id, gender);
const figurePartSet = this._structure.getDefaultPartSet(id, gender);
if(figurePartSet)
{
container._Str_830(id, figurePartSet.id, [0]);
container.updatePart(id, figurePartSet.id, [0]);
isValid = true;
}
}
else
{
const setType = figureData._Str_740(id);
const setType = figureData.getSetType(id);
if(setType)
{
const figurePartSet = setType._Str_1020(container.getPartSetId(id));
const figurePartSet = setType.getPartSet(container.getPartSetId(id));
if(!figurePartSet)
{
const partSet = this._structure._Str_2264(id, gender);
const partSet = this._structure.getDefaultPartSet(id, gender);
if(partSet)
{
container._Str_830(id, partSet.id, [0]);
container.updatePart(id, partSet.id, [0]);
isValid = true;
}
@ -359,39 +359,39 @@ export class AvatarRenderManager extends NitroManager implements IAvatarRenderMa
if(!this._structure) return 0;
const figureData = this._structure.figureData;
const parts = Array.from(container._Str_1016());
const parts = Array.from(container.getPartTypeIds());
let clubLevel = 0;
for(const part of parts)
{
const set = figureData._Str_740(part);
const set = figureData.getSetType(part);
const setId = container.getPartSetId(part);
const partSet = set._Str_1020(setId);
const partSet = set.getPartSet(setId);
if(partSet)
{
clubLevel = Math.max(partSet.clubLevel, clubLevel);
const palette = figureData._Str_783(set._Str_734);
const colors = container._Str_815(part);
const palette = figureData.getPalette(set.paletteID);
const colors = container.getPartColorIds(part);
for(const colorId of colors)
{
const color = palette._Str_751(colorId);
const color = palette.getColor(colorId);
clubLevel = Math.max(color.clubLevel, clubLevel);
}
}
}
if(!searchParts) searchParts = this._structure._Str_1695(AvatarSetType.FULL);
if(!searchParts) searchParts = this._structure.getBodyPartsUnordered(AvatarSetType.FULL);
for(const part of searchParts)
{
const set = figureData._Str_740(part);
const set = figureData.getSetType(part);
if(parts.indexOf(part) === -1) clubLevel = Math.max(set._Str_1002(gender), clubLevel);
if(parts.indexOf(part) === -1) clubLevel = Math.max(set.optionalFromClubLevel(gender), clubLevel);
}
return clubLevel;
@ -400,7 +400,7 @@ export class AvatarRenderManager extends NitroManager implements IAvatarRenderMa
public isValidFigureSetForGender(setId: number, gender: string): boolean
{
const structure = this.structureData;
const partSet = structure._Str_938(setId);
const partSet = structure.getFigurePartSet(setId);
return !!(partSet && ((partSet.gender.toUpperCase() === 'U') || (partSet.gender.toUpperCase() === gender.toUpperCase())));
}
@ -409,26 +409,26 @@ export class AvatarRenderManager extends NitroManager implements IAvatarRenderMa
{
const container = new FigureDataContainer();
container._Str_2153(k, _arg_2);
container.loadAvatarData(k, _arg_2);
const partSets: IFigurePartSet[] = this._Str_1667(_arg_3);
const partSets: IFigurePartSet[] = this.resolveFigureSets(_arg_3);
for(const partSet of partSets)
{
container._Str_2088(partSet.type, partSet.id, container.getColourIds(partSet.type));
container.savePartData(partSet.type, partSet.id, container.getColourIds(partSet.type));
}
return container._Str_1008();
return container.getFigureString();
}
private _Str_1667(k: number[]): IFigurePartSet[]
private resolveFigureSets(k: number[]): IFigurePartSet[]
{
const structure = this.structureData;
const partSets: IFigurePartSet[] = [];
for(const _local_4 of k)
{
const partSet = structure._Str_938(_local_4);
const partSet = structure.getFigurePartSet(_local_4);
if(partSet) partSets.push(partSet);
}
@ -436,11 +436,11 @@ export class AvatarRenderManager extends NitroManager implements IAvatarRenderMa
return partSets;
}
public _Str_838(k: string, _arg_2: number): string[]
public getMandatoryAvatarPartSetIds(k: string, _arg_2: number): string[]
{
if(!this._structure) return null;
return this._structure._Str_1733(k, _arg_2);
return this._structure.getMandatorySetTypeIds(k, _arg_2);
}
public getAssetByName(name: string): IGraphicAsset

View File

@ -71,36 +71,36 @@ export class AvatarStructure extends EventDispatcher
this._mandatorySetTypeIds = null;
}
public _Str_1825(k: any): void
public initGeometry(k: any): void
{
if(!k) return;
this._geometry = new AvatarModelGeometry(k);
}
public _Str_1060(k: IAssetManager, _arg_2: any): void
public initActions(k: IAssetManager, _arg_2: any): void
{
if(!_arg_2) return;
this._actionManager = new AvatarActionManager(k, _arg_2);
this._defaultAction = this._actionManager._Str_1027();
this._defaultAction = this._actionManager.getDefaultAction();
}
public _Str_1620(data: any): void
public updateActions(data: any): void
{
this._actionManager._Str_1620(data);
this._actionManager.updateActions(data);
this._defaultAction = this._actionManager._Str_1027();
this._defaultAction = this._actionManager.getDefaultAction();
}
public _Str_1296(k: any): boolean
public initPartSets(k: any): boolean
{
if(!k) return false;
if(this._partSetsData.parse(k))
{
this._partSetsData._Str_1102('ri')._Str_1583 = true;
this._partSetsData._Str_1102('li')._Str_1583 = true;
this._partSetsData.getPartDefinition('ri').appendToFigure = true;
this._partSetsData.getPartDefinition('li').appendToFigure = true;
return true;
}
@ -108,26 +108,26 @@ export class AvatarStructure extends EventDispatcher
return false;
}
public _Str_2229(k: any): boolean
public initAnimation(k: any): boolean
{
if(!k) return false;
return this._animationData.parse(k);
}
public _Str_1569(k: any): boolean
public initFigureData(k: any): boolean
{
if(!k) return false;
return this._figureData.parse(k);
}
public _Str_882(data: any): void
public injectFigureData(data: any): void
{
this._figureData._Str_1133(data);
this._figureData.injectXML(data);
}
public _Str_1849(k: IAssetManager, _arg_2: string = 'fx', _arg_3: number = 200): void
public registerAnimations(k: IAssetManager, _arg_2: string = 'fx', _arg_3: number = 200): void
{
let index = 0;
@ -139,77 +139,77 @@ export class AvatarStructure extends EventDispatcher
{
const animationData = collection.data;
this._animationManager._Str_2061(this, animationData.animations);
this._animationManager.registerAnimation(this, animationData.animations);
}
index++;
}
}
public _Str_2061(data: { [index: string]: IAssetAnimation }): void
public registerAnimation(data: { [index: string]: IAssetAnimation }): void
{
this._animationManager._Str_2061(this, data);
this._animationManager.registerAnimation(this, data);
}
public _Str_867(k: IAvatarFigureContainer, _arg_2: string, _arg_3: number = 0): IPartColor
public getPartColor(k: IAvatarFigureContainer, _arg_2: string, _arg_3: number = 0): IPartColor
{
const _local_4 = k._Str_815(_arg_2);
const _local_4 = k.getPartColorIds(_arg_2);
if((!(_local_4)) || (_local_4.length < _arg_3)) return null;
const _local_5 = this._figureData._Str_740(_arg_2);
const _local_5 = this._figureData.getSetType(_arg_2);
if(_local_5 == null) return null;
const _local_6 = this._figureData._Str_783(_local_5._Str_734);
const _local_6 = this._figureData.getPalette(_local_5.paletteID);
if(!_local_6) return null;
return _local_6._Str_751(_local_4[_arg_3]);
return _local_6.getColor(_local_4[_arg_3]);
}
public _Str_1881(animation: string, frameCount: number, spriteId: string): AvatarAnimationLayerData
public getBodyPartData(animation: string, frameCount: number, spriteId: string): AvatarAnimationLayerData
{
return this._animationManager._Str_607(animation, frameCount, spriteId) as AvatarAnimationLayerData;
return this._animationManager.getLayerData(animation, frameCount, spriteId) as AvatarAnimationLayerData;
}
public _Str_720(k: string): Animation
public getAnimation(k: string): Animation
{
return this._animationManager._Str_720(k) as Animation;
return this._animationManager.getAnimation(k) as Animation;
}
public _Str_1675(k: string): ActionDefinition
public getActionDefinition(k: string): ActionDefinition
{
return this._actionManager._Str_1675(k);
return this._actionManager.getActionDefinition(k);
}
public _Str_2018(k: string): ActionDefinition
public getActionDefinitionWithState(k: string): ActionDefinition
{
return this._actionManager._Str_2018(k);
return this._actionManager.getActionDefinitionWithState(k);
}
public _Str_1939(k: string): boolean
public isMainAvatarSet(k: string): boolean
{
return this._geometry._Str_1939(k);
return this._geometry.isMainAvatarSet(k);
}
public _Str_711(k: IActiveActionData[]): IActiveActionData[]
public sortActions(k: IActiveActionData[]): IActiveActionData[]
{
return this._actionManager._Str_711(k);
return this._actionManager.sortActions(k);
}
public _Str_1936(k: IActiveActionData[]): number
public maxFrames(k: IActiveActionData[]): number
{
let _local_2 = 0;
for(const _local_3 of k)
{
_local_2 = Math.max(_local_2, this._animationData._Str_1408(_local_3._Str_742));
_local_2 = Math.max(_local_2, this._animationData.getFrameCount(_local_3.definition));
}
return _local_2;
}
public _Str_1733(k: string, _arg_2: number): string[]
public getMandatorySetTypeIds(k: string, _arg_2: number): string[]
{
if(!this._mandatorySetTypeIds[k])
{
@ -221,48 +221,48 @@ export class AvatarStructure extends EventDispatcher
return this._mandatorySetTypeIds[k][_arg_2];
}
this._mandatorySetTypeIds[k][_arg_2] = this._figureData._Str_1733(k, _arg_2);
this._mandatorySetTypeIds[k][_arg_2] = this._figureData.getMandatorySetTypeIds(k, _arg_2);
return this._mandatorySetTypeIds[k][_arg_2];
}
public _Str_2264(k: string, _arg_2: string): IFigurePartSet
public getDefaultPartSet(k: string, _arg_2: string): IFigurePartSet
{
return this._figureData._Str_2264(k, _arg_2);
return this._figureData.getDefaultPartSet(k, _arg_2);
}
public _Str_781(k: IActiveActionData[], _arg_2: string, _arg_3: number): number[]
public getCanvasOffsets(k: IActiveActionData[], _arg_2: string, _arg_3: number): number[]
{
return this._actionManager._Str_781(k, _arg_2, _arg_3);
return this._actionManager.getCanvasOffsets(k, _arg_2, _arg_3);
}
public _Str_1664(k: string, _arg_2: string): AvatarCanvas
public getCanvas(k: string, _arg_2: string): AvatarCanvas
{
return this._geometry._Str_1664(k, _arg_2);
return this._geometry.getCanvas(k, _arg_2);
}
public _Str_2101(k: IAvatarImage): void
public removeDynamicItems(k: IAvatarImage): void
{
this._geometry._Str_2101(k);
this._geometry.removeDynamicItems(k);
}
public _Str_2021(k: IActiveActionData, _arg_2: IAvatarImage): string[]
public getActiveBodyPartIds(k: IActiveActionData, _arg_2: IAvatarImage): string[]
{
let _local_3: string[] = [];
const _local_4: string[] = [];
const _local_5 = k._Str_742._Str_868;
const _local_5 = k.definition.geometryType;
if(k._Str_742._Str_861)
if(k.definition.isAnimation)
{
const _local_7 = ((k._Str_742.state + '.') + k._Str_727);
const _local_8 = this._animationManager._Str_720(_local_7);
const _local_7 = ((k.definition.state + '.') + k.actionParameter);
const _local_8 = this._animationManager.getAnimation(_local_7);
if(_local_8)
{
_local_3 = _local_8._Str_1065(0, k._Str_707);
_local_3 = _local_8.getAnimatedBodyPartIds(0, k.overridingAction);
if(_local_8._Str_706())
if(_local_8.hasAddData())
{
const _local_11 = {
id: '',
@ -280,21 +280,21 @@ export class AvatarStructure extends EventDispatcher
setType: ''
};
for(const _local_13 of _local_8._Str_687)
for(const _local_13 of _local_8.addData)
{
const _local_6 = this._geometry._Str_1919(_local_5, _local_13.align);
const _local_6 = this._geometry.getBodyPart(_local_5, _local_13.align);
if(_local_6)
{
_local_11.id = _local_13.id;
_local_6._Str_2020(_local_11, _arg_2);
_local_6.addPart(_local_11, _arg_2);
_local_12.setType = _local_13.id;
const _local_10 = this._partSetsData._Str_1520(_local_12);
_local_10._Str_1583 = true;
const _local_10 = this._partSetsData.addPartDefinition(_local_12);
_local_10.appendToFigure = true;
if(_local_13.base === '') _local_10._Str_1734 = 1;
if(_local_13.base === '') _local_10.staticId = 1;
if(_local_4.indexOf(_local_6.id) === -1) _local_4.push(_local_6.id);
}
@ -304,18 +304,18 @@ export class AvatarStructure extends EventDispatcher
for(const _local_9 of _local_3)
{
const _local_6 = this._geometry._Str_1919(_local_5, _local_9);
const _local_6 = this._geometry.getBodyPart(_local_5, _local_9);
if(_local_6 && (_local_4.indexOf(_local_6.id) === -1)) _local_4.push(_local_6.id);
}
}
else
{
_local_3 = this._partSetsData._Str_1795(k._Str_742);
_local_3 = this._partSetsData.getActiveParts(k.definition);
for(const _local_14 of _local_3)
{
const _local_6 = this._geometry._Str_1701(_local_5, _local_14, _arg_2);
const _local_6 = this._geometry.getBodyPartOfItem(_local_5, _local_14, _arg_2);
if(_local_6 && (_local_4.indexOf(_local_6.id) === -1)) _local_4.push(_local_6.id);
}
@ -324,28 +324,28 @@ export class AvatarStructure extends EventDispatcher
return _local_4;
}
public _Str_1695(k: string): string[]
public getBodyPartsUnordered(k: string): string[]
{
return this._geometry._Str_1307(k);
return this._geometry.getBodyPartIdsInAvatarSet(k);
}
public _Str_755(k: string, _arg_2: string, _arg_3: number): string[]
public getBodyParts(k: string, _arg_2: string, _arg_3: number): string[]
{
const _local_4 = AvatarDirectionAngle.DIRECTION_TO_ANGLE[_arg_3];
return this._geometry._Str_2250(k, _local_4, _arg_2);
return this._geometry.getBodyPartsAtAngle(k, _local_4, _arg_2);
}
public _Str_1888(k:IActiveActionData, _arg_2: number, _arg_3: number, _arg_4: string): Point
public getFrameBodyPartOffset(k:IActiveActionData, _arg_2: number, _arg_3: number, _arg_4: string): Point
{
const _local_5 = this._animationData._Str_2244(k._Str_742);
const _local_5 = this._animationData.getAction(k.definition);
if(_local_5) return _local_5._Str_1888(_arg_2, _arg_3, _arg_4);
if(_local_5) return _local_5.getFrameBodyPartOffset(_arg_2, _arg_3, _arg_4);
return AnimationAction._Str_1934;
return AnimationAction.DEFAULT_OFFSET;
}
public _Str_713(k: string, _arg_2:IAvatarFigureContainer, _arg_3:IActiveActionData, _arg_4: string, _arg_5: number, removes: string[], _arg_7: IAvatarImage, _arg_8: Map<string, string> = null): AvatarImagePartContainer[]
public getParts(k: string, _arg_2:IAvatarFigureContainer, _arg_3:IActiveActionData, _arg_4: string, _arg_5: number, removes: string[], _arg_7: IAvatarImage, _arg_8: Map<string, string> = null): AvatarImagePartContainer[]
{
const _local_10: Animation = null;
let _local_34: IActionDefinition = null;
@ -355,29 +355,29 @@ export class AvatarStructure extends EventDispatcher
if(!_arg_3 == null) return [];
const _local_9 = this._partSetsData._Str_1795(_arg_3._Str_742);
const _local_9 = this._partSetsData.getActiveParts(_arg_3.definition);
const _local_11: AvatarImagePartContainer[] = [];
let _local_14: any[] = [ 0 ];
const _local_15 = this._animationData._Str_2244(_arg_3._Str_742);
const _local_15 = this._animationData.getAction(_arg_3.definition);
if(_arg_3._Str_742._Str_861)
if(_arg_3.definition.isAnimation)
{
const _local_24 = ((_arg_3._Str_742.state + '.') + _arg_3._Str_727);
const _local_10 = this._animationManager._Str_720(_local_24);
const _local_24 = ((_arg_3.definition.state + '.') + _arg_3.actionParameter);
const _local_10 = this._animationManager.getAnimation(_local_24);
if(_local_10)
{
_local_14 = this._Str_1768(_local_10._Str_2185(_arg_3._Str_707));
_local_14 = this.getPopulatedArray(_local_10.frameCount(_arg_3.overridingAction));
for(const _local_25 of _local_10._Str_1065(0, _arg_3._Str_707))
for(const _local_25 of _local_10.getAnimatedBodyPartIds(0, _arg_3.overridingAction))
{
if(_local_25 === k)
{
const _local_26 = this._geometry._Str_1919(_arg_4, _local_25);
const _local_26 = this._geometry.getBodyPart(_arg_4, _local_25);
if(_local_26)
{
for(const _local_27 of _local_26._Str_1883(_arg_7))
for(const _local_27 of _local_26.getDynamicParts(_arg_7))
{
_local_9.push(_local_27.id);
}
@ -387,8 +387,8 @@ export class AvatarStructure extends EventDispatcher
}
}
const _local_16 = this._geometry._Str_713(_arg_4, k, _arg_5, _local_9, _arg_7);
const _local_21 = _arg_2._Str_1016();
const _local_16 = this._geometry.getParts(_arg_4, k, _arg_5, _local_9, _arg_7);
const _local_21 = _arg_2.getPartTypeIds();
for(const _local_17 of _local_21)
{
@ -398,30 +398,30 @@ export class AvatarStructure extends EventDispatcher
}
const _local_28 = _arg_2.getPartSetId(_local_17);
const _local_29 = _arg_2._Str_815(_local_17);
const _local_30 = this._figureData._Str_740(_local_17);
const _local_29 = _arg_2.getPartColorIds(_local_17);
const _local_30 = this._figureData.getSetType(_local_17);
if(_local_30)
{
const _local_31 = this._figureData._Str_783(_local_30._Str_734);
const _local_31 = this._figureData.getPalette(_local_30.paletteID);
if(_local_31)
{
const _local_32 = _local_30._Str_1020(_local_28);
const _local_32 = _local_30.getPartSet(_local_28);
if(_local_32)
{
removes = removes.concat(_local_32._Str_790);
removes = removes.concat(_local_32.hiddenLayers);
for(const _local_33 of _local_32._Str_806)
for(const _local_33 of _local_32.parts)
{
if(_local_16.indexOf(_local_33.type) > -1)
{
if(_local_15)
{
const _local_19 = _local_15._Str_989(_local_33.type);
const _local_19 = _local_15.getPart(_local_33.type);
if(_local_19)
{
@ -437,22 +437,22 @@ export class AvatarStructure extends EventDispatcher
_local_20 = _local_14;
}
_local_34 = _arg_3._Str_742;
_local_34 = _arg_3.definition;
if(_local_9.indexOf(_local_33.type) === -1) _local_34 = this._defaultAction;
const _local_13 = this._partSetsData._Str_1102(_local_33.type);
const _local_13 = this._partSetsData.getPartDefinition(_local_33.type);
let _local_35 = (!_local_13) ? _local_33.type : _local_13._Str_1693;
let _local_35 = (!_local_13) ? _local_33.type : _local_13.flippedSetType;
if(!_local_35 || (_local_35 === '')) _local_35 = _local_33.type;
if(_local_29 && (_local_29.length > (_local_33._Str_827 - 1)))
if(_local_29 && (_local_29.length > (_local_33.colorLayerIndex - 1)))
{
_local_36 = _local_31._Str_751(_local_29[(_local_33._Str_827 - 1)]);
_local_36 = _local_31.getColor(_local_29[(_local_33.colorLayerIndex - 1)]);
}
const _local_37 = (_local_33._Str_827 > 0);
const _local_37 = (_local_33.colorLayerIndex > 0);
const _local_18 = new AvatarImagePartContainer(k, _local_33.type, _local_33.id.toString(), _local_36, _local_20, _local_34, _local_37, _local_33.paletteMap, _local_35);
_local_11.push(_local_18);
@ -474,7 +474,7 @@ export class AvatarStructure extends EventDispatcher
for(const _local_23 of _local_11)
{
if(_local_23._Str_1669 === _local_12)
if(_local_23.partType === _local_12)
{
if(_local_40)
{
@ -506,7 +506,7 @@ export class AvatarStructure extends EventDispatcher
if(_local_15)
{
const _local_19 = _local_15._Str_989(_local_12);
const _local_19 = _local_15.getPart(_local_12);
if(_local_19)
{
@ -522,7 +522,7 @@ export class AvatarStructure extends EventDispatcher
_local_20 = _local_14;
}
const _local_18 = new AvatarImagePartContainer(k, _local_12, _local_41, _local_39, _local_20, _arg_3._Str_742, (!(_local_39 == null)), -1, _local_12, false, 1);
const _local_18 = new AvatarImagePartContainer(k, _local_12, _local_41, _local_39, _local_20, _arg_3.definition, (!(_local_39 == null)), -1, _local_12, false, 1);
_local_22.push(_local_18);
}
@ -530,7 +530,7 @@ export class AvatarStructure extends EventDispatcher
{
if(_local_9.indexOf(_local_12) > -1)
{
const _local_44 = this._geometry._Str_1701(_arg_4, _local_12, _arg_7);
const _local_44 = this._geometry.getBodyPartOfItem(_arg_4, _local_12, _arg_7);
if(k !== _local_44.id)
{
@ -538,39 +538,39 @@ export class AvatarStructure extends EventDispatcher
}
else
{
const _local_13 = this._partSetsData._Str_1102(_local_12);
const _local_13 = this._partSetsData.getPartDefinition(_local_12);
let _local_45 = false;
let _local_46 = 1;
if(_local_13._Str_1583)
if(_local_13.appendToFigure)
{
let _local_47 = '1';
if(_arg_3._Str_727 !== '')
if(_arg_3.actionParameter !== '')
{
_local_47 = _arg_3._Str_727;
_local_47 = _arg_3.actionParameter;
}
if(_local_13._Str_2234())
if(_local_13.hasStaticId())
{
_local_47 = _local_13._Str_1734.toString();
_local_47 = _local_13.staticId.toString();
}
if(_local_10 != null)
{
const _local_48 = _local_10._Str_1550(_local_12);
const _local_48 = _local_10.getAddData(_local_12);
if(_local_48)
{
_local_45 = _local_48._Str_1096;
_local_45 = _local_48.isBlended;
_local_46 = _local_48.blend;
}
}
if(_local_15)
{
const _local_19 = _local_15._Str_989(_local_12);
const _local_19 = _local_15.getPart(_local_12);
if(_local_19)
{
@ -586,7 +586,7 @@ export class AvatarStructure extends EventDispatcher
_local_20 = _local_14;
}
const _local_18 = new AvatarImagePartContainer(k, _local_12, _local_47, null, _local_20, _arg_3._Str_742, false, -1, _local_12, _local_45, _local_46);
const _local_18 = new AvatarImagePartContainer(k, _local_12, _local_47, null, _local_20, _arg_3.definition, false, -1, _local_12, _local_45, _local_46);
_local_22.push(_local_18);
}
@ -599,7 +599,7 @@ export class AvatarStructure extends EventDispatcher
return _local_22;
}
private _Str_1768(k: number): number[]
private getPopulatedArray(k: number): number[]
{
const _local_2: number[] = [];
@ -615,11 +615,11 @@ export class AvatarStructure extends EventDispatcher
return _local_2;
}
public _Str_672(): string[]
public getItemIds(): string[]
{
if(this._actionManager)
{
const k = this._actionManager._Str_1675('CarryItem').params;
const k = this._actionManager.getActionDefinition('CarryItem').params;
const _local_2 = [];

View File

@ -179,7 +179,7 @@ export class EffectAssetDownloadManager extends EventDispatcher
const loadedEffects: string[] = [];
this._structure._Str_2061(event.library.animation);
this._structure.registerAnimation(event.library.animation);
for(const [ id, libraries ] of this._incompleteEffects.entries())
{

View File

@ -1,10 +1,10 @@
export interface IAvatarFigureContainer
{
_Str_1016(): IterableIterator<string>;
_Str_744(_arg_1: string): boolean;
getPartTypeIds(): IterableIterator<string>;
hasPartType(_arg_1: string): boolean;
getPartSetId(_arg_1: string): number;
_Str_815(_arg_1: string): number[];
_Str_830(_arg_1: string, _arg_2: number, _arg_3: number[]): void;
_Str_923(_arg_1: string): void;
_Str_1008(): string;
getPartColorIds(_arg_1: string): number[];
updatePart(_arg_1: string, _arg_2: number, _arg_3: number[]): void;
removePart(_arg_1: string): void;
getFigureString(): string;
}

View File

@ -18,7 +18,7 @@ export interface IAvatarRenderManager extends INitroManager
getFigureClubLevel(container: IAvatarFigureContainer, gender: string, searchParts: string[]): number;
isValidFigureSetForGender(setId: number, gender: string): boolean;
getFigureStringWithFigureIds(k: string, _arg_2: string, _arg_3: number[]): string;
_Str_838(k: string, _arg_2: number): string[];
getMandatoryAvatarPartSetIds(k: string, _arg_2: number): string[];
getAssetByName(name: string): IGraphicAsset;
assets: IAssetManager;
isReady: boolean;

View File

@ -65,7 +65,7 @@ export class ActionDefinition implements IActionDefinition
}
}
public _Str_772(k: string, _arg_2: number, _arg_3: number[]): void
public setOffsets(k: string, _arg_2: number, _arg_3: number[]): void
{
if(!this._canvasOffsets) this._canvasOffsets = new Map();
@ -81,7 +81,7 @@ export class ActionDefinition implements IActionDefinition
existing.set(_arg_2, _arg_3);
}
public _Str_805(k: string, _arg_2: number): number[]
public getOffsets(k: string, _arg_2: number): number[]
{
if(!this._canvasOffsets) return null;
@ -103,7 +103,7 @@ export class ActionDefinition implements IActionDefinition
return existing;
}
public _Str_1350(id: string): string
public getParameterValue(id: string): string
{
if(!id) return '';
@ -114,12 +114,12 @@ export class ActionDefinition implements IActionDefinition
return existing;
}
public _Str_733(type: string): string[]
public getPrevents(type: string): string[]
{
return this._prevents.concat(this._Str_1889(type));
return this._prevents.concat(this.getTypePrevents(type));
}
private _Str_1889(type: string): string[]
private getTypePrevents(type: string): string[]
{
if(!type) return [];
@ -130,7 +130,7 @@ export class ActionDefinition implements IActionDefinition
return existing.prevents;
}
public _Str_715(k: string): boolean
public getPreventHeadTurn(k: string): boolean
{
if(!k) return this._preventHeadTurn;
@ -138,10 +138,10 @@ export class ActionDefinition implements IActionDefinition
if(!type) return this._preventHeadTurn;
return type._Str_1891;
return type.preventHeadTurn;
}
public _Str_801(k: string): boolean
public isAnimated(k: string): boolean
{
if(!k) return true;
@ -149,7 +149,7 @@ export class ActionDefinition implements IActionDefinition
if(!type) return true;
return type._Str_801;
return type.isAnimated;
}
public get id(): string
@ -172,7 +172,7 @@ export class ActionDefinition implements IActionDefinition
return this._activePartSet;
}
public get _Str_778(): string
public get assetPartDefinition(): string
{
return this._assetPartDefinition;
}
@ -182,27 +182,27 @@ export class ActionDefinition implements IActionDefinition
return this._lay;
}
public get _Str_868(): string
public get geometryType(): string
{
return this._geometryType;
}
public get _Str_779(): boolean
public get isMain(): boolean
{
return this._isMain;
}
public get _Str_804(): boolean
public get isDefault(): boolean
{
return this._isDefault;
}
public get _Str_861(): boolean
public get isAnimation(): boolean
{
return this._isAnimation;
}
public get _Str_812(): boolean
public get startFromFrameZero(): boolean
{
return this._startFromFrameZero;
}

View File

@ -32,12 +32,12 @@ export class ActionType
return this._prevents;
}
public get _Str_1891(): boolean
public get preventHeadTurn(): boolean
{
return this._preventHeadTurn;
}
public get _Str_801(): boolean
public get isAnimated(): boolean
{
return this._isAnimated;
}

View File

@ -32,42 +32,42 @@ export class ActiveActionData implements IActiveActionData
return this._definition.id + '_' + this._actionParameter;
}
public get _Str_695(): string
public get actionType(): string
{
return this._actionType;
}
public get _Str_727(): string
public get actionParameter(): string
{
return this._actionParameter;
}
public set _Str_727(parameter: string)
public set actionParameter(parameter: string)
{
this._actionParameter = parameter;
}
public get _Str_742(): IActionDefinition
public get definition(): IActionDefinition
{
return this._definition;
}
public set _Str_742(definition: IActionDefinition)
public set definition(definition: IActionDefinition)
{
this._definition = definition;
}
public get _Str_664(): number
public get startFrame(): number
{
return this._startFrame;
}
public get _Str_707(): string
public get overridingAction(): string
{
return this._overridingAction;
}
public set _Str_707(action: string)
public set overridingAction(action: string)
{
this._overridingAction = action;
}

View File

@ -14,10 +14,10 @@ export class AvatarActionManager
this._actions = new Map();
this._defaultAction = null;
this._Str_1620(data);
this.updateActions(data);
}
public _Str_1620(data: any): void
public updateActions(data: any): void
{
if(!data) return;
@ -30,10 +30,10 @@ export class AvatarActionManager
this._actions.set(definition.state, definition);
}
if(data.actionOffsets) this._Str_1767(data.actionOffsets);
if(data.actionOffsets) this.parseActionOffsets(data.actionOffsets);
}
private _Str_1767(offsets: any): void
private parseActionOffsets(offsets: any): void
{
if(!offsets || !offsets.length) return;
@ -54,12 +54,12 @@ export class AvatarActionManager
const y = (canvasOffset.y || 0);
const z = (canvasOffset.z || 0);
action._Str_772(size, direction, [ x, y, z ]);
action.setOffsets(size, direction, [ x, y, z ]);
}
}
}
public _Str_1675(id: string): ActionDefinition
public getActionDefinition(id: string): ActionDefinition
{
if(!id) return null;
@ -73,7 +73,7 @@ export class AvatarActionManager
return null;
}
public _Str_2018(state: string): ActionDefinition
public getActionDefinitionWithState(state: string): ActionDefinition
{
const existing = this._actions.get(state);
@ -82,13 +82,13 @@ export class AvatarActionManager
return existing;
}
public _Str_1027(): ActionDefinition
public getDefaultAction(): ActionDefinition
{
if(this._defaultAction) return this._defaultAction;
for(const action of this._actions.values())
{
if(!action || !action._Str_804) continue;
if(!action || !action.isDefault) continue;
this._defaultAction = action;
@ -98,7 +98,7 @@ export class AvatarActionManager
return null;
}
public _Str_781(k: IActiveActionData[], _arg_2: string, _arg_3: number): number[]
public getCanvasOffsets(k: IActiveActionData[], _arg_2: string, _arg_3: number): number[]
{
let canvasOffsets: number[] = [];
@ -106,8 +106,8 @@ export class AvatarActionManager
{
if(!activeAction) continue;
const action = this._actions.get(activeAction._Str_695);
const offsets = action && action._Str_805(_arg_2, _arg_3);
const action = this._actions.get(activeAction.actionType);
const offsets = action && action.getOffsets(_arg_2, _arg_3);
if(offsets) canvasOffsets = offsets;
}
@ -115,11 +115,11 @@ export class AvatarActionManager
return canvasOffsets;
}
public _Str_711(actions: IActiveActionData[]): IActiveActionData[]
public sortActions(actions: IActiveActionData[]): IActiveActionData[]
{
if(!actions) return null;
actions = this._Str_1247(actions);
actions = this.filterActions(actions);
const validatedActions: IActiveActionData[] = [];
@ -127,11 +127,11 @@ export class AvatarActionManager
{
if(!action) continue;
const definition = this._actions.get(action._Str_695);
const definition = this._actions.get(action.actionType);
if(!definition) continue;
action._Str_742 = definition;
action.definition = definition;
validatedActions.push(action);
}
@ -141,7 +141,7 @@ export class AvatarActionManager
return validatedActions;
}
private _Str_1247(actions: IActiveActionData[]): IActiveActionData[]
private filterActions(actions: IActiveActionData[]): IActiveActionData[]
{
let preventions: string[] = [];
const activeActions: IActiveActionData[] = [];
@ -150,18 +150,18 @@ export class AvatarActionManager
{
if(!action) continue;
const localAction = this._actions.get(action._Str_695);
const localAction = this._actions.get(action.actionType);
if(localAction) preventions = preventions.concat(localAction._Str_733(action._Str_727));
if(localAction) preventions = preventions.concat(localAction.getPrevents(action.actionParameter));
}
for(const action of actions)
{
if(!action) continue;
let actionType = action._Str_695;
let actionType = action.actionType;
if(action._Str_695 === 'fx') actionType = (actionType + ('.' + action._Str_727));
if(action.actionType === 'fx') actionType = (actionType + ('.' + action.actionParameter));
if(preventions.indexOf(actionType) >= 0) continue;
@ -175,8 +175,8 @@ export class AvatarActionManager
{
if(!actionOne || !actionTwo) return 0;
const precedenceOne = actionOne._Str_742.precedence;
const precedenceTwo = actionTwo._Str_742.precedence;
const precedenceOne = actionOne.definition.precedence;
const precedenceTwo = actionTwo.definition.precedence;
if(precedenceOne < precedenceTwo) return 1;

View File

@ -5,16 +5,16 @@ export interface IActionDefinition
state: string;
precedence: number;
activePartSet: string;
_Str_779: boolean;
_Str_804: boolean;
_Str_778: string;
isMain: boolean;
isDefault: boolean;
assetPartDefinition: string;
lay: string;
_Str_868: string;
_Str_861: boolean;
_Str_812: boolean;
_Str_801(_arg_1: string): boolean;
_Str_733(_arg_1: string): string[];
_Str_715(_arg_1: string): boolean;
_Str_772(_arg_1: string, _arg_2: number, _arg_3: []): void;
_Str_805(_arg_1: string, _arg_2: number): number[];
geometryType: string;
isAnimation: boolean;
startFromFrameZero: boolean;
isAnimated(_arg_1: string): boolean;
getPrevents(_arg_1: string): string[];
getPreventHeadTurn(_arg_1: string): boolean;
setOffsets(_arg_1: string, _arg_2: number, _arg_3: []): void;
getOffsets(_arg_1: string, _arg_2: number): number[];
}

View File

@ -3,9 +3,9 @@ import { IActionDefinition } from './IActionDefinition';
export interface IActiveActionData
{
id: string;
_Str_695: string;
_Str_727: string;
_Str_664: number;
_Str_742: IActionDefinition;
_Str_707: string;
actionType: string;
actionParameter: string;
startFrame: number;
definition: IActionDefinition;
overridingAction: string;
}

View File

@ -50,7 +50,7 @@ export class AssetAliasCollection
}
}
public _Str_1044(k: string): boolean
public hasAlias(k: string): boolean
{
const alias = this._aliases.get(k);
@ -59,12 +59,12 @@ export class AssetAliasCollection
return false;
}
public _Str_2125(k: string): string
public getAssetName(k: string): string
{
let _local_2 = k;
let _local_3 = 5;
while(this._Str_1044(_local_2) && (_local_3 >= 0))
while(this.hasAlias(_local_2) && (_local_3 >= 0))
{
const _local_4 = this._aliases.get(_local_2);
@ -79,7 +79,7 @@ export class AssetAliasCollection
{
if(!this._assets) return null;
name = this._Str_2125(name);
name = this.getAssetName(name);
const asset = this._assets.getAsset(name);

View File

@ -54,7 +54,7 @@ export class AddDataContainer
return this._blend;
}
public get _Str_1096(): boolean
public get isBlended(): boolean
{
return this._blend !== 1;
}

View File

@ -9,7 +9,7 @@ import { SpriteDataContainer } from './SpriteDataContainer';
export class Animation implements IAnimation
{
private static _Str_2211: any[] = [];
private static EMPTY_ARRAY: any[] = [];
private _id: string;
private _description: string;
@ -76,16 +76,16 @@ export class Animation implements IAnimation
const frames: AvatarAnimationLayerData[][] = [];
this._Str_1031(frames, override.frames, k);
this.parseFrames(frames, override.frames, k);
this._overrideFrames.set(name, frames);
}
}
this._Str_1031(this._frames, _arg_2.frames, k);
this.parseFrames(this._frames, _arg_2.frames, k);
}
private _Str_1031(frames: AvatarAnimationLayerData[][], _arg_2: IAssetAnimationFrame[], _arg_3: AvatarStructure): void
private parseFrames(frames: AvatarAnimationLayerData[][], _arg_2: IAssetAnimationFrame[], _arg_3: AvatarStructure): void
{
if(!_arg_2 || !_arg_2.length) return;
@ -105,7 +105,7 @@ export class Animation implements IAnimation
{
for(const bodyPart of frame.bodyparts)
{
const definition = _arg_3._Str_1675(bodyPart.action);
const definition = _arg_3.getActionDefinition(bodyPart.action);
const layer = new AvatarAnimationLayerData(bodyPart, AvatarAnimationLayerData.BODYPART, definition);
layers.push(layer);
@ -116,7 +116,7 @@ export class Animation implements IAnimation
{
for(const fx of frame.fxs)
{
const definition = _arg_3._Str_1675(fx.action);
const definition = _arg_3.getActionDefinition(fx.action);
const layer = new AvatarAnimationLayerData(fx, AvatarAnimationLayerData.FX, definition);
layers.push(layer);
@ -130,7 +130,7 @@ export class Animation implements IAnimation
}
}
public _Str_2185(k: string = null): number
public frameCount(k: string = null): number
{
if(!k) return this._frames.length;
@ -144,14 +144,14 @@ export class Animation implements IAnimation
return 0;
}
public _Str_1892(): boolean
public hasOverriddenActions(): boolean
{
if(!this._overriddenActions) return false;
return (this._overriddenActions.size > 0);
}
public _Str_1571(): string[]
public overriddenActionNames(): string[]
{
if(!this._overriddenActions) return null;
@ -162,14 +162,14 @@ export class Animation implements IAnimation
return keys;
}
public _Str_707(k: string): string
public overridingAction(k: string): string
{
if(!this._overriddenActions) return null;
return this._overriddenActions.get(k);
}
private _Str_2259(frameCount: number, _arg_2: string = null): AvatarAnimationLayerData[]
private getFrame(frameCount: number, _arg_2: string = null): AvatarAnimationLayerData[]
{
if(frameCount < 0) frameCount = 0;
@ -195,11 +195,11 @@ export class Animation implements IAnimation
return layers;
}
public _Str_1065(k: number, _arg_2: string=null): string[]
public getAnimatedBodyPartIds(k: number, _arg_2: string=null): string[]
{
const _local_3: string[] = [];
for(const layer of this._Str_2259(k, _arg_2))
for(const layer of this.getFrame(k, _arg_2))
{
if(layer.type === AvatarAnimationLayerData.BODYPART)
{
@ -221,9 +221,9 @@ export class Animation implements IAnimation
return _local_3;
}
public _Str_607(frameCount: number, spriteId: string, _arg_3: string = null): AvatarAnimationLayerData
public getLayerData(frameCount: number, spriteId: string, _arg_3: string = null): AvatarAnimationLayerData
{
for(const layer of this._Str_2259(frameCount, _arg_3))
for(const layer of this.getFrame(frameCount, _arg_3))
{
if(layer.id === spriteId) return layer;
@ -242,22 +242,22 @@ export class Animation implements IAnimation
return null;
}
public _Str_872(): boolean
public hasAvatarData(): boolean
{
return this._avatarData !== null;
}
public _Str_776(): boolean
public hasDirectionData(): boolean
{
return this._directionData !== null;
}
public _Str_706(): boolean
public hasAddData(): boolean
{
return this._addData !== null;
}
public _Str_1550(k: string): AddDataContainer
public getAddData(k: string): AddDataContainer
{
if(this._addData)
{
@ -275,29 +275,29 @@ export class Animation implements IAnimation
return this._id;
}
public get _Str_786(): SpriteDataContainer[]
public get spriteData(): SpriteDataContainer[]
{
return this._spriteData || Animation._Str_2211;
return this._spriteData || Animation.EMPTY_ARRAY;
}
public get _Str_1475(): AvatarDataContainer
public get avatarData(): AvatarDataContainer
{
return this._avatarData;
}
public get _Str_1493(): DirectionDataContainer
public get directionData(): DirectionDataContainer
{
return this._directionData;
}
public get _Str_652(): string[]
public get removeData(): string[]
{
return this._removeData || Animation._Str_2211;
return this._removeData || Animation.EMPTY_ARRAY;
}
public get _Str_687(): AddDataContainer[]
public get addData(): AddDataContainer[]
{
return this._addData || Animation._Str_2211;
return this._addData || Animation.EMPTY_ARRAY;
}
public toString(): string

View File

@ -14,7 +14,7 @@ export class AnimationManager implements IAnimationManager
this._animations = new Map();
}
public _Str_2061(structure: AvatarStructure, _arg_2: { [index: string]: IAssetAnimation }): boolean
public registerAnimation(structure: AvatarStructure, _arg_2: { [index: string]: IAssetAnimation }): boolean
{
const animationData = _arg_2[Object.keys(_arg_2)[0]];
@ -25,7 +25,7 @@ export class AnimationManager implements IAnimationManager
return true;
}
public _Str_720(animation: string): Animation
public getAnimation(animation: string): Animation
{
const existing = this._animations.get(animation);
@ -34,13 +34,13 @@ export class AnimationManager implements IAnimationManager
return existing;
}
public _Str_607(animation: string, frameCount: number, spriteId: string): IAnimationLayerData
public getLayerData(animation: string, frameCount: number, spriteId: string): IAnimationLayerData
{
const existing = this._Str_720(animation);
const existing = this.getAnimation(animation);
if(!existing) return null;
return existing._Str_607(frameCount, spriteId);
return existing.getLayerData(frameCount, spriteId);
}
public get animations(): Map<string, IAnimation>

View File

@ -36,12 +36,12 @@ export class AvatarAnimationLayerData implements IAnimationLayerData
let _local_5 = '';
if(this._base !== '') _local_5 = this._Str_2108().toString();
if(this._base !== '') _local_5 = this.baseAsInt().toString();
if(_arg_3)
{
this._action = new ActiveActionData(_arg_3.state, this.base);
this._action._Str_742 = _arg_3;
this._action.definition = _arg_3;
}
}
@ -50,7 +50,7 @@ export class AvatarAnimationLayerData implements IAnimationLayerData
return this._items;
}
private _Str_2108(): number
private baseAsInt(): number
{
let k = 0;
let index = 0;
@ -70,7 +70,7 @@ export class AvatarAnimationLayerData implements IAnimationLayerData
return this._id;
}
public get _Str_891(): number
public get animationFrame(): number
{
return this._animationFrame;
}

View File

@ -48,7 +48,7 @@ export class AvatarDataContainer implements IAvatarDataContainer
this._paletteIsGrayscale = false;
}
this._colorMap = this._Str_1181(this._backGround, this._foreGround);
this._colorMap = this.generatePaletteMapForGrayscale(this._backGround, this._foreGround);
}
public get ink(): number
@ -81,12 +81,12 @@ export class AvatarDataContainer implements IAvatarDataContainer
return this._colorMap.get('alphas');
}
public get _Str_832(): boolean
public get paletteIsGrayscale(): boolean
{
return this._paletteIsGrayscale;
}
private _Str_1181(k: number, _arg_2: number): Map<string, number[]>
private generatePaletteMapForGrayscale(k: number, _arg_2: number): Map<string, number[]>
{
const _local_3 = ((k >> 24) & 0xFF);
const _local_4 = ((k >> 16) & 0xFF);

View File

@ -1,11 +1,11 @@
export interface IAnimation
{
_Str_872(): boolean;
_Str_776(): boolean;
_Str_706(): boolean;
hasAvatarData(): boolean;
hasDirectionData(): boolean;
hasAddData(): boolean;
id: string;
_Str_786: any;
_Str_652: any;
_Str_687: any;
spriteData: any;
removeData: any;
addData: any;
resetOnToggle: boolean;
}

View File

@ -4,7 +4,7 @@ export interface IAnimationLayerData
{
id: string;
action: IActiveActionData;
_Str_891: number;
animationFrame: number;
dx: number;
dy: number;
dz: number;

View File

@ -4,6 +4,6 @@ import { IAnimationLayerData } from './IAnimationLayerData';
export interface IAnimationManager
{
animations: Map<any, any>;
_Str_720(_arg_1: string): IAnimation;
_Str_607(_arg_1: string, _arg_2: number, _arg_3: string): IAnimationLayerData;
getAnimation(_arg_1: string): IAnimation;
getLayerData(_arg_1: string, _arg_2: number, _arg_3: string): IAnimationLayerData;
}

View File

@ -4,7 +4,7 @@ export interface IAvatarDataContainer
{
ink: number;
colorTransform: AdjustmentFilter;
_Str_832: boolean;
paletteIsGrayscale: boolean;
reds: number[];
greens: number[];
blues: number[];

View File

@ -6,9 +6,9 @@ export interface ISpriteDataContainer
id: string;
ink: number;
member: string;
_Str_949: boolean;
_Str_767: boolean;
_Str_809(_arg_1: number): number;
_Str_739(_arg_1: number): number;
_Str_839(_arg_1: number): number;
hasDirections: boolean;
hasStaticY: boolean;
getDirectionOffsetX(_arg_1: number): number;
getDirectionOffsetY(_arg_1: number): number;
getDirectionOffsetZ(_arg_1: number): number;
}

View File

@ -43,21 +43,21 @@ export class SpriteDataContainer implements ISpriteDataContainer
}
}
public _Str_809(k: number): number
public getDirectionOffsetX(k: number): number
{
if(k < this._dx.length) return this._dx[k];
return 0;
}
public _Str_739(k: number): number
public getDirectionOffsetY(k: number): number
{
if(k < this._dy.length) return this._dy[k];
return 0;
}
public _Str_839(k: number): number
public getDirectionOffsetZ(k: number): number
{
if(k < this._dz.length) return this._dz[k];
@ -84,12 +84,12 @@ export class SpriteDataContainer implements ISpriteDataContainer
return this._member;
}
public get _Str_949(): boolean
public get hasDirections(): boolean
{
return this._hasDirections;
}
public get _Str_767(): boolean
public get hasStaticY(): boolean
{
return this._hasStaticY;
}

View File

@ -1,96 +1,57 @@
import { IActiveActionData } from '../actions/IActiveActionData';
import { AvatarImageBodyPartCache } from './AvatarImageBodyPartCache';
import { Nitro } from '../../Nitro';
import { AvatarImageDirectionCache } from './AvatarImageDirectionCache';
export class AvatarImageActionCache
{
private _Str_586: Map<string, AvatarImageBodyPartCache>;
private _Str_1233: IActiveActionData;
private _Str_1188: number;
private _disposed: boolean;
private _cache: Map<string, AvatarImageDirectionCache>;
private _lastAccessTime: number;
constructor()
{
this._Str_586 = new Map();
}
this._cache = new Map();
public _Str_1565(k: IActiveActionData, _arg_2: number): void
{
if(!this._Str_1233) this._Str_1233 = k;
const _local_3 = this._Str_1961(this._Str_1233);
if(_local_3) _local_3._Str_1108(_arg_2);
this._Str_1233 = k;
this.setLastAccessTime(Nitro.instance.time);
}
public dispose(): void
{
if(!this._disposed)
this.debugInfo('[dispose]');
if(!this._cache) return;
for(const direction of this._cache.values())
{
if(!this._Str_586) return;
this._Str_2089(0, 2147483647);
this._Str_586.clear();
this._Str_586 = null;
this._disposed = true;
}
if(direction) direction.dispose();
}
public _Str_2089(k: number, _arg_2: number): void
this._cache.clear();
}
public getDirectionCache(k: number): AvatarImageDirectionCache
{
if(!this._Str_586 || this._disposed) return;
const existing = this._cache.get(k.toString());
for(const [ key, cache ] of this._Str_586.entries())
if(!existing) return null;
return existing;
}
public updateDirectionCache(k: number, _arg_2: AvatarImageDirectionCache): void
{
if(!cache) continue;
this._cache.set(k.toString(), _arg_2);
}
const _local_3 = cache._Str_1815();
if((_arg_2 - _local_3) >= k)
public setLastAccessTime(k: number): void
{
cache.dispose();
this._Str_586.delete(key);
}
}
this._lastAccessTime = k;
}
public _Str_2244():IActiveActionData
public getLastAccessTime(): number
{
return this._Str_1233;
return this._lastAccessTime;
}
public setDirection(k: number): void
{
this._Str_1188 = k;
}
public getDirection(): number
{
return this._Str_1188;
}
public _Str_1961(k: IActiveActionData=null): AvatarImageBodyPartCache
{
if(!this._Str_1233) return null;
if(!k) k = this._Str_1233;
if(k._Str_707) return this._Str_586.get(k._Str_707);
return this._Str_586.get(k.id);
}
public _Str_1765(k: IActiveActionData, _arg_2: AvatarImageBodyPartCache): void
{
if(k._Str_707) this._Str_586.set(k._Str_707, _arg_2);
else this._Str_586.set(k.id, _arg_2);
}
private _Str_587(k: string): void
private debugInfo(k: string): void
{
}
}

View File

@ -1,57 +1,96 @@
import { Nitro } from '../../Nitro';
import { AvatarImageDirectionCache } from './AvatarImageDirectionCache';
import { IActiveActionData } from '../actions/IActiveActionData';
import { AvatarImageActionCache } from './AvatarImageActionCache';
export class AvatarImageBodyPartCache
{
private _Str_586: Map<string, AvatarImageDirectionCache>;
private _Str_1509: number;
private _cache: Map<string, AvatarImageActionCache>;
private _currentAction: IActiveActionData;
private _currentDirection: number;
private _disposed: boolean;
constructor()
{
this._Str_586 = new Map();
this._cache = new Map();
}
this._Str_1108(Nitro.instance.time);
public setAction(k: IActiveActionData, _arg_2: number): void
{
if(!this._currentAction) this._currentAction = k;
const _local_3 = this.getActionCache(this._currentAction);
if(_local_3) _local_3.setLastAccessTime(_arg_2);
this._currentAction = k;
}
public dispose(): void
{
this._Str_587('[dispose]');
if(!this._Str_586) return;
for(const direction of this._Str_586.values())
if(!this._disposed)
{
if(direction) direction.dispose();
if(!this._cache) return;
this.disposeActions(0, 2147483647);
this._cache.clear();
this._cache = null;
this._disposed = true;
}
}
this._Str_586.clear();
}
public _Str_2070(k: number): AvatarImageDirectionCache
public disposeActions(k: number, _arg_2: number): void
{
const existing = this._Str_586.get(k.toString());
if(!this._cache || this._disposed) return;
if(!existing) return null;
return existing;
}
public _Str_2168(k: number, _arg_2: AvatarImageDirectionCache): void
for(const [ key, cache ] of this._cache.entries())
{
this._Str_586.set(k.toString(), _arg_2);
}
if(!cache) continue;
public _Str_1108(k: number): void
const _local_3 = cache.getLastAccessTime();
if((_arg_2 - _local_3) >= k)
{
this._Str_1509 = k;
cache.dispose();
this._cache.delete(key);
}
}
}
public _Str_1815(): number
public getAction():IActiveActionData
{
return this._Str_1509;
return this._currentAction;
}
private _Str_587(k: string): void
public setDirection(k: number): void
{
this._currentDirection = k;
}
public getDirection(): number
{
return this._currentDirection;
}
public getActionCache(k: IActiveActionData=null): AvatarImageActionCache
{
if(!this._currentAction) return null;
if(!k) k = this._currentAction;
if(k.overridingAction) return this._cache.get(k.overridingAction);
return this._cache.get(k.id);
}
public updateActionCache(k: IActiveActionData, _arg_2: AvatarImageActionCache): void
{
if(k.overridingAction) this._cache.set(k.overridingAction, _arg_2);
else this._cache.set(k.id, _arg_2);
}
private debugInfo(k: string): void
{
}
}

View File

@ -20,13 +20,13 @@ import { ImageData } from './ImageData';
export class AvatarImageCache
{
private static _Str_2189: number = 60000;
private static DEFAULT_MAX_CACHE_STORAGE_TIME_MS: number = 60000;
private _structure: AvatarStructure;
private _avatar: IAvatarImage;
private _assets: AssetAliasCollection;
private _scale: string;
private _cache: Map<string, AvatarImageActionCache>;
private _cache: Map<string, AvatarImageBodyPartCache>;
private _canvas: AvatarCanvas;
private _disposed: boolean;
private _geometryType: string;
@ -83,7 +83,7 @@ export class AvatarImageCache
}
}
public _Str_1086(k: number = 60000): void
public disposeInactiveActions(k: number = 60000): void
{
const time = Nitro.instance.time;
@ -93,12 +93,12 @@ export class AvatarImageCache
{
if(!cache) continue;
cache._Str_2089(k, time);
cache.disposeActions(k, time);
}
}
}
public _Str_741(k: IActiveActionData): void
public resetBodyPartCache(k: IActiveActionData): void
{
if(this._cache)
{
@ -106,20 +106,20 @@ export class AvatarImageCache
{
if(!cache) continue;
cache._Str_1565(k, 0);
cache.setAction(k, 0);
}
}
}
public setDirection(k: string, _arg_2: number): void
{
const parts = this._structure._Str_1695(k);
const parts = this._structure.getBodyPartsUnordered(k);
if(parts)
{
for(const part of parts)
{
const actionCache = this._Str_1050(part);
const actionCache = this.getBodyPartCache(part);
if(!actionCache) continue;
@ -128,19 +128,19 @@ export class AvatarImageCache
}
}
public _Str_1565(k: IActiveActionData, _arg_2: number): void
public setAction(k: IActiveActionData, _arg_2: number): void
{
const _local_3 = this._structure._Str_2021(k, this._avatar);
const _local_3 = this._structure.getActiveBodyPartIds(k, this._avatar);
for(const _local_4 of _local_3)
{
const _local_5 = this._Str_1050(_local_4);
const _local_5 = this.getBodyPartCache(_local_4);
if(_local_5) _local_5._Str_1565(k, _arg_2);
if(_local_5) _local_5.setAction(k, _arg_2);
}
}
public _Str_2014(k: string): void
public setGeometryType(k: string): void
{
if(this._geometryType === k) return;
@ -152,46 +152,46 @@ export class AvatarImageCache
return;
}
this._Str_1086(0);
this.disposeInactiveActions(0);
this._geometryType = k;
this._canvas = null;
}
public _Str_1629(k: string, frameNumber: number, _arg_3: boolean = false): AvatarImageBodyPartContainer
public getImageContainer(k: string, frameNumber: number, _arg_3: boolean = false): AvatarImageBodyPartContainer
{
let _local_4 = this._Str_1050(k);
let _local_4 = this.getBodyPartCache(k);
if(!_local_4)
{
_local_4 = new AvatarImageActionCache();
_local_4 = new AvatarImageBodyPartCache();
this._cache.set(k, _local_4);
}
let _local_5 = _local_4.getDirection();
let _local_7 = _local_4._Str_2244();
let _local_7 = _local_4.getAction();
let frameCount = frameNumber;
if(_local_7._Str_742._Str_812) frameCount -= _local_7._Str_664;
if(_local_7.definition.startFromFrameZero) frameCount -= _local_7.startFrame;
let _local_8 = _local_7;
let _local_9: string[] = [];
let _local_10: Map<string, string> = new Map();
const _local_11 = new Point();
if(!((!(_local_7)) || (!(_local_7._Str_742))))
if(!((!(_local_7)) || (!(_local_7.definition))))
{
if(_local_7._Str_742._Str_861)
if(_local_7.definition.isAnimation)
{
let _local_15 = _local_5;
const _local_16 = this._structure._Str_720(((_local_7._Str_742.state + '.') + _local_7._Str_727));
const _local_17 = (frameNumber - _local_7._Str_664);
const _local_16 = this._structure.getAnimation(((_local_7.definition.state + '.') + _local_7.actionParameter));
const _local_17 = (frameNumber - _local_7.startFrame);
if(_local_16)
{
const _local_18 = _local_16._Str_607(_local_17, k, _local_7._Str_707);
const _local_18 = _local_16.getLayerData(_local_17, k, _local_7.overridingAction);
if(_local_18)
{
@ -225,7 +225,7 @@ export class AvatarImageCache
_local_11.y = (_local_18.dy / 2);
}
frameCount = _local_18._Str_891;
frameCount = _local_18.animationFrame;
if(_local_18.action)
{
@ -246,41 +246,41 @@ export class AvatarImageCache
_local_10 = _local_18.items;
}
_local_9 = _local_16._Str_652;
_local_9 = _local_16.removeData;
}
}
}
let _local_12 = _local_4._Str_1961(_local_8);
let _local_12 = _local_4.getActionCache(_local_8);
if(!_local_12 || _arg_3)
{
_local_12 = new AvatarImageBodyPartCache();
_local_4._Str_1765(_local_8, _local_12);
_local_12 = new AvatarImageActionCache();
_local_4.updateActionCache(_local_8, _local_12);
}
let _local_13 = _local_12._Str_2070(_local_5);
let _local_13 = _local_12.getDirectionCache(_local_5);
if(!_local_13 || _arg_3)
{
const _local_19 = this._structure._Str_713(k, this._avatar.getFigure(), _local_8, this._geometryType, _local_5, _local_9, this._avatar, _local_10);
const _local_19 = this._structure.getParts(k, this._avatar.getFigure(), _local_8, this._geometryType, _local_5, _local_9, this._avatar, _local_10);
_local_13 = new AvatarImageDirectionCache(_local_19);
_local_12._Str_2168(_local_5, _local_13);
_local_12.updateDirectionCache(_local_5, _local_13);
}
let _local_14 = _local_13._Str_1629(frameCount);
let _local_14 = _local_13.getImageContainer(frameCount);
if(!_local_14 || _arg_3)
{
const _local_20 = _local_13._Str_1699();
const _local_20 = _local_13.getPartList();
_local_14 = this._Str_1834(_local_5, _local_20, frameCount, _local_7, _arg_3);
_local_14 = this.renderBodyPart(_local_5, _local_20, frameCount, _local_7, _arg_3);
if(_local_14 && !_arg_3)
{
if(_local_14._Str_1807) _local_13._Str_1924(_local_14, frameCount);
if(_local_14.isCacheable) _local_13.updateImageContainer(_local_14, frameCount);
}
else
{
@ -288,7 +288,7 @@ export class AvatarImageCache
}
}
const offset = this._structure._Str_1888(_local_8, _local_5, frameCount, k);
const offset = this._structure.getFrameBodyPartOffset(_local_8, _local_5, frameCount, k);
_local_11.x += offset.x;
_local_11.y += offset.y;
@ -298,20 +298,20 @@ export class AvatarImageCache
return _local_14;
}
public _Str_1009(): any[]
public getServerRenderData(): any[]
{
this._serverRenderData = [];
return this._serverRenderData;
}
public _Str_1050(k: string): AvatarImageActionCache
public getBodyPartCache(k: string): AvatarImageBodyPartCache
{
let existing = this._cache.get(k);
if(!existing)
{
existing = new AvatarImageActionCache();
existing = new AvatarImageBodyPartCache();
this._cache.set(k, existing);
}
@ -319,19 +319,19 @@ export class AvatarImageCache
return existing;
}
private _Str_1834(direction: number, containers: AvatarImagePartContainer[], frameCount: number, _arg_4: IActiveActionData, renderServerData: boolean = false): AvatarImageBodyPartContainer
private renderBodyPart(direction: number, containers: AvatarImagePartContainer[], frameCount: number, _arg_4: IActiveActionData, renderServerData: boolean = false): AvatarImageBodyPartContainer
{
if(!containers || !containers.length) return null;
if(!this._canvas)
{
this._canvas = this._structure._Str_1664(this._scale, this._geometryType);
this._canvas = this._structure.getCanvas(this._scale, this._geometryType);
if(!this._canvas) return null;
}
const isFlipped = AvatarDirectionAngle.DIRECTION_IS_FLIPPED[direction] || false;
let assetPartDefinition = _arg_4._Str_742._Str_778;
let assetPartDefinition = _arg_4.definition.assetPartDefinition;
let isCacheable = true;
let containerIndex = (containers.length - 1);
@ -341,23 +341,23 @@ export class AvatarImageCache
let color = 16777215;
if(!((direction == 7) && ((container._Str_1669 === 'fc') || (container._Str_1669 === 'ey'))))
if(!((direction == 7) && ((container.partType === 'fc') || (container.partType === 'ey'))))
{
if(!((container._Str_1669 === 'ri') && !container._Str_1502))
if(!((container.partType === 'ri') && !container.partId))
{
const partId = container._Str_1502;
const animationFrame = container._Str_2258(frameCount);
const partId = container.partId;
const animationFrame = container.getFrameDefinition(frameCount);
let partType = container._Str_1669;
let partType = container.partType;
let frameNumber = 0;
if(animationFrame)
{
frameNumber = animationFrame.number;
if((animationFrame._Str_778) && (animationFrame._Str_778 !== '')) assetPartDefinition = animationFrame._Str_778;
if((animationFrame.assetPartDefinition) && (animationFrame.assetPartDefinition !== '')) assetPartDefinition = animationFrame.assetPartDefinition;
}
else frameNumber = container._Str_1674(frameCount);
else frameNumber = container.getFrameIndex(frameCount);
let assetDirection = direction;
let flipH = false;
@ -374,7 +374,7 @@ export class AvatarImageCache
else if(direction === 5) assetDirection = 1;
else if(direction === 6) assetDirection = 0;
if(container._Str_1666 !== partType) partType = container._Str_1666;
if(container.flippedPartType !== partType) partType = container.flippedPartType;
}
}
@ -397,7 +397,7 @@ export class AvatarImageCache
}
else
{
if(container.isColorable && container.color) color = container.color._Str_915;
if(container.isColorable && container.color) color = container.color.rgb;
const offset = new Point(-(asset.x), -(asset.y));
@ -407,7 +407,7 @@ export class AvatarImageCache
{
const spriteData = new RoomObjectSpriteData();
spriteData.name = this._assets._Str_2125(assetName);
spriteData.name = this._assets.getAssetName(assetName);
spriteData.x = (-(offset.x) - 33);
spriteData.y = -(offset.y);
spriteData.z = (this._serverRenderData.length * -0.0001);
@ -441,9 +441,9 @@ export class AvatarImageCache
if(!this._unionImages.length) return null;
const imageData = this._Str_1236(this._unionImages, isFlipped);
const imageData = this.createUnionImage(this._unionImages, isFlipped);
const canvasOffset = ((this._scale === AvatarScaleType.LARGE) ? (this._canvas.height - 16) : (this._canvas.height - 8));
const offset = new Point(-(imageData._Str_1076.x), (canvasOffset - imageData._Str_1076.y));
const offset = new Point(-(imageData.regPoint.x), (canvasOffset - imageData.regPoint.y));
if(isFlipped && (assetPartDefinition !== 'lay')) offset.x = (offset.x + ((this._scale === AvatarScaleType.LARGE) ? 67 : 31));
@ -461,7 +461,7 @@ export class AvatarImageCache
return new AvatarImageBodyPartContainer(imageData.container, offset, isCacheable);
}
private _Str_1652(k: number): string
private convertColorToHex(k: number): string
{
let _local_2: string = (k * 0xFF).toString(16);
if(_local_2.length < 2)
@ -471,11 +471,11 @@ export class AvatarImageCache
return _local_2;
}
private _Str_1236(k: ImageData[], isFlipped: boolean): ImageData
private createUnionImage(k: ImageData[], isFlipped: boolean): ImageData
{
const bounds = new Rectangle();
for(const data of k) data && bounds.enlarge(data._Str_1567);
for(const data of k) data && bounds.enlarge(data.offsetRect);
const point = new Point(-(bounds.x), -(bounds.y));
const container = new Container();
@ -492,12 +492,12 @@ export class AvatarImageCache
if(!data) continue;
const texture = data.texture;
const color = data.color;
const color = data.colorTransform;
const flipH = (!(isFlipped && data.flipH) && (isFlipped || data.flipH));
const regPoint = point.clone();
regPoint.x -= data._Str_1076.x;
regPoint.y -= data._Str_1076.y;
regPoint.x -= data.regPoint.x;
regPoint.y -= data.regPoint.y;
if(isFlipped) regPoint.x = (container.width - (regPoint.x + data.rect.width));

View File

@ -19,23 +19,23 @@ export class AvatarImageDirectionCache
this._images = null;
}
public _Str_1699(): AvatarImagePartContainer[]
public getPartList(): AvatarImagePartContainer[]
{
return this._partList;
}
public _Str_1629(k: number): AvatarImageBodyPartContainer
public getImageContainer(k: number): AvatarImageBodyPartContainer
{
const existing = this._images.get(this._Str_2219(k));
const existing = this._images.get(this.getCacheKey(k));
if(!existing) return null;
return existing;
}
public _Str_1924(k: AvatarImageBodyPartContainer, _arg_2: number): void
public updateImageContainer(k: AvatarImageBodyPartContainer, _arg_2: number): void
{
const name = this._Str_2219(_arg_2);
const name = this.getCacheKey(_arg_2);
const existing = this._images.get(name);
@ -44,16 +44,16 @@ export class AvatarImageDirectionCache
this._images.set(name, k);
}
private _Str_2219(k: number): string
private getCacheKey(k: number): string
{
let name = '';
for(const part of this._partList) name += (part._Str_1206(k) + '/');
for(const part of this._partList) name += (part.getCacheableKey(k) + '/');
return name;
}
private _Str_587(k: string): void
private debugInfo(k: string): void
{
}
}

View File

@ -1,22 +1,22 @@
import { Container, Point, Rectangle, Texture } from 'pixi.js';
import { Container, Point, Rectangle, Resource, Texture } from 'pixi.js';
export class ImageData
{
private _texture: Texture;
private _texture: Texture<Resource>;
private _container: Container;
private _rect: Rectangle;
private _regPoint: Point;
private _flipH: boolean;
private _color: number;
private _colorTransform: number;
constructor(texture: Texture, rectangle: Rectangle, _arg_3: Point, flipH: boolean, color: number, container: Container = null)
constructor(texture: Texture<Resource>, rectangle: Rectangle, _arg_3: Point, flipH: boolean, color: number, container: Container = null)
{
this._texture = texture;
this._container = container;
this._rect = rectangle;
this._regPoint = _arg_3;
this._flipH = flipH;
this._color = color;
this._colorTransform = color;
if(flipH) this._regPoint.x = (-(this._regPoint.x) + rectangle.width);
}
@ -25,10 +25,10 @@ export class ImageData
{
this._texture = null;
this._regPoint = null;
this._color = null;
this._colorTransform = null;
}
public get texture(): Texture
public get texture(): Texture<Resource>
{
return this._texture;
}
@ -43,7 +43,7 @@ export class ImageData
return this._rect;
}
public get _Str_1076(): Point
public get regPoint(): Point
{
return this._regPoint;
}
@ -53,12 +53,12 @@ export class ImageData
return this._flipH;
}
public get color(): number
public get colorTransform(): number
{
return this._color;
return this._colorTransform;
}
public get _Str_1567(): Rectangle
public get offsetRect(): Rectangle
{
return new Rectangle(-(this._regPoint.x), -(this._regPoint.y), this._rect.width, this._rect.height);
}

View File

@ -1,7 +1,7 @@
export class AvatarEditorInstanceId
{
public static _Str_3350: number = 0;
public static _Str_7195: number = 1;
public static _Str_17909: number = 2;
public static _Str_16370: number = 3;
public static OWN_AVATAR_EDITOR: number = 0;
public static FURNITURE_AVATAR_EDITOR: number = 1;
public static BOT_EDITOR: number = 2;
public static DEV_TOOL_EDITOR: number = 3;
}

View File

@ -25,5 +25,5 @@
public static RIGHT_HAND_ITEM: string = 'ri';
public static LEFT_COAT_SLEEVE: string = 'lc';
public static RIGHT_COAT_SLEEVE: string = 'rc';
public static _Str_1286: string[] = [ AvatarFigurePartType.SHOES, AvatarFigurePartType.LEGS, AvatarFigurePartType.CHEST, AvatarFigurePartType.WAIST_ACCESSORY, AvatarFigurePartType.CHEST_ACCESSORY, AvatarFigurePartType.HEAD, AvatarFigurePartType.HAIR, AvatarFigurePartType.FACE_ACCESSORY, AvatarFigurePartType.EYE_ACCESSORY, AvatarFigurePartType.HEAD_ACCESSORY, AvatarFigurePartType.HEAD_ACCESSORY_EXTRA, AvatarFigurePartType.COAT_CHEST, AvatarFigurePartType.CHEST_PRINT ];
public static FIGURE_SETS: string[] = [ AvatarFigurePartType.SHOES, AvatarFigurePartType.LEGS, AvatarFigurePartType.CHEST, AvatarFigurePartType.WAIST_ACCESSORY, AvatarFigurePartType.CHEST_ACCESSORY, AvatarFigurePartType.HEAD, AvatarFigurePartType.HAIR, AvatarFigurePartType.FACE_ACCESSORY, AvatarFigurePartType.EYE_ACCESSORY, AvatarFigurePartType.HEAD_ACCESSORY, AvatarFigurePartType.HEAD_ACCESSORY_EXTRA, AvatarFigurePartType.COAT_CHEST, AvatarFigurePartType.CHEST_PRINT ];
}

View File

@ -1,311 +0,0 @@
import { IAvatarImageListener } from '../IAvatarImageListener';
import { FigureDataView } from './FigureDataView';
export class FigureData implements IAvatarImageListener
{
public static M: string = 'M';
public static F: string = 'F';
public static U: string = 'U';
public static H: string = 'h';
public static STD: string = 'std';
public static _Str_2028: string = '0';
public static FACE: string = 'hd';
public static HR: string = 'hr';
public static HA: string = 'ha';
public static HE: string = 'he';
public static EA: string = 'ea';
public static FA: string = 'fa';
public static CC: string = 'cc';
public static CH: string = 'ch';
public static CHEST_ACCESSORIES: string = 'ca';
public static CHEST_PRINTS: string = 'cp';
public static LG: string = 'lg';
public static SH: string = 'sh';
public static WA: string = 'wa';
private _view: FigureDataView;
private _data: Map<string, number>;
private _colors: Map<string, number[]>;
private _gender: string = 'M';
private _isDisposed: boolean;
private _direction: number = 4;
private _avatarEffectType: number = -1;
constructor()
{
this._direction = FigureDataView._Str_9887;
this._view = new FigureDataView(this);
}
public loadAvatarData(figureString: string, gender: string): void
{
this._data = new Map();
this._colors = new Map();
this._gender = gender;
this.parseFigureString(figureString);
this.updateView();
}
public dispose(): void
{
this._data = null;
this._colors = null;
this._isDisposed = true;
if(this._view)
{
this._view.dispose();
this._view = null;
}
}
public get disposed(): boolean
{
return this._isDisposed;
}
private parseFigureString(figure: string): void
{
if(!figure) return;
const sets = figure.split('.');
if(!sets || !sets.length) return;
for(const set of sets)
{
const parts = set.split('-');
if(!parts.length) continue;
const setType = parts[0];
const setId = parseInt(parts[1]);
const colorIds: number[] = [];
let offset = 2;
while(offset < parts.length)
{
colorIds.push(parseInt(parts[offset]));
offset++;
}
if(!colorIds.length) colorIds.push(0);
this.savePartSetId(setType, setId, false);
this.savePartSetColourId(setType, colorIds, false);
}
}
public getPartSetId(k: string): number
{
const existing = this._data.get(k);
if(existing !== undefined) return existing;
return -1;
}
public getColourIds(k: string): number[]
{
const existing = this._colors.get(k);
if(existing !== undefined) return existing;
return [];
// return [this._avatarEditor._Str_24919(k)];
}
public getFigureString(): string
{
let figureString = '';
const setParts: string[] = [];
for(const [ setType, setId ] of this._data.entries())
{
const colorIds = this._colors.get(setType);
let setPart = ((setType + '-') + setId);
if(colorIds && colorIds.length)
{
let i = 0;
while(i < colorIds.length)
{
setPart = (setPart + ('-' + colorIds[i]));
i++;
}
}
setParts.push(setPart);
}
let i = 0;
while(i < setParts.length)
{
figureString = (figureString + setParts[i]);
if(i < (setParts.length - 1)) figureString = (figureString + '.');
i++;
}
return figureString;
}
public savePartData(k: string, _arg_2: number, _arg_3: number[], _arg_4: boolean = false): void
{
this.savePartSetId(k, _arg_2, _arg_4);
this.savePartSetColourId(k, _arg_3, _arg_4);
}
private savePartSetId(k: string, _arg_2: number, _arg_3: boolean = true): void
{
switch(k)
{
case FigureData.FACE:
case FigureData.HR:
case FigureData.HA:
case FigureData.HE:
case FigureData.EA:
case FigureData.FA:
case FigureData.CH:
case FigureData.CC:
case FigureData.CHEST_ACCESSORIES:
case FigureData.CHEST_PRINTS:
case FigureData.LG:
case FigureData.SH:
case FigureData.WA:
if(_arg_2 >= 0)
{
this._data.set(k, _arg_2);
}
else
{
this._data.delete(k);
}
break;
}
if(_arg_3) this.updateView();
}
public savePartSetColourId(k: string, _arg_2: number[], _arg_3: boolean = true): void
{
switch(k)
{
case FigureData.FACE:
case FigureData.HR:
case FigureData.HA:
case FigureData.HE:
case FigureData.EA:
case FigureData.FA:
case FigureData.CH:
case FigureData.CC:
case FigureData.CHEST_ACCESSORIES:
case FigureData.CHEST_PRINTS:
case FigureData.LG:
case FigureData.SH:
case FigureData.WA:
this._colors.set(k, _arg_2);
break;
}
if(_arg_3) this.updateView();
}
public getFigureStringWithFace(k: number, override = true): string
{
let figureString = '';
const setTypes: string[] = [ FigureData.FACE ];
const figureSets: string[] = [];
for(const setType of setTypes)
{
const colors = this._colors.get(setType);
if(colors === undefined) continue;
let setId = this._data.get(setType);
if((setType === FigureData.FACE) && override) setId = k;
let figureSet = ((setType + '-') + setId);
if(setId >= 0)
{
let i = 0;
while(i < colors.length)
{
figureSet = (figureSet + ('-' + colors[i]));
i++;
}
}
figureSets.push(figureSet);
}
let i = 0;
while(i < figureSets.length)
{
figureString = (figureString + figureSets[i]);
if(i < (figureSets.length - 1)) figureString = (figureString + '.');
i++;
}
return figureString;
}
public updateView(): void
{
this._view.update(this.getFigureString(), this._avatarEffectType, this._direction);
}
public get view(): FigureDataView
{
return this._view;
}
public get gender(): string
{
return this._gender;
}
public resetFigure(k: string): void
{
this.updateView();
}
public set avatarEffectType(k: number)
{
this._avatarEffectType = k;
}
public get avatarEffectType(): number
{
return this._avatarEffectType;
}
public get direction(): number
{
return this._direction;
}
public set direction(k: number)
{
this._direction = k;
this.updateView();
}
}

View File

@ -1,43 +0,0 @@
import { IAvatarImageListener } from '../IAvatarImageListener';
import { FigureData } from './FigureData';
export class FigureDataView implements IAvatarImageListener
{
public static _Str_9887: number = 4;
private _model: FigureData;
private _figureString: string;
private _isDisposed: boolean;
constructor(k: FigureData)
{
this._model = k;
this._figureString = null;
this._isDisposed = false;
}
public dispose(): void
{
this._isDisposed = true;
}
public update(k: string, effectId: number = 0, direction: number = 4): void
{
this._figureString = k;
}
public resetFigure(k: string): void
{
if(k !== this._figureString) return;
}
public get disposed(): boolean
{
return this._isDisposed;
}
public get figureString(): string
{
return this._figureString;
}
}

View File

@ -1,2 +0,0 @@
export * from './FigureData';
export * from './FigureDataView';

View File

@ -76,7 +76,7 @@ export class AvatarModelGeometry
bodyParts.set(geometryBodyPart.id, geometryBodyPart);
for(const part of geometryBodyPart._Str_1456(null))
for(const part of geometryBodyPart.getPartIds(null))
{
itemIds.set(part, geometryBodyPart);
}
@ -89,7 +89,7 @@ export class AvatarModelGeometry
}
}
public _Str_2101(k: IAvatarImage): void
public removeDynamicItems(k: IAvatarImage): void
{
for(const geometry of this._geometryTypes.values())
{
@ -99,30 +99,30 @@ export class AvatarModelGeometry
{
if(!part) continue;
part._Str_2004(k);
part.removeDynamicParts(k);
}
}
}
public _Str_1307(k: string): string[]
public getBodyPartIdsInAvatarSet(k: string): string[]
{
const avatarSet = this._avatarSet._Str_1498(k);
const avatarSet = this._avatarSet.findAvatarSet(k);
if(!avatarSet) return [];
return avatarSet._Str_755();
return avatarSet.getBodyParts();
}
public _Str_1939(k: string): boolean
public isMainAvatarSet(k: string): boolean
{
const avatarSet = this._avatarSet._Str_1498(k);
const avatarSet = this._avatarSet.findAvatarSet(k);
if(!avatarSet) return false;
return avatarSet._Str_779;
return avatarSet.isMain;
}
public _Str_1664(k: string, _arg_2: string): AvatarCanvas
public getCanvas(k: string, _arg_2: string): AvatarCanvas
{
const canvas = this._canvases.get(k);
@ -131,7 +131,7 @@ export class AvatarModelGeometry
return (canvas.get(_arg_2) || null);
}
private _Str_1342(k: string): boolean
private typeExists(k: string): boolean
{
const existing = this._geometryTypes.get(k);
@ -140,9 +140,9 @@ export class AvatarModelGeometry
return false;
}
private _Str_1332(k: string, _arg_2: string): boolean
private hasBodyPart(k: string, _arg_2: string): boolean
{
if(this._Str_1342(k))
if(this.typeExists(k))
{
const existing = this._geometryTypes.get(k);
@ -152,9 +152,9 @@ export class AvatarModelGeometry
return false;
}
private _Str_2072(k: string): string[]
private getBodyPartIDs(k: string): string[]
{
const parts = this._Str_1280(k);
const parts = this.getBodyPartsOfType(k);
const types = [];
@ -171,19 +171,19 @@ export class AvatarModelGeometry
return types;
}
private _Str_1280(k: string): Map<string, GeometryBodyPart>
private getBodyPartsOfType(k: string): Map<string, GeometryBodyPart>
{
if(this._Str_1342(k)) return this._geometryTypes.get(k);
if(this.typeExists(k)) return this._geometryTypes.get(k);
return new Map();
}
public _Str_1919(k: string, _arg_2: string): GeometryBodyPart
public getBodyPart(k: string, _arg_2: string): GeometryBodyPart
{
return (this._Str_1280(k).get(_arg_2) || null);
return (this.getBodyPartsOfType(k).get(_arg_2) || null);
}
public _Str_1701(k: string, _arg_2: string, _arg_3:IAvatarImage): GeometryBodyPart
public getBodyPartOfItem(k: string, _arg_2: string, _arg_3:IAvatarImage): GeometryBodyPart
{
const itemIds = this._itemIdToBodyPartMap.get(k);
@ -193,7 +193,7 @@ export class AvatarModelGeometry
if(part) return part;
const parts = this._Str_1280(k);
const parts = this.getBodyPartsOfType(k);
if(parts)
{
@ -201,7 +201,7 @@ export class AvatarModelGeometry
{
if(!part) continue;
if(part._Str_2030(_arg_2, _arg_3)) return part;
if(part.hasPart(_arg_2, _arg_3)) return part;
}
}
}
@ -209,9 +209,9 @@ export class AvatarModelGeometry
return null;
}
private _Str_1787(k: Map<string, GeometryBodyPart>, _arg_2: string): GeometryBodyPart[]
private getBodyPartsInAvatarSet(k: Map<string, GeometryBodyPart>, _arg_2: string): GeometryBodyPart[]
{
const parts = this._Str_1307(_arg_2);
const parts = this.getBodyPartIdsInAvatarSet(_arg_2);
const geometryParts = [];
for(const part of parts)
@ -229,24 +229,24 @@ export class AvatarModelGeometry
return geometryParts;
}
public _Str_2250(k: string, _arg_2: number, _arg_3: string): string[]
public getBodyPartsAtAngle(k: string, _arg_2: number, _arg_3: string): string[]
{
if(!_arg_3) return [];
const geometryParts = this._Str_1280(_arg_3);
const parts = this._Str_1787(geometryParts, k);
const geometryParts = this.getBodyPartsOfType(_arg_3);
const parts = this.getBodyPartsInAvatarSet(geometryParts, k);
const sets: [ number, GeometryBodyPart ][] = [];
const ids: string[] = [];
this._transformation = Matrix4x4._Str_1560(_arg_2);
this._transformation = Matrix4x4.getYRotationMatrix(_arg_2);
for(const part of parts.values())
{
if(!part) continue;
part._Str_1101(this._transformation);
part.applyTransform(this._transformation);
sets.push([ part._Str_1522(this._camera), part ]);
sets.push([ part.getDistance(this._camera), part ]);
}
sets.sort((a, b) =>
@ -271,15 +271,15 @@ export class AvatarModelGeometry
return ids;
}
public _Str_713(k: string, _arg_2: string, _arg_3: number, _arg_4: any[], _arg_5:IAvatarImage): string[]
public getParts(k: string, _arg_2: string, _arg_3: number, _arg_4: any[], _arg_5:IAvatarImage): string[]
{
if(this._Str_1332(k, _arg_2))
if(this.hasBodyPart(k, _arg_2))
{
const part = this._Str_1280(k).get(_arg_2);
const part = this.getBodyPartsOfType(k).get(_arg_2);
this._transformation = Matrix4x4._Str_1560(_arg_3);
this._transformation = Matrix4x4.getYRotationMatrix(_arg_3);
return part._Str_713(this._transformation, this._camera, _arg_4, _arg_5);
return part.getParts(this._transformation, this._camera, _arg_4, _arg_5);
}
return [];

View File

@ -42,13 +42,13 @@
{
if(!avatarSet) continue;
bodyParts = bodyParts.concat(avatarSet._Str_755());
bodyParts = bodyParts.concat(avatarSet.getBodyParts());
}
this._allBodyParts = bodyParts;
}
public _Str_1498(k: string): AvatarSet
public findAvatarSet(k: string): AvatarSet
{
if(k === this._id) return this;
@ -56,7 +56,7 @@
{
if(!avatarSet) continue;
if(!avatarSet._Str_1498(k)) continue;
if(!avatarSet.findAvatarSet(k)) continue;
return avatarSet;
}
@ -64,7 +64,7 @@
return null;
}
public _Str_755(): string[]
public getBodyParts(): string[]
{
return this._allBodyParts.concat();
}
@ -74,7 +74,7 @@
return this._id;
}
public get _Str_779(): boolean
public get isMain(): boolean
{
if(this._isMain) return true;
@ -82,7 +82,7 @@
{
if(!avatarSet) continue;
if(!avatarSet._Str_779) continue;
if(!avatarSet.isMain) continue;
return true;
}

View File

@ -33,7 +33,7 @@ export class GeometryBodyPart extends Node3D
}
}
public _Str_1883(k: IAvatarImage): GeometryItem[]
public getDynamicParts(k: IAvatarImage): GeometryItem[]
{
const existing = this._dynamicParts.get(k);
const parts: GeometryItem[] = [];
@ -53,7 +53,7 @@ export class GeometryBodyPart extends Node3D
return parts;
}
public _Str_1456(k: IAvatarImage): string[]
public getPartIds(k: IAvatarImage): string[]
{
const ids: string[] = [];
@ -84,16 +84,16 @@ export class GeometryBodyPart extends Node3D
return ids;
}
public _Str_2004(k: IAvatarImage): boolean
public removeDynamicParts(k: IAvatarImage): boolean
{
this._dynamicParts.delete(k);
return true;
}
public _Str_2020(k: any, _arg_2: IAvatarImage): boolean
public addPart(k: any, _arg_2: IAvatarImage): boolean
{
if(this._Str_2030(k.id, _arg_2)) return false;
if(this.hasPart(k.id, _arg_2)) return false;
let existing = this._dynamicParts.get(_arg_2);
@ -109,7 +109,7 @@ export class GeometryBodyPart extends Node3D
return true;
}
public _Str_2030(k: string, _arg_2: IAvatarImage): boolean
public hasPart(k: string, _arg_2: IAvatarImage): boolean
{
let existingPart = (this._parts.get(k) || null);
@ -121,7 +121,7 @@ export class GeometryBodyPart extends Node3D
return (existingPart !== null);
}
public _Str_713(k: Matrix4x4, _arg_2: Vector3D, _arg_3: any[], _arg_4: IAvatarImage): string[]
public getParts(k: Matrix4x4, _arg_2: Vector3D, _arg_3: any[], _arg_4: IAvatarImage): string[]
{
const parts: [ number, GeometryItem ][] = [];
@ -129,9 +129,9 @@ export class GeometryBodyPart extends Node3D
{
if(!part) continue;
part._Str_1101(k);
part.applyTransform(k);
parts.push([ part._Str_1522(_arg_2), part ]);
parts.push([ part.getDistance(_arg_2), part ]);
}
const existingDynamic = this._dynamicParts.get(_arg_4);
@ -144,9 +144,9 @@ export class GeometryBodyPart extends Node3D
if(!part) continue;
part._Str_1101(k);
part.applyTransform(k);
parts.push([ part._Str_1522(_arg_2), part ]);
parts.push([ part.getDistance(_arg_2), part ]);
}
}
@ -174,10 +174,10 @@ export class GeometryBodyPart extends Node3D
return partIds;
}
public _Str_1522(k: Vector3D): number
public getDistance(k: Vector3D): number
{
const _local_2 = Math.abs(((k.z - this._Str_1604.z) - this._radius));
const _local_3 = Math.abs(((k.z - this._Str_1604.z) + this._radius));
const _local_2 = Math.abs(((k.z - this.transformedLocation.z) - this._radius));
const _local_3 = Math.abs(((k.z - this.transformedLocation.z) + this._radius));
return Math.min(_local_2, _local_3);
}

View File

@ -20,10 +20,10 @@ export class GeometryItem extends Node3D
this._isDynamic = _arg_2;
}
public _Str_1522(k: Vector3D): number
public getDistance(k: Vector3D): number
{
const _local_2 = Math.abs(((k.z - this._Str_1604.z) - this._radius));
const _local_3 = Math.abs(((k.z - this._Str_1604.z) + this._radius));
const _local_2 = Math.abs(((k.z - this.transformedLocation.z) - this._radius));
const _local_3 = Math.abs(((k.z - this.transformedLocation.z) + this._radius));
return Math.min(_local_2, _local_3);
}
@ -38,17 +38,17 @@ export class GeometryItem extends Node3D
return this._normal;
}
public get _Str_2207(): boolean
public get isDoubleSided(): boolean
{
return this._isDoubleSided;
}
public toString(): string
{
return ((((this._id + ': ') + this.location) + ' - ') + this._Str_1604);
return ((((this._id + ': ') + this.location) + ' - ') + this.transformedLocation);
}
public get _Str_1457(): boolean
public get isDynamic(): boolean
{
return this._isDynamic;
}

View File

@ -12,7 +12,7 @@ export class Matrix4x4
this._data = [k, _arg_2, _arg_3, _arg_4, _arg_5, _arg_6, _arg_7, _arg_8, _arg_9];
}
public static _Str_1869(k: number): Matrix4x4
public static getXRotationMatrix(k: number): Matrix4x4
{
const _local_2 = ((k * Math.PI) / 180);
const _local_3 = Math.cos(_local_2);
@ -21,7 +21,7 @@ export class Matrix4x4
return new Matrix4x4(1, 0, 0, 0, _local_3, -(_local_4), 0, _local_4, _local_3);
}
public static _Str_1560(k: number): Matrix4x4
public static getYRotationMatrix(k: number): Matrix4x4
{
const _local_2 = ((k * Math.PI) / 180);
const _local_3 = Math.cos(_local_2);
@ -30,7 +30,7 @@ export class Matrix4x4
return new Matrix4x4(_local_3, 0, _local_4, 0, 1, 0, -(_local_4), 0, _local_3);
}
public static _Str_1368(k: number): Matrix4x4
public static getZRotationMatrix(k: number): Matrix4x4
{
const _local_2 = ((k * Math.PI) / 180);
const _local_3 = Math.cos(_local_2);
@ -46,7 +46,7 @@ export class Matrix4x4
return this;
}
public _Str_2186(k: Vector3D): Vector3D
public vectorMultiplication(k: Vector3D): Vector3D
{
const _local_2 = (((k.x * this._data[0]) + (k.y * this._data[3])) + (k.z * this._data[6]));
const _local_3 = (((k.x * this._data[1]) + (k.y * this._data[4])) + (k.z * this._data[7]));
@ -55,7 +55,7 @@ export class Matrix4x4
return new Vector3D(_local_2, _local_3, _local_4);
}
public _Str_1186(k:Matrix4x4): Matrix4x4
public multiply(k:Matrix4x4): Matrix4x4
{
const _local_2 = (((this._data[0] * k.data[0]) + (this._data[1] * k.data[3])) + (this._data[2] * k.data[6]));
const _local_3 = (((this._data[0] * k.data[1]) + (this._data[1] * k.data[4])) + (this._data[2] * k.data[7]));
@ -70,7 +70,7 @@ export class Matrix4x4
return new Matrix4x4(_local_2, _local_3, _local_4, _local_5, _local_6, _local_7, _local_8, _local_9, _local_10);
}
public _Str_1157(k: number): void
public scalarMultiply(k: number): void
{
let index = 0;
@ -82,46 +82,46 @@ export class Matrix4x4
}
}
public _Str_1089(k: number): Matrix4x4
public rotateX(k: number): Matrix4x4
{
const _local_2 = ((k * Math.PI) / 180);
const _local_3 = Math.cos(_local_2);
const _local_4 = Math.sin(_local_2);
const _local_5 = new Matrix4x4(1, 0, 0, 0, _local_3, -(_local_4), 0, _local_4, _local_3);
return _local_5._Str_1186(this);
return _local_5.multiply(this);
}
public _Str_2123(k: number): Matrix4x4
public rotateY(k: number): Matrix4x4
{
const _local_2 = ((k * Math.PI) / 180);
const _local_3 = Math.cos(_local_2);
const _local_4 = Math.sin(_local_2);
const _local_5 = new Matrix4x4(_local_3, 0, _local_4, 0, 1, 0, -(_local_4), 0, _local_3);
return _local_5._Str_1186(this);
return _local_5.multiply(this);
}
public _Str_2232(k: number): Matrix4x4
public rotateZ(k: number): Matrix4x4
{
const _local_2 = ((k * Math.PI) / 180);
const _local_3 = Math.cos(_local_2);
const _local_4 = Math.sin(_local_2);
const _local_5 = new Matrix4x4(_local_3, -(_local_4), 0, _local_4, _local_3, 0, 0, 0, 1);
return _local_5._Str_1186(this);
return _local_5.multiply(this);
}
public skew(): void
{
}
public _Str_1779(): Matrix4x4
public transpose(): Matrix4x4
{
return new Matrix4x4(this._data[0], this._data[3], this._data[6], this._data[1], this._data[4], this._data[7], this._data[2], this._data[5], this._data[8]);
}
public _Str_1451(k: Matrix4x4): boolean
public equals(k: Matrix4x4): boolean
{
return false;
}

View File

@ -21,13 +21,13 @@ export class Node3D
return this._location;
}
public get _Str_1604(): Vector3D
public get transformedLocation(): Vector3D
{
return this._transformedLocation;
}
public _Str_1101(k: Matrix4x4): void
public applyTransform(k: Matrix4x4): void
{
if(this._needsTransformation) this._transformedLocation = k._Str_2186(this._location);
if(this._needsTransformation) this._transformedLocation = k.vectorMultiplication(this._location);
}
}

View File

@ -11,12 +11,12 @@
this._z = _arg_3;
}
public static _Str_2224(k: Vector3D, _arg_2: Vector3D): number
public static dot(k: Vector3D, _arg_2: Vector3D): number
{
return ((k.x * _arg_2.x) + (k.y * _arg_2.y)) + (k.z * _arg_2.z);
}
public static _Str_1645(k: Vector3D, _arg_2: Vector3D): Vector3D
public static cross(k: Vector3D, _arg_2: Vector3D): Vector3D
{
const _local_3 = new Vector3D();
@ -32,12 +32,12 @@
return new Vector3D((k.x - _arg_2.x), (k.y - _arg_2.y), (k.z - _arg_2.z));
}
public _Str_2224(k: Vector3D): number
public dot(k: Vector3D): number
{
return ((this._x * k.x) + (this._y * k.y)) + (this._z * k.z);
}
public _Str_1645(k: Vector3D): Vector3D
public cross(k: Vector3D): Vector3D
{
const _local_2 = new Vector3D();

View File

@ -14,7 +14,6 @@ export * from './EffectAssetDownloadLibrary';
export * from './EffectAssetDownloadManager';
export * from './enum';
export * from './events';
export * from './figuredata';
export * from './geometry';
export * from './IAvatarEffectListener';
export * from './IAvatarFigureContainer';

View File

@ -28,7 +28,7 @@ export class AvatarAnimationData implements IFigureSetData
return true;
}
public _Str_1017(k: any): boolean
public appendXML(k: any): boolean
{
for(const _local_2 of k.action)
{
@ -38,7 +38,7 @@ export class AvatarAnimationData implements IFigureSetData
return true;
}
public _Str_2244(action: IActionDefinition): AnimationAction
public getAction(action: IActionDefinition): AnimationAction
{
const existing = this._actions.get(action.id);
@ -47,12 +47,12 @@ export class AvatarAnimationData implements IFigureSetData
return existing;
}
public _Str_1408(k: IActionDefinition): number
public getFrameCount(k: IActionDefinition): number
{
const animationAction = this._Str_2244(k);
const animationAction = this.getAction(k);
if(!animationAction) return 0;
return animationAction._Str_2185;
return animationAction.frameCount;
}
}

View File

@ -40,7 +40,7 @@ export class AvatarCanvas
return this._id;
}
public get _Str_1076(): Point
public get regPoint(): Point
{
return this._regPoint;
}

View File

@ -37,7 +37,7 @@ export class AvatarStructureDownload extends EventDispatcher
{
if(err || !results || !results.figuredata) throw new Error('invalid_figure_data');
if(this._dataReceiver) this._dataReceiver._Str_1017(results.figuredata);
if(this._dataReceiver) this._dataReceiver.appendXML(results.figuredata);
this.dispatchEvent(new NitroEvent(AvatarStructureDownload.AVATAR_STRUCTURE_DONE));
});

View File

@ -47,7 +47,7 @@ export class FigureSetData implements IFigureSetData, IStructureData
return true;
}
public _Str_1133(k: any): void
public injectXML(k: any): void
{
for(const _local_2 of k.sets[0].settype)
{
@ -55,7 +55,7 @@ export class FigureSetData implements IFigureSetData, IStructureData
if(setType)
{
setType._Str_1874(_local_2);
setType.cleanUp(_local_2);
}
else
{
@ -63,10 +63,10 @@ export class FigureSetData implements IFigureSetData, IStructureData
}
}
this._Str_1017(k);
this.appendXML(k);
}
public _Str_1017(k: any): boolean
public appendXML(k: any): boolean
{
if(!k) return false;
@ -81,7 +81,7 @@ export class FigureSetData implements IFigureSetData, IStructureData
}
else
{
_local_4._Str_2015(_local_2);
_local_4.append(_local_2);
}
}
@ -96,20 +96,20 @@ export class FigureSetData implements IFigureSetData, IStructureData
}
else
{
_local_5._Str_2015(_local_3);
_local_5.append(_local_3);
}
}
return false;
}
public _Str_1733(k: string, _arg_2: number): string[]
public getMandatorySetTypeIds(k: string, _arg_2: number): string[]
{
const types: string[] = [];
for(const set of this._setTypes.values())
{
if(!set || !set._Str_895(k, _arg_2)) continue;
if(!set || !set.isMandatory(k, _arg_2)) continue;
types.push(set.type);
}
@ -117,30 +117,30 @@ export class FigureSetData implements IFigureSetData, IStructureData
return types;
}
public _Str_2264(k: string, _arg_2: string): IFigurePartSet
public getDefaultPartSet(k: string, _arg_2: string): IFigurePartSet
{
const setType = this._setTypes.get(k);
if(!setType) return null;
return setType._Str_2264(_arg_2);
return setType.getDefaultPartSet(_arg_2);
}
public _Str_740(k: string): ISetType
public getSetType(k: string): ISetType
{
return (this._setTypes.get(k) || null);
}
public _Str_783(k: number): IPalette
public getPalette(k: number): IPalette
{
return (this._palettes.get(k.toString()) || null);
}
public _Str_938(k: number): IFigurePartSet
public getFigurePartSet(k: number): IFigurePartSet
{
for(const set of this._setTypes.values())
{
const partSet = set._Str_1020(k);
const partSet = set.getPartSet(k);
if(!partSet) continue;

View File

@ -1,5 +1,5 @@
export interface IFigureSetData
{
parse(data: any): boolean;
_Str_1017(data: any): boolean;
appendXML(data: any): boolean;
}

View File

@ -5,8 +5,8 @@ import { ISetType } from './figure/ISetType';
export interface IStructureData
{
parse(data: any): boolean;
_Str_1017(k: any): boolean;
_Str_740(_arg_1: string): ISetType;
_Str_783(_arg_1: number): IPalette;
_Str_938(_arg_1: number): IFigurePartSet;
appendXML(k: any): boolean;
getSetType(_arg_1: string): ISetType;
getPalette(_arg_1: number): IPalette;
getFigurePartSet(_arg_1: number): IFigurePartSet;
}

View File

@ -40,7 +40,7 @@ export class PartSetsData implements IFigureSetData
return true;
}
public _Str_1017(data: any): boolean
public appendXML(data: any): boolean
{
if(data.partSet && (data.partSet.length > 0))
{
@ -65,16 +65,16 @@ export class PartSetsData implements IFigureSetData
return false;
}
public _Str_1795(k:IActionDefinition): string[]
public getActiveParts(k:IActionDefinition): string[]
{
const activePartSet = this._activePartSets.get(k.activePartSet);
if(!activePartSet) return [];
return activePartSet._Str_806;
return activePartSet.parts;
}
public _Str_1102(part: string): PartDefinition
public getPartDefinition(part: string): PartDefinition
{
const existing = this._parts.get(part);
@ -83,7 +83,7 @@ export class PartSetsData implements IFigureSetData
return existing;
}
public _Str_1520(k: any): PartDefinition
public addPartDefinition(k: any): PartDefinition
{
const _local_2 = k.setType as string;
@ -99,7 +99,7 @@ export class PartSetsData implements IFigureSetData
return existing;
}
public _Str_1113(k: ActionDefinition): ActivePartSet
public getActivePartSet(k: ActionDefinition): ActivePartSet
{
const existing = this._activePartSets.get(k.activePartSet);
@ -108,12 +108,12 @@ export class PartSetsData implements IFigureSetData
return existing;
}
public get _Str_806(): Map<string, PartDefinition>
public get parts(): Map<string, PartDefinition>
{
return this._parts;
}
public get _Str_1979(): Map<string, ActivePartSet>
public get activePartSets(): Map<string, ActivePartSet>
{
return this._activePartSets;
}

View File

@ -3,7 +3,7 @@ import { AnimationActionPart } from './AnimationActionPart';
export class AnimationAction
{
public static _Str_1934: Point = new Point(0, 0);
public static DEFAULT_OFFSET: Point = new Point(0, 0);
private _id: string;
private _actionParts: Map<string, AnimationActionPart>;
@ -91,7 +91,7 @@ export class AnimationAction
}
}
public _Str_989(type: string): AnimationActionPart
public getPart(type: string): AnimationActionPart
{
if(!type) return null;
@ -102,21 +102,21 @@ export class AnimationAction
return existing;
}
public _Str_1888(frameId: number, frameCount: number, partId: string): Point
public getFrameBodyPartOffset(frameId: number, frameCount: number, partId: string): Point
{
const frameIndex = (frameCount % this._frameIndexes.length);
const frameNumber = this._frameIndexes[frameIndex];
const offsets = this._bodyPartOffsets.get(frameNumber);
if(!offsets) return AnimationAction._Str_1934;
if(!offsets) return AnimationAction.DEFAULT_OFFSET;
const frameOffset = offsets.get(frameId);
if(!frameOffset) return AnimationAction._Str_1934;
if(!frameOffset) return AnimationAction.DEFAULT_OFFSET;
const offset = frameOffset.get(partId);
if(!offset) return AnimationAction._Str_1934;
if(!offset) return AnimationAction.DEFAULT_OFFSET;
return offset;
}
@ -126,12 +126,12 @@ export class AnimationAction
return this._id;
}
public get _Str_806(): Map<string, AnimationActionPart>
public get parts(): Map<string, AnimationActionPart>
{
return this._actionParts;
}
public get _Str_2185(): number
public get frameCount(): number
{
return this._frameCount;
}

View File

@ -14,7 +14,7 @@ export class AvatarAnimationFrame
return this._number;
}
public get _Str_778(): string
public get assetPartDefinition(): string
{
return this._assetPartDefinition;
}

View File

@ -54,7 +54,7 @@ export class FigurePart implements IFigurePart
return this._index;
}
public get _Str_827(): number
public get colorLayerIndex(): number
{
return this._colorLayerIndex;
}

View File

@ -80,7 +80,7 @@ export class FigurePartSet implements IFigurePartSet
return -1;
}
public _Str_989(k: string, _arg_2: number): IFigurePart
public getPart(k: string, _arg_2: number): IFigurePart
{
for(const part of this._parts)
{
@ -117,27 +117,27 @@ export class FigurePartSet implements IFigurePartSet
return this._isColorable;
}
public get _Str_608(): boolean
public get isSelectable(): boolean
{
return this._isSelectable;
}
public get _Str_806(): IFigurePart[]
public get parts(): IFigurePart[]
{
return this._parts;
}
public get _Str_790(): string[]
public get hiddenLayers(): string[]
{
return this._hiddenLayers;
}
public get _Str_653(): boolean
public get isPreSelectable(): boolean
{
return this._isPreSelectable;
}
public get _Str_651(): boolean
public get isSellable(): boolean
{
return this._isSellable;
}

View File

@ -4,6 +4,6 @@ export interface IFigurePart
type: string;
breed: number;
index: number;
_Str_827: number;
colorLayerIndex: number;
paletteMap: number;
}

View File

@ -2,15 +2,15 @@ import { IFigurePart } from './IFigurePart';
export interface IFigurePartSet
{
_Str_989(_arg_1: string, _arg_2: number): IFigurePart;
getPart(_arg_1: string, _arg_2: number): IFigurePart;
id: number;
type: string;
gender: string;
clubLevel: number;
isColorable: boolean;
_Str_608: boolean;
_Str_806: IFigurePart[];
_Str_790: string[];
_Str_653: boolean;
_Str_651: boolean;
isSelectable: boolean;
parts: IFigurePart[];
hiddenLayers: string[];
isPreSelectable: boolean;
isSellable: boolean;
}

View File

@ -2,7 +2,7 @@ import { IPartColor } from './IPartColor';
export interface IPalette
{
_Str_751(id: number): IPartColor;
getColor(id: number): IPartColor;
id: number;
colors: Map<string, IPartColor>;
}

View File

@ -4,5 +4,5 @@ export interface IPartColor
index: number;
clubLevel: number;
isSelectable: boolean;
_Str_915: number;
rgb: number;
}

View File

@ -3,10 +3,10 @@ import { IFigurePartSet } from './IFigurePartSet';
export interface ISetType
{
_Str_1020(_arg_1: number): IFigurePartSet;
_Str_895(_arg_1: string, _arg_2: number): boolean;
_Str_1002(_arg_1: string): number;
getPartSet(_arg_1: number): IFigurePartSet;
isMandatory(_arg_1: string, _arg_2: number): boolean;
optionalFromClubLevel(_arg_1: string): number;
type: string;
_Str_734: number;
_Str_710: AdvancedMap<string, IFigurePartSet>;
paletteID: number;
partSets: AdvancedMap<string, IFigurePartSet>;
}

View File

@ -14,10 +14,10 @@ export class Palette implements IPalette
this._id = parseInt(data['$'].id);
this._colors = new Map();
this._Str_2015(data);
this.append(data);
}
public _Str_2015(data: any): void
public append(data: any): void
{
for(const color of data.color)
{
@ -27,7 +27,7 @@ export class Palette implements IPalette
}
}
public _Str_751(id: number): IPartColor
public getColor(id: number): IPartColor
{
if((id === undefined) || id < 0) return null;

View File

@ -39,7 +39,7 @@ export class PartColor implements IPartColor
return this._isSelectable;
}
public get _Str_915(): number
public get rgb(): number
{
return this._rgb;
}

View File

@ -21,7 +21,7 @@ export class SetType implements ISetType
this._isMandatory['M'] = [ (parseInt(data['$'].mand_m_0) === 1), (parseInt(data['$'].mand_m_1) === 1) ];
this._partSets = new AdvancedMap();
this._Str_2015(data);
this.append(data);
}
public dispose(): void
@ -36,7 +36,7 @@ export class SetType implements ISetType
this._partSets = null;
}
public _Str_1874(k: any): void
public cleanUp(k: any): void
{
for(const _local_2 of k)
{
@ -52,14 +52,14 @@ export class SetType implements ISetType
}
}
public _Str_2015(k: any): void
public append(k: any): void
{
if(!k || !k.set) return;
for(const set of k.set) this._partSets.add(set['$'].id, new FigurePartSet(this._type, set));
}
public _Str_2264(k: string): IFigurePartSet
public getDefaultPartSet(k: string): IFigurePartSet
{
for(const set of this._partSets.getValues())
{
@ -71,7 +71,7 @@ export class SetType implements ISetType
return null;
}
public _Str_1020(k: number): IFigurePartSet
public getPartSet(k: number): IFigurePartSet
{
return this._partSets.getValue(k.toString());
}
@ -81,24 +81,24 @@ export class SetType implements ISetType
return this._type;
}
public get _Str_734(): number
public get paletteID(): number
{
return this._paletteId;
}
public _Str_895(k: string, _arg_2: number): boolean
public isMandatory(k: string, _arg_2: number): boolean
{
return this._isMandatory[k.toUpperCase()][Math.min(_arg_2, 1)];
}
public _Str_1002(k: string): number
public optionalFromClubLevel(k: string): number
{
const _local_2 = this._isMandatory[k.toUpperCase()];
return _local_2.indexOf(false);
}
public get _Str_710(): AdvancedMap<string, IFigurePartSet>
public get partSets(): AdvancedMap<string, IFigurePartSet>
{
return this._partSets;
}

View File

@ -19,7 +19,7 @@ export class ActivePartSet
}
}
public get _Str_806(): string[]
public get parts(): string[]
{
return this._parts;
}

View File

@ -17,47 +17,47 @@ export class PartDefinition
this._staticId = -1;
}
public _Str_2234(): boolean
public hasStaticId(): boolean
{
return this._staticId >= 0;
}
public get _Str_1734(): number
public get staticId(): number
{
return this._staticId;
}
public set _Str_1734(k: number)
public set staticId(k: number)
{
this._staticId = k;
}
public get _Str_2174(): string
public get setType(): string
{
return this._setType;
}
public get _Str_1693(): string
public get flippedSetType(): string
{
return this._flippedSetType;
}
public set _Str_1693(type: string)
public set flippedSetType(type: string)
{
this._flippedSetType = type;
}
public get _Str_1209(): string
public get removeSetType(): string
{
return this._removeSetType;
}
public get _Str_1583(): boolean
public get appendToFigure(): boolean
{
return this._appendToFigure;
}
public set _Str_1583(flag: boolean)
public set appendToFigure(flag: boolean)
{
this._appendToFigure = flag;
}

View File

@ -0,0 +1,11 @@
import { ColorMatrix } from '@pixi/filter-color-matrix';
import { Resource, Texture } from 'pixi.js';
export interface IRoomCameraWidgetEffect
{
name: string;
minLevel: number;
texture: Texture<Resource>;
colorMatrix: ColorMatrix;
blendMode: number;
}

View File

@ -0,0 +1,12 @@
import { IEventDispatcher } from '../../core';
import { IRoomCameraWidgetEffect } from './IRoomCameraWidgetEffect';
import { IRoomCameraWidgetSelectedEffect } from './IRoomCameraWidgetSelectedEffect';
export interface IRoomCameraWidgetManager
{
init(): void;
applyEffects(image: HTMLImageElement, selectedEffects: IRoomCameraWidgetSelectedEffect[], isZoomed: boolean): HTMLImageElement;
events: IEventDispatcher;
effects: Map<string, IRoomCameraWidgetEffect>;
isLoaded: boolean;
}

View File

@ -0,0 +1,7 @@
import { IRoomCameraWidgetEffect } from './IRoomCameraWidgetEffect';
export interface IRoomCameraWidgetSelectedEffect
{
effect: IRoomCameraWidgetEffect;
alpha: number;
}

View File

@ -0,0 +1,61 @@
import { ColorMatrix } from '@pixi/filter-color-matrix';
import { Resource, Texture } from 'pixi.js';
import { IRoomCameraWidgetEffect } from './IRoomCameraWidgetEffect';
export class RoomCameraWidgetEffect implements IRoomCameraWidgetEffect
{
private _name: string;
private _minLevel: number = -1;
private _texture: Texture<Resource> = null;
private _colorMatrix: ColorMatrix = null;
private _blendMode: number = null;
constructor(name: string, minLevel: number = -1, texture: Texture<Resource> = null, colorMatrix: ColorMatrix = null, blendMode: number = null)
{
this._name = name;
this._minLevel = minLevel;
this._texture = texture;
this._colorMatrix = colorMatrix;
this._blendMode = blendMode;
}
public get name(): string
{
return this._name;
}
public get texture(): Texture<Resource>
{
return this._texture;
}
public set texture(texture: Texture<Resource>)
{
this._texture = texture;
}
public get colorMatrix(): ColorMatrix
{
return this._colorMatrix;
}
public set colorMatrix(colorMatrix: ColorMatrix)
{
this._colorMatrix = colorMatrix;
}
public get blendMode(): number
{
return this._blendMode;
}
public set blendMode(blendMode: number)
{
this._blendMode = blendMode;
}
public get minLevel(): number
{
return this._minLevel;
}
}

View File

@ -0,0 +1,108 @@
import { ColorMatrix } from '@pixi/filter-color-matrix';
import { Container, filters, Sprite, Texture } from 'pixi.js';
import { EventDispatcher, IEventDispatcher } from '../../core';
import { TextureUtils } from '../../room';
import { Nitro } from '../Nitro';
import { RoomCameraWidgetManagerEvent } from './events/RoomCameraWidgetManagerEvent';
import { IRoomCameraWidgetEffect } from './IRoomCameraWidgetEffect';
import { IRoomCameraWidgetManager } from './IRoomCameraWidgetManager';
import { IRoomCameraWidgetSelectedEffect } from './IRoomCameraWidgetSelectedEffect';
import { RoomCameraWidgetEffect } from './RoomCameraWidgetEffect';
export class RoomCameraWidgetManager implements IRoomCameraWidgetManager
{
private _effects: Map<string, IRoomCameraWidgetEffect>;
private _events: IEventDispatcher;
private _isLoaded: boolean;
constructor()
{
this._effects = new Map();
this._events = new EventDispatcher();
this._isLoaded = false;
}
public init(): void
{
if(this._isLoaded) return;
this._isLoaded = true;
const imagesUrl = Nitro.instance.getConfiguration<string>('image.library.url') + 'Habbo-Stories/';
const effects = Nitro.instance.getConfiguration<{ name: string, colorMatrix?: ColorMatrix, minLevel: number, blendMode?: number, enabled: boolean }[]>('camera.available.effects');
for(const effect of effects)
{
if(!effect.enabled) continue;
const cameraEffect = new RoomCameraWidgetEffect(effect.name, effect.minLevel);
if(effect.colorMatrix.length)
{
cameraEffect.colorMatrix = effect.colorMatrix;
}
else
{
cameraEffect.texture = Texture.from(imagesUrl + effect.name + '.png');
cameraEffect.blendMode = effect.blendMode;
}
this._effects.set(cameraEffect.name, cameraEffect);
}
this.events.dispatchEvent(new RoomCameraWidgetManagerEvent(RoomCameraWidgetManagerEvent.INITIALIZED));
}
public applyEffects(image: HTMLImageElement, selectedEffects: IRoomCameraWidgetSelectedEffect[], isZoomed: boolean): HTMLImageElement
{
const container = new Container();
const texture = Texture.from(image);
const sprite = new Sprite(texture);
container.addChild(sprite);
for(const selectedEffect of selectedEffects)
{
const effect = selectedEffect.effect;
if(!effect) continue;
if(effect.colorMatrix)
{
const filter = new filters.ColorMatrixFilter();
filter.matrix = effect.colorMatrix;
filter.alpha = selectedEffect.alpha;
if(!sprite.filters) sprite.filters = [];
sprite.filters.push(filter);
}
else
{
const effectSprite = new Sprite(effect.texture);
effectSprite.alpha = selectedEffect.alpha;
effectSprite.blendMode = effect.blendMode;
container.addChild(effectSprite);
}
}
return TextureUtils.generateImage(container);
}
public get effects(): Map<string, IRoomCameraWidgetEffect>
{
return this._effects;
}
public get events(): IEventDispatcher
{
return this._events;
}
public get isLoaded(): boolean
{
return this._isLoaded;
}
}

View File

@ -0,0 +1,23 @@
import { IRoomCameraWidgetEffect } from './IRoomCameraWidgetEffect';
export class RoomCameraWidgetSelectedEffect
{
private _effect: IRoomCameraWidgetEffect;
private _alpha: number;
constructor(effect: IRoomCameraWidgetEffect, alpha: number)
{
this._effect = effect;
this._alpha = alpha;
}
public get effect(): IRoomCameraWidgetEffect
{
return this._effect;
}
public get alpha(): number
{
return this._alpha;
}
}

View File

@ -0,0 +1,11 @@
import { NitroEvent } from '../../../core/events/NitroEvent';
export class RoomCameraWidgetManagerEvent extends NitroEvent
{
public static INITIALIZED: string = 'RCWM_INITIALIZED';
constructor(type: string)
{
super(type);
}
}

View File

@ -1,7 +1,6 @@
import { IMessageConfiguration } from '../../core/communication/messages/IMessageConfiguration';
import { ApproveNameMessageComposer, CatalogApproveNameResultEvent, SellablePetPalettesEvent } from './messages';
import { ApproveNameMessageComposer, BadgeReceivedEvent, BonusRareInfoMessageEvent, CatalogApproveNameResultEvent, ChangeUserNameResultMessageEvent, FurnitureGuildInfoComposer, GetBonusRareInfoMessageComposer, MysteryBoxKeysEvent, PetExperienceEvent, PetMountComposer, PetSupplementComposer, RemovePetSaddleComposer, RoomUnitGiveHandItemPetComposer, RoomWidgetCameraPublishedEvent, RoomWidgetCameraPurchaseComposer, SellablePetPalettesEvent, TogglePetBreedingComposer, TogglePetRidingComposer, UnseenResetCategoryComposer, UnseenResetItemsComposer, UsePetProductComposer } from './messages';
import { AvailabilityStatusMessageEvent } from './messages/incoming/availability/AvailabilityStatusMessageEvent';
import { ChangeNameUpdateEvent } from './messages/incoming/avatar/ChangeNameUpdateEvent';
import { CatalogClubEvent } from './messages/incoming/catalog/CatalogClubEvent';
import { CatalogClubGiftsEvent } from './messages/incoming/catalog/CatalogClubGiftsEvent';
import { CatalogGiftConfigurationEvent } from './messages/incoming/catalog/CatalogGiftConfigurationEvent';
@ -18,13 +17,17 @@ import { CatalogRedeemVoucherOkEvent } from './messages/incoming/catalog/Catalog
import { CatalogSearchEvent } from './messages/incoming/catalog/CatalogSearchEvent';
import { CatalogSoldOutEvent } from './messages/incoming/catalog/CatalogSoldOutEvent';
import { CatalogUpdatedEvent } from './messages/incoming/catalog/CatalogUpdatedEvent';
import { MarketplaceAfterOrderStatusEvent } from './messages/incoming/catalog/marketplace/MarketplaceAfterOrderStatusEvent';
import { MarketplaceBuyOfferResultEvent } from './messages/incoming/catalog/marketplace/MarketplaceBuyOfferResultEvent';
import { MarketplaceCancelItemEvent } from './messages/incoming/catalog/marketplace/MarketplaceCancelItemEvent';
import { MarketplaceOffersReceivedEvent } from './messages/incoming/catalog/marketplace/MarketplaceOffersReceivedEvent';
import { MarketplaceOwnItemsEvent } from './messages/incoming/catalog/marketplace/MarketplaceOwnItemsEvent';
import { MarketplaceConfigEvent } from './messages/incoming/catalog/MarketplaceConfigEvent';
import { MarketplaceItemStatsEvent } from './messages/incoming/catalog/MarketplaceItemStatsEvent';
import { ClientPingEvent } from './messages/incoming/client/ClientPingEvent';
import { CraftableProductsEvent } from './messages/incoming/crafting/CraftableProductsEvent';
import { CraftingRecipeEvent } from './messages/incoming/crafting/CraftingRecipeEvent';
import { CraftingRecipesAvailableEvent } from './messages/incoming/crafting/CraftingRecipesAvailableEvent';
import { CraftingResultEvent } from './messages/incoming/crafting/CraftingResultEvent';
import { DesktopViewEvent } from './messages/incoming/desktop/DesktopViewEvent';
import { AcceptFriendResultEvent } from './messages/incoming/friendlist/AcceptFriendResultEvent';
import { FindFriendsProcessResultEvent } from './messages/incoming/friendlist/FindFriendsProcessResultEvent';
@ -50,6 +53,7 @@ import { GroupConfirmMemberRemoveEvent } from './messages/incoming/group/GroupCo
import { GroupInformationEvent } from './messages/incoming/group/GroupInformationEvent';
import { GroupMembersEvent } from './messages/incoming/group/GroupMembersEvent';
import { GroupSettingsEvent } from './messages/incoming/group/GroupSettingsEvent';
import { AuthenticationEvent } from './messages/incoming/handshake/AuthenticationEvent';
import { CallForHelpResultMessageEvent } from './messages/incoming/help/CallForHelpResultMessageEvent';
import { IncomingHeader } from './messages/incoming/IncomingHeader';
import { AchievementEvent } from './messages/incoming/inventory/achievements/AchievementEvent';
@ -69,7 +73,7 @@ import { FurnitureListEvent } from './messages/incoming/inventory/furni/Furnitur
import { FurnitureListInvalidateEvent } from './messages/incoming/inventory/furni/FurnitureListInvalidateEvent';
import { FurnitureListRemovedEvent } from './messages/incoming/inventory/furni/FurnitureListRemovedEvent';
import { FurniturePostItPlacedEvent } from './messages/incoming/inventory/furni/FurniturePostItPlacedEvent';
import { FurnitureGiftOpenedEvent } from './messages/incoming/inventory/furni/gifts/FurnitureGiftOpenedEvent';
import { PresentOpenedMessageEvent } from './messages/incoming/inventory/furni/gifts/PresentOpenedMessageEvent';
import { MarketplaceItemPostedEvent } from './messages/incoming/inventory/marketplace/MarketplaceItemPostedEvent';
import { MarketplaceSellItemEvent } from './messages/incoming/inventory/marketplace/MarketplaceSellItemEvent';
import { PetAddedToInventoryEvent } from './messages/incoming/inventory/pets/PetAddedToInventoryEvent';
@ -85,6 +89,8 @@ import { TradingOpenEvent } from './messages/incoming/inventory/trading/TradingO
import { TradingOpenFailedEvent } from './messages/incoming/inventory/trading/TradingOpenFailedEvent';
import { TradingOtherNotAllowedEvent } from './messages/incoming/inventory/trading/TradingOtherNotAllowedEvent';
import { TradingYouAreNotAllowedEvent } from './messages/incoming/inventory/trading/TradingYouAreNotAllowedEvent';
import { PromoArticlesMessageEvent } from './messages/incoming/landingview/PromoArticlesMessageEvent';
import { CommunityGoalVoteMessageEvent } from './messages/incoming/landingview/votes/CommunityGoalVoteMessageEvent';
import { ModeratorMessageEvent } from './messages/incoming/moderation/ModeratorMessageEvent';
import { ModtoolCallForHelpTopicsEvent } from './messages/incoming/modtool/ModtoolCallForHelpTopicsEvent';
import { ModtoolMainEvent } from './messages/incoming/modtool/ModtoolMainEvent';
@ -111,6 +117,17 @@ import { NotificationDialogMessageEvent } from './messages/incoming/notification
import { PetPlacingErrorEvent } from './messages/incoming/notifications/PetPlacingErrorEvent';
import { RespectReceivedEvent } from './messages/incoming/notifications/RespectReceivedEvent';
import { UnseenItemsEvent } from './messages/incoming/notifications/UnseenItemsEvent';
import { CommunityGoalEarnedPrizesMessageEvent } from './messages/incoming/quest/CommunityGoalEarnedPrizesMessageEvent';
import { CommunityGoalHallOfFameMessageEvent } from './messages/incoming/quest/CommunityGoalHallOfFameMessageEvent';
import { CommunityGoalProgressMessageEvent } from './messages/incoming/quest/CommunityGoalProgressMessageEvent';
import { ConcurrentUsersGoalProgressMessageEvent } from './messages/incoming/quest/ConcurrentUsersGoalProgressMessageEvent';
import { EpicPopupMessageEvent } from './messages/incoming/quest/EpicPopupMessageEvent';
import { QuestCancelledMessageEvent } from './messages/incoming/quest/QuestCancelledMessageEvent';
import { QuestCompletedMessageEvent } from './messages/incoming/quest/QuestCompletedMessageEvent';
import { QuestDailyMessageEvent } from './messages/incoming/quest/QuestDailyMessageEvent';
import { QuestMessageEvent } from './messages/incoming/quest/QuestMessageEvent';
import { QuestsMessageEvent } from './messages/incoming/quest/QuestsMessageEvent';
import { SeasonalQuestsMessageEvent } from './messages/incoming/quest/SeasonalQuestsMessageEvent';
import { RoomDoorbellAcceptedEvent } from './messages/incoming/room/access/doorbell/RoomDoorbellAcceptedEvent';
import { RoomDoorbellEvent } from './messages/incoming/room/access/doorbell/RoomDoorbellEvent';
import { RoomDoorbellRejectedEvent } from './messages/incoming/room/access/doorbell/RoomDoorbellRejectedEvent';
@ -121,6 +138,8 @@ import { RoomEnterErrorEvent } from './messages/incoming/room/access/RoomEnterEr
import { RoomEnterEvent } from './messages/incoming/room/access/RoomEnterEvent';
import { RoomForwardEvent } from './messages/incoming/room/access/RoomForwardEvent';
import { BotCommandConfigurationEvent } from './messages/incoming/room/bots/BotCommandConfigurationEvent';
import { RoomWidgetCameraConfigurationEvent } from './messages/incoming/room/camera/RoomWidgetCameraConfigurationEvent';
import { RoomWidgetCameraPurchaseSuccessfulEvent } from './messages/incoming/room/camera/RoomWidgetCameraPurchaseSuccessfulEvent';
import { RoomBannedUsersEvent } from './messages/incoming/room/data/RoomBannedUsersEvent';
import { RoomChatSettingsEvent } from './messages/incoming/room/data/RoomChatSettingsEvent';
import { RoomInfoEvent } from './messages/incoming/room/data/RoomInfoEvent';
@ -131,6 +150,7 @@ import { RoomSettingsEvent } from './messages/incoming/room/data/RoomSettingsEve
import { RoomSettingsSavedEvent } from './messages/incoming/room/data/RoomSettingsSavedEvent';
import { RoomSettingsUpdatedEvent } from './messages/incoming/room/data/RoomSettingsUpdatedEvent';
import { RoomUsersWithRightsEvent } from './messages/incoming/room/data/RoomUsersWithRightsEvent';
import { ObjectsDataUpdateEvent } from './messages/incoming/room/engine/ObjectsDataUpdateEvent';
import { ObjectsRollingEvent } from './messages/incoming/room/engine/ObjectsRollingEvent';
import { RoomCreatedEvent } from './messages/incoming/room/engine/RoomCreatedEvent';
import { FurnitureFloorAddEvent } from './messages/incoming/room/furniture/floor/FurnitureFloorAddEvent';
@ -228,6 +248,11 @@ import { RedeemItemClothingComposer } from './messages/outgoing/catalog/RedeemIt
import { CatalogRedeemVoucherComposer } from './messages/outgoing/catalog/RedeemVoucherComposer';
import { ClientPongComposer } from './messages/outgoing/client/ClientPongComposer';
import { ClientReleaseVersionComposer } from './messages/outgoing/client/ClientReleaseVersionComposer';
import { CraftComposer } from './messages/outgoing/crafting/CraftComposer';
import { CraftSecretComposer } from './messages/outgoing/crafting/CraftSecretComposer';
import { GetCraftableProductsComposer } from './messages/outgoing/crafting/GetCraftableProductsComposer';
import { GetCraftingRecipeComposer } from './messages/outgoing/crafting/GetCraftingRecipeComposer';
import { GetCraftingRecipesAvailableComposer } from './messages/outgoing/crafting/GetCraftingRecipesAvailableComposer';
import { DesktopViewComposer } from './messages/outgoing/desktop/DesktopViewComposer';
import { AcceptFriendComposer } from './messages/outgoing/friendlist/AcceptFriendComposer';
import { DeclineFriendComposer } from './messages/outgoing/friendlist/DeclineFriendComposer';
@ -261,6 +286,7 @@ import { GroupSaveColorsComposer } from './messages/outgoing/group/GroupSaveColo
import { GroupSaveInformationComposer } from './messages/outgoing/group/GroupSaveInformationComposer';
import { GroupSavePreferencesComposer } from './messages/outgoing/group/GroupSavePreferencesComposer';
import { GroupSettingsComposer } from './messages/outgoing/group/GroupSettingsComposer';
import { AuthenticationMessageComposer } from './messages/outgoing/handshake/AuthenticationMessageComposer';
import { InfoRetrieveBaseMessageComposer } from './messages/outgoing/handshake/InfoRetrieveBaseMessageComposer';
import { SecurityTicketComposer } from './messages/outgoing/handshake/SecurityTicketComposer';
import { RequestBadgesComposer } from './messages/outgoing/inventory/badges/RequestBadgesComposer';
@ -280,6 +306,8 @@ import { TradingListAddItemsComposer } from './messages/outgoing/inventory/tradi
import { TradingListItemRemoveComposer } from './messages/outgoing/inventory/trading/TradingListRemoveItemComposer';
import { TradingOpenComposer } from './messages/outgoing/inventory/trading/TradingOpenComposer';
import { TradingUnacceptComposer } from './messages/outgoing/inventory/trading/TradingUnacceptComposer';
import { GetPromoArticlesComposer } from './messages/outgoing/landingview/GetPromoArticlesComposer';
import { CommunityGoalVoteMessageComposer } from './messages/outgoing/landingview/votes/CommunityGoalVoteMessageComposer';
import { ModtoolChangeRoomSettingsComposer } from './messages/outgoing/modtool/ModtoolChangeRoomSettingsComposer';
import { ModtoolEventAlertComposer } from './messages/outgoing/modtool/ModtoolEventAlertComposer';
import { ModtoolRequestRoomChatlogComposer } from './messages/outgoing/modtool/ModtoolRequestRoomChatlogComposer';
@ -306,6 +334,22 @@ import { NavigatorSettingsSaveComposer } from './messages/outgoing/navigator/Nav
import { OutgoingHeader } from './messages/outgoing/OutgoingHeader';
import { PetRespectComposer } from './messages/outgoing/pet/PetRespectComposer';
import { RequestPetInfoComposer } from './messages/outgoing/pet/RequestPetInfoComposer';
import { AcceptQuestMessageComposer } from './messages/outgoing/quest/AcceptQuestMessageComposer';
import { ActivateQuestMessageComposer } from './messages/outgoing/quest/ActivateQuestMessageComposer';
import { CancelQuestMessageComposer } from './messages/outgoing/quest/CancelQuestMessageComposer';
import { FriendRequestQuestCompleteMessageComposer } from './messages/outgoing/quest/FriendRequestQuestCompleteMessageComposer';
import { GetCommunityGoalEarnedPrizesMessageComposer } from './messages/outgoing/quest/GetCommunityGoalEarnedPrizesMessageComposer';
import { GetCommunityGoalHallOfFameMessageComposer } from './messages/outgoing/quest/GetCommunityGoalHallOfFameMessageComposer';
import { GetCommunityGoalProgressMessageComposer } from './messages/outgoing/quest/GetCommunityGoalProgressMessageComposer';
import { GetConcurrentUsersGoalProgressMessageComposer } from './messages/outgoing/quest/GetConcurrentUsersGoalProgressMessageComposer';
import { GetConcurrentUsersRewardMessageComposer } from './messages/outgoing/quest/GetConcurrentUsersRewardMessageComposer';
import { GetDailyQuestMessageComposer } from './messages/outgoing/quest/GetDailyQuestMessageComposer';
import { GetQuestsMessageComposer } from './messages/outgoing/quest/GetQuestsMessageComposer';
import { GetSeasonalQuestsOnlyMessageComposer } from './messages/outgoing/quest/GetSeasonalQuestsOnlyMessageComposer';
import { OpenQuestTrackerMessageComposer } from './messages/outgoing/quest/OpenQuestTrackerMessageComposer';
import { RedeemCommunityGoalPrizeMessageComposer } from './messages/outgoing/quest/RedeemCommunityGoalPrizeMessageComposer';
import { RejectQuestMessageComposer } from './messages/outgoing/quest/RejectQuestMessageComposer';
import { StartCampaignMessageComposer } from './messages/outgoing/quest/StartCampaignMessageComposer';
import { RoomDoorbellAccessComposer } from './messages/outgoing/room/access/RoomDoorbellAccessComposer';
import { RoomEnterComposer } from './messages/outgoing/room/access/RoomEnterComposer';
import { RoomAmbassadorAlertComposer } from './messages/outgoing/room/action/RoomAmbassadorAlertComposer';
@ -319,6 +363,10 @@ import { RoomStaffPickComposer } from './messages/outgoing/room/action/RoomStaff
import { RoomTakeRightsComposer } from './messages/outgoing/room/action/RoomTakeRightsComposer';
import { RoomUnbanUserComposer } from './messages/outgoing/room/action/RoomUnbanUserComposer';
import { RequestBotCommandConfigurationComposer } from './messages/outgoing/room/bots/RequestBotConfigurationComposer';
import { RoomWidgetCameraConfigurationComposer } from './messages/outgoing/room/camera/RoomWidgetCameraConfigurationComposer';
import { RoomWidgetCameraPublishComposer } from './messages/outgoing/room/camera/RoomWidgetCameraPublishComposer';
import { RoomWidgetCameraRoomPictureComposer } from './messages/outgoing/room/camera/RoomWidgetCameraRoomPictureComposer';
import { RoomWidgetCameraRoomThumbnailComposer } from './messages/outgoing/room/camera/RoomWidgetCameraRoomThumbnailComposer';
import { RoomBannedUsersComposer } from './messages/outgoing/room/data/RoomBannedUsersComposer';
import { RoomInfoComposer } from './messages/outgoing/room/data/RoomInfoComposer';
import { RoomSettingsComposer } from './messages/outgoing/room/data/RoomSettingsComposer';
@ -420,12 +468,15 @@ export class NitroMessages implements IMessageConfiguration
private registerEvents(): void
{
// AUTHENTICATION
this._events.set(IncomingHeader.AUTHENTICATION, AuthenticationEvent);
// AVAILABILITY
this._events.set(IncomingHeader.AVAILABILITY_STATUS, AvailabilityStatusMessageEvent);
this._events.set(IncomingHeader.GENERIC_ERROR, GenericErrorEvent);
// AVATAR
this._events.set(IncomingHeader.USER_CHANGE_NAME, ChangeNameUpdateEvent);
this._events.set(IncomingHeader.USER_CHANGE_NAME, ChangeUserNameResultMessageEvent);
// CATALOG
this._events.set(IncomingHeader.CATALOG_CLUB, CatalogClubEvent);
@ -445,6 +496,12 @@ export class NitroMessages implements IMessageConfiguration
this._events.set(IncomingHeader.REDEEM_VOUCHER_OK, CatalogRedeemVoucherOkEvent);
this._events.set(IncomingHeader.CATALOG_RECEIVE_PET_BREEDS, SellablePetPalettesEvent);
this._events.set(IncomingHeader.CATALOG_APPROVE_NAME_RESULT, CatalogApproveNameResultEvent);
this._events.set(IncomingHeader.BONUS_RARE_INFO, BonusRareInfoMessageEvent);
// CAMERA
this._events.set(IncomingHeader.CAMERA_PRICE, RoomWidgetCameraConfigurationEvent);
this._events.set(IncomingHeader.CAMERA_PUBLISHED, RoomWidgetCameraPublishedEvent);
this._events.set(IncomingHeader.CAMERA_PURCHASE_SUCCESSFUL, RoomWidgetCameraPurchaseSuccessfulEvent);
// CLIENT
this._events.set(IncomingHeader.CLIENT_PING, ClientPingEvent);
@ -525,6 +582,9 @@ export class NitroMessages implements IMessageConfiguration
this._events.set(IncomingHeader.MODTOOL_USER_CHATLOG, ModtoolUserChatlogEvent);
this._events.set(IncomingHeader.MODTOOL_ROOM_CHATLOG, ModtoolRoomChatlogEvent);
// MYSTERY BOX
this._events.set(IncomingHeader.MYSTERY_BOX_KEYS, MysteryBoxKeysEvent);
// NAVIGATOR
this._events.set(IncomingHeader.NAVIGATOR_CATEGORIES, NavigatorCategoriesEvent);
this._events.set(IncomingHeader.NAVIGATOR_COLLAPSED, NavigatorCollapsedEvent);
@ -593,6 +653,7 @@ export class NitroMessages implements IMessageConfiguration
this._events.set(IncomingHeader.LOVELOCK_FURNI_FINISHED, LoveLockFurniFinishedEvent);
this._events.set(IncomingHeader.LOVELOCK_FURNI_FRIEND_COMFIRMED, LoveLockFurniFriendConfirmedEvent);
this._events.set(IncomingHeader.LOVELOCK_FURNI_START, LoveLockFurniStartEvent);
this._events.set(IncomingHeader.OBJECTS_DATA_UPDATE, ObjectsDataUpdateEvent);
// FLOOR
this._events.set(IncomingHeader.FURNITURE_FLOOR_ADD, FurnitureFloorAddEvent);
@ -619,6 +680,7 @@ export class NitroMessages implements IMessageConfiguration
// PET
this._events.set(IncomingHeader.PET_FIGURE_UPDATE, PetFigureUpdateEvent);
this._events.set(IncomingHeader.PET_INFO, PetInfoEvent);
this._events.set(IncomingHeader.PET_EXPERIENCE, PetExperienceEvent);
// SESSION
this._events.set(IncomingHeader.PLAYING_GAME, YouArePlayingGameEvent);
@ -664,6 +726,7 @@ export class NitroMessages implements IMessageConfiguration
// BADGES
this._events.set(IncomingHeader.USER_BADGES, BadgesEvent);
this._events.set(IncomingHeader.USER_BADGES_ADD, BadgeReceivedEvent);
// ACCESS
this._events.set(IncomingHeader.USER_PERKS, UserPerksEvent);
@ -679,7 +742,7 @@ export class NitroMessages implements IMessageConfiguration
this._events.set(IncomingHeader.MESSENGER_RELATIONSHIPS, UserRelationshipsEvent);
// GIFTS
this._events.set(IncomingHeader.GIFT_OPENED, FurnitureGiftOpenedEvent);
this._events.set(IncomingHeader.GIFT_OPENED, PresentOpenedMessageEvent);
// INVENTORY
this._events.set(IncomingHeader.GIFT_RECEIVER_NOT_FOUND, CatalogGiftUsernameUnavailableEvent);
@ -723,11 +786,37 @@ export class NitroMessages implements IMessageConfiguration
this._events.set(IncomingHeader.MARKETPLACE_CANCEL_SALE, MarketplaceCancelItemEvent);
this._events.set(IncomingHeader.MARKETPLACE_ITEM_POSTED, MarketplaceItemPostedEvent);
this._events.set(IncomingHeader.MARKETPLACE_ITEMS_SEARCHED, MarketplaceOffersReceivedEvent);
this._events.set(IncomingHeader.MARKETPLACE_AFTER_ORDER_STATUS, MarketplaceAfterOrderStatusEvent);
this._events.set(IncomingHeader.MARKETPLACE_AFTER_ORDER_STATUS, MarketplaceBuyOfferResultEvent);
// LANDING VIEW
this._events.set(IncomingHeader.COMMUNITY_GOAL_VOTE_EVENT, CommunityGoalVoteMessageEvent);
this._events.set(IncomingHeader.PROMO_ARTICLES, PromoArticlesMessageEvent);
// QUESTS
this._events.set(IncomingHeader.COMMUNITY_GOAL_EARNED_PRIZES, CommunityGoalEarnedPrizesMessageEvent);
this._events.set(IncomingHeader.COMMUNITY_GOAL_PROGRESS, CommunityGoalProgressMessageEvent);
this._events.set(IncomingHeader.CONCURRENT_USERS_GOAL_PROGRESS, ConcurrentUsersGoalProgressMessageEvent);
this._events.set(IncomingHeader.QUEST_DAILY, QuestDailyMessageEvent);
this._events.set(IncomingHeader.QUEST_CANCELLED, QuestCancelledMessageEvent);
this._events.set(IncomingHeader.QUEST_COMPLETED, QuestCompletedMessageEvent);
this._events.set(IncomingHeader.COMMUNITY_GOAL_HALL_OF_FAME, CommunityGoalHallOfFameMessageEvent);
this._events.set(IncomingHeader.EPIC_POPUP, EpicPopupMessageEvent);
this._events.set(IncomingHeader.SEASONAL_QUESTS, SeasonalQuestsMessageEvent);
this._events.set(IncomingHeader.QUESTS, QuestsMessageEvent);
this._events.set(IncomingHeader.QUEST, QuestMessageEvent);
// CRAFTING
this._events.set(IncomingHeader.CRAFTABLE_PRODUCTS, CraftableProductsEvent);
this._events.set(IncomingHeader.CRAFTING_RECIPE, CraftingRecipeEvent);
this._events.set(IncomingHeader.CRAFTING_RECIPES_AVAILABLE, CraftingRecipesAvailableEvent);
this._events.set(IncomingHeader.CRAFTING_RESULT, CraftingResultEvent);
}
private registerComposers(): void
{
// AUTHENTICATION
this._composers.set(OutgoingHeader.AUTHENTICATION, AuthenticationMessageComposer);
// CATALOG
this._composers.set(OutgoingHeader.CATALOG_MODE, CatalogModeComposer);
this._composers.set(OutgoingHeader.CATALOG_PAGE, CatalogPageComposer);
@ -742,6 +831,14 @@ export class NitroMessages implements IMessageConfiguration
this._composers.set(OutgoingHeader.GIFT_CONFIG, CatalogRequestGiftConfigurationComposer);
this._composers.set(OutgoingHeader.CATALOG_SELECT_VIP_GIFT, CatalogSelectClubGiftComposer);
this._composers.set(OutgoingHeader.CATALOG_REQUESET_PET_BREEDS, CatalogRequestPetBreedsComposer);
this._composers.set(OutgoingHeader.GET_BONUS_RARE_INFO, GetBonusRareInfoMessageComposer);
// CAMERA
this._composers.set(OutgoingHeader.CAMERA_PRICE, RoomWidgetCameraConfigurationComposer);
this._composers.set(OutgoingHeader.CAMERA_PUBLISH, RoomWidgetCameraPublishComposer);
this._composers.set(OutgoingHeader.CAMERA_PURCHASE, RoomWidgetCameraPurchaseComposer);
this._composers.set(OutgoingHeader.CAMERA_SAVE, RoomWidgetCameraRoomPictureComposer);
this._composers.set(OutgoingHeader.CAMERA_THUMBNAIL, RoomWidgetCameraRoomThumbnailComposer);
// CLIENT
this._composers.set(OutgoingHeader.CLIENT_PONG, ClientPongComposer);
@ -804,17 +901,25 @@ export class NitroMessages implements IMessageConfiguration
// INVENTORY
// MARKETPLACE
this._composers.set(OutgoingHeader.REQUEST_SELL_ITEM, RequestSellItemComposer);
this._composers.set(OutgoingHeader.REQUEST_MARKETPLACE_ITEM_STATS, MarketplaceRequesstItemStatsComposer);
this._composers.set(OutgoingHeader.MARKETPLACE_REDEEM_CREDITS, MarketplaceRedeemCreditsComposer);
//// BADGES
this._composers.set(OutgoingHeader.USER_BADGES, RequestBadgesComposer);
this._composers.set(OutgoingHeader.USER_BADGES_CURRENT_UPDATE, SetActivatedBadgesComposer);
// FURNI
//// BOTS
this._composers.set(OutgoingHeader.USER_BOTS, GetBotInventoryComposer);
//// FURNI
this._composers.set(OutgoingHeader.USER_FURNITURE, FurnitureListComposer);
this._composers.set(OutgoingHeader.USER_FURNITURE2, FurnitureList2Composer);
this._composers.set(OutgoingHeader.ITEM_SAVE_BACKGROUND, RoomAdsUpdateComposer);
// TRADING
//// MARKETPLACE
this._composers.set(OutgoingHeader.REQUEST_SELL_ITEM, RequestSellItemComposer);
this._composers.set(OutgoingHeader.REQUEST_MARKETPLACE_ITEM_STATS, MarketplaceRequesstItemStatsComposer);
//// PETS
this._composers.set(OutgoingHeader.USER_PETS, RequestPetsComposer);
//// TRADING
this._composers.set(OutgoingHeader.TRADE_ACCEPT, TradingAcceptComposer);
this._composers.set(OutgoingHeader.TRADE_CANCEL, TradingCancelComposer);
this._composers.set(OutgoingHeader.TRADE_CLOSE, TradingCloseComposer);
@ -825,12 +930,22 @@ export class NitroMessages implements IMessageConfiguration
this._composers.set(OutgoingHeader.TRADE, TradingOpenComposer);
this._composers.set(OutgoingHeader.TRADE_UNACCEPT, TradingUnacceptComposer);
//// UNSEEN
this._composers.set(OutgoingHeader.UNSEEN_RESET_CATEGORY, UnseenResetCategoryComposer);
this._composers.set(OutgoingHeader.UNSEEN_RESET_ITEMS, UnseenResetItemsComposer);
// ACHIVEMENTS
this._composers.set(OutgoingHeader.ACHIEVEMENT_LIST, RequestAchievementsMessageComposer);
// PET
this._composers.set(OutgoingHeader.PET_MOUNT, PetMountComposer);
this._composers.set(OutgoingHeader.PET_RESPECT, PetRespectComposer);
this._composers.set(OutgoingHeader.PET_SUPPLEMENT, PetSupplementComposer);
this._composers.set(OutgoingHeader.REMOVE_PET_SADDLE, RemovePetSaddleComposer);
this._composers.set(OutgoingHeader.PET_INFO, RequestPetInfoComposer);
this._composers.set(OutgoingHeader.TOGGLE_PET_BREEDING, TogglePetBreedingComposer);
this._composers.set(OutgoingHeader.TOGGLE_PET_RIDING, TogglePetRidingComposer);
this._composers.set(OutgoingHeader.USE_PET_PRODUCT, UsePetProductComposer);
// ROOM
this._composers.set(OutgoingHeader.ROOM_CREATE, RoomCreateComposer);
@ -875,6 +990,7 @@ export class NitroMessages implements IMessageConfiguration
// FURNITURE
this._composers.set(OutgoingHeader.FURNITURE_ALIASES, FurnitureAliasesComposer);
this._composers.set(OutgoingHeader.FURNITURE_GUILD_INFO, FurnitureGuildInfoComposer);
this._composers.set(OutgoingHeader.FURNITURE_PICKUP, FurniturePickupComposer);
this._composers.set(OutgoingHeader.FURNITURE_PLACE, FurniturePlaceComposer);
this._composers.set(OutgoingHeader.ITEM_PAINT, FurniturePlacePaintComposer);
@ -905,6 +1021,7 @@ export class NitroMessages implements IMessageConfiguration
this._composers.set(OutgoingHeader.ONE_WAY_DOOR_CLICK, FurnitureOneWayDoorComposer);
this._composers.set(OutgoingHeader.ITEM_EXCHANGE_REDEEM, FurnitureExchangeComposer);
this._composers.set(OutgoingHeader.ITEM_CLOTHING_REDEEM, RedeemItemClothingComposer);
this._composers.set(OutgoingHeader.ITEM_SAVE_BACKGROUND, RoomAdsUpdateComposer);
// MAPPING
this._composers.set(OutgoingHeader.ROOM_MODEL, RoomModelComposer);
@ -917,6 +1034,7 @@ export class NitroMessages implements IMessageConfiguration
this._composers.set(OutgoingHeader.UNIT_DANCE, RoomUnitDanceComposer);
this._composers.set(OutgoingHeader.UNIT_DROP_HAND_ITEM, RoomUnitDropHandItemComposer);
this._composers.set(OutgoingHeader.UNIT_GIVE_HANDITEM, RoomUnitGiveHandItemComposer);
this._composers.set(OutgoingHeader.UNIT_GIVE_HANDITEM_PET, RoomUnitGiveHandItemPetComposer);
this._composers.set(OutgoingHeader.UNIT_LOOK, RoomUnitLookComposer);
this._composers.set(OutgoingHeader.UNIT_SIGN, RoomUnitSignComposer);
this._composers.set(OutgoingHeader.UNIT_POSTURE, RoomUnitPostureComposer);
@ -970,14 +1088,11 @@ export class NitroMessages implements IMessageConfiguration
this._composers.set(OutgoingHeader.MARKETPLACE_TAKE_BACK_ITEM, MarketplaceTakeItemBackComposer);
this._composers.set(OutgoingHeader.MARKETPLACE_REQUEST_OFFERS, MarketplaceRequestOffersComposer);
this._composers.set(OutgoingHeader.MARKETPLACE_BUY_OFFER, MarketplaceBuyOfferComposer);
this._composers.set(OutgoingHeader.MARKETPLACE_REDEEM_CREDITS, MarketplaceRedeemCreditsComposer);
// BOTS
this._composers.set(OutgoingHeader.USER_BOTS, GetBotInventoryComposer);
// BADGES
this._composers.set(OutgoingHeader.USER_BADGES, RequestBadgesComposer);
this._composers.set(OutgoingHeader.USER_BADGES_CURRENT_UPDATE, SetActivatedBadgesComposer);
// PETS
this._composers.set(OutgoingHeader.USER_PETS, RequestPetsComposer);
@ -1011,6 +1126,35 @@ export class NitroMessages implements IMessageConfiguration
this._composers.set(OutgoingHeader.USER_SETTINGS_OLD_CHAT, UserSettingsOldChatComposer);
this._composers.set(OutgoingHeader.USER_SETTINGS_INVITES, UserSettingsRoomInvitesComposer);
this._composers.set(OutgoingHeader.USER_SETTINGS_VOLUME, UserSettingsSoundComposer);
// LANDING VIEW
this._composers.set(OutgoingHeader.COMMUNITY_GOAL_VOTE_COMPOSER, CommunityGoalVoteMessageComposer);
this._composers.set(OutgoingHeader.GET_PROMO_ARTICLES, GetPromoArticlesComposer);
// QUEST
this._composers.set(OutgoingHeader.ACCEPT_QUEST, AcceptQuestMessageComposer);
this._composers.set(OutgoingHeader.ACTIVATE_QUEST, ActivateQuestMessageComposer);
this._composers.set(OutgoingHeader.CANCEL_QUEST, CancelQuestMessageComposer);
this._composers.set(OutgoingHeader.FRIEND_REQUEST_QUEST_COMPLETE, FriendRequestQuestCompleteMessageComposer);
this._composers.set(OutgoingHeader.GET_COMMUNITY_GOAL_EARNED_PRIZES, GetCommunityGoalEarnedPrizesMessageComposer);
this._composers.set(OutgoingHeader.GET_COMMUNITY_GOAL_HALL_OF_FAME, GetCommunityGoalHallOfFameMessageComposer);
this._composers.set(OutgoingHeader.GET_COMMUNITY_GOAL_PROGRESS, GetCommunityGoalProgressMessageComposer);
this._composers.set(OutgoingHeader.GET_CONCURRENT_USERS_GOAL_PROGRESS, GetConcurrentUsersGoalProgressMessageComposer);
this._composers.set(OutgoingHeader.GET_CONCURRENT_USERS_REWARD, GetConcurrentUsersRewardMessageComposer);
this._composers.set(OutgoingHeader.GET_DAILY_QUEST, GetDailyQuestMessageComposer);
this._composers.set(OutgoingHeader.GET_QUESTS, GetQuestsMessageComposer);
this._composers.set(OutgoingHeader.GET_SEASONAL_QUESTS_ONLY, GetSeasonalQuestsOnlyMessageComposer);
this._composers.set(OutgoingHeader.OPEN_QUEST_TRACKER, OpenQuestTrackerMessageComposer);
this._composers.set(OutgoingHeader.REDEEM_COMMUNITY_GOAL_PRIZE, RedeemCommunityGoalPrizeMessageComposer);
this._composers.set(OutgoingHeader.REJECT_QUEST, RejectQuestMessageComposer);
this._composers.set(OutgoingHeader.START_CAMPAIGN, StartCampaignMessageComposer);
// CRAFTING
this._composers.set(OutgoingHeader.CRAFT, CraftComposer);
this._composers.set(OutgoingHeader.CRAFT_SECRET, CraftSecretComposer);
this._composers.set(OutgoingHeader.GET_CRAFTABLE_PRODUCTS, GetCraftableProductsComposer);
this._composers.set(OutgoingHeader.GET_CRAFTING_RECIPE, GetCraftingRecipeComposer);
this._composers.set(OutgoingHeader.GET_CRAFTING_RECIPES_AVAILABLE, GetCraftingRecipesAvailableComposer);
}
public get events(): Map<number, Function>

View File

@ -2,9 +2,12 @@ export class IncomingHeader
{
public static ACHIEVEMENT_LIST = 305;
public static AUTHENTICATED = 2491;
public static AUTHENTICATION = -1;
public static AVAILABILITY_STATUS = 2033;
public static BUILDERS_CLUB_EXPIRED = 1452;
public static CAMERA_PRICE = 3878;
public static CAMERA_PUBLISHED = 2057;
public static CAMERA_PURCHASE_SUCCESSFUL = 2783;
public static CAMERA_THUMBNAIL_SAVED = 3595;
public static CAMERA_URL = 3696;
public static CATALOG_CLUB = 2405;
@ -138,7 +141,7 @@ export class IncomingHeader
public static ROOM_THICKNESS = 3547;
public static SECURITY_DEBUG = 3284;
public static SECURITY_MACHINE = 1488;
public static SECURITY_UNKNOWN2 = 2833;
public static MYSTERY_BOX_KEYS = 2833;
public static TRADE_ACCEPTED = 2568;
public static TRADE_CLOSED = 1373;
public static TRADE_COMPLETED = 1001;
@ -247,4 +250,24 @@ export class IncomingHeader
public static MARKETPLACE_AFTER_ORDER_STATUS = 2032;
public static CATALOG_RECEIVE_PET_BREEDS = 3331;
public static CATALOG_APPROVE_NAME_RESULT = 1503;
public static OBJECTS_DATA_UPDATE = 1453;
public static PET_EXPERIENCE = 2156;
public static COMMUNITY_GOAL_VOTE_EVENT = 1435;
public static PROMO_ARTICLES = 286;
public static COMMUNITY_GOAL_EARNED_PRIZES = 3319;
public static COMMUNITY_GOAL_PROGRESS = 2525;
public static CONCURRENT_USERS_GOAL_PROGRESS = 2737;
public static QUEST_DAILY = 1878;
public static QUEST_CANCELLED = 3027;
public static QUEST_COMPLETED = 949;
public static COMMUNITY_GOAL_HALL_OF_FAME = 3005;
public static EPIC_POPUP = 3945;
public static SEASONAL_QUESTS = 1122;
public static QUESTS = 3625;
public static QUEST = 230;
public static BONUS_RARE_INFO = 1533;
public static CRAFTABLE_PRODUCTS = 1000;
public static CRAFTING_RECIPE = 2774;
public static CRAFTING_RECIPES_AVAILABLE = 2124;
public static CRAFTING_RESULT = 618;
}

Some files were not shown because too many files have changed in this diff Show More