You've already forked Nitro_Render_V3
mirror of
https://github.com/duckietm/Nitro_Render_V3.git
synced 2026-06-19 23:16:20 +00:00
Move to Renderer V2
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
export interface IAvatarAssetDownloadLibrary
|
||||
{
|
||||
downloadAsset(): Promise<void>;
|
||||
readonly libraryName: string;
|
||||
readonly isLoaded: boolean;
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export interface IAvatarEffectListener
|
||||
{
|
||||
resetEffect(effect: number): void;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
export interface IAvatarFigureContainer
|
||||
{
|
||||
getPartTypeIds(): IterableIterator<string>;
|
||||
hasPartType(_arg_1: string): boolean;
|
||||
getPartSetId(_arg_1: string): number;
|
||||
getPartColorIds(_arg_1: string): number[];
|
||||
updatePart(_arg_1: string, _arg_2: number, _arg_3: number[]): void;
|
||||
removePart(_arg_1: string): void;
|
||||
getFigureString(): string;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
import { Container, Texture } from 'pixi.js';
|
||||
import { IAvatarFigureContainer } from './IAvatarFigureContainer';
|
||||
import { IAnimationLayerData, ISpriteDataContainer } from './animation';
|
||||
import { IPartColor } from './structure';
|
||||
|
||||
export interface IAvatarImage
|
||||
{
|
||||
dispose(): void;
|
||||
setDirection(_arg_1: string, _arg_2: number): void;
|
||||
setDirectionAngle(_arg_1: string, _arg_2: number): void;
|
||||
updateAnimationByFrames(_arg_1?: number): void;
|
||||
getScale(): string;
|
||||
getSprites(): ISpriteDataContainer[];
|
||||
getLayerData(_arg_1: ISpriteDataContainer): IAnimationLayerData;
|
||||
processAsTexture(setType: string, hightlight: boolean, texture?: Texture): Texture;
|
||||
processAsImageUrl(setType: string): string;
|
||||
processAsContainer(setType: string): Container;
|
||||
getDirection(): number;
|
||||
getFigure(): IAvatarFigureContainer;
|
||||
getPartColor(_arg_1: string): IPartColor;
|
||||
isAnimating(): boolean;
|
||||
getCanvasOffsets(): number[];
|
||||
initActionAppends(): void;
|
||||
endActionAppends(): void;
|
||||
appendAction(_arg_1: string, ..._args: any[]): boolean;
|
||||
isPlaceholder(): boolean;
|
||||
animationHasResetOnToggle: boolean;
|
||||
resetAnimationFrameCounter(): void;
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import { IDisposable } from '../../common';
|
||||
|
||||
export interface IAvatarImageListener extends IDisposable
|
||||
{
|
||||
resetFigure(figure: string): void;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import { IAssetManager, IGraphicAsset } from '../../asset';
|
||||
import { IAvatarEffectListener } from './IAvatarEffectListener';
|
||||
import { IAvatarFigureContainer } from './IAvatarFigureContainer';
|
||||
import { IAvatarImage } from './IAvatarImage';
|
||||
import { IAvatarImageListener } from './IAvatarImageListener';
|
||||
import { IStructureData } from './structure';
|
||||
|
||||
export interface IAvatarRenderManager
|
||||
{
|
||||
init(): Promise<void>;
|
||||
createFigureContainer(figure: string): IAvatarFigureContainer;
|
||||
isFigureContainerReady(container: IAvatarFigureContainer): boolean;
|
||||
createAvatarImage(figure: string, size: string, gender: string, listener?: IAvatarImageListener, effectListener?: IAvatarEffectListener): IAvatarImage;
|
||||
downloadAvatarFigure(container: IAvatarFigureContainer, listener: IAvatarImageListener): void;
|
||||
getFigureClubLevel(container: IAvatarFigureContainer, gender: string, searchParts?: string[]): number;
|
||||
isValidFigureSetForGender(setId: number, gender: string): boolean;
|
||||
getFigureStringWithFigureIds(k: string, _arg_2: string, _arg_3: number[]): string;
|
||||
getMandatoryAvatarPartSetIds(k: string, _arg_2: number): string[];
|
||||
getAssetByName(name: string): IGraphicAsset;
|
||||
assets: IAssetManager;
|
||||
structureData: IStructureData;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { IAssetAnimation } from '../../asset';
|
||||
|
||||
export interface IEffectAssetDownloadLibrary
|
||||
{
|
||||
downloadAsset(): void;
|
||||
readonly libraryName: string;
|
||||
readonly animation: { [index: string]: IAssetAnimation };
|
||||
readonly isLoaded: boolean;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export interface IOutfit
|
||||
{
|
||||
figure: string;
|
||||
gender: string;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
export interface IActionDefinition
|
||||
{
|
||||
id: string;
|
||||
state: string;
|
||||
precedence: number;
|
||||
activePartSet: string;
|
||||
isMain: boolean;
|
||||
isDefault: boolean;
|
||||
assetPartDefinition: string;
|
||||
lay: string;
|
||||
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[];
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import { IActionDefinition } from './IActionDefinition';
|
||||
|
||||
export interface IActiveActionData
|
||||
{
|
||||
id: string;
|
||||
actionType: string;
|
||||
actionParameter: string;
|
||||
startFrame: number;
|
||||
definition: IActionDefinition;
|
||||
overridingAction: string;
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
export * from './IActionDefinition';
|
||||
export * from './IActiveActionData';
|
||||
@@ -0,0 +1,11 @@
|
||||
export interface IAnimation
|
||||
{
|
||||
hasAvatarData(): boolean;
|
||||
hasDirectionData(): boolean;
|
||||
hasAddData(): boolean;
|
||||
id: string;
|
||||
spriteData: any;
|
||||
removeData: any;
|
||||
addData: any;
|
||||
resetOnToggle: boolean;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { IActiveActionData } from '../actions';
|
||||
|
||||
export interface IAnimationLayerData
|
||||
{
|
||||
id: string;
|
||||
action: IActiveActionData;
|
||||
animationFrame: number;
|
||||
dx: number;
|
||||
dy: number;
|
||||
dz: number;
|
||||
dd: number;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { IAnimation } from './IAnimation';
|
||||
import { IAnimationLayerData } from './IAnimationLayerData';
|
||||
|
||||
export interface IAnimationManager
|
||||
{
|
||||
animations: Map<any, any>;
|
||||
getAnimation(_arg_1: string): IAnimation;
|
||||
getLayerData(_arg_1: string, _arg_2: number, _arg_3: string): IAnimationLayerData;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { Filter } from 'pixi.js';
|
||||
|
||||
export interface IAvatarDataContainer
|
||||
{
|
||||
ink: number;
|
||||
colorTransform: Filter;
|
||||
paletteIsGrayscale: boolean;
|
||||
reds: number[];
|
||||
greens: number[];
|
||||
blues: number[];
|
||||
alphas: number[];
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import { IAnimation } from './IAnimation';
|
||||
|
||||
export interface ISpriteDataContainer
|
||||
{
|
||||
animation: IAnimation;
|
||||
id: string;
|
||||
ink: number;
|
||||
member: string;
|
||||
hasDirections: boolean;
|
||||
hasStaticY: boolean;
|
||||
getDirectionOffsetX(_arg_1: number): number;
|
||||
getDirectionOffsetY(_arg_1: number): number;
|
||||
getDirectionOffsetZ(_arg_1: number): number;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export * from './IAnimation';
|
||||
export * from './IAnimationLayerData';
|
||||
export * from './IAnimationManager';
|
||||
export * from './IAvatarDataContainer';
|
||||
export * from './ISpriteDataContainer';
|
||||
@@ -0,0 +1,127 @@
|
||||
export class AvatarAction
|
||||
{
|
||||
public static CARRY_OBJECT = 'cri';
|
||||
public static DANCE = 'dance';
|
||||
public static EFFECT = 'fx';
|
||||
public static EXPRESSION = 'expression';
|
||||
public static EXPRESSION_BLOW_A_KISS = 'blow';
|
||||
public static EXPRESSION_CRY = 'cry';
|
||||
public static EXPRESSION_IDLE = 'idle';
|
||||
public static EXPRESSION_LAUGH = 'laugh';
|
||||
public static EXPRESSION_RESPECT = 'respect';
|
||||
public static EXPRESSION_RIDE_JUMP = 'ridejump';
|
||||
public static EXPRESSION_SNOWBOARD_OLLIE = 'sbollie';
|
||||
public static EXPRESSION_SNOWBORD_360 = 'sb360';
|
||||
public static EXPRESSION_WAVE = 'wave';
|
||||
public static GESTURE = 'gest';
|
||||
public static GESTURE_AGGRAVATED = 'agr';
|
||||
public static GESTURE_SAD = 'sad';
|
||||
public static GESTURE_SMILE = 'sml';
|
||||
public static GESTURE_SURPRISED = 'srp';
|
||||
public static GUIDE_STATUS = 'guide';
|
||||
public static MUTED = 'muted';
|
||||
public static PET_GESTURE_BLINK = 'eyb';
|
||||
public static PET_GESTURE_CRAZY = 'crz';
|
||||
public static PET_GESTURE_JOY = 'joy';
|
||||
public static PET_GESTURE_MISERABLE = 'mis';
|
||||
public static PET_GESTURE_PUZZLED = 'puz';
|
||||
public static PET_GESTURE_TONGUE = 'tng';
|
||||
public static PLAYING_GAME = 'playing_game';
|
||||
public static POSTURE = 'posture';
|
||||
public static POSTURE_FLOAT = 'float';
|
||||
public static POSTURE_LAY = 'lay';
|
||||
public static POSTURE_SIT = 'sit';
|
||||
public static POSTURE_STAND = 'std';
|
||||
public static POSTURE_SWIM = 'swim';
|
||||
public static POSTURE_WALK = 'mv';
|
||||
public static SIGN = 'sign';
|
||||
public static SLEEP = 'sleep';
|
||||
public static SNOWWAR_DIE_BACK = 'swdieback';
|
||||
public static SNOWWAR_DIE_FRONT = 'swdiefront';
|
||||
public static SNOWWAR_PICK = 'swpick';
|
||||
public static SNOWWAR_RUN = 'swrun';
|
||||
public static SNOWWAR_THROW = 'swthrow';
|
||||
public static TALK = 'talk';
|
||||
public static BLINK = 'blink';
|
||||
public static TYPING = 'typing';
|
||||
public static USE_OBJECT = 'usei';
|
||||
public static VOTE = 'vote';
|
||||
|
||||
public static GESTURE_MAP = [ '', AvatarAction.GESTURE_SMILE, AvatarAction.GESTURE_AGGRAVATED, AvatarAction.GESTURE_SURPRISED, AvatarAction.GESTURE_SAD, AvatarAction.PET_GESTURE_JOY, AvatarAction.PET_GESTURE_CRAZY, AvatarAction.PET_GESTURE_TONGUE, AvatarAction.PET_GESTURE_BLINK, AvatarAction.PET_GESTURE_MISERABLE, AvatarAction.PET_GESTURE_PUZZLED ];
|
||||
|
||||
public static EXPRESSION_MAP = [ '', AvatarAction.EXPRESSION_WAVE, AvatarAction.EXPRESSION_BLOW_A_KISS, AvatarAction.EXPRESSION_LAUGH, AvatarAction.EXPRESSION_CRY, AvatarAction.EXPRESSION_IDLE, AvatarAction.DANCE, AvatarAction.EXPRESSION_RESPECT, AvatarAction.EXPRESSION_SNOWBOARD_OLLIE, AvatarAction.EXPRESSION_SNOWBORD_360, AvatarAction.EXPRESSION_RIDE_JUMP ];
|
||||
|
||||
public static getExpressionTimeout(expressionId: number): number
|
||||
{
|
||||
expressionId = parseInt(expressionId as any);
|
||||
|
||||
switch(expressionId)
|
||||
{
|
||||
case 1:
|
||||
return 5000;
|
||||
case 2:
|
||||
return 1400;
|
||||
case 3:
|
||||
return 2000;
|
||||
case 4:
|
||||
return 2000;
|
||||
case 5:
|
||||
return 0;
|
||||
case 6:
|
||||
return 700;
|
||||
case 7:
|
||||
return 2000;
|
||||
case 8:
|
||||
return 1500;
|
||||
case 9:
|
||||
return 1500;
|
||||
case 10:
|
||||
return 1500;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public static getExpressionId(expression: string): number
|
||||
{
|
||||
return AvatarAction.EXPRESSION_MAP.indexOf(expression);
|
||||
}
|
||||
|
||||
public static getExpression(expressionId: number): string
|
||||
{
|
||||
if(expressionId > AvatarAction.EXPRESSION_MAP.length) return null;
|
||||
|
||||
return AvatarAction.EXPRESSION_MAP[expressionId];
|
||||
}
|
||||
|
||||
public static getGestureId(gesture: string): number
|
||||
{
|
||||
return AvatarAction.GESTURE_MAP.indexOf(gesture);
|
||||
}
|
||||
|
||||
public static getGesture(gestureId: number): string
|
||||
{
|
||||
if(gestureId > AvatarAction.GESTURE_MAP.length) return null;
|
||||
|
||||
return AvatarAction.GESTURE_MAP[gestureId];
|
||||
}
|
||||
|
||||
public static idToAvatarActionState(id: string): string
|
||||
{
|
||||
if(id === 'Lay') return 'lay';
|
||||
if(id === 'Float') return 'float';
|
||||
if(id === 'Swim') return 'swim';
|
||||
if(id === 'Sit') return 'sit';
|
||||
if(id === 'Respect') return 'respect';
|
||||
if(id === 'Wave') return 'wave';
|
||||
if(id === 'Idle') return 'idle';
|
||||
if(id === 'Dance') return 'dance';
|
||||
if(id === 'UseItem') return 'usei';
|
||||
if(id === 'CarryItem') return 'cri';
|
||||
if(id === 'Talk') return 'talk';
|
||||
if(id === 'Sleep') return 'Sleep';
|
||||
if(id === 'Move') return 'mv';
|
||||
|
||||
return 'std';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
export class AvatarDirectionAngle
|
||||
{
|
||||
public static DIRECTION_TO_ANGLE: number[] = [45, 90, 135, 180, 225, 270, 315, 0];
|
||||
public static DIRECTION_IS_FLIPPED: boolean[] = [false, false, false, false, true, true, true, false];
|
||||
public static MIN_DIRECTION: number = 0;
|
||||
public static MAX_DIRECTION: number = 7;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
export class AvatarEditorFigureCategory
|
||||
{
|
||||
public static GENERIC: string = 'hd';
|
||||
public static HEAD: string = 'head';
|
||||
public static TORSO: string = 'torso';
|
||||
public static LEGS: string = 'legs';
|
||||
public static HOTLOOKS: string = 'hotlooks';
|
||||
public static WARDROBE: string = 'wardrobe';
|
||||
public static EFFECTS: string = 'effects';
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
export class AvatarEditorInstanceId
|
||||
{
|
||||
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;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export class AvatarEditorSideCategory
|
||||
{
|
||||
public static NOTHING: string = 'nothing';
|
||||
public static WARDROBE: string = 'wardrobe';
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
export class AvatarFigurePartType
|
||||
{
|
||||
public static BODY: string = 'bd';
|
||||
public static SHOES: string = 'sh';
|
||||
public static LEGS: string = 'lg';
|
||||
public static CHEST: string = 'ch';
|
||||
public static WAIST_ACCESSORY: string = 'wa';
|
||||
public static CHEST_ACCESSORY: string = 'ca';
|
||||
public static HEAD: string = 'hd';
|
||||
public static HAIR: string = 'hr';
|
||||
public static FACE_ACCESSORY: string = 'fa';
|
||||
public static EYE_ACCESSORY: string = 'ea';
|
||||
public static HEAD_ACCESSORY: string = 'ha';
|
||||
public static HEAD_ACCESSORY_EXTRA: string = 'he';
|
||||
public static COAT_CHEST: string = 'cc';
|
||||
public static CHEST_PRINT: string = 'cp';
|
||||
public static LEFT_HAND_ITEM: string = 'li';
|
||||
public static LEFT_HAND: string = 'lh';
|
||||
public static LEFT_SLEEVE: string = 'ls';
|
||||
public static RIGHT_HAND: string = 'rh';
|
||||
public static RIGHT_SLEEVE: string = 'rs';
|
||||
public static FACE: string = 'fc';
|
||||
public static EYES: string = 'ey';
|
||||
public static HAIR_BIG: string = 'hrb';
|
||||
public static RIGHT_HAND_ITEM: string = 'ri';
|
||||
public static LEFT_COAT_SLEEVE: string = 'lc';
|
||||
public static RIGHT_COAT_SLEEVE: string = 'rc';
|
||||
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 ];
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
export class AvatarGuideStatus
|
||||
{
|
||||
public static NONE: number = 0;
|
||||
public static GUIDE: number = 1;
|
||||
public static REQUESTER: number = 2;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export class AvatarScaleType
|
||||
{
|
||||
public static LARGE: string = 'h';
|
||||
public static SMALL: string = 'sh';
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
export class AvatarSetType
|
||||
{
|
||||
public static FULL: string = 'full';
|
||||
public static HEAD: string = 'head';
|
||||
public static BODY: string = 'body';
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
export class GeometryType
|
||||
{
|
||||
public static VERTICAL: string = 'vertical';
|
||||
public static SITTING: string = 'sitting';
|
||||
public static HORIZONTAL: string = 'horizontal';
|
||||
public static SWIM: string = 'swim';
|
||||
public static SNOWWARS_HORIZONTAL: string = 'swhorizontal';
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
export class RenderMode
|
||||
{
|
||||
public static TOOL: string = 'tool';
|
||||
public static COMPONENT: string = 'component';
|
||||
public static ONLINE_TOOL: string = 'online_tool';
|
||||
public static LOCAL_ONLY: string = 'local_only';
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
export * from './AvatarAction';
|
||||
export * from './AvatarDirectionAngle';
|
||||
export * from './AvatarEditorFigureCategory';
|
||||
export * from './AvatarEditorInstanceId';
|
||||
export * from './AvatarEditorSideCategory';
|
||||
export * from './AvatarFigurePartType';
|
||||
export * from './AvatarGuideStatus';
|
||||
export * from './AvatarScaleType';
|
||||
export * from './AvatarSetType';
|
||||
export * from './GeometryType';
|
||||
export * from './RenderMode';
|
||||
@@ -0,0 +1,8 @@
|
||||
import { IFigureDataPalette } from './IFigureDataPalette';
|
||||
import { IFigureDataSetType } from './IFigureDataSetType';
|
||||
|
||||
export interface IFigureData
|
||||
{
|
||||
palettes?: IFigureDataPalette[];
|
||||
setTypes?: IFigureDataSetType[];
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
export interface IFigureDataColor
|
||||
{
|
||||
id?: number;
|
||||
index?: number;
|
||||
club?: number;
|
||||
selectable?: boolean;
|
||||
hexCode?: string;
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export interface IFigureDataHiddenLayer
|
||||
{
|
||||
partType?: string;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import { IFigureDataColor } from './IFigureDataColor';
|
||||
|
||||
export interface IFigureDataPalette
|
||||
{
|
||||
id?: number;
|
||||
colors?: IFigureDataColor[];
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
export interface IFigureDataPart
|
||||
{
|
||||
id?: number;
|
||||
type?: string;
|
||||
colorable?: boolean;
|
||||
index?: number;
|
||||
colorindex?: number;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import { IFigureDataHiddenLayer } from './IFigureDataHiddenLayer';
|
||||
import { IFigureDataPart } from './IFigureDataPart';
|
||||
|
||||
export interface IFigureDataSet
|
||||
{
|
||||
id?: number;
|
||||
gender?: string;
|
||||
club?: number;
|
||||
colorable?: boolean;
|
||||
selectable?: boolean;
|
||||
preselectable?: boolean;
|
||||
sellable?: boolean;
|
||||
parts?: IFigureDataPart[];
|
||||
hiddenLayers?: IFigureDataHiddenLayer[];
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { IFigureDataSet } from './IFigureDataSet';
|
||||
|
||||
export interface IFigureDataSetType
|
||||
{
|
||||
type?: string;
|
||||
paletteId?: number;
|
||||
mandatory_m_0?: boolean;
|
||||
mandatory_f_0?: boolean;
|
||||
mandatory_m_1?: boolean;
|
||||
mandatory_f_1?: boolean;
|
||||
sets?: IFigureDataSet[];
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
export * from './IFigureData';
|
||||
export * from './IFigureDataColor';
|
||||
export * from './IFigureDataHiddenLayer';
|
||||
export * from './IFigureDataPalette';
|
||||
export * from './IFigureDataPart';
|
||||
export * from './IFigureDataSet';
|
||||
export * from './IFigureDataSetType';
|
||||
@@ -0,0 +1,13 @@
|
||||
export * from './IAvatarAssetDownloadLibrary';
|
||||
export * from './IAvatarEffectListener';
|
||||
export * from './IAvatarFigureContainer';
|
||||
export * from './IAvatarImage';
|
||||
export * from './IAvatarImageListener';
|
||||
export * from './IAvatarRenderManager';
|
||||
export * from './IEffectAssetDownloadLibrary';
|
||||
export * from './IOutfit';
|
||||
export * from './actions';
|
||||
export * from './animation';
|
||||
export * from './enum';
|
||||
export * from './figuredata';
|
||||
export * from './structure';
|
||||
@@ -0,0 +1,9 @@
|
||||
export interface IFigurePart
|
||||
{
|
||||
id: number;
|
||||
type: string;
|
||||
breed: number;
|
||||
index: number;
|
||||
colorLayerIndex: number;
|
||||
paletteMap: number;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import { IFigurePart } from './IFigurePart';
|
||||
|
||||
export interface IFigurePartSet
|
||||
{
|
||||
getPart(_arg_1: string, _arg_2: number): IFigurePart;
|
||||
id: number;
|
||||
type: string;
|
||||
gender: string;
|
||||
clubLevel: number;
|
||||
isColorable: boolean;
|
||||
isSelectable: boolean;
|
||||
parts: IFigurePart[];
|
||||
hiddenLayers: string[];
|
||||
isPreSelectable: boolean;
|
||||
isSellable: boolean;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import { IFigureData } from '../figuredata';
|
||||
|
||||
export interface IFigureSetData
|
||||
{
|
||||
parse(data: any): boolean;
|
||||
appendJSON(data: IFigureData): boolean;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { IAdvancedMap } from '../../../utils';
|
||||
import { IPartColor } from './IPartColor';
|
||||
|
||||
export interface IPalette
|
||||
{
|
||||
getColor(id: number): IPartColor;
|
||||
id: number;
|
||||
colors: IAdvancedMap<string, IPartColor>;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
export interface IPartColor
|
||||
{
|
||||
id: number;
|
||||
index: number;
|
||||
clubLevel: number;
|
||||
isSelectable: boolean;
|
||||
rgb: number;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { IAdvancedMap } from '../../../utils';
|
||||
import { IFigurePartSet } from './IFigurePartSet';
|
||||
|
||||
export interface ISetType
|
||||
{
|
||||
getPartSet(_arg_1: number): IFigurePartSet;
|
||||
isMandatory(_arg_1: string, _arg_2: number): boolean;
|
||||
optionalFromClubLevel(_arg_1: string): number;
|
||||
type: string;
|
||||
paletteID: number;
|
||||
partSets: IAdvancedMap<string, IFigurePartSet>;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { IFigurePartSet } from './IFigurePartSet';
|
||||
import { IPalette } from './IPalette';
|
||||
import { ISetType } from './ISetType';
|
||||
|
||||
export interface IStructureData
|
||||
{
|
||||
parse(data: any): boolean;
|
||||
appendJSON(k: any): boolean;
|
||||
getSetType(_arg_1: string): ISetType;
|
||||
getPalette(_arg_1: number): IPalette;
|
||||
getFigurePartSet(_arg_1: number): IFigurePartSet;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
export * from './IFigurePart';
|
||||
export * from './IFigurePartSet';
|
||||
export * from './IFigureSetData';
|
||||
export * from './IPalette';
|
||||
export * from './IPartColor';
|
||||
export * from './ISetType';
|
||||
export * from './IStructureData';
|
||||
@@ -0,0 +1,10 @@
|
||||
import { BLEND_MODES, ColorMatrix, Texture } from 'pixi.js';
|
||||
|
||||
export interface IRoomCameraWidgetEffect
|
||||
{
|
||||
name: string;
|
||||
minLevel: number;
|
||||
texture: Texture;
|
||||
colorMatrix: ColorMatrix;
|
||||
blendMode: BLEND_MODES;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import { Texture } from 'pixi.js';
|
||||
import { IRoomCameraWidgetEffect } from './IRoomCameraWidgetEffect';
|
||||
import { IRoomCameraWidgetSelectedEffect } from './IRoomCameraWidgetSelectedEffect';
|
||||
|
||||
export interface IRoomCameraWidgetManager
|
||||
{
|
||||
init(): Promise<void>;
|
||||
applyEffects(texture: Texture, selectedEffects: IRoomCameraWidgetSelectedEffect[], isZoomed: boolean): Promise<HTMLImageElement>;
|
||||
effects: Map<string, IRoomCameraWidgetEffect>;
|
||||
isLoaded: boolean;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import { IRoomCameraWidgetEffect } from './IRoomCameraWidgetEffect';
|
||||
|
||||
export interface IRoomCameraWidgetSelectedEffect
|
||||
{
|
||||
effect: IRoomCameraWidgetEffect;
|
||||
alpha: number;
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export * from './IRoomCameraWidgetEffect';
|
||||
export * from './IRoomCameraWidgetManager';
|
||||
export * from './IRoomCameraWidgetSelectedEffect';
|
||||
@@ -0,0 +1,10 @@
|
||||
export class RelationshipStatusEnum
|
||||
{
|
||||
public static NONE: number = 0;
|
||||
public static HEART: number = 1;
|
||||
public static SMILE: number = 2;
|
||||
public static BOBBA: number = 3;
|
||||
|
||||
public static RELATIONSHIP_TYPES = [ 0, 1, 2, 3 ];
|
||||
public static RELATIONSHIP_NAMES: string[] = ['None', 'Heart', 'Smile', 'Bobba'];
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
export class ToolbarIconEnum
|
||||
{
|
||||
public static HOTEL_VIEW: string = 'hotel_view';
|
||||
public static HOME_ROOM: string = 'home_room';
|
||||
public static NAVIGATOR: string = 'navigator';
|
||||
public static CATALOG: string = 'catalog';
|
||||
public static INVENTORY: string = 'inventory';
|
||||
public static ME_MENU: string = 'me_menu';
|
||||
public static FRIEND_LIST: string = 'friendlist';
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
export * from './RelationshipStatusEnum';
|
||||
export * from './ToolbarIconEnum';
|
||||
@@ -0,0 +1,18 @@
|
||||
export * from './avatar';
|
||||
export * from './avatar/actions';
|
||||
export * from './avatar/animation';
|
||||
export * from './avatar/enum';
|
||||
export * from './avatar/figuredata';
|
||||
export * from './avatar/structure';
|
||||
export * from './camera';
|
||||
export * from './enums';
|
||||
export * from './localization';
|
||||
export * from './room';
|
||||
export * from './room/enums';
|
||||
export * from './room/object';
|
||||
export * from './room/object/data';
|
||||
export * from './room/object/data/type';
|
||||
export * from './room/utils';
|
||||
export * from './session';
|
||||
export * from './session/enum';
|
||||
export * from './sound';
|
||||
@@ -0,0 +1,16 @@
|
||||
export interface ILocalizationManager
|
||||
{
|
||||
init(): Promise<void>;
|
||||
getRomanNumeral(number: number): string;
|
||||
getPreviousLevelBadgeId(badgeName: string): string;
|
||||
hasValue(key: string): boolean;
|
||||
getValue(key: string, doParams?: boolean): string;
|
||||
getValueWithParameter(key: string, parameter: string, replacement: string): string;
|
||||
getValueWithParameters(key: string, parameters: string[], replacements: string[]): string;
|
||||
setValue(key: string, value: string): void;
|
||||
registerParameter(key: string, parameter: string, value: string): void;
|
||||
getBadgeName(key: string): string;
|
||||
getBadgeDesc(key: string): string;
|
||||
getBadgePointLimit(badge: string): number;
|
||||
setBadgePointLimit(badge: string, point: number): void;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export * from './ILocalizationManager';
|
||||
@@ -0,0 +1,7 @@
|
||||
import { Texture } from 'pixi.js';
|
||||
|
||||
export interface IGetImageListener
|
||||
{
|
||||
imageReady(id: number, texture: Texture, image?: HTMLImageElement): void;
|
||||
imageFailed(id: number): void;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { Texture } from 'pixi.js';
|
||||
|
||||
export interface IImageResult
|
||||
{
|
||||
id: number;
|
||||
data: Texture;
|
||||
image: HTMLImageElement;
|
||||
getImage(): Promise<HTMLImageElement>;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
export interface IPetColorResult
|
||||
{
|
||||
readonly primaryColor: number;
|
||||
readonly secondaryColor: number;
|
||||
readonly breed: number;
|
||||
readonly tag: string;
|
||||
readonly id: string;
|
||||
readonly isMaster: boolean;
|
||||
readonly layerTags: string[];
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export interface IRoomContentListener
|
||||
{
|
||||
onRoomContentLoaded(id: number, assetName: string, sucess: boolean): void;
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
import { Texture } from 'pixi.js';
|
||||
import { IGraphicAssetCollection } from '../../asset';
|
||||
import { IEventDispatcher } from '../../common';
|
||||
import { IRoomObject } from '../../room';
|
||||
import { IFurnitureData } from '../session';
|
||||
import { IPetColorResult } from './IPetColorResult';
|
||||
import { IRoomContentListener } from './IRoomContentListener';
|
||||
|
||||
export interface IRoomContentLoader
|
||||
{
|
||||
init(): Promise<void>;
|
||||
processFurnitureData(furnitureData: IFurnitureData[]): void;
|
||||
downloadAsset(type: string): Promise<void>;
|
||||
isLoaderType(type: string): boolean;
|
||||
getCollection(name: string): IGraphicAssetCollection;
|
||||
getPlaceholderName(type: string): string;
|
||||
getCategoryForType(type: string): number;
|
||||
setRoomObjectRoomId(object: IRoomObject, roomId: string): void;
|
||||
getFurnitureFloorNameForTypeId(typeId: number): string;
|
||||
getFurnitureWallNameForTypeId(typeId: number, extra?: string): string;
|
||||
getFurnitureFloorColorIndex(typeId: number): number;
|
||||
getFurnitureWallColorIndex(typeId: number): number;
|
||||
getImage(name: string): HTMLImageElement;
|
||||
getAssetIconUrl(type: string, colorIndex: string): string;
|
||||
addAssetToCollection(collectionName: string, assetName: string, texture: Texture, override?: boolean): boolean;
|
||||
getPetNameForType(type: number): string;
|
||||
downloadImage(id: number, type: string, param: string, events?: IEventDispatcher): boolean;
|
||||
getRoomObjectAdUrl(type: string): string;
|
||||
getPetColorResult(petIndex: number, paletteIndex: number): IPetColorResult;
|
||||
getPetColorResultsForTag(petIndex: number, tagName: string): IPetColorResult[];
|
||||
setIconListener(listener: IRoomContentListener): void;
|
||||
pets: { [index: string]: number };
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
import { IRoomInstance, IRoomObjectController } from '../../room';
|
||||
import { IVector3D } from '../../utils';
|
||||
import { IObjectData, IRoomMapData } from './object';
|
||||
import { IFurnitureStackingHeightMap, ILegacyWallGeometry } from './utils';
|
||||
|
||||
export interface IRoomCreator
|
||||
{
|
||||
destroyRoom(id: number): void;
|
||||
getRoomInstance(roomId: number): IRoomInstance;
|
||||
updateRoomInstancePlaneVisibility(roomId: number, wallVisible: boolean, floorVisible?: boolean): boolean;
|
||||
updateRoomInstancePlaneThickness(roomId: number, wallThickness: number, floorThickness: number): boolean;
|
||||
updateRoomInstancePlaneType(roomId: number, floorType?: string, wallType?: string, landscapeType?: string, _arg_5?: boolean): boolean;
|
||||
removeRoomInstance(roomId: number): void;
|
||||
createRoomInstance(roomId: number, roomMap: IRoomMapData): void;
|
||||
setRoomSessionOwnUser(roomId: number, objectId: number): void;
|
||||
setRoomInstanceModelName(roomId: number, name: string): void;
|
||||
getFurnitureStackingHeightMap(roomId: number): IFurnitureStackingHeightMap;
|
||||
setFurnitureStackingHeightMap(roomId: number, heightMap: IFurnitureStackingHeightMap): void;
|
||||
getLegacyWallGeometry(roomId: number): ILegacyWallGeometry;
|
||||
getRoomObject(roomId: number, objectId: number, category: number): IRoomObjectController;
|
||||
getRoomObjectByIndex(roomId: number, index: number, category: number): IRoomObjectController;
|
||||
getRoomObjectCursor(roomId: number): IRoomObjectController;
|
||||
getRoomObjectUser(roomId: number, objectId: number): IRoomObjectController;
|
||||
removeRoomObjectUser(roomId: number, objectId: number): void;
|
||||
getRoomObjectFloor(roomId: number, objectId: number): IRoomObjectController;
|
||||
addFurnitureFloor(roomId: number, id: number, typeId: number, location: IVector3D, direction: IVector3D, state: number, objectData: IObjectData, extra?: number, expires?: number, usagePolicy?: number, ownerId?: number, ownerName?: string, synchronized?: boolean, realRoomObject?: boolean, sizeZ?: number): boolean;
|
||||
addFurnitureFloorByTypeName(roomId: number, id: number, typeName: string, location: IVector3D, direction: IVector3D, state: number, objectData: IObjectData, extra?: number, expires?: number, usagePolicy?: number, ownerId?: number, ownerName?: string, synchronized?: boolean, realRoomObject?: boolean, sizeZ?: number): boolean;
|
||||
addFurnitureWall(roomId: number, id: number, typeId: number, location: IVector3D, direction: IVector3D, state: number, extra: string, expires?: number, usagePolicy?: number, ownerId?: number, ownerName?: string, realRoomObject?: boolean): boolean;
|
||||
removeRoomObjectFloor(roomId: number, objectId: number, userId?: number, _arg_4?: boolean): void;
|
||||
removeRoomObjectWall(roomId: number, objectId: number, userId?: number): void;
|
||||
updateRoomObjectFloor(roomId: number, objectId: number, location: IVector3D, direction: IVector3D, state: number, data: IObjectData, extra?: number): boolean;
|
||||
updateRoomObjectWall(roomId: number, objectId: number, location: IVector3D, direction: IVector3D, state: number, extra?: string): boolean;
|
||||
updateRoomObjectWallItemData(roomId: number, objectId: number, data: string): boolean;
|
||||
updateRoomObjectFloorHeight(roomId: number, objectId: number, height: number): boolean;
|
||||
updateRoomObjectFloorExpiration(roomId: number, objectId: number, expires: number): boolean;
|
||||
updateRoomObjectWallExpiration(roomId: number, objectId: number, expires: number): boolean;
|
||||
rollRoomObjectFloor(roomId: number, objectId: number, location: IVector3D, targetLocation: IVector3D): void;
|
||||
addRoomObjectUser(roomId: number, objectId: number, location: IVector3D, direction: IVector3D, headDirection: number, type: number, figure: string): boolean;
|
||||
updateRoomObjectUserLocation(roomId: number, objectId: number, location: IVector3D, targetLocation: IVector3D, canStandUp?: boolean, baseY?: number, direction?: IVector3D, headDirection?: number): boolean;
|
||||
updateRoomObjectUserAction(roomId: number, objectId: number, action: string, value: number, parameter?: string): boolean;
|
||||
updateRoomObjectUserFigure(roomId: number, objectId: number, figure: string, gender?: string, subType?: string, isRiding?: boolean): boolean;
|
||||
updateRoomObjectUserFlatControl(roomId: number, objectId: number, level: string): boolean;
|
||||
updateRoomObjectUserEffect(roomId: number, objectId: number, effectId: number, delay?: number): boolean;
|
||||
updateRoomObjectUserGesture(roomId: number, objectId: number, gestureId: number): boolean;
|
||||
updateRoomObjectUserPetGesture(roomId: number, objectId: number, gesture: string): boolean;
|
||||
updateRoomObjectUserPosture(roomId: number, objectId: number, type: string, parameter?: string): boolean;
|
||||
updateRoomObjectUserOwn(roomId: number, objectId: number): void;
|
||||
getPetTypeId(figure: string): number;
|
||||
refreshTileObjectMap(k: number, _arg_2: string): void;
|
||||
setRoomEngineGameMode(roomId: number, isPlaying: boolean): void;
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
import { Container, Point, Rectangle, RenderTexture, Texture } from 'pixi.js';
|
||||
import { IRoomGeometry, IRoomManager, IRoomObject, IRoomObjectController, IRoomRenderingCanvas } from '../../room';
|
||||
import { IVector3D } from '../../utils';
|
||||
import { IPetCustomPart } from '../session';
|
||||
import { IGetImageListener } from './IGetImageListener';
|
||||
import { IImageResult } from './IImageResult';
|
||||
import { IPetColorResult } from './IPetColorResult';
|
||||
import { IRoomObjectEventManager } from './IRoomObjectEventManager';
|
||||
import { IObjectData, IRoomMapData } from './object';
|
||||
|
||||
export interface IRoomEngine
|
||||
{
|
||||
init(): Promise<void>;
|
||||
setActiveRoomId(roomId: number): void;
|
||||
createRoomInstance(roomId: number, roomMap: IRoomMapData): void;
|
||||
getRoomInstanceDisplay(roomId: number, id: number, width: number, height: number, scale: number): Container;
|
||||
setRoomInstanceRenderingCanvasScale(roomId: number, canvasId: number, scale: number, point?: Point, offsetPoint?: Point, override?: boolean, asDelta?: boolean): void;
|
||||
setRoomInstanceRenderingCanvasMask(roomId: number, canvasId: number, flag: boolean): void;
|
||||
getRoomInstanceRenderingCanvas(roomId: number, canvasId?: number): IRoomRenderingCanvas;
|
||||
getRoomInstanceRenderingCanvasOffset(roomId: number, canvasId?: number): Point;
|
||||
setRoomInstanceRenderingCanvasOffset(roomId: number, canvasId: number, point: Point): boolean;
|
||||
getRoomInstanceRenderingCanvasScale(roomId?: number, canvasId?: number): number;
|
||||
initializeRoomInstanceRenderingCanvas(roomId: number, canvasId: number, width: number, height: number): void;
|
||||
updateRoomInstancePlaneVisibility(roomId: number, wallVisible: boolean, floorVisible?: boolean): boolean;
|
||||
updateRoomInstancePlaneThickness(roomId: number, wallThickness: number, floorThickness: number): boolean;
|
||||
updateRoomInstancePlaneType(roomId: number, floorType?: string, wallType?: string, landscapeType?: string, _arg_5?: boolean): boolean;
|
||||
updateObjectRoomColor(k: number, _arg_2: number, _arg_3: number, _arg_4: boolean): boolean;
|
||||
getRoomInstanceGeometry(roomId: number, canvasId?: number): IRoomGeometry;
|
||||
getRoomInstanceVariable<T>(roomId: number, key: string): T;
|
||||
getTotalObjectsForManager(roomId: number, category: number): number;
|
||||
getRoomObject(roomId: number, objectId: number, category: number): IRoomObjectController;
|
||||
getRoomObjectByIndex(roomId: number, index: number, category: number): IRoomObjectController;
|
||||
removeRoomObjectFloor(roomId: number, objectId: number, userId?: number, _arg_4?: boolean): void;
|
||||
removeRoomObjectWall(roomId: number, objectId: number, userId?: number): void;
|
||||
removeRoomObjectUser(roomId: number, objectId: number): void;
|
||||
getRoomObjects(roomId: number, category: number): IRoomObject[];
|
||||
getRoomObjectCount(roomId: number, categoryId: number): number;
|
||||
getRoomObjectBoundingRectangle(roomId: number, objectId: number, category: number, canvasId: number): Rectangle;
|
||||
getRoomObjectScreenLocation(roomId: number, objectId: number, objectType: number, canvasId?: number): Point;
|
||||
getGenericRoomObjectImage(type: string, value: string, direction: IVector3D, scale: number, listener: IGetImageListener, bgColor?: number, extras?: string, objectData?: IObjectData, state?: number, frameCount?: number, posture?: string, originalId?: number): IImageResult;
|
||||
getFurnitureFloorIconUrl(typeId: number): string;
|
||||
getFurnitureFloorIcon(typeId: number, listener: IGetImageListener, extras?: string, objectData?: IObjectData): IImageResult;
|
||||
getFurnitureWallIconUrl(typeId: number, extra?: string): string;
|
||||
getFurnitureWallIcon(typeId: number, listener: IGetImageListener, extras?: string): IImageResult;
|
||||
updateRoomObjectWallLocation(roomId: number, objectId: number, location: IVector3D): boolean;
|
||||
addRoomObjectUser(roomId: number, objectId: number, location: IVector3D, direction: IVector3D, headDirection: number, type: number, figure: string): boolean;
|
||||
updateRoomObjectUserLocation(roomId: number, objectId: number, location: IVector3D, targetLocation: IVector3D, canStandUp?: boolean, baseY?: number, direction?: IVector3D, headDirection?: number): boolean;
|
||||
addFurnitureFloor(roomId: number, id: number, typeId: number, location: IVector3D, direction: IVector3D, state: number, objectData: IObjectData, extra?: number, expires?: number, usagePolicy?: number, ownerId?: number, ownerName?: string, synchronized?: boolean, realRoomObject?: boolean, sizeZ?: number): boolean;
|
||||
addFurnitureFloorByTypeName(roomId: number, id: number, typeName: string, location: IVector3D, direction: IVector3D, state: number, objectData: IObjectData, extra?: number, expires?: number, usagePolicy?: number, ownerId?: number, ownerName?: string, synchronized?: boolean, realRoomObject?: boolean, sizeZ?: number): boolean;
|
||||
addFurnitureWall(roomId: number, id: number, typeId: number, location: IVector3D, direction: IVector3D, state: number, extra: string, expires?: number, usagePolicy?: number, ownerId?: number, ownerName?: string, realRoomObject?: boolean): boolean;
|
||||
initalizeTemporaryObjectsByType(type: string, _arg_2: boolean): void;
|
||||
updateRoomObjectFloor(roomId: number, objectId: number, location: IVector3D, direction: IVector3D, state: number, data: IObjectData, extra?: number): boolean;
|
||||
updateRoomObjectWall(roomId: number, objectId: number, location: IVector3D, direction: IVector3D, state: number, extra?: string): boolean;
|
||||
updateRoomObjectUserAction(roomId: number, objectId: number, action: string, value: number, parameter?: string): boolean;
|
||||
updateRoomObjectUserFigure(roomId: number, objectId: number, figure: string, gender?: string, subType?: string, isRiding?: boolean): boolean;
|
||||
updateRoomObjectUserEffect(roomId: number, objectId: number, effectId: number, delay?: number): boolean;
|
||||
updateRoomObjectUserGesture(roomId: number, objectId: number, gestureId: number): boolean;
|
||||
updateRoomObjectUserPosture(roomId: number, objectId: number, type: string, parameter?: string): boolean;
|
||||
getFurnitureFloorImage(typeId: number, direction: IVector3D, scale: number, listener: IGetImageListener, bgColor?: number, extras?: string, state?: number, frameCount?: number, objectData?: IObjectData): IImageResult;
|
||||
getFurnitureWallImage(typeId: number, direction: IVector3D, scale: number, listener: IGetImageListener, bgColor?: number, extras?: string, state?: number, frameCount?: number): IImageResult;
|
||||
getRoomObjectImage(roomId: number, objectId: number, category: number, direction: IVector3D, scale: number, listener: IGetImageListener, bgColor?: number): IImageResult;
|
||||
getRoomObjectPetImage(typeId: number, paletteId: number, color: number, direction: IVector3D, scale: number, listener: IGetImageListener, headOnly?: boolean, bgColor?: number, customParts?: IPetCustomPart[], posture?: string): IImageResult;
|
||||
getFurnitureFloorName(typeId: number): string;
|
||||
getFurnitureWallName(typeId: number, extra?: string): string;
|
||||
selectRoomObject(roomId: number, objectId: number, objectCategory: number): void;
|
||||
setSelectedAvatar(roomId: number, objectId: number): void;
|
||||
cancelRoomObjectInsert(): void;
|
||||
getPetColorResult(petIndex: number, paletteIndex: number): IPetColorResult;
|
||||
getPetColorResultsForTag(petIndex: number, tagName: string): IPetColorResult[];
|
||||
cancelRoomObjectPlacement(): void;
|
||||
useRoomObject(objectId: number, category: number): boolean;
|
||||
objectInitialized(roomId: string, objectId: number, category: number): void;
|
||||
changeObjectModelData(roomId: number, objectId: number, category: number, numberKey: string, numberValue: number): boolean;
|
||||
changeObjectState(roomId: number, objectId: number, category: number): void;
|
||||
processRoomObjectOperation(objectId: number, category: number, operation: string): boolean;
|
||||
modifyRoomObjectDataWithMap(objectId: number, category: number, operation: string, data: Map<string, string>): boolean
|
||||
modifyRoomObjectData(objectId: number, category: number, colorHex: string, data: string): boolean
|
||||
processRoomObjectPlacement(placementSource: string, id: number, category: number, typeId: number, legacyString?: string, stuffData?: IObjectData, state?: number, frameNumber?: number, posture?: string): boolean;
|
||||
dispatchMouseEvent(canvasId: number, x: number, y: number, type: string, altKey: boolean, ctrlKey: boolean, shiftKey: boolean, buttonDown: boolean): void;
|
||||
createTextureFromRoom(roomId: number, canvasId?: number, bounds?: Rectangle): Texture;
|
||||
saveTextureAsScreenshot(texture: RenderTexture, saveAsThumbnail?: boolean): Promise<void>;
|
||||
saveBase64AsScreenshot(base64: string, saveAsThumbnail?: boolean): void;
|
||||
deleteRoomObject(objectId: number, objectCategory: number): boolean;
|
||||
roomManager: IRoomManager;
|
||||
objectEventHandler: IRoomObjectEventManager;
|
||||
activeRoomId: number;
|
||||
selectedAvatarId: number;
|
||||
isDecorating: boolean;
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
import { IRoomInstance, IRoomObjectController, IRoomRenderingCanvas } from '../../room';
|
||||
import { IVector3D } from '../../utils';
|
||||
import { ISelectedRoomObjectData } from './ISelectedRoomObjectData';
|
||||
import { IObjectData } from './object';
|
||||
import { IFurnitureStackingHeightMap, ILegacyWallGeometry, ITileObjectMap } from './utils';
|
||||
|
||||
export interface IRoomEngineServices
|
||||
{
|
||||
getRoomInstance(roomId: number): IRoomInstance;
|
||||
getActiveRoomInstanceRenderingCanvas(): IRoomRenderingCanvas;
|
||||
addRoomInstanceFloorHole(roomId: number, objectId: number): void;
|
||||
removeRoomInstanceFloorHole(roomId: number, objectId: number): void;
|
||||
getSelectedRoomObjectData(roomId: number): ISelectedRoomObjectData;
|
||||
setSelectedRoomObjectData(roomId: number, data: ISelectedRoomObjectData): void;
|
||||
getPlacedRoomObjectData(roomId: number): ISelectedRoomObjectData;
|
||||
setPlacedRoomObjectData(roomId: number, data: ISelectedRoomObjectData): void;
|
||||
getLegacyWallGeometry(roomId: number): ILegacyWallGeometry;
|
||||
getFurnitureStackingHeightMap(roomId: number): IFurnitureStackingHeightMap;
|
||||
getRoomObject(roomId: number, objectId: number, category: number): IRoomObjectController;
|
||||
getRoomObjectByIndex(roomId: number, index: number, category: number): IRoomObjectController;
|
||||
getRoomObjectCategoryForType(type: string): number;
|
||||
getRoomObjectCursor(roomId: number): IRoomObjectController;
|
||||
getRoomObjectSelectionArrow(roomId: number): IRoomObjectController;
|
||||
addRoomObjectUser(roomId: number, objectId: number, location: IVector3D, direction: IVector3D, headDirection: number, type: number, figure: string): boolean;
|
||||
addFurnitureFloor(roomId: number, id: number, typeId: number, location: IVector3D, direction: IVector3D, state: number, objectData: IObjectData, extra?: number, expires?: number, usagePolicy?: number, ownerId?: number, ownerName?: string, synchronized?: boolean, realRoomObject?: boolean, sizeZ?: number): boolean;
|
||||
addFurnitureFloorByTypeName(roomId: number, id: number, typeName: string, location: IVector3D, direction: IVector3D, state: number, objectData: IObjectData, extra?: number, expires?: number, usagePolicy?: number, ownerId?: number, ownerName?: string, synchronized?: boolean, realRoomObject?: boolean, sizeZ?: number): boolean;
|
||||
addFurnitureWall(roomId: number, id: number, typeId: number, location: IVector3D, direction: IVector3D, state: number, extra: string, expires?: number, usagePolicy?: number, ownerId?: number, ownerName?: string, realRoomObject?: boolean): boolean;
|
||||
removeRoomObjectFloor(roomId: number, objectId: number, userId?: number, _arg_4?: boolean): void;
|
||||
removeRoomObjectWall(roomId: number, objectId: number, userId?: number): void;
|
||||
removeRoomObjectUser(roomId: number, objectId: number): void;
|
||||
loadRoomObjectBadgeImage(roomId: number, objectId: number, objectCategory: number, badgeId: string, groupBadge?: boolean): void;
|
||||
updateRoomObjectMask(roomId: number, objectId: number, _arg_?: boolean): void;
|
||||
setObjectMoverIconSprite(objectId: number, category: number, _arg_3: boolean, instanceData?: string, stuffData?: IObjectData, state?: number, frameNumber?: number, posture?: string): void;
|
||||
setObjectMoverIconSpriteVisible(k: boolean): void;
|
||||
updateMousePointer(type: string, objectId: number, objectType: string): void;
|
||||
removeObjectMoverIconSprite(): void;
|
||||
getRoomTileObjectMap(k: number): ITileObjectMap;
|
||||
isPlayingGame(): boolean;
|
||||
activeRoomId: number;
|
||||
isDecorating: boolean;
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import { IRoomObjectController } from '../../room';
|
||||
|
||||
export interface IRoomObjectEventManager
|
||||
{
|
||||
getValidRoomObjectDirection(k: IRoomObjectController, _arg_2: boolean): number;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import { IVector3D } from '../../utils';
|
||||
import { IObjectData } from './object';
|
||||
|
||||
export interface ISelectedRoomObjectData
|
||||
{
|
||||
id: number;
|
||||
category: number;
|
||||
operation: string;
|
||||
loc: IVector3D;
|
||||
dir: IVector3D;
|
||||
typeId: number;
|
||||
instanceData: string;
|
||||
stuffData: IObjectData;
|
||||
state: number;
|
||||
animFrame: number;
|
||||
posture: string;
|
||||
dispose: () => void;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
export class FriendFurniEngravingWidgetType
|
||||
{
|
||||
public static readonly LOVE_LOCK: number = 0;
|
||||
public static readonly CARVE_A_TREE: number = 1;
|
||||
public static readonly FRIENDS_PORTRAIT: number = 2;
|
||||
public static readonly WILD_WEST_WANTED: number = 3;
|
||||
public static readonly HABBOWEEN: number = 4;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export class RoomObjectPlacementSource
|
||||
{
|
||||
public static CATALOG: string = 'catalog';
|
||||
public static INVENTORY: string = 'inventory';
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
export * from './FriendFurniEngravingWidgetType';
|
||||
export * from './RoomObjectPlacementSource';
|
||||
@@ -0,0 +1,15 @@
|
||||
export * from './enums';
|
||||
export * from './IGetImageListener';
|
||||
export * from './IImageResult';
|
||||
export * from './IPetColorResult';
|
||||
export * from './IRoomContentListener';
|
||||
export * from './IRoomContentLoader';
|
||||
export * from './IRoomCreator';
|
||||
export * from './IRoomEngine';
|
||||
export * from './IRoomEngineServices';
|
||||
export * from './IRoomObjectEventManager';
|
||||
export * from './ISelectedRoomObjectData';
|
||||
export * from './object';
|
||||
export * from './object/data';
|
||||
export * from './object/data/type';
|
||||
export * from './utils';
|
||||
@@ -0,0 +1,12 @@
|
||||
import { IPetCustomPart } from '../../session';
|
||||
|
||||
export interface IPetFigureData
|
||||
{
|
||||
readonly typeId: number;
|
||||
readonly paletteId: number;
|
||||
readonly color: string;
|
||||
readonly breedId: number;
|
||||
readonly figuredata: string;
|
||||
readonly customParts: IPetCustomPart[];
|
||||
readonly customPartCount: number;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
export interface IRoomMapData
|
||||
{
|
||||
width: number;
|
||||
height: number;
|
||||
wallHeight: number;
|
||||
fixedWallsHeight: number;
|
||||
tileMap: { height: number }[][];
|
||||
holeMap: { id: number, x: number, y: number, width: number, height: number }[];
|
||||
doors: { x: number, y: number, z: number, dir: number }[];
|
||||
dimensions: { minX: number, maxX: number, minY: number, maxY: number };
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
export class RoomObjectCategory
|
||||
{
|
||||
public static MINIMUM: number = -2;
|
||||
public static ROOM: number = 0;
|
||||
public static FLOOR: number = 10;
|
||||
public static WALL: number = 20;
|
||||
public static UNIT: number = 100;
|
||||
public static CURSOR: number = 200;
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
export class RoomObjectLogicType
|
||||
{
|
||||
public static FURNITURE_BASIC = 'furniture_basic';
|
||||
public static FURNITURE_MULTISTATE = 'furniture_multistate';
|
||||
public static FURNITURE_MULTIHEIGHT = 'furniture_multiheight';
|
||||
public static FURNITURE_RANDOMSTATE = 'furniture_randomstate';
|
||||
public static FURNITURE_PLACEHOLDER = 'furniture_placeholder';
|
||||
public static FURNITURE_CREDIT = 'furniture_credit';
|
||||
public static FURNITURE_STICKIE = 'furniture_stickie';
|
||||
public static FURNITURE_PRESENT = 'furniture_present';
|
||||
public static FURNITURE_TROPHY = 'furniture_trophy';
|
||||
public static FURNITURE_ECOTRON_BOX = 'furniture_ecotron_box';
|
||||
public static FURNITURE_DICE = 'furniture_dice';
|
||||
public static FURNITURE_HOCKEY_SCORE = 'furniture_hockey_score';
|
||||
public static FURNITURE_HABBOWHEEL = 'furniture_habbowheel';
|
||||
public static FURNITURE_ONE_WAY_DOOR = 'furniture_one_way_door';
|
||||
public static FURNITURE_PLANET_SYSTEM = 'furniture_planet_system';
|
||||
public static FURNITURE_WINDOW = 'furniture_window';
|
||||
public static FURNITURE_EXTERNAL_IMAGE_WALLITEM = 'furniture_external_image_wallitem';
|
||||
public static FURNITURE_ROOMDIMMER = 'furniture_roomdimmer';
|
||||
public static FURNITURE_SOUND_MACHINE = 'furniture_sound_machine';
|
||||
public static FURNITURE_JUKEBOX = 'furniture_jukebox';
|
||||
public static FURNITURE_CRACKABLE = 'furniture_crackable';
|
||||
public static FURNITURE_PUSHABLE = 'furniture_pushable';
|
||||
public static FURNITURE_CLOTHING_CHANGE = 'furniture_clothing_change';
|
||||
public static FURNITURE_COUNTER_CLOCK = 'furniture_counter_clock';
|
||||
public static FURNITURE_SCORE = 'furniture_score';
|
||||
public static FURNITURE_ES = 'furniture_es';
|
||||
public static FURNITURE_FIREWORKS = 'furniture_fireworks';
|
||||
public static FURNITURE_SONG_DISK = 'furniture_song_disk';
|
||||
public static FURNITURE_BB = 'furniture_bb';
|
||||
public static FURNITURE_BG = 'furniture_bg';
|
||||
public static FURNITURE_WELCOME_GIFT = 'furniture_welcome_gift';
|
||||
public static FURNITURE_FLOOR_HOLE = 'furniture_floor_hole';
|
||||
public static FURNITURE_MANNEQUIN = 'furniture_mannequin';
|
||||
public static FURNITURE_GUILD_CUSTOMIZED = 'furniture_guild_customized';
|
||||
public static FURNITURE_GROUP_FORUM_TERMINAL = 'furniture_group_forum_terminal';
|
||||
public static FURNITURE_PET_CUSTOMIZATION = 'furniture_pet_customization';
|
||||
public static FURNITURE_CUCKOO_CLOCK = 'furniture_cuckoo_clock';
|
||||
public static FURNITURE_VOTE_COUNTER = 'furniture_vote_counter';
|
||||
public static FURNITURE_VOTE_MAJORITY = 'furniture_vote_majority';
|
||||
public static FURNITURE_SOUNDBLOCK = 'furniture_soundblock';
|
||||
public static FURNITURE_RANDOM_TELEPORT = 'furniture_random_teleport';
|
||||
public static FURNITURE_MONSTERPLANT_SEED = 'furniture_monsterplant_seed';
|
||||
public static FURNITURE_PURCHASABLE_CLOTHING = 'furniture_purchasable_clothing';
|
||||
public static FURNITURE_BACKGROUND_COLOR = 'furniture_background_color';
|
||||
public static FURNITURE_MYSTERYBOX = 'furniture_mysterybox';
|
||||
public static FURNITURE_EFFECTBOX = 'furniture_effectbox';
|
||||
public static FURNITURE_MYSTERYTROPHY = 'furniture_mysterytrophy';
|
||||
public static FURNITURE_ACHIEVEMENT_RESOLUTION = 'furniture_achievement_resolution';
|
||||
public static FURNITURE_LOVELOCK = 'furniture_lovelock';
|
||||
public static FURNITURE_WILDWEST_WANTED = 'furniture_wildwest_wanted';
|
||||
public static FURNITURE_HWEEN_LOVELOCK = 'furniture_hween_lovelock';
|
||||
public static FURNITURE_BADGE_DISPLAY = 'furniture_badge_display';
|
||||
public static FURNITURE_HIGH_SCORE = 'furniture_high_score';
|
||||
public static FURNITURE_INTERNAL_LINK = 'furniture_internal_link';
|
||||
public static FURNITURE_CUSTOM_STACK_HEIGHT = 'furniture_custom_stack_height';
|
||||
public static FURNITURE_YOUTUBE = 'furniture_youtube';
|
||||
public static FURNITURE_RENTABLE_SPACE = 'furniture_rentable_space';
|
||||
public static FURNITURE_CHANGE_STATE_WHEN_STEP_ON = 'furniture_change_state_when_step_on';
|
||||
public static FURNITURE_VIMEO = 'furniture_vimeo';
|
||||
public static FURNITURE_EDITABLE_INTERNAL_LINK = 'furniture_editable_internal_link';
|
||||
public static FURNITURE_EDITABLE_ROOM_LINK = 'furniture_editable_room_link';
|
||||
public static FURNITURE_CRAFTING_GIZMO = 'furniture_crafting_gizmo';
|
||||
public static ROOM = 'room';
|
||||
public static USER = 'user';
|
||||
public static BOT = 'bot';
|
||||
public static RENTABLE_BOT = 'rentable_bot';
|
||||
public static PET = 'pet';
|
||||
public static TILE_CURSOR = 'tile_cursor';
|
||||
public static SELECTION_ARROW = 'selection_arrow';
|
||||
public static GAME_SNOWBALL = 'game_snowball';
|
||||
public static GAME_SNOWSPLASH = 'game_snowsplash';
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
export class RoomObjectOperationType
|
||||
{
|
||||
public static OBJECT_UNDEFINED: string = 'OBJECT_UNDEFINED';
|
||||
public static OBJECT_MOVE: string = 'OBJECT_MOVE';
|
||||
public static OBJECT_PLACE: string = 'OBJECT_PLACE';
|
||||
public static OBJECT_ROTATE_POSITIVE: string = 'OBJECT_ROTATE_POSITIVE';
|
||||
public static OBJECT_ROTATE_NEGATIVE: string = 'OBJECT_ROTATE_NEGATIVE';
|
||||
public static OBJECT_MOVE_TO: string = 'OBJECT_MOVE_TO';
|
||||
public static OBJECT_PLACE_TO: string = 'OBJECT_PLACE_TO';
|
||||
public static OBJECT_PICKUP: string = 'OBJECT_PICKUP';
|
||||
public static OBJECT_PICKUP_BOT: string = 'OBJECT_PICKUP_BOT';
|
||||
public static OBJECT_PICKUP_PET: string = 'OBJECT_PICKUP_PET';
|
||||
public static OBJECT_EJECT: string = 'OBJECT_EJECT';
|
||||
public static OBJECT_SAVE_STUFF_DATA: string = 'OBJECT_SAVE_STUFF_DATA';
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
export class RoomObjectType
|
||||
{
|
||||
public static USER: number = 1;
|
||||
public static PET: number = 2;
|
||||
public static BOT: number = 3;
|
||||
public static RENTABLE_BOT: number = 4;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
export class RoomObjectUserType
|
||||
{
|
||||
public static USER: string = 'user';
|
||||
public static PET: string = 'pet';
|
||||
public static BOT: string = 'bot';
|
||||
public static RENTABLE_BOT: string = 'rentable_bot';
|
||||
public static MONSTER_PLANT: string = 'monsterplant';
|
||||
public static AVATAR_TYPES: { [key: string]: number } = { 'user': 1, 'pet': 2, 'bot': 3, 'rentable_bot': 4 };
|
||||
|
||||
public static getTypeNumber(type: string): number
|
||||
{
|
||||
return RoomObjectUserType.AVATAR_TYPES[type];
|
||||
}
|
||||
|
||||
public static getTypeString(type: number): string
|
||||
{
|
||||
for(const key in RoomObjectUserType.AVATAR_TYPES)
|
||||
{
|
||||
if(!key) continue;
|
||||
|
||||
if(RoomObjectUserType.AVATAR_TYPES[key] !== type) continue;
|
||||
|
||||
return key;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static getRealType(type: string): string
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
case RoomObjectUserType.BOT:
|
||||
case RoomObjectUserType.RENTABLE_BOT:
|
||||
return RoomObjectUserType.USER;
|
||||
default:
|
||||
return type;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
export class RoomObjectVariable
|
||||
{
|
||||
public static OBJECT_ROOM_ID: string = 'object_room_id';
|
||||
public static OBJECT_ACCURATE_Z_VALUE: string = 'object_accurate_z_value';
|
||||
public static TILE_CURSOR_HEIGHT: string = 'tile_cursor_height';
|
||||
public static FIGURE: string = 'figure';
|
||||
public static GENDER: string = 'gender';
|
||||
public static OWN_USER: string = 'own_user';
|
||||
public static FIGURE_CAN_STAND_UP: string = 'figure_can_stand_up';
|
||||
public static FIGURE_VERTICAL_OFFSET: string = 'figure_vertical_offset';
|
||||
public static FIGURE_TALK: string = 'figure_talk';
|
||||
public static FIGURE_DANCE: string = 'figure_dance';
|
||||
public static FIGURE_SLEEP: string = 'figure_sleep';
|
||||
public static FIGURE_BLINK: string = 'figure_blink';
|
||||
public static FIGURE_EFFECT: string = 'figure_effect';
|
||||
public static FIGURE_CARRY_OBJECT: string = 'figure_carry_object';
|
||||
public static FIGURE_USE_OBJECT: string = 'figure_use_object';
|
||||
public static FIGURE_GESTURE: string = 'figure_gesture';
|
||||
public static FIGURE_POSTURE: string = 'figure_posture';
|
||||
public static FIGURE_POSTURE_PARAMETER: string = 'figure_posture_parameter';
|
||||
public static FIGURE_HIGHLIGHT_ENABLE: string = 'figure_highlight_enable';
|
||||
public static FIGURE_HIGHLIGHT: string = 'figure_highlight';
|
||||
public static FURNITURE_PURCHASER_NAME: string = 'furniture_purchaser_name';
|
||||
public static FURNITURE_PURCHASER_FIGURE: string = 'furniture_purchaser_figure';
|
||||
public static STD: string = 'std';
|
||||
public static FIGURE_SIGN: string = 'figure_sign';
|
||||
public static FIGURE_FLAT_CONTROL: string = 'figure_flat_control';
|
||||
public static FIGURE_IS_TYPING: string = 'figure_is_typing';
|
||||
public static FIGURE_IS_MUTED: string = 'figure_is_muted';
|
||||
public static FIGURE_GAINED_EXPERIENCE: string = 'figure_gained_experience';
|
||||
public static FIGURE_EXPERIENCE_TIMESTAMP: string = 'figure_experience_timestamp';
|
||||
public static FIGURE_NUMBER_VALUE: string = 'figure_number_value';
|
||||
public static FIGURE_IS_PLAYING_GAME: string = 'figure_is_playing_game';
|
||||
public static FIGURE_GUIDE_STATUS: string = 'figure_guide_status';
|
||||
public static FIGURE_EXPRESSION: string = 'figure_expression';
|
||||
public static HEAD_DIRECTION: string = 'head_direction';
|
||||
public static FURNITURE_CUSTOM_VARIABLES: string = 'furniture_custom_variables';
|
||||
public static FURNITURE_AUTOMATIC_STATE_INDEX: string = 'furniture_automatic_state_index';
|
||||
public static FURNITURE_ALWAYS_STACKABLE: string = 'furniture_always_stackable';
|
||||
public static FURNITURE_DISABLE_PICKING_ANIMATION: string = 'furniture_disable_picking_animation';
|
||||
public static FURNITURE_DATA_FORMAT: string = 'furniture_data_format';
|
||||
public static FURNITURE_UNIQUE_SERIAL_NUMBER: string = 'furniture_unique_serial_number';
|
||||
public static FURNITURE_UNIQUE_EDITION_SIZE: string = 'furniture_unique_edition_size';
|
||||
public static FURNITURE_CRACKABLE_STATE: string = 'furniture_crackable_state';
|
||||
public static FURNITURE_CRACKABLE_HITS: string = 'furniture_crackable_hits';
|
||||
public static FURNITURE_CRACKABLE_TARGET: string = 'furniture_crackable_target';
|
||||
public static FURNITURE_CREDIT_VALUE: string = 'furniture_credit_value';
|
||||
public static FURNITURE_DATA: string = 'furniture_data';
|
||||
public static FURNITURE_ITEMDATA: string = 'furniture_itemdata';
|
||||
public static FURNITURE_COLOR: string = 'furniture_color';
|
||||
public static FURNITURE_LIFT_AMOUNT: string = 'furniure_lift_amount';
|
||||
public static FURNITURE_GUILD_CUSTOMIZED_GUILD_ID: string = 'furniture_guild_customized_guild_id';
|
||||
public static FURNITURE_GUILD_CUSTOMIZED_ASSET_NAME: string = 'furniture_guild_customized_asset_name';
|
||||
public static FURNITURE_GUILD_CUSTOMIZED_COLOR_1: string = 'furniture_guild_customized_color_1';
|
||||
public static FURNITURE_GUILD_CUSTOMIZED_COLOR_2: string = 'furniture_guild_customized_color_2';
|
||||
public static FURNITURE_STATE_UPDATE_TIME: string = 'furniture_state_update_time';
|
||||
public static FURNITURE_SELECTION_DISABLED: string = 'furniture_selection_disabled';
|
||||
public static FURNITURE_SIZE_X: string = 'furniture_size_x';
|
||||
public static FURNITURE_SIZE_Y: string = 'furniture_size_y';
|
||||
public static FURNITURE_SIZE_Z: string = 'furniture_size_z';
|
||||
public static FURNITURE_CENTER_X: string = 'furniture_center_x';
|
||||
public static FURNITURE_CENTER_Y: string = 'furniture_center_y';
|
||||
public static FURNITURE_CENTER_Z: string = 'furniture_center_z';
|
||||
public static FURNITURE_ALLOWED_DIRECTIONS: string = 'furniture_allowed_directions';
|
||||
public static FURNITURE_AD_URL: string = 'furniture_ad_url';
|
||||
public static FURNITURE_TYPE_ID: string = 'furniture_type_id';
|
||||
public static FURNITURE_EXTRAS: string = 'furniture_extras';
|
||||
public static FURNITURE_EXPIRY_TIME: string = 'furniture_expiry_time';
|
||||
public static FURNITURE_EXPIRTY_TIMESTAMP: string = 'furniture_expiry_timestamp';
|
||||
public static FURNITURE_REAL_ROOM_OBJECT: string = 'furniture_real_room_object';
|
||||
public static FURNITURE_IS_STICKIE: string = 'furniture_is_stickie';
|
||||
public static FURNITURE_BRANDING_IMAGE_STATUS: string = 'furniture_branding_image_status';
|
||||
public static FURNITURE_BRANDING_IMAGE_URL: string = 'furniture_branding_image_url';
|
||||
public static FURNITURE_BRANDING_URL: string = 'furniture_branding_url';
|
||||
public static FURNITURE_BRANDING_OFFSET_X: string = 'furniture_branding_offset_x';
|
||||
public static FURNITURE_BRANDING_OFFSET_Y: string = 'furniture_branding_offset_y';
|
||||
public static FURNITURE_BRANDING_OFFSET_Z: string = 'furniture_branding_offset_z';
|
||||
public static FURNITURE_BADGE_IMAGE_STATUS: string = 'furniture_badge_image_status';
|
||||
public static FURNITURE_BADGE_ASSET_NAME: string = 'furniture_badge_asset_name';
|
||||
public static FURNITURE_BADGE_VISIBLE_IN_STATE: string = 'furniture_badge_visible_in_state';
|
||||
public static FURNITURE_ALPHA_MULTIPLIER: string = 'furniture_alpha_multiplier';
|
||||
public static FURNITURE_USAGE_POLICY: string = 'furniture_usage_policy';
|
||||
public static FURNITURE_OWNER_ID: string = 'furniture_owner_id';
|
||||
public static FURNITURE_OWNER_NAME: string = 'furniture_owner_name';
|
||||
public static FURNITURE_ROOM_BACKGROUND_COLOR_HUE: string = 'furniture_room_background_color_hue';
|
||||
public static FURNITURE_ROOM_BACKGROUND_COLOR_SATURATION: string = 'furniture_room_background_color_saturation';
|
||||
public static FURNITURE_ROOM_BACKGROUND_COLOR_LIGHTNESS: string = 'furniture_room_background_color_lightness';
|
||||
public static FURNITURE_USES_PLANE_MASK: string = 'furniture_uses_plane_mask';
|
||||
public static FURNITURE_PLANE_MASK_TYPE: string = 'furniture_plane_mask_type';
|
||||
public static FURNITURE_IS_VARIABLE_HEIGHT: string = 'furniture_is_variable_height';
|
||||
public static FURNITURE_VOTE_MAJORITY_RESULT: string = 'furniture_vote_majority_result';
|
||||
public static FURNITURE_VOTE_COUNTER_COUNT: string = 'furniture_vote_counter_count';
|
||||
public static FURNITURE_SOUNDBLOCK_RELATIVE_ANIMATION_SPEED: string = 'furniture_soundblock_relative_animation_speed';
|
||||
public static FURNITURE_MANNEQUIN_NAME: string = 'furniture_mannequin_name';
|
||||
public static FURNITURE_MANNEQUIN_GENDER: string = 'furniture_mannequin_gender';
|
||||
public static FURNITURE_MANNEQUIN_FIGURE: string = 'furniture_mannequin_figure';
|
||||
public static FURNITURE_HIGHSCORE_SCORE_TYPE: string = 'furniture_highscore_score_type';
|
||||
public static FURNITURE_HIGHSCORE_CLEAR_TYPE: string = 'furniture_highscore_clear_type';
|
||||
public static FURNITURE_HIGHSCORE_DATA_ENTRY_COUNT: string = 'furniture_highscore_data_entry_count';
|
||||
public static FURNITURE_HIGHSCORE_DATA_ENTRY_BASE_USERS_: string = 'furniture_highscore_data_entry_base_users_';
|
||||
public static FURNITURE_HIGHSCORE_DATA_ENTRY_BASE_SCORE_: string = 'furniture_highscore_data_entry_base_score_';
|
||||
public static FURNITURE_INTERNAL_LINK: string = 'furniture_internal_link';
|
||||
public static FURNITURE_CLOTHING_BOY: string = 'furniture_clothing_boy';
|
||||
public static FURNITURE_CLOTHING_GIRL: string = 'furniture_clothing_girl';
|
||||
public static FURNITURE_PLANETSYSTEM_DATA: string = 'furniture_planetsystem_data';
|
||||
public static FURNITURE_FIREWORKS_DATA: string = 'furniture_fireworks_data';
|
||||
public static PET_PALETTE_INDEX: string = 'pet_palette_index';
|
||||
public static PET_COLOR: string = 'pet_color';
|
||||
public static PET_HEAD_ONLY: string = 'pet_head_only';
|
||||
public static PET_CUSTOM_LAYER_IDS: string = 'pet_custom_layer_ids';
|
||||
public static PET_CUSTOM_PARTS_IDS: string = 'pet_custom_part_ids';
|
||||
public static PET_CUSTOM_PALETTE_IDS: string = 'pet_custom_palette_ids';
|
||||
public static PET_IS_RIDING: string = 'pet_is_riding';
|
||||
public static PET_TYPE: string = 'pet_type';
|
||||
public static PET_ALLOWED_DIRECTIONS: string = 'pet_allowed_directions';
|
||||
public static RACE: string = 'race';
|
||||
public static ROOM_MAP_DATA: string = 'room_map_data';
|
||||
public static ROOM_PLANE_MASK_XML: string = 'room_plane_mask_xml';
|
||||
public static ROOM_FLOOR_TYPE: string = 'room_floor_type';
|
||||
public static ROOM_WALL_TYPE: string = 'room_wall_type';
|
||||
public static ROOM_LANDSCAPE_TYPE: string = 'room_landscape_type';
|
||||
public static ROOM_WALL_THICKNESS: string = 'room_wall_thickness';
|
||||
public static ROOM_FLOOR_THICKNESS: string = 'room_floor_thickness';
|
||||
public static ROOM_FLOOR_HOLE_UPDATE_TIME: string = 'room_floor_hole_update_time';
|
||||
public static ROOM_FLOOR_VISIBILITY: string = 'room_floor_visibility';
|
||||
public static ROOM_WALL_VISIBILITY: string = 'room_wall_visibility';
|
||||
public static ROOM_LANDSCAPE_VISIBILITY: string = 'room_landscape_visibility';
|
||||
public static ROOM_DOOR_X: string = 'room_door_x';
|
||||
public static ROOM_DOOR_Y: string = 'room_door_y';
|
||||
public static ROOM_DOOR_Z: string = 'room_door_z';
|
||||
public static ROOM_DOOR_DIR: string = 'room_door_dir';
|
||||
public static ROOM_BACKGROUND_COLOR: string = 'room_background_color';
|
||||
public static ROOM_COLORIZE_BG_ONLY: string = 'room_colorize_bg_only';
|
||||
public static ROOM_RANDOM_SEED: string = 'room_random_seed';
|
||||
public static ROOM_WORLD_TYPE: string = 'room_world_type';
|
||||
public static ROOM_SELECTED_X: string = 'room_selected_x';
|
||||
public static ROOM_SELECTED_Y: string = 'room_selected_y';
|
||||
public static ROOM_SELECTED_Z: string = 'room_selected_z';
|
||||
public static ROOM_SELECTED_PLANE: string = 'room_selected_plane';
|
||||
public static IMAGE_QUERY_SCALE: string = 'image_query_scale';
|
||||
public static FURNITURE_FRIENDFURNI_ENGRAVING: string = 'furniture_friendfurni_engraving_type';
|
||||
public static SESSION_URL_PREFIX: string = 'session_url_prefix';
|
||||
public static SESSION_CURRENT_USER_ID: string = 'session_current_user_id';
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
export class RoomObjectVisualizationType
|
||||
{
|
||||
public static FURNITURE_STATIC = 'furniture_static';
|
||||
public static FURNITURE_ANIMATED = 'furniture_animated';
|
||||
public static FURNITURE_RESETTING_ANIMATED = 'furniture_resetting_animated';
|
||||
public static FURNITURE_POSTER = 'furniture_poster';
|
||||
public static FURNITURE_EXTERNAL_IMAGE = 'furniture_external_image';
|
||||
public static FURNITURE_HABBOWHEEL = 'furniture_habbowheel';
|
||||
public static FURNITURE_VAL_RANDOMIZER = 'furniture_val_randomizer';
|
||||
public static FURNITURE_BOTTLE = 'furniture_bottle';
|
||||
public static FURNITURE_PLANET_SYSTEM = 'furniture_planet_system';
|
||||
public static FURNITURE_QUEUE_TILE = 'furniture_queue_tile';
|
||||
public static FURNITURE_PARTY_BEAMER = 'furniture_party_beamer';
|
||||
public static FURNITURE_CUBOID = 'furniture_cuboid';
|
||||
public static FURNITURE_GIFT_WRAPPED = 'furniture_gift_wrapped';
|
||||
public static FURNITURE_GIFT_WRAPPED_FIREWORKS = 'furniture_gift_wrapped_fireworks';
|
||||
public static FURNITURE_COUNTER_CLOCK = 'furniture_counter_clock';
|
||||
public static FURNITURE_WATER_AREA = 'furniture_water_area';
|
||||
public static FURNITURE_SCORE_BOARD = 'furniture_score_board';
|
||||
public static FURNITURE_FIREWORKS = 'furniture_fireworks';
|
||||
public static FURNITURE_BB = 'furniture_bb';
|
||||
public static FURNITURE_ISOMETRIC_BB = 'furniture_isometric_bb';
|
||||
public static FURNITURE_BG = 'furniture_bg';
|
||||
public static FURNITURE_STICKIE = 'furniture_stickie';
|
||||
public static FURNITURE_MANNEQUIN = 'furniture_mannequin';
|
||||
public static FURNITURE_GUILD_CUSTOMIZED = 'furniture_guild_customized';
|
||||
public static FURNITURE_GUILD_ISOMETRIC_BADGE = 'furniture_guild_isometric_badge';
|
||||
public static FURNITURE_VOTE_COUNTER = 'furniture_vote_counter';
|
||||
public static FURNITURE_VOTE_MAJORITY = 'furniture_vote_majority';
|
||||
public static FURNITURE_SOUNDBLOCK = 'furniture_soundblock';
|
||||
public static FURNITURE_BADGE_DISPLAY = 'furniture_badge_display';
|
||||
public static FURNITURE_YOUTUBE = 'furniture_youtube';
|
||||
public static FURNITURE_BUILDER_PLACEHOLDER = 'furniture_builder_placeholder';
|
||||
public static ROOM = 'room';
|
||||
public static USER = 'user';
|
||||
public static PET_ANIMATED = 'pet_animated';
|
||||
public static BOT = 'bot';
|
||||
public static RENTABLE_BOT = 'rentable_bot';
|
||||
public static TILE_CURSOR = 'tile_cursor';
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import { IMessageDataWrapper } from '../../../../communication';
|
||||
import { IRoomObjectModel } from '../../../../room';
|
||||
|
||||
export interface IObjectData
|
||||
{
|
||||
state: number;
|
||||
isUnique: boolean;
|
||||
uniqueNumber: number;
|
||||
uniqueSeries: number;
|
||||
rarityLevel: number;
|
||||
flags: number;
|
||||
parseWrapper(wrapper: IMessageDataWrapper): void;
|
||||
initializeFromRoomObjectModel(model: IRoomObjectModel): void;
|
||||
writeRoomObjectModel(model: IRoomObjectModel): void;
|
||||
getLegacyString(): string;
|
||||
compare(data: IObjectData): boolean;
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
import { IMessageDataWrapper } from '../../../../communication';
|
||||
import { IRoomObjectModel } from '../../../../room';
|
||||
import { RoomObjectVariable } from '../RoomObjectVariable';
|
||||
import { IObjectData } from './IObjectData';
|
||||
import { ObjectDataFlags } from './ObjectDataFlags';
|
||||
|
||||
export class ObjectDataBase implements IObjectData
|
||||
{
|
||||
private _flags: number;
|
||||
private _uniqueNumber: number;
|
||||
private _uniqueSeries: number;
|
||||
|
||||
constructor()
|
||||
{
|
||||
this._flags = 0;
|
||||
this._uniqueNumber = 0;
|
||||
this._uniqueSeries = 0;
|
||||
}
|
||||
|
||||
public parseWrapper(wrapper: IMessageDataWrapper): void
|
||||
{
|
||||
if((this._flags & ObjectDataFlags.UNIQUE_SET) > 0)
|
||||
{
|
||||
this._uniqueNumber = wrapper.readInt();
|
||||
this._uniqueSeries = wrapper.readInt();
|
||||
}
|
||||
}
|
||||
|
||||
public initializeFromRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
this._uniqueNumber = model.getValue<number>(RoomObjectVariable.FURNITURE_UNIQUE_SERIAL_NUMBER);
|
||||
this._uniqueSeries = model.getValue<number>(RoomObjectVariable.FURNITURE_UNIQUE_EDITION_SIZE);
|
||||
}
|
||||
|
||||
public writeRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
if(!model) return;
|
||||
|
||||
model.setValue(RoomObjectVariable.FURNITURE_UNIQUE_SERIAL_NUMBER, this._uniqueNumber);
|
||||
model.setValue(RoomObjectVariable.FURNITURE_UNIQUE_EDITION_SIZE, this._uniqueSeries);
|
||||
}
|
||||
|
||||
public getLegacyString(): string
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
public compare(data: IObjectData): boolean
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public get state(): number
|
||||
{
|
||||
const state = parseInt(this.getLegacyString());
|
||||
|
||||
return isNaN(state) ? 0 : state;
|
||||
}
|
||||
|
||||
public get isUnique(): boolean
|
||||
{
|
||||
return this._uniqueSeries > 0;
|
||||
}
|
||||
|
||||
public get uniqueNumber(): number
|
||||
{
|
||||
return this._uniqueNumber;
|
||||
}
|
||||
|
||||
public set uniqueNumber(number: number)
|
||||
{
|
||||
this._uniqueNumber = number;
|
||||
}
|
||||
|
||||
public get uniqueSeries(): number
|
||||
{
|
||||
return this._uniqueSeries;
|
||||
}
|
||||
|
||||
public set uniqueSeries(series: number)
|
||||
{
|
||||
this._uniqueSeries = series;
|
||||
}
|
||||
|
||||
public get rarityLevel(): number
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
public get flags(): number
|
||||
{
|
||||
return this._flags;
|
||||
}
|
||||
|
||||
public set flags(flags: number)
|
||||
{
|
||||
this._flags = flags;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
import { IObjectData } from './IObjectData';
|
||||
import { CrackableDataType, EmptyDataType, HighScoreDataType, LegacyDataType, MapDataType, NumberDataType, StringDataType, VoteDataType } from './type';
|
||||
|
||||
export class ObjectDataFactory
|
||||
{
|
||||
public static getData(flags: number): IObjectData
|
||||
{
|
||||
let objectData: IObjectData = null;
|
||||
|
||||
switch(flags & 0xFF)
|
||||
{
|
||||
case CrackableDataType.FORMAT_KEY:
|
||||
objectData = new CrackableDataType();
|
||||
break;
|
||||
case EmptyDataType.FORMAT_KEY:
|
||||
objectData = new EmptyDataType();
|
||||
break;
|
||||
case HighScoreDataType.FORMAT_KEY:
|
||||
objectData = new HighScoreDataType();
|
||||
break;
|
||||
case LegacyDataType.FORMAT_KEY:
|
||||
objectData = new LegacyDataType();
|
||||
break;
|
||||
case MapDataType.FORMAT_KEY:
|
||||
objectData = new MapDataType();
|
||||
break;
|
||||
case NumberDataType.FORMAT_KEY:
|
||||
objectData = new NumberDataType();
|
||||
break;
|
||||
case StringDataType.FORMAT_KEY:
|
||||
objectData = new StringDataType();
|
||||
break;
|
||||
case VoteDataType.FORMAT_KEY:
|
||||
objectData = new VoteDataType();
|
||||
break;
|
||||
}
|
||||
|
||||
if(!objectData) return null;
|
||||
|
||||
objectData.flags = (flags & 0xFF00);
|
||||
|
||||
return objectData;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export class ObjectDataFlags
|
||||
{
|
||||
public static UNIQUE_SET = 256;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
export class ObjectDataKey
|
||||
{
|
||||
public static LEGACY_KEY: number = 0;
|
||||
public static MAP_KEY: number = 1;
|
||||
public static STRING_KEY: number = 2;
|
||||
public static VOTE_KEY: number = 3;
|
||||
public static EMPTY_KEY: number = 4;
|
||||
public static NUMBER_KEY: number = 5;
|
||||
public static HIGHSCORE_KEY: number = 6;
|
||||
public static CRACKABLE_KEY: number = 7;
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
export * from './IObjectData';
|
||||
export * from './ObjectDataBase';
|
||||
export * from './ObjectDataFactory';
|
||||
export * from './ObjectDataFlags';
|
||||
export * from './ObjectDataKey';
|
||||
export * from './type';
|
||||
@@ -0,0 +1,74 @@
|
||||
import { IMessageDataWrapper } from '../../../../../communication';
|
||||
import { IRoomObjectModel } from '../../../../../room';
|
||||
import { RoomObjectVariable } from '../../RoomObjectVariable';
|
||||
import { IObjectData } from '../IObjectData';
|
||||
import { ObjectDataBase } from '../ObjectDataBase';
|
||||
import { ObjectDataKey } from '../ObjectDataKey';
|
||||
|
||||
export class CrackableDataType extends ObjectDataBase implements IObjectData
|
||||
{
|
||||
public static FORMAT_KEY = ObjectDataKey.CRACKABLE_KEY;
|
||||
|
||||
private _state: string;
|
||||
private _hits: number;
|
||||
private _target: number;
|
||||
|
||||
constructor()
|
||||
{
|
||||
super();
|
||||
|
||||
this._state = '';
|
||||
this._hits = 0;
|
||||
this._target = 0;
|
||||
}
|
||||
|
||||
public parseWrapper(wrapper: IMessageDataWrapper): void
|
||||
{
|
||||
if(!wrapper) return;
|
||||
|
||||
this._state = wrapper.readString();
|
||||
this._hits = wrapper.readInt();
|
||||
this._target = wrapper.readInt();
|
||||
|
||||
super.parseWrapper(wrapper);
|
||||
}
|
||||
|
||||
public initializeFromRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
super.initializeFromRoomObjectModel(model);
|
||||
|
||||
this._state = model.getValue<string>(RoomObjectVariable.FURNITURE_CRACKABLE_STATE);
|
||||
this._hits = model.getValue<number>(RoomObjectVariable.FURNITURE_CRACKABLE_HITS);
|
||||
this._target = model.getValue<number>(RoomObjectVariable.FURNITURE_CRACKABLE_TARGET);
|
||||
}
|
||||
|
||||
public writeRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
super.writeRoomObjectModel(model);
|
||||
|
||||
model.setValue(RoomObjectVariable.FURNITURE_DATA_FORMAT, CrackableDataType.FORMAT_KEY);
|
||||
model.setValue(RoomObjectVariable.FURNITURE_CRACKABLE_STATE, this._state);
|
||||
model.setValue(RoomObjectVariable.FURNITURE_CRACKABLE_HITS, this._hits);
|
||||
model.setValue(RoomObjectVariable.FURNITURE_CRACKABLE_TARGET, this._target);
|
||||
}
|
||||
|
||||
public getLegacyString(): string
|
||||
{
|
||||
return this._state;
|
||||
}
|
||||
|
||||
public compare(data: IObjectData): boolean
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public get hits(): number
|
||||
{
|
||||
return this._hits;
|
||||
}
|
||||
|
||||
public get target(): number
|
||||
{
|
||||
return this._target;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
import { IMessageDataWrapper } from '../../../../../communication';
|
||||
import { IRoomObjectModel } from '../../../../../room';
|
||||
import { RoomObjectVariable } from '../../RoomObjectVariable';
|
||||
import { IObjectData } from '../IObjectData';
|
||||
import { ObjectDataBase } from '../ObjectDataBase';
|
||||
import { ObjectDataKey } from '../ObjectDataKey';
|
||||
|
||||
export class EmptyDataType extends ObjectDataBase implements IObjectData
|
||||
{
|
||||
public static FORMAT_KEY = ObjectDataKey.EMPTY_KEY;
|
||||
|
||||
private _state: string;
|
||||
|
||||
public parseWrapper(wrapper: IMessageDataWrapper): void
|
||||
{
|
||||
if(!wrapper) return;
|
||||
|
||||
this._state = '';
|
||||
|
||||
super.parseWrapper(wrapper);
|
||||
}
|
||||
|
||||
public writeRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
super.writeRoomObjectModel(model);
|
||||
|
||||
model.setValue(RoomObjectVariable.FURNITURE_DATA_FORMAT, EmptyDataType.FORMAT_KEY);
|
||||
}
|
||||
|
||||
public getLegacyString(): string
|
||||
{
|
||||
return this._state;
|
||||
}
|
||||
|
||||
public compare(data: IObjectData): boolean
|
||||
{
|
||||
return super.compare(data);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
export class HighScoreData
|
||||
{
|
||||
private _score: number;
|
||||
private _users: string[];
|
||||
|
||||
constructor()
|
||||
{
|
||||
this._score = -1;
|
||||
this._users = [];
|
||||
}
|
||||
|
||||
public get score(): number
|
||||
{
|
||||
return this._score;
|
||||
}
|
||||
|
||||
public set score(k: number)
|
||||
{
|
||||
this._score = k;
|
||||
}
|
||||
|
||||
public get users(): string[]
|
||||
{
|
||||
return this._users;
|
||||
}
|
||||
|
||||
public set users(k: string[])
|
||||
{
|
||||
this._users = k;
|
||||
}
|
||||
|
||||
public addUsername(k: string): void
|
||||
{
|
||||
this._users.push(k);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
import { IMessageDataWrapper } from '../../../../../communication';
|
||||
import { IRoomObjectModel } from '../../../../../room';
|
||||
import { RoomObjectVariable } from '../../RoomObjectVariable';
|
||||
import { IObjectData } from '../IObjectData';
|
||||
import { ObjectDataBase } from '../ObjectDataBase';
|
||||
import { ObjectDataKey } from '../ObjectDataKey';
|
||||
import { HighScoreData } from './HighScoreData';
|
||||
|
||||
export class HighScoreDataType extends ObjectDataBase implements IObjectData
|
||||
{
|
||||
public static FORMAT_KEY = ObjectDataKey.HIGHSCORE_KEY;
|
||||
|
||||
private _state: string;
|
||||
private _scoreType: number;
|
||||
private _clearType: number;
|
||||
private _entries: HighScoreData[];
|
||||
|
||||
constructor()
|
||||
{
|
||||
super();
|
||||
|
||||
this._state = '';
|
||||
this._scoreType = -1;
|
||||
this._clearType = -1;
|
||||
this._entries = [];
|
||||
}
|
||||
|
||||
public parseWrapper(wrapper: IMessageDataWrapper): void
|
||||
{
|
||||
if(!wrapper) return;
|
||||
|
||||
this._state = wrapper.readString();
|
||||
this._scoreType = wrapper.readInt();
|
||||
this._clearType = wrapper.readInt();
|
||||
|
||||
let totalScores = wrapper.readInt();
|
||||
|
||||
while(totalScores > 0)
|
||||
{
|
||||
const data = new HighScoreData();
|
||||
|
||||
data.score = wrapper.readInt();
|
||||
|
||||
let totalUsers = wrapper.readInt();
|
||||
|
||||
while(totalUsers > 0)
|
||||
{
|
||||
data.addUsername(wrapper.readString());
|
||||
|
||||
totalUsers--;
|
||||
}
|
||||
|
||||
this._entries.push(data);
|
||||
|
||||
totalScores--;
|
||||
}
|
||||
|
||||
super.parseWrapper(wrapper);
|
||||
}
|
||||
|
||||
public initializeFromRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
this._scoreType = model.getValue<number>(RoomObjectVariable.FURNITURE_HIGHSCORE_SCORE_TYPE);
|
||||
this._clearType = model.getValue<number>(RoomObjectVariable.FURNITURE_HIGHSCORE_CLEAR_TYPE);
|
||||
this._entries = [];
|
||||
|
||||
const totalEntries = model.getValue<number>(RoomObjectVariable.FURNITURE_HIGHSCORE_DATA_ENTRY_COUNT);
|
||||
|
||||
let i = 0;
|
||||
|
||||
while(i < totalEntries)
|
||||
{
|
||||
const data = new HighScoreData();
|
||||
|
||||
data.score = model.getValue<number>(RoomObjectVariable.FURNITURE_HIGHSCORE_DATA_ENTRY_BASE_SCORE_ + i);
|
||||
data.users = model.getValue<string[]>(RoomObjectVariable.FURNITURE_HIGHSCORE_DATA_ENTRY_BASE_USERS_ + i);
|
||||
|
||||
this._entries.push(data);
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
super.initializeFromRoomObjectModel(model);
|
||||
}
|
||||
|
||||
public writeRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
super.writeRoomObjectModel(model);
|
||||
|
||||
model.setValue(RoomObjectVariable.FURNITURE_DATA_FORMAT, HighScoreDataType.FORMAT_KEY);
|
||||
model.setValue(RoomObjectVariable.FURNITURE_HIGHSCORE_SCORE_TYPE, this._scoreType);
|
||||
model.setValue(RoomObjectVariable.FURNITURE_HIGHSCORE_CLEAR_TYPE, this._clearType);
|
||||
|
||||
if(this._entries)
|
||||
{
|
||||
model.setValue(RoomObjectVariable.FURNITURE_HIGHSCORE_DATA_ENTRY_COUNT, this._entries.length);
|
||||
|
||||
let i = 0;
|
||||
|
||||
while(i < this._entries.length)
|
||||
{
|
||||
const entry = this._entries[i];
|
||||
|
||||
model.setValue((RoomObjectVariable.FURNITURE_HIGHSCORE_DATA_ENTRY_BASE_SCORE_ + i), entry.score);
|
||||
model.setValue((RoomObjectVariable.FURNITURE_HIGHSCORE_DATA_ENTRY_BASE_USERS_ + i), entry.users);
|
||||
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public getLegacyString(): string
|
||||
{
|
||||
return this._state;
|
||||
}
|
||||
|
||||
public get entries(): HighScoreData[]
|
||||
{
|
||||
return this._entries;
|
||||
}
|
||||
|
||||
public get clearType(): number
|
||||
{
|
||||
return this._clearType;
|
||||
}
|
||||
|
||||
public get scoreType(): number
|
||||
{
|
||||
return this._scoreType;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
import { IMessageDataWrapper } from '../../../../../communication';
|
||||
import { IRoomObjectModel } from '../../../../../room';
|
||||
import { RoomObjectVariable } from '../../RoomObjectVariable';
|
||||
import { IObjectData } from '../IObjectData';
|
||||
import { ObjectDataBase } from '../ObjectDataBase';
|
||||
import { ObjectDataKey } from '../ObjectDataKey';
|
||||
|
||||
export class LegacyDataType extends ObjectDataBase implements IObjectData
|
||||
{
|
||||
public static FORMAT_KEY = ObjectDataKey.LEGACY_KEY;
|
||||
|
||||
private _data: string;
|
||||
|
||||
constructor()
|
||||
{
|
||||
super();
|
||||
|
||||
this._data = '';
|
||||
}
|
||||
|
||||
public parseWrapper(wrapper: IMessageDataWrapper): void
|
||||
{
|
||||
if(!wrapper) return;
|
||||
|
||||
this._data = wrapper.readString();
|
||||
|
||||
super.parseWrapper(wrapper);
|
||||
}
|
||||
|
||||
public initializeFromRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
super.initializeFromRoomObjectModel(model);
|
||||
|
||||
this._data = model.getValue<string>(RoomObjectVariable.FURNITURE_DATA);
|
||||
}
|
||||
|
||||
public writeRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
super.writeRoomObjectModel(model);
|
||||
|
||||
model.setValue(RoomObjectVariable.FURNITURE_DATA_FORMAT, LegacyDataType.FORMAT_KEY);
|
||||
model.setValue(RoomObjectVariable.FURNITURE_DATA, this._data);
|
||||
}
|
||||
|
||||
public getLegacyString(): string
|
||||
{
|
||||
return this._data;
|
||||
}
|
||||
|
||||
public compare(data: IObjectData): boolean
|
||||
{
|
||||
return (this._data === data.getLegacyString());
|
||||
}
|
||||
|
||||
public setString(data: string): void
|
||||
{
|
||||
this._data = data;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
import { IMessageDataWrapper } from '../../../../../communication';
|
||||
import { IRoomObjectModel } from '../../../../../room';
|
||||
import { RoomObjectVariable } from '../../RoomObjectVariable';
|
||||
import { IObjectData } from '../IObjectData';
|
||||
import { ObjectDataBase } from '../ObjectDataBase';
|
||||
import { ObjectDataKey } from '../ObjectDataKey';
|
||||
|
||||
export class MapDataType extends ObjectDataBase
|
||||
{
|
||||
public static FORMAT_KEY = ObjectDataKey.MAP_KEY;
|
||||
|
||||
private static STATE: string = 'state';
|
||||
private static RARITY: string = 'rarity';
|
||||
|
||||
private _data: { [index: string]: string };
|
||||
|
||||
constructor()
|
||||
{
|
||||
super();
|
||||
|
||||
this._data = {};
|
||||
}
|
||||
|
||||
public parseWrapper(wrapper: IMessageDataWrapper): void
|
||||
{
|
||||
if(!wrapper) return;
|
||||
|
||||
this._data = {};
|
||||
|
||||
const totalSets = wrapper.readInt();
|
||||
|
||||
if(totalSets) for(let i = 0; i < totalSets; i++) this._data[wrapper.readString()] = wrapper.readString();
|
||||
|
||||
super.parseWrapper(wrapper);
|
||||
}
|
||||
|
||||
public initializeFromRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
super.initializeFromRoomObjectModel(model);
|
||||
|
||||
this._data = model.getValue<{ [index: string]: string }>(RoomObjectVariable.FURNITURE_DATA) || {};
|
||||
}
|
||||
|
||||
public writeRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
super.writeRoomObjectModel(model);
|
||||
|
||||
model.setValue(RoomObjectVariable.FURNITURE_DATA_FORMAT, MapDataType.FORMAT_KEY);
|
||||
model.setValue(RoomObjectVariable.FURNITURE_DATA, this._data);
|
||||
}
|
||||
|
||||
public getLegacyString(): string
|
||||
{
|
||||
if(!this._data) return '';
|
||||
|
||||
const state = this._data[MapDataType.STATE];
|
||||
|
||||
if(state === undefined || state === null) return '';
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
public compare(data: IObjectData): boolean
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public getValue(key: string): string
|
||||
{
|
||||
return this._data[key];
|
||||
}
|
||||
|
||||
public get rarityLevel(): number
|
||||
{
|
||||
if(!this._data) return -1;
|
||||
|
||||
const state = this._data[MapDataType.RARITY];
|
||||
|
||||
if(state === undefined || state === null) return -1;
|
||||
|
||||
return parseInt(state);
|
||||
}
|
||||
|
||||
// TODO: How to get the keys?
|
||||
public get data()
|
||||
{
|
||||
return this._data;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
import { IMessageDataWrapper } from '../../../../../communication';
|
||||
import { IRoomObjectModel } from '../../../../../room';
|
||||
import { RoomObjectVariable } from '../../RoomObjectVariable';
|
||||
import { IObjectData } from '../IObjectData';
|
||||
import { ObjectDataBase } from '../ObjectDataBase';
|
||||
import { ObjectDataKey } from '../ObjectDataKey';
|
||||
|
||||
export class NumberDataType extends ObjectDataBase
|
||||
{
|
||||
public static FORMAT_KEY = ObjectDataKey.NUMBER_KEY;
|
||||
|
||||
private static STATE: number = 0;
|
||||
|
||||
private _data: number[];
|
||||
|
||||
constructor()
|
||||
{
|
||||
super();
|
||||
|
||||
this._data = [];
|
||||
}
|
||||
|
||||
public parseWrapper(wrapper: IMessageDataWrapper): void
|
||||
{
|
||||
if(!wrapper) return;
|
||||
|
||||
this._data = [];
|
||||
|
||||
const totalNumbers = wrapper.readInt();
|
||||
|
||||
if(totalNumbers) for(let i = 0; i < totalNumbers; i++) this._data.push(wrapper.readInt());
|
||||
|
||||
super.parseWrapper(wrapper);
|
||||
}
|
||||
|
||||
public initializeFromRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
super.initializeFromRoomObjectModel(model);
|
||||
|
||||
this._data = model.getValue<number[]>(RoomObjectVariable.FURNITURE_DATA);
|
||||
}
|
||||
|
||||
public writeRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
super.writeRoomObjectModel(model);
|
||||
|
||||
model.setValue(RoomObjectVariable.FURNITURE_DATA_FORMAT, NumberDataType.FORMAT_KEY);
|
||||
model.setValue(RoomObjectVariable.FURNITURE_DATA, this._data);
|
||||
}
|
||||
|
||||
public getLegacyString(): string
|
||||
{
|
||||
if(!this._data || !this._data.length) return '';
|
||||
|
||||
return this._data[NumberDataType.STATE].toString();
|
||||
}
|
||||
|
||||
public compare(data: IObjectData): boolean
|
||||
{
|
||||
if(!(data instanceof NumberDataType)) return false;
|
||||
|
||||
let i = 0;
|
||||
|
||||
while(i < this._data.length)
|
||||
{
|
||||
if(i === 0)
|
||||
{
|
||||
//
|
||||
}
|
||||
else
|
||||
{
|
||||
if(this._data[i] !== data.getValue(i)) return false;
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public getValue(index: number): number
|
||||
{
|
||||
if(!this._data || !this._data.length) return -1;
|
||||
|
||||
const value = this._data[index];
|
||||
|
||||
if(value === undefined || value === null) return -1;
|
||||
|
||||
return value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
import { IMessageDataWrapper } from '../../../../../communication';
|
||||
import { IRoomObjectModel } from '../../../../../room';
|
||||
import { RoomObjectVariable } from '../../RoomObjectVariable';
|
||||
import { IObjectData } from '../IObjectData';
|
||||
import { ObjectDataBase } from '../ObjectDataBase';
|
||||
import { ObjectDataKey } from '../ObjectDataKey';
|
||||
|
||||
export class StringDataType extends ObjectDataBase
|
||||
{
|
||||
public static FORMAT_KEY = ObjectDataKey.STRING_KEY;
|
||||
|
||||
private static STATE: number = 0;
|
||||
|
||||
private _data: string[];
|
||||
|
||||
constructor()
|
||||
{
|
||||
super();
|
||||
|
||||
this._data = [];
|
||||
}
|
||||
|
||||
public parseWrapper(wrapper: IMessageDataWrapper): void
|
||||
{
|
||||
if(!wrapper) return;
|
||||
|
||||
this._data = [];
|
||||
|
||||
const totalStrings = wrapper.readInt();
|
||||
|
||||
if(totalStrings) for(let i = 0; i < totalStrings; i++) this._data.push(wrapper.readString());
|
||||
|
||||
super.parseWrapper(wrapper);
|
||||
}
|
||||
|
||||
public initializeFromRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
super.initializeFromRoomObjectModel(model);
|
||||
|
||||
this._data = model.getValue<string[]>(RoomObjectVariable.FURNITURE_DATA);
|
||||
}
|
||||
|
||||
public writeRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
super.writeRoomObjectModel(model);
|
||||
|
||||
model.setValue(RoomObjectVariable.FURNITURE_DATA_FORMAT, StringDataType.FORMAT_KEY);
|
||||
model.setValue(RoomObjectVariable.FURNITURE_DATA, this._data);
|
||||
}
|
||||
|
||||
public getLegacyString(): string
|
||||
{
|
||||
if(!this._data || !this._data.length) return '';
|
||||
|
||||
return this._data[StringDataType.STATE];
|
||||
}
|
||||
|
||||
public compare(data: IObjectData): boolean
|
||||
{
|
||||
if(!(data instanceof StringDataType)) return false;
|
||||
|
||||
let i = 0;
|
||||
|
||||
while(i < this._data.length)
|
||||
{
|
||||
if(i === 0)
|
||||
{
|
||||
//
|
||||
}
|
||||
else
|
||||
{
|
||||
if(this._data[i] !== data.getValue(i)) return false;
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public getValue(index: number): string
|
||||
{
|
||||
return this._data[index] || '';
|
||||
}
|
||||
|
||||
public setValue(data: string[]): void
|
||||
{
|
||||
this._data = data;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
import { IMessageDataWrapper } from '../../../../../communication';
|
||||
import { IRoomObjectModel } from '../../../../../room';
|
||||
import { RoomObjectVariable } from '../../RoomObjectVariable';
|
||||
import { IObjectData } from '../IObjectData';
|
||||
import { ObjectDataBase } from '../ObjectDataBase';
|
||||
import { ObjectDataKey } from '../ObjectDataKey';
|
||||
|
||||
export class VoteDataType extends ObjectDataBase
|
||||
{
|
||||
public static FORMAT_KEY = ObjectDataKey.VOTE_KEY;
|
||||
|
||||
private _state: string;
|
||||
private _result: number;
|
||||
|
||||
constructor()
|
||||
{
|
||||
super();
|
||||
|
||||
this._state = '';
|
||||
this._result = 0;
|
||||
}
|
||||
|
||||
public parseWrapper(wrapper: IMessageDataWrapper): void
|
||||
{
|
||||
if(!wrapper) return;
|
||||
|
||||
this._state = wrapper.readString();
|
||||
this._result = wrapper.readInt();
|
||||
|
||||
super.parseWrapper(wrapper);
|
||||
}
|
||||
|
||||
public writeRoomObjectModel(model: IRoomObjectModel): void
|
||||
{
|
||||
super.writeRoomObjectModel(model);
|
||||
|
||||
model.setValue(RoomObjectVariable.FURNITURE_DATA_FORMAT, VoteDataType.FORMAT_KEY);
|
||||
|
||||
const data: { [index: string]: string } = {};
|
||||
|
||||
data['S'] = this._state;
|
||||
data['R'] = this._result.toString();
|
||||
|
||||
model.setValue(RoomObjectVariable.FURNITURE_DATA, data);
|
||||
}
|
||||
|
||||
public getLegacyString(): string
|
||||
{
|
||||
return this._state;
|
||||
}
|
||||
|
||||
public compare(data: IObjectData): boolean
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public setString(state: string): void
|
||||
{
|
||||
this._state = state;
|
||||
}
|
||||
|
||||
public get result(): number
|
||||
{
|
||||
return this._result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
export * from './CrackableDataType';
|
||||
export * from './EmptyDataType';
|
||||
export * from './HighScoreData';
|
||||
export * from './HighScoreDataType';
|
||||
export * from './LegacyDataType';
|
||||
export * from './MapDataType';
|
||||
export * from './NumberDataType';
|
||||
export * from './StringDataType';
|
||||
export * from './VoteDataType';
|
||||
@@ -0,0 +1,11 @@
|
||||
export * from './data';
|
||||
export * from './data/type';
|
||||
export * from './IPetFigureData';
|
||||
export * from './IRoomMapData';
|
||||
export * from './RoomObjectCategory';
|
||||
export * from './RoomObjectLogicType';
|
||||
export * from './RoomObjectOperationType';
|
||||
export * from './RoomObjectType';
|
||||
export * from './RoomObjectUserType';
|
||||
export * from './RoomObjectVariable';
|
||||
export * from './RoomObjectVisualizationType';
|
||||
@@ -0,0 +1,11 @@
|
||||
export interface IFurnitureStackingHeightMap
|
||||
{
|
||||
dispose: () => void;
|
||||
getTileHeight(x: number, y: number): number;
|
||||
setTileHeight(x: number, y: number, height: number): void;
|
||||
setStackingBlocked(x: number, y: number, isNotStackable: boolean): void;
|
||||
setIsRoomTile(x: number, y: number, isRoomTile: boolean): void;
|
||||
validateLocation(k: number, _arg_2: number, _arg_3: number, _arg_4: number, _arg_5: number, _arg_6: number, _arg_7: number, _arg_8: number, _arg_9: boolean, _arg_10?: number): boolean;
|
||||
readonly width: number;
|
||||
readonly height: number;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import { IVector3D } from '../../../utils';
|
||||
|
||||
export interface ILegacyWallGeometry
|
||||
{
|
||||
dispose: () => void;
|
||||
readonly disposed: boolean;
|
||||
scale: number;
|
||||
initialize(width: number, height: number, floorHeight: number): void;
|
||||
setHeight(x: number, y: number, height: number): boolean;
|
||||
getHeight(x: number, y: number): number;
|
||||
getLocation(k: number, _arg_2: number, _arg_3: number, _arg_4: number, _arg_5: string): IVector3D;
|
||||
getLocationOldFormat(k: number, _arg_2: number, _arg_3: string): IVector3D;
|
||||
getOldLocation(k: IVector3D, _arg_2: number): [number, number, number, number, string];
|
||||
getOldLocationString(k: IVector3D, _arg_2: number): string;
|
||||
getDirection(k: string): number;
|
||||
getFloorAltitude(k: number, _arg_2: number): number;
|
||||
isRoomTile(k: number, _arg_2: number): boolean;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import { IRoomObject } from '../../../room';
|
||||
|
||||
export interface ITileObjectMap
|
||||
{
|
||||
clear(): void;
|
||||
populate(k: IRoomObject[]): void;
|
||||
dispose(): void;
|
||||
getObjectIntTile(k: number, _arg_2: number): IRoomObject;
|
||||
setObjectInTile(k: number, _arg_2: number, _arg_3: IRoomObject): void;
|
||||
addRoomObject(k: IRoomObject): void;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
import { IVector3D } from '../../../utils';
|
||||
|
||||
export class ObjectRolling
|
||||
{
|
||||
public static MOVE: string = 'mv';
|
||||
public static SLIDE: string = 'sld';
|
||||
|
||||
private _id: number;
|
||||
private _location: IVector3D;
|
||||
private _targetLocation: IVector3D;
|
||||
private _movementType: string;
|
||||
|
||||
constructor(id: number, location: IVector3D, targetLocation: IVector3D, movementType: string = null)
|
||||
{
|
||||
this._id = id;
|
||||
this._location = location;
|
||||
this._targetLocation = targetLocation;
|
||||
this._movementType = movementType;
|
||||
}
|
||||
|
||||
public get id(): number
|
||||
{
|
||||
return this._id;
|
||||
}
|
||||
|
||||
public get location(): IVector3D
|
||||
{
|
||||
return this._location;
|
||||
}
|
||||
|
||||
public get targetLocation(): IVector3D
|
||||
{
|
||||
return this._targetLocation;
|
||||
}
|
||||
|
||||
public get movementType(): string
|
||||
{
|
||||
return this._movementType;
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user