mirror of
https://github.com/billsonnn/nitro-renderer.git
synced 2025-01-31 11:12:35 +01:00
Group fixes
This commit is contained in:
parent
ff95658be4
commit
8b6b9c0d78
@ -50,7 +50,7 @@ export class RoomObjectVariable
|
||||
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_BADGE: string = 'furniture_guild_customized_badge';
|
||||
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';
|
||||
|
@ -1,5 +1,9 @@
|
||||
import { IRoomGeometry, RoomSpriteMouseEvent } from '../../../../../room';
|
||||
import { RoomObjectUpdateMessage } from '../../../../../room/messages/RoomObjectUpdateMessage';
|
||||
import { ContextMenuEnum } from '../../../../ui/widget/enums/ContextMenuEnum';
|
||||
import { Nitro } from '../../../../Nitro';
|
||||
import { MouseEventType } from '../../../../ui';
|
||||
import { RoomObjectBadgeAssetEvent, RoomObjectWidgetRequestEvent } from '../../../events';
|
||||
import { ObjectGroupBadgeUpdateMessage, ObjectSelectedMessage } from '../../../messages';
|
||||
import { ObjectDataUpdateMessage } from '../../../messages/ObjectDataUpdateMessage';
|
||||
import { StringDataType } from '../../data/type/StringDataType';
|
||||
import { RoomObjectVariable } from '../../RoomObjectVariable';
|
||||
@ -12,6 +16,17 @@ export class FurnitureGuildCustomizedLogic extends FurnitureMultiStateLogic
|
||||
public static COLOR1_KEY: number = 3;
|
||||
public static COLOR2_KEY: number = 4;
|
||||
|
||||
public getEventTypes(): string[]
|
||||
{
|
||||
const types = [
|
||||
RoomObjectBadgeAssetEvent.LOAD_BADGE,
|
||||
RoomObjectWidgetRequestEvent.GUILD_FURNI_CONTEXT_MENU,
|
||||
RoomObjectWidgetRequestEvent.CLOSE_FURNI_CONTEXT_MENU
|
||||
];
|
||||
|
||||
return this.mergeTypes(super.getEventTypes(), types);
|
||||
}
|
||||
|
||||
public processUpdateMessage(message: RoomObjectUpdateMessage): void
|
||||
{
|
||||
super.processUpdateMessage(message);
|
||||
@ -27,6 +42,24 @@ export class FurnitureGuildCustomizedLogic extends FurnitureMultiStateLogic
|
||||
this.updateColors(data.getValue(FurnitureGuildCustomizedLogic.COLOR1_KEY), data.getValue(FurnitureGuildCustomizedLogic.COLOR2_KEY));
|
||||
}
|
||||
}
|
||||
|
||||
else if(message instanceof ObjectGroupBadgeUpdateMessage)
|
||||
{
|
||||
if(message.assetName !== 'loading_icon')
|
||||
{
|
||||
this.object.model.setValue(RoomObjectVariable.FURNITURE_GUILD_CUSTOMIZED_ASSET_NAME, message.assetName);
|
||||
|
||||
this.update(Nitro.instance.time);
|
||||
}
|
||||
}
|
||||
|
||||
else if(message instanceof ObjectSelectedMessage)
|
||||
{
|
||||
if(!message.selected)
|
||||
{
|
||||
this.eventDispatcher.dispatchEvent(new RoomObjectWidgetRequestEvent(RoomObjectWidgetRequestEvent.CLOSE_FURNI_CONTEXT_MENU, this.object));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected updateGroupId(id: string): void
|
||||
@ -36,7 +69,7 @@ export class FurnitureGuildCustomizedLogic extends FurnitureMultiStateLogic
|
||||
|
||||
private updateBadge(badge: string): void
|
||||
{
|
||||
this.object.model.setValue(RoomObjectVariable.FURNITURE_GUILD_CUSTOMIZED_BADGE, badge);
|
||||
this.eventDispatcher.dispatchEvent(new RoomObjectBadgeAssetEvent(RoomObjectBadgeAssetEvent.LOAD_BADGE, this.object, badge, true));
|
||||
}
|
||||
|
||||
public updateColors(color1: string, color2: string): void
|
||||
@ -45,8 +78,21 @@ export class FurnitureGuildCustomizedLogic extends FurnitureMultiStateLogic
|
||||
this.object.model.setValue(RoomObjectVariable.FURNITURE_GUILD_CUSTOMIZED_COLOR_2, parseInt(color2, 16));
|
||||
}
|
||||
|
||||
public get contextMenu(): string
|
||||
public mouseEvent(event: RoomSpriteMouseEvent, geometry: IRoomGeometry): void
|
||||
{
|
||||
return ContextMenuEnum.GROUP_FURNITURE;
|
||||
if(!event || !geometry || !this.object) return;
|
||||
|
||||
switch(event.type)
|
||||
{
|
||||
case MouseEventType.MOUSE_CLICK:
|
||||
this.openContextMenu();
|
||||
}
|
||||
|
||||
super.mouseEvent(event, geometry);
|
||||
}
|
||||
|
||||
private openContextMenu(): void
|
||||
{
|
||||
this.eventDispatcher.dispatchEvent(new RoomObjectWidgetRequestEvent(RoomObjectWidgetRequestEvent.GUILD_FURNI_CONTEXT_MENU, this.object));
|
||||
}
|
||||
}
|
||||
|
@ -1,27 +1,44 @@
|
||||
import { IGraphicAsset, IRoomObjectSprite } from '../../../../../room';
|
||||
import { RoomObjectVariable } from '../../RoomObjectVariable';
|
||||
import { FurnitureAnimatedVisualization } from './FurnitureAnimatedVisualization';
|
||||
|
||||
export class FurnitureGuildCustomizedVisualization extends FurnitureAnimatedVisualization
|
||||
{
|
||||
public static DEFAULT_COLOR_1: number = 0xEEEEEE;
|
||||
public static DEFAULT_COLOR_2: number = 0x4B4B4B;
|
||||
public static PRIMARY_COLOUR_SPRITE_TAG: string = 'COLOR1';
|
||||
public static SECONDARY_COLOUR_SPRITE_TAG: string = 'COLOR2';
|
||||
public static BADGE: string = 'BADGE';
|
||||
public static DEFAULT_COLOR_1: number = 0xEEEEEE;
|
||||
public static DEFAULT_COLOR_2: number = 0x4B4B4B;
|
||||
|
||||
private _color1: number;
|
||||
private _color2: number;
|
||||
private _badgeAssetNameNormalScale: string;
|
||||
private _badgeAssetNameSmallScale: string;
|
||||
|
||||
constructor()
|
||||
{
|
||||
super();
|
||||
|
||||
this._color1 = FurnitureGuildCustomizedVisualization.DEFAULT_COLOR_1;
|
||||
this._color2 = FurnitureGuildCustomizedVisualization.DEFAULT_COLOR_2;
|
||||
this._color1 = FurnitureGuildCustomizedVisualization.DEFAULT_COLOR_1;
|
||||
this._color2 = FurnitureGuildCustomizedVisualization.DEFAULT_COLOR_2;
|
||||
this._badgeAssetNameNormalScale = '';
|
||||
this._badgeAssetNameSmallScale = '';
|
||||
}
|
||||
|
||||
protected updateModel(scale: number): boolean
|
||||
{
|
||||
const flag = super.updateModel(scale);
|
||||
|
||||
if(!flag) return false;
|
||||
if(this._badgeAssetNameNormalScale === '')
|
||||
{
|
||||
const assetName = this.object.model.getValue<string>(RoomObjectVariable.FURNITURE_GUILD_CUSTOMIZED_ASSET_NAME);
|
||||
|
||||
if(assetName)
|
||||
{
|
||||
this._badgeAssetNameNormalScale = assetName;
|
||||
this._badgeAssetNameSmallScale = (this._badgeAssetNameNormalScale + '_32');
|
||||
}
|
||||
}
|
||||
|
||||
this._color1 = this.object.model.getValue<number>(RoomObjectVariable.FURNITURE_GUILD_CUSTOMIZED_COLOR_1);
|
||||
this._color2 = this.object.model.getValue<number>(RoomObjectVariable.FURNITURE_GUILD_CUSTOMIZED_COLOR_2);
|
||||
@ -35,10 +52,34 @@ export class FurnitureGuildCustomizedVisualization extends FurnitureAnimatedVisu
|
||||
|
||||
switch(tag)
|
||||
{
|
||||
case 'COLOR1': return this._color1;
|
||||
case 'COLOR2': return this._color2;
|
||||
case FurnitureGuildCustomizedVisualization.PRIMARY_COLOUR_SPRITE_TAG: return this._color1;
|
||||
case FurnitureGuildCustomizedVisualization.SECONDARY_COLOUR_SPRITE_TAG: return this._color2;
|
||||
}
|
||||
|
||||
return super.getLayerColor(scale, layerId, colorId);
|
||||
}
|
||||
}
|
||||
|
||||
public getSpriteAssetName(scale: number, layerId: number): string
|
||||
{
|
||||
const tag = this.getLayerTag(scale, this._direction, layerId);
|
||||
|
||||
if(tag === FurnitureGuildCustomizedVisualization.BADGE)
|
||||
{
|
||||
if(scale === 32) return this._badgeAssetNameSmallScale;
|
||||
|
||||
return this._badgeAssetNameNormalScale;
|
||||
}
|
||||
|
||||
return super.getSpriteAssetName(scale, layerId);
|
||||
}
|
||||
|
||||
protected getLibraryAssetNameForSprite(asset: IGraphicAsset, sprite: IRoomObjectSprite): string
|
||||
{
|
||||
if(sprite.tag === FurnitureGuildCustomizedVisualization.BADGE)
|
||||
{
|
||||
return '%group.badge.url%' + sprite.libraryAssetName.replace('badge_', '');
|
||||
}
|
||||
|
||||
return super.getLibraryAssetNameForSprite(asset, sprite);
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,5 @@ export class ContextMenuEnum
|
||||
public static MYSTERY_TROPHY: string = 'MYSTERY_TROPHY';
|
||||
public static RANDOM_TELEPORT: string = 'RANDOM_TELEPORT';
|
||||
public static PURCHASABLE_CLOTHING: string = 'PURCHASABLE_CLOTHING';
|
||||
public static GROUP_FURNITURE: string = 'GROUP_FURNITURE';
|
||||
public static GENERIC_USABLE: string = 'GENERIC_USABLE';
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user