You've already forked Nitro_Render_V3
mirror of
https://github.com/duckietm/Nitro_Render_V3.git
synced 2026-06-19 15:06:20 +00:00
Merge latest duckie renderer main
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import { Container, Texture } from 'pixi.js';
|
import { Container, Texture } from 'pixi.js';
|
||||||
|
import { IActiveActionData } from './actions';
|
||||||
import { IAvatarFigureContainer } from './IAvatarFigureContainer';
|
import { IAvatarFigureContainer } from './IAvatarFigureContainer';
|
||||||
import { IAnimationLayerData, ISpriteDataContainer } from './animation';
|
import { IAnimationLayerData, ISpriteDataContainer } from './animation';
|
||||||
import { IPartColor } from './structure';
|
import { IPartColor } from './structure';
|
||||||
@@ -18,6 +19,7 @@ export interface IAvatarImage
|
|||||||
getDirection(): number;
|
getDirection(): number;
|
||||||
getFigure(): IAvatarFigureContainer;
|
getFigure(): IAvatarFigureContainer;
|
||||||
getPartColor(_arg_1: string): IPartColor;
|
getPartColor(_arg_1: string): IPartColor;
|
||||||
|
getMainAction(): IActiveActionData;
|
||||||
isAnimating(): boolean;
|
isAnimating(): boolean;
|
||||||
getCanvasOffsets(): number[];
|
getCanvasOffsets(): number[];
|
||||||
initActionAppends(): void;
|
initActionAppends(): void;
|
||||||
|
|||||||
@@ -8,5 +8,6 @@
|
|||||||
public static WARDROBE: string = 'wardrobe';
|
public static WARDROBE: string = 'wardrobe';
|
||||||
public static EFFECTS: string = 'effects';
|
public static EFFECTS: string = 'effects';
|
||||||
public static PETS: string = 'pets';
|
public static PETS: string = 'pets';
|
||||||
|
public static MISC: string = 'misc';
|
||||||
public static NFT: string = 'nft';
|
public static NFT: string = 'nft';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,5 +32,6 @@
|
|||||||
public static LEFT_COAT_SLEEVE: string = 'lc';
|
public static LEFT_COAT_SLEEVE: string = 'lc';
|
||||||
public static RIGHT_COAT_SLEEVE: string = 'rc';
|
public static RIGHT_COAT_SLEEVE: string = 'rc';
|
||||||
public static PET: string = 'pt';
|
public static PET: string = 'pt';
|
||||||
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, AvatarFigurePartType.PET ];
|
public static MISC: string = 'mc';
|
||||||
|
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, AvatarFigurePartType.PET, AvatarFigurePartType.MISC ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -158,6 +158,11 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
|
|||||||
return this._canvasOffsets;
|
return this._canvasOffsets;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public getMainAction(): IActiveActionData
|
||||||
|
{
|
||||||
|
return this._mainAction;
|
||||||
|
}
|
||||||
|
|
||||||
public getLayerData(k: ISpriteDataContainer): IAnimationLayerData
|
public getLayerData(k: ISpriteDataContainer): IAnimationLayerData
|
||||||
{
|
{
|
||||||
return this._structure.getBodyPartData(k.animation.id, this._frameCounter, k.id);
|
return this._structure.getBodyPartData(k.animation.id, this._frameCounter, k.id);
|
||||||
@@ -314,6 +319,9 @@ export class AvatarImage implements IAvatarImage, IAvatarEffectListener
|
|||||||
const canvas = GetRenderer().texture.generateCanvas(texture);
|
const canvas = GetRenderer().texture.generateCanvas(texture);
|
||||||
|
|
||||||
const url = canvas.toDataURL('image/png');
|
const url = canvas.toDataURL('image/png');
|
||||||
|
|
||||||
|
canvas.width = 0;
|
||||||
|
canvas.height = 0;
|
||||||
|
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -366,6 +366,9 @@ export class AvatarStructure
|
|||||||
|
|
||||||
const visiblePartTypes = this._geometry.getParts(geometryType, bodyPartId, direction, activePartTypes, avatar);
|
const visiblePartTypes = this._geometry.getParts(geometryType, bodyPartId, direction, activePartTypes, avatar);
|
||||||
const figurePartTypeIds = figureContainer.getPartTypeIds();
|
const figurePartTypeIds = figureContainer.getPartTypeIds();
|
||||||
|
const mainAction = avatar?.getMainAction?.();
|
||||||
|
const isSittingPosture = (mainAction?.definition?.assetPartDefinition === 'sit')
|
||||||
|
|| (action.definition.assetPartDefinition === 'sit');
|
||||||
|
|
||||||
for(const figurePartType of figurePartTypeIds)
|
for(const figurePartType of figurePartTypeIds)
|
||||||
{
|
{
|
||||||
@@ -390,8 +393,44 @@ export class AvatarStructure
|
|||||||
{
|
{
|
||||||
removes = removes.concat(figurePartSet.hiddenLayers);
|
removes = removes.concat(figurePartSet.hiddenLayers);
|
||||||
|
|
||||||
|
let petHasVisibleSit = false;
|
||||||
|
|
||||||
|
if(isSittingPosture && figurePartType === 'pt')
|
||||||
|
{
|
||||||
|
for(const fp of figurePartSet.parts)
|
||||||
|
{
|
||||||
|
if(fp.type === 'pt')
|
||||||
|
{
|
||||||
|
for(const dir of ['0', '2'])
|
||||||
|
{
|
||||||
|
const assetName = 'h_sit_pt_' + fp.id + '_' + dir + '_0';
|
||||||
|
const testAsset = this._renderManager.getAssetByName(assetName);
|
||||||
|
|
||||||
|
if(testAsset && testAsset.width > 1 && testAsset.height > 1 && testAsset.source === assetName)
|
||||||
|
{
|
||||||
|
const stdName = 'h_std_pt_' + fp.id + '_' + dir + '_0';
|
||||||
|
const stdAsset = this._renderManager.getAssetByName(stdName);
|
||||||
|
|
||||||
|
if(!stdAsset || stdAsset.source !== assetName)
|
||||||
|
{
|
||||||
|
petHasVisibleSit = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for(const figurePart of figurePartSet.parts)
|
for(const figurePart of figurePartSet.parts)
|
||||||
{
|
{
|
||||||
|
if(isSittingPosture && figurePartType === 'pt')
|
||||||
|
{
|
||||||
|
if(petHasVisibleSit && figurePart.type !== 'pt') continue;
|
||||||
|
if(!petHasVisibleSit) continue;
|
||||||
|
}
|
||||||
if(visiblePartTypes.indexOf(figurePart.type) > -1)
|
if(visiblePartTypes.indexOf(figurePart.type) > -1)
|
||||||
{
|
{
|
||||||
if(animationAction)
|
if(animationAction)
|
||||||
|
|||||||
@@ -139,6 +139,8 @@ export class AvatarImageCache
|
|||||||
|
|
||||||
if((((this._geometryType === GeometryType.SITTING) && (k === GeometryType.VERTICAL)) || ((this._geometryType === GeometryType.VERTICAL) && (k === GeometryType.SITTING)) || ((this._geometryType === GeometryType.SNOWWARS_HORIZONTAL) && (k = GeometryType.SNOWWARS_HORIZONTAL))))
|
if((((this._geometryType === GeometryType.SITTING) && (k === GeometryType.VERTICAL)) || ((this._geometryType === GeometryType.VERTICAL) && (k === GeometryType.SITTING)) || ((this._geometryType === GeometryType.SNOWWARS_HORIZONTAL) && (k = GeometryType.SNOWWARS_HORIZONTAL))))
|
||||||
{
|
{
|
||||||
|
this.disposeInactiveActions(0);
|
||||||
|
|
||||||
this._geometryType = k;
|
this._geometryType = k;
|
||||||
this._canvas = null;
|
this._canvas = null;
|
||||||
this._defaultAction = (k === GeometryType.HORIZONTAL) ? 'lay' : 'std';
|
this._defaultAction = (k === GeometryType.HORIZONTAL) ? 'lay' : 'std';
|
||||||
|
|||||||
+6
@@ -23,6 +23,12 @@ export class ImageData
|
|||||||
|
|
||||||
public dispose(): void
|
public dispose(): void
|
||||||
{
|
{
|
||||||
|
if(this._container)
|
||||||
|
{
|
||||||
|
this._container.destroy({ children: true });
|
||||||
|
this._container = null;
|
||||||
|
}
|
||||||
|
|
||||||
this._texture = null;
|
this._texture = null;
|
||||||
this._regPoint = null;
|
this._regPoint = null;
|
||||||
this._colorTransform = null;
|
this._colorTransform = null;
|
||||||
|
|||||||
@@ -249,6 +249,45 @@ export const HabboAvatarAnimations = {
|
|||||||
{ 'number': 6, 'assetPartDefinition': 'std' },
|
{ 'number': 6, 'assetPartDefinition': 'std' },
|
||||||
{ 'number': 7, 'assetPartDefinition': 'std' }
|
{ 'number': 7, 'assetPartDefinition': 'std' }
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mc',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 1, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 2, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 3, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 4, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 5, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 6, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 7, 'assetPartDefinition': 'std' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcl',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 1, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 2, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 3, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 4, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 5, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 6, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 7, 'assetPartDefinition': 'std' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcr',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 1, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 2, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 3, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 4, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 5, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 6, 'assetPartDefinition': 'std' },
|
||||||
|
{ 'number': 7, 'assetPartDefinition': 'std' }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -410,6 +449,45 @@ export const HabboAvatarAnimations = {
|
|||||||
{ 'number': 6, 'assetPartDefinition': 'sit' },
|
{ 'number': 6, 'assetPartDefinition': 'sit' },
|
||||||
{ 'number': 7, 'assetPartDefinition': 'sit' }
|
{ 'number': 7, 'assetPartDefinition': 'sit' }
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mc',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 1, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 2, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 3, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 4, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 5, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 6, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 7, 'assetPartDefinition': 'sit' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcl',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 1, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 2, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 3, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 4, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 5, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 6, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 7, 'assetPartDefinition': 'sit' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcr',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 1, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 2, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 3, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 4, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 5, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 6, 'assetPartDefinition': 'sit' },
|
||||||
|
{ 'number': 7, 'assetPartDefinition': 'sit' }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -584,6 +662,45 @@ export const HabboAvatarAnimations = {
|
|||||||
{ 'number': 6, 'assetPartDefinition': 'lay' },
|
{ 'number': 6, 'assetPartDefinition': 'lay' },
|
||||||
{ 'number': 7, 'assetPartDefinition': 'lay' }
|
{ 'number': 7, 'assetPartDefinition': 'lay' }
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mc',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 1, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 2, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 3, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 4, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 5, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 6, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 7, 'assetPartDefinition': 'lay' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcl',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 1, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 2, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 3, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 4, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 5, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 6, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 7, 'assetPartDefinition': 'lay' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcr',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 1, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 2, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 3, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 4, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 5, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 6, 'assetPartDefinition': 'lay' },
|
||||||
|
{ 'number': 7, 'assetPartDefinition': 'lay' }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -910,6 +1027,33 @@ export const HabboAvatarAnimations = {
|
|||||||
{ 'number': 2, 'assetPartDefinition': 'wlk' },
|
{ 'number': 2, 'assetPartDefinition': 'wlk' },
|
||||||
{ 'number': 3, 'assetPartDefinition': 'wlk' }
|
{ 'number': 3, 'assetPartDefinition': 'wlk' }
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mc',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'wlk' },
|
||||||
|
{ 'number': 1, 'assetPartDefinition': 'wlk' },
|
||||||
|
{ 'number': 2, 'assetPartDefinition': 'wlk' },
|
||||||
|
{ 'number': 3, 'assetPartDefinition': 'wlk' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcl',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'wlk' },
|
||||||
|
{ 'number': 1, 'assetPartDefinition': 'wlk' },
|
||||||
|
{ 'number': 2, 'assetPartDefinition': 'wlk' },
|
||||||
|
{ 'number': 3, 'assetPartDefinition': 'wlk' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcr',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'wlk' },
|
||||||
|
{ 'number': 1, 'assetPartDefinition': 'wlk' },
|
||||||
|
{ 'number': 2, 'assetPartDefinition': 'wlk' },
|
||||||
|
{ 'number': 3, 'assetPartDefinition': 'wlk' }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1009,6 +1153,27 @@ export const HabboAvatarAnimations = {
|
|||||||
{ 'number': 0, 'assetPartDefinition': 'wav' },
|
{ 'number': 0, 'assetPartDefinition': 'wav' },
|
||||||
{ 'number': 1, 'assetPartDefinition': 'wav' }
|
{ 'number': 1, 'assetPartDefinition': 'wav' }
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mc',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'wav' },
|
||||||
|
{ 'number': 1, 'assetPartDefinition': 'wav' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcl',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'wav' },
|
||||||
|
{ 'number': 1, 'assetPartDefinition': 'wav' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcr',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'wav' },
|
||||||
|
{ 'number': 1, 'assetPartDefinition': 'wav' }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1239,6 +1404,24 @@ export const HabboAvatarAnimations = {
|
|||||||
'frames': [
|
'frames': [
|
||||||
{ 'number': 0, 'assetPartDefinition': 'std' }
|
{ 'number': 0, 'assetPartDefinition': 'std' }
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mc',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'std' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcl',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'std' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcr',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'std' }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1317,6 +1500,24 @@ export const HabboAvatarAnimations = {
|
|||||||
'frames': [
|
'frames': [
|
||||||
{ 'number': 0, 'assetPartDefinition': 'drk' }
|
{ 'number': 0, 'assetPartDefinition': 'drk' }
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mc',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'drk' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcl',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'drk' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcr',
|
||||||
|
'frames': [
|
||||||
|
{ 'number': 0, 'assetPartDefinition': 'drk' }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
'offsets': {
|
'offsets': {
|
||||||
|
|||||||
@@ -278,6 +278,17 @@ export const HabboAvatarGeometry = {
|
|||||||
'ny': 0,
|
'ny': 0,
|
||||||
'nz': -1,
|
'nz': -1,
|
||||||
'double': false
|
'double': false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'mc',
|
||||||
|
'x': 0,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0,
|
||||||
|
'radius': 0.09,
|
||||||
|
'nx': 0,
|
||||||
|
'ny': 0,
|
||||||
|
'nz': -1,
|
||||||
|
'double': false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -382,6 +393,17 @@ export const HabboAvatarGeometry = {
|
|||||||
'ny': 0,
|
'ny': 0,
|
||||||
'nz': -1,
|
'nz': -1,
|
||||||
'double': false
|
'double': false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'mcl',
|
||||||
|
'x': 0,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0,
|
||||||
|
'radius': 0.04,
|
||||||
|
'nx': 0,
|
||||||
|
'ny': 0,
|
||||||
|
'nz': -1,
|
||||||
|
'double': false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -446,6 +468,17 @@ export const HabboAvatarGeometry = {
|
|||||||
'ny': 0,
|
'ny': 0,
|
||||||
'nz': -1,
|
'nz': -1,
|
||||||
'double': false
|
'double': false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'mcr',
|
||||||
|
'x': 0,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0,
|
||||||
|
'radius': 0.04,
|
||||||
|
'nx': 0,
|
||||||
|
'ny': 0,
|
||||||
|
'nz': -1,
|
||||||
|
'double': false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -710,6 +743,17 @@ export const HabboAvatarGeometry = {
|
|||||||
'ny': 0,
|
'ny': 0,
|
||||||
'nz': -1,
|
'nz': -1,
|
||||||
'double': false
|
'double': false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'mc',
|
||||||
|
'x': 0,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0,
|
||||||
|
'radius': 0.09,
|
||||||
|
'nx': 0,
|
||||||
|
'ny': 0,
|
||||||
|
'nz': -1,
|
||||||
|
'double': false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -814,6 +858,17 @@ export const HabboAvatarGeometry = {
|
|||||||
'ny': 0,
|
'ny': 0,
|
||||||
'nz': -1,
|
'nz': -1,
|
||||||
'double': false
|
'double': false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'mcl',
|
||||||
|
'x': 0,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0,
|
||||||
|
'radius': 0.04,
|
||||||
|
'nx': 0,
|
||||||
|
'ny': 0,
|
||||||
|
'nz': -1,
|
||||||
|
'double': false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -878,6 +933,17 @@ export const HabboAvatarGeometry = {
|
|||||||
'ny': 0,
|
'ny': 0,
|
||||||
'nz': -1,
|
'nz': -1,
|
||||||
'double': false
|
'double': false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'mcr',
|
||||||
|
'x': 0,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0,
|
||||||
|
'radius': 0.04,
|
||||||
|
'nx': 0,
|
||||||
|
'ny': 0,
|
||||||
|
'nz': -1,
|
||||||
|
'double': false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1121,6 +1187,17 @@ export const HabboAvatarGeometry = {
|
|||||||
'ny': 0,
|
'ny': 0,
|
||||||
'nz': -1,
|
'nz': -1,
|
||||||
'double': false
|
'double': false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'mc',
|
||||||
|
'x': 0,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0,
|
||||||
|
'radius': 0.09,
|
||||||
|
'nx': 0,
|
||||||
|
'ny': 0,
|
||||||
|
'nz': -1,
|
||||||
|
'double': false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1225,6 +1302,17 @@ export const HabboAvatarGeometry = {
|
|||||||
'ny': 0,
|
'ny': 0,
|
||||||
'nz': -1,
|
'nz': -1,
|
||||||
'double': false
|
'double': false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'mcl',
|
||||||
|
'x': 0,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0,
|
||||||
|
'radius': 0.04,
|
||||||
|
'nx': 0,
|
||||||
|
'ny': 0,
|
||||||
|
'nz': -1,
|
||||||
|
'double': false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1289,6 +1377,17 @@ export const HabboAvatarGeometry = {
|
|||||||
'ny': 0,
|
'ny': 0,
|
||||||
'nz': -1,
|
'nz': -1,
|
||||||
'double': false
|
'double': false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'mcr',
|
||||||
|
'x': 0,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0,
|
||||||
|
'radius': 0.04,
|
||||||
|
'nx': 0,
|
||||||
|
'ny': 0,
|
||||||
|
'nz': -1,
|
||||||
|
'double': false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1532,6 +1631,17 @@ export const HabboAvatarGeometry = {
|
|||||||
'ny': 0,
|
'ny': 0,
|
||||||
'nz': -1,
|
'nz': -1,
|
||||||
'double': false
|
'double': false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'mc',
|
||||||
|
'x': 0,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0,
|
||||||
|
'radius': 0.09,
|
||||||
|
'nx': 0,
|
||||||
|
'ny': 0,
|
||||||
|
'nz': -1,
|
||||||
|
'double': false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1636,6 +1746,17 @@ export const HabboAvatarGeometry = {
|
|||||||
'ny': 0,
|
'ny': 0,
|
||||||
'nz': -1,
|
'nz': -1,
|
||||||
'double': false
|
'double': false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'mcl',
|
||||||
|
'x': 0,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0,
|
||||||
|
'radius': 0.04,
|
||||||
|
'nx': 0,
|
||||||
|
'ny': 0,
|
||||||
|
'nz': -1,
|
||||||
|
'double': false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1700,6 +1821,17 @@ export const HabboAvatarGeometry = {
|
|||||||
'ny': 0,
|
'ny': 0,
|
||||||
'nz': -1,
|
'nz': -1,
|
||||||
'double': false
|
'double': false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'id': 'mcr',
|
||||||
|
'x': 0,
|
||||||
|
'y': 0,
|
||||||
|
'z': 0,
|
||||||
|
'radius': 0.04,
|
||||||
|
'nx': 0,
|
||||||
|
'ny': 0,
|
||||||
|
'nz': -1,
|
||||||
|
'double': false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -114,6 +114,17 @@ export const HabboAvatarPartSets = {
|
|||||||
{
|
{
|
||||||
'setType': 'ptr',
|
'setType': 'ptr',
|
||||||
'flippedSetType': 'ptl'
|
'flippedSetType': 'ptl'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mc'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcl',
|
||||||
|
'flippedSetType': 'mcr'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcr',
|
||||||
|
'flippedSetType': 'mcl'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
'activePartSets': [
|
'activePartSets': [
|
||||||
@@ -212,6 +223,15 @@ export const HabboAvatarPartSets = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
'setType': 'ptr'
|
'setType': 'ptr'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mc'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcl'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'setType': 'mcr'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -117,7 +117,12 @@ export class RoomCameraWidgetManager implements IRoomCameraWidgetManager
|
|||||||
|
|
||||||
TextureUtils.writeToTexture(container, renderTexture);
|
TextureUtils.writeToTexture(container, renderTexture);
|
||||||
|
|
||||||
return await TextureUtils.generateImage(renderTexture);
|
const image = await TextureUtils.generateImage(renderTexture);
|
||||||
|
|
||||||
|
renderTexture.destroy(true);
|
||||||
|
container.destroy({ children: true });
|
||||||
|
|
||||||
|
return image;
|
||||||
}
|
}
|
||||||
|
|
||||||
public get effects(): Map<string, IRoomCameraWidgetEffect>
|
public get effects(): Map<string, IRoomCameraWidgetEffect>
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ export * from './messages/incoming/room/furniture';
|
|||||||
export * from './messages/incoming/room/furniture/floor';
|
export * from './messages/incoming/room/furniture/floor';
|
||||||
export * from './messages/incoming/room/furniture/wall';
|
export * from './messages/incoming/room/furniture/wall';
|
||||||
export * from './messages/incoming/room/furniture/youtube';
|
export * from './messages/incoming/room/furniture/youtube';
|
||||||
|
export * from './messages/incoming/room/youtube';
|
||||||
export * from './messages/incoming/room/mapping';
|
export * from './messages/incoming/room/mapping';
|
||||||
export * from './messages/incoming/room/pet';
|
export * from './messages/incoming/room/pet';
|
||||||
export * from './messages/incoming/room/session';
|
export * from './messages/incoming/room/session';
|
||||||
@@ -143,6 +144,7 @@ export * from './messages/outgoing/room/furniture/presents';
|
|||||||
export * from './messages/outgoing/room/furniture/toner';
|
export * from './messages/outgoing/room/furniture/toner';
|
||||||
export * from './messages/outgoing/room/furniture/wall';
|
export * from './messages/outgoing/room/furniture/wall';
|
||||||
export * from './messages/outgoing/room/furniture/youtube';
|
export * from './messages/outgoing/room/furniture/youtube';
|
||||||
|
export * from './messages/outgoing/room/youtube';
|
||||||
export * from './messages/outgoing/room/layout';
|
export * from './messages/outgoing/room/layout';
|
||||||
export * from './messages/outgoing/room/pets';
|
export * from './messages/outgoing/room/pets';
|
||||||
export * from './messages/outgoing/room/session';
|
export * from './messages/outgoing/room/session';
|
||||||
@@ -225,6 +227,7 @@ export * from './messages/parser/room/furniture';
|
|||||||
export * from './messages/parser/room/furniture/floor';
|
export * from './messages/parser/room/furniture/floor';
|
||||||
export * from './messages/parser/room/furniture/wall';
|
export * from './messages/parser/room/furniture/wall';
|
||||||
export * from './messages/parser/room/furniture/youtube';
|
export * from './messages/parser/room/furniture/youtube';
|
||||||
|
export * from './messages/parser/room/youtube';
|
||||||
export * from './messages/parser/room/mapping';
|
export * from './messages/parser/room/mapping';
|
||||||
export * from './messages/parser/room/pet';
|
export * from './messages/parser/room/pet';
|
||||||
export * from './messages/parser/room/session';
|
export * from './messages/parser/room/session';
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ export * from './room/furniture';
|
|||||||
export * from './room/furniture/floor';
|
export * from './room/furniture/floor';
|
||||||
export * from './room/furniture/wall';
|
export * from './room/furniture/wall';
|
||||||
export * from './room/furniture/youtube';
|
export * from './room/furniture/youtube';
|
||||||
|
export * from './room/youtube';
|
||||||
export * from './room/mapping';
|
export * from './room/mapping';
|
||||||
export * from './room/pet';
|
export * from './room/pet';
|
||||||
export * from './room/session';
|
export * from './room/session';
|
||||||
|
|||||||
@@ -13,4 +13,3 @@ export * from './pet';
|
|||||||
export * from './session';
|
export * from './session';
|
||||||
export * from './unit';
|
export * from './unit';
|
||||||
export * from './unit/chat';
|
export * from './unit/chat';
|
||||||
export * from './youtube';
|
|
||||||
|
|||||||
+2
-2
@@ -4,9 +4,9 @@ export class CatalogAdminCreateOfferComposer implements IMessageComposer<Constru
|
|||||||
{
|
{
|
||||||
private _data: ConstructorParameters<typeof CatalogAdminCreateOfferComposer>;
|
private _data: ConstructorParameters<typeof CatalogAdminCreateOfferComposer>;
|
||||||
|
|
||||||
constructor(pageId: number, itemId: number, catalogName: string, costCredits: number, costPoints: number, pointsType: number, amount: number, clubOnly: number, extradata: string, haveOffer: boolean, offerIdGroup: number, limitedStack: number, orderNumber: number, catalogMode: string = 'NORMAL')
|
constructor(pageId: number, itemIds: string, catalogName: string, costCredits: number, costPoints: number, pointsType: number, amount: number, clubOnly: number, extradata: string, haveOffer: boolean, offerIdGroup: number, limitedStack: number, orderNumber: number, catalogMode: string = 'NORMAL')
|
||||||
{
|
{
|
||||||
this._data = [ pageId, itemId, catalogName, costCredits, costPoints, pointsType, amount, clubOnly, extradata, haveOffer, offerIdGroup, limitedStack, orderNumber, catalogMode ];
|
this._data = [ pageId, itemIds, catalogName, costCredits, costPoints, pointsType, amount, clubOnly, extradata, haveOffer, offerIdGroup, limitedStack, orderNumber, catalogMode ];
|
||||||
}
|
}
|
||||||
|
|
||||||
dispose(): void
|
dispose(): void
|
||||||
|
|||||||
+2
-2
@@ -4,9 +4,9 @@ export class CatalogAdminSaveOfferComposer implements IMessageComposer<Construct
|
|||||||
{
|
{
|
||||||
private _data: ConstructorParameters<typeof CatalogAdminSaveOfferComposer>;
|
private _data: ConstructorParameters<typeof CatalogAdminSaveOfferComposer>;
|
||||||
|
|
||||||
constructor(offerId: number, pageId: number, itemId: number, catalogName: string, costCredits: number, costPoints: number, pointsType: number, amount: number, clubOnly: number, extradata: string, haveOffer: boolean, offerIdGroup: number, limitedStack: number, orderNumber: number, catalogMode: string = 'NORMAL')
|
constructor(offerId: number, pageId: number, itemIds: string, catalogName: string, costCredits: number, costPoints: number, pointsType: number, amount: number, clubOnly: number, extradata: string, haveOffer: boolean, offerIdGroup: number, limitedStack: number, orderNumber: number, catalogMode: string = 'NORMAL')
|
||||||
{
|
{
|
||||||
this._data = [ offerId, pageId, itemId, catalogName, costCredits, costPoints, pointsType, amount, clubOnly, extradata, haveOffer, offerIdGroup, limitedStack, orderNumber, catalogMode ];
|
this._data = [ offerId, pageId, itemIds, catalogName, costCredits, costPoints, pointsType, amount, clubOnly, extradata, haveOffer, offerIdGroup, limitedStack, orderNumber, catalogMode ];
|
||||||
}
|
}
|
||||||
|
|
||||||
dispose(): void
|
dispose(): void
|
||||||
|
|||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
import { IMessageComposer } from '@nitrots/api';
|
||||||
|
|
||||||
|
export class CatalogAdminSavePageIconComposer implements IMessageComposer<ConstructorParameters<typeof CatalogAdminSavePageIconComposer>>
|
||||||
|
{
|
||||||
|
private _data: ConstructorParameters<typeof CatalogAdminSavePageIconComposer>;
|
||||||
|
|
||||||
|
constructor(pageId: number, iconId: number)
|
||||||
|
{
|
||||||
|
this._data = [ pageId, iconId ];
|
||||||
|
}
|
||||||
|
|
||||||
|
dispose(): void
|
||||||
|
{
|
||||||
|
this._data = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public getMessageArray()
|
||||||
|
{
|
||||||
|
return this._data;
|
||||||
|
}
|
||||||
|
}
|
||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
import { IMessageComposer } from '@nitrots/api';
|
||||||
|
|
||||||
|
export class CatalogAdminSavePageImagesComposer implements IMessageComposer<ConstructorParameters<typeof CatalogAdminSavePageImagesComposer>>
|
||||||
|
{
|
||||||
|
private _data: ConstructorParameters<typeof CatalogAdminSavePageImagesComposer>;
|
||||||
|
|
||||||
|
constructor(pageId: number, headerImage: string, teaserImage: string)
|
||||||
|
{
|
||||||
|
this._data = [ pageId, headerImage, teaserImage ];
|
||||||
|
}
|
||||||
|
|
||||||
|
dispose(): void
|
||||||
|
{
|
||||||
|
this._data = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public getMessageArray()
|
||||||
|
{
|
||||||
|
return this._data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -55,6 +55,7 @@ export * from './room/furniture/presents';
|
|||||||
export * from './room/furniture/toner';
|
export * from './room/furniture/toner';
|
||||||
export * from './room/furniture/wall';
|
export * from './room/furniture/wall';
|
||||||
export * from './room/furniture/youtube';
|
export * from './room/furniture/youtube';
|
||||||
|
export * from './room/youtube';
|
||||||
export * from './room/layout';
|
export * from './room/layout';
|
||||||
export * from './room/pets';
|
export * from './room/pets';
|
||||||
export * from './room/session';
|
export * from './room/session';
|
||||||
|
|||||||
@@ -17,4 +17,3 @@ export * from './RedeemItemClothingComposer';
|
|||||||
export * from './session';
|
export * from './session';
|
||||||
export * from './unit';
|
export * from './unit';
|
||||||
export * from './unit/chat';
|
export * from './unit/chat';
|
||||||
export * from './youtube';
|
|
||||||
|
|||||||
-2
@@ -6,8 +6,6 @@ export class YouTubeRoomWatchingComposer implements IMessageComposer<any[]>
|
|||||||
|
|
||||||
constructor(watching: boolean)
|
constructor(watching: boolean)
|
||||||
{
|
{
|
||||||
// Send as int (0/1) instead of bare boolean to avoid
|
|
||||||
// serialization ambiguity in the Nitro wire protocol.
|
|
||||||
this._data = [watching ? 1 : 0];
|
this._data = [watching ? 1 : 0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ export class CatalogPageMessageOfferData
|
|||||||
private _bundlePurchaseAllowed: boolean;
|
private _bundlePurchaseAllowed: boolean;
|
||||||
private _isPet: boolean;
|
private _isPet: boolean;
|
||||||
private _previewImage: string;
|
private _previewImage: string;
|
||||||
|
private _itemIds: string;
|
||||||
|
private _haveOffer: boolean;
|
||||||
private _products: CatalogPageMessageProductData[];
|
private _products: CatalogPageMessageProductData[];
|
||||||
|
|
||||||
constructor(wrapper: IMessageDataWrapper)
|
constructor(wrapper: IMessageDataWrapper)
|
||||||
@@ -41,6 +43,8 @@ export class CatalogPageMessageOfferData
|
|||||||
this._bundlePurchaseAllowed = wrapper.readBoolean();
|
this._bundlePurchaseAllowed = wrapper.readBoolean();
|
||||||
this._isPet = wrapper.readBoolean();
|
this._isPet = wrapper.readBoolean();
|
||||||
this._previewImage = wrapper.readString();
|
this._previewImage = wrapper.readString();
|
||||||
|
this._itemIds = wrapper.readString();
|
||||||
|
this._haveOffer = wrapper.readBoolean();
|
||||||
}
|
}
|
||||||
|
|
||||||
public get offerId(): number
|
public get offerId(): number
|
||||||
@@ -102,4 +106,14 @@ export class CatalogPageMessageOfferData
|
|||||||
{
|
{
|
||||||
return this._products;
|
return this._products;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public get itemIds(): string
|
||||||
|
{
|
||||||
|
return this._itemIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
public get haveOffer(): boolean
|
||||||
|
{
|
||||||
|
return this._haveOffer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ export * from './room/furniture';
|
|||||||
export * from './room/furniture/floor';
|
export * from './room/furniture/floor';
|
||||||
export * from './room/furniture/wall';
|
export * from './room/furniture/wall';
|
||||||
export * from './room/furniture/youtube';
|
export * from './room/furniture/youtube';
|
||||||
|
export * from './room/youtube';
|
||||||
export * from './room/mapping';
|
export * from './room/mapping';
|
||||||
export * from './room/pet';
|
export * from './room/pet';
|
||||||
export * from './room/session';
|
export * from './room/session';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
|
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
|
||||||
|
|
||||||
export class BadgeReceivedParser implements IMessageParser
|
export class BadgeReceivedParser implements IMessageParser
|
||||||
{
|
{
|
||||||
@@ -21,9 +21,6 @@ export class BadgeReceivedParser implements IMessageParser
|
|||||||
|
|
||||||
this._badgeId = wrapper.readInt();
|
this._badgeId = wrapper.readInt();
|
||||||
this._badgeCode = wrapper.readString();
|
this._badgeCode = wrapper.readString();
|
||||||
// Extra field appended by the Arcturus-Nitro fork: sender username for
|
|
||||||
// badges awarded by a staff member via the `:badge` command. Read
|
|
||||||
// defensively so older servers that don't send it still parse cleanly.
|
|
||||||
this._senderName = wrapper.bytesAvailable ? wrapper.readString() : '';
|
this._senderName = wrapper.bytesAvailable ? wrapper.readString() : '';
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -43,4 +40,4 @@ export class BadgeReceivedParser implements IMessageParser
|
|||||||
{
|
{
|
||||||
return this._senderName;
|
return this._senderName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,4 +13,3 @@ export * from './pet';
|
|||||||
export * from './session';
|
export * from './session';
|
||||||
export * from './unit';
|
export * from './unit';
|
||||||
export * from './unit/chat';
|
export * from './unit/chat';
|
||||||
export * from './youtube';
|
|
||||||
|
|||||||
@@ -239,8 +239,8 @@ export class RoomPreviewer
|
|||||||
|
|
||||||
if(this.isRoomEngineReady)
|
if(this.isRoomEngineReady)
|
||||||
{
|
{
|
||||||
if((this._currentPreviewObjectCategory === RoomObjectCategory.FLOOR) && (this._currentPreviewObjectType === classId) && (this._currentPreviewObjectData === (extra || ''))) return RoomPreviewer.PREVIEW_OBJECT_ID;
|
if((this._currentPreviewObjectCategory === RoomObjectCategory.FLOOR) && (this._currentPreviewObjectType === classId) && (this._currentPreviewObjectData === (extra || ''))) return RoomPreviewer.PREVIEW_OBJECT_ID;
|
||||||
|
|
||||||
this.reset(false);
|
this.reset(false);
|
||||||
|
|
||||||
this._currentPreviewObjectType = classId;
|
this._currentPreviewObjectType = classId;
|
||||||
|
|||||||
@@ -163,6 +163,18 @@ export class AvatarVisualization extends RoomObjectSpriteVisualization implement
|
|||||||
super.dispose();
|
super.dispose();
|
||||||
|
|
||||||
if(this._avatarImage) this._avatarImage.dispose();
|
if(this._avatarImage) this._avatarImage.dispose();
|
||||||
|
|
||||||
|
if(this._cachedAvatars)
|
||||||
|
{
|
||||||
|
for(const avatar of this._cachedAvatars.getValues()) avatar && avatar.dispose();
|
||||||
|
this._cachedAvatars.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this._cachedAvatarEffects)
|
||||||
|
{
|
||||||
|
for(const avatar of this._cachedAvatarEffects.getValues()) avatar && avatar.dispose();
|
||||||
|
this._cachedAvatarEffects.reset();
|
||||||
|
}
|
||||||
|
|
||||||
if(this._reflectionOppositeTexture)
|
if(this._reflectionOppositeTexture)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -26,6 +26,17 @@ export class IsometricImageFurniVisualization extends FurnitureAnimatedVisualiza
|
|||||||
this._uniqueId = `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
|
this._uniqueId = `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
|
||||||
this._photoUrl = null;
|
this._photoUrl = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public dispose(): void {
|
||||||
|
if (this._thumbnailTexture instanceof RenderTexture) {
|
||||||
|
this._thumbnailTexture.destroy(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
this._thumbnailTexture = null;
|
||||||
|
this._thumbnailImageNormal = null;
|
||||||
|
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
public get hasThumbnailImage(): boolean {
|
public get hasThumbnailImage(): boolean {
|
||||||
return !(this._thumbnailImageNormal == null);
|
return !(this._thumbnailImageNormal == null);
|
||||||
|
|||||||
@@ -157,6 +157,16 @@ export class RoomPlane implements IRoomPlane
|
|||||||
}
|
}
|
||||||
this._animationLayers = [];
|
this._animationLayers = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this._windowReflectionLastVisible.clear();
|
||||||
|
this._windowReflectionFadeOut.clear();
|
||||||
|
this._windowReflectionFirstSeenAt.clear();
|
||||||
|
|
||||||
|
if(this._maskFilter)
|
||||||
|
{
|
||||||
|
this._maskFilter.destroy();
|
||||||
|
this._maskFilter = null;
|
||||||
|
}
|
||||||
|
|
||||||
this._disposed = true;
|
this._disposed = true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user