mirror of
https://github.com/billsonnn/nitro-renderer.git
synced 2024-11-30 03:00:51 +01:00
Add room ad events
This commit is contained in:
parent
0c48154274
commit
432c649ee1
31
src/nitro/room/events/RoomObjectRoomAdEvent.ts
Normal file
31
src/nitro/room/events/RoomObjectRoomAdEvent.ts
Normal file
@ -0,0 +1,31 @@
|
||||
import { IRoomObject, RoomObjectEvent } from '../../../room';
|
||||
|
||||
export class RoomObjectRoomAdEvent extends RoomObjectEvent
|
||||
{
|
||||
public static ROOM_AD_LOAD_IMAGE: string = 'RORAE_ROOM_AD_LOAD_IMAGE';
|
||||
public static ROOM_AD_FURNI_CLICK: string = 'RORAE_ROOM_AD_FURNI_CLICK';
|
||||
public static ROOM_AD_FURNI_DOUBLE_CLICK: string = 'RORAE_ROOM_AD_FURNI_DOUBLE_CLICK';
|
||||
public static ROOM_AD_TOOLTIP_SHOW: string = 'RORAE_ROOM_AD_TOOLTIP_SHOW';
|
||||
public static ROOM_AD_TOOLTIP_HIDE: string = 'RORAE_ROOM_AD_TOOLTIP_HIDE';
|
||||
|
||||
private _imageUrl: string = '';
|
||||
private _clickUrl: string = '';
|
||||
|
||||
constructor(type: string, object: IRoomObject, imageUrl: string = '', clickUrl: string = '')
|
||||
{
|
||||
super(type, object);
|
||||
|
||||
this._imageUrl = imageUrl;
|
||||
this._clickUrl = clickUrl;
|
||||
}
|
||||
|
||||
public get imageUrl(): string
|
||||
{
|
||||
return this._imageUrl;
|
||||
}
|
||||
|
||||
public get clickUrl(): string
|
||||
{
|
||||
return this._clickUrl;
|
||||
}
|
||||
}
|
@ -16,6 +16,7 @@ export * from './RoomObjectFurnitureActionEvent';
|
||||
export * from './RoomObjectHSLColorEnabledEvent';
|
||||
export * from './RoomObjectHSLColorEnableEvent';
|
||||
export * from './RoomObjectMoveEvent';
|
||||
export * from './RoomObjectRoomAdEvent';
|
||||
export * from './RoomObjectSamplePlaybackEvent';
|
||||
export * from './RoomObjectStateChangedEvent';
|
||||
export * from './RoomObjectTileMouseEvent';
|
||||
|
@ -8,6 +8,7 @@ import { IRoomGeometry } from '../../../../../room/utils/IRoomGeometry';
|
||||
import { IVector3D } from '../../../../../room/utils/IVector3D';
|
||||
import { Vector3d } from '../../../../../room/utils/Vector3d';
|
||||
import { MouseEventType } from '../../../../ui/MouseEventType';
|
||||
import { RoomObjectRoomAdEvent } from '../../../events';
|
||||
import { RoomObjectStateChangedEvent } from '../../../events/RoomObjectStateChangedEvent';
|
||||
import { RoomObjectWidgetRequestEvent } from '../../../events/RoomObjectWidgetRequestEvent';
|
||||
import { ObjectDataUpdateMessage } from '../../../messages/ObjectDataUpdateMessage';
|
||||
@ -133,6 +134,13 @@ export class FurnitureLogic extends MovingObjectLogic
|
||||
return model.getValue<string>(RoomObjectVariable.FURNITURE_AD_URL);
|
||||
}
|
||||
|
||||
protected handleAdClick():void
|
||||
{
|
||||
if(!this.eventDispatcher) return;
|
||||
|
||||
this.eventDispatcher.dispatchEvent(new RoomObjectRoomAdEvent(RoomObjectRoomAdEvent.ROOM_AD_FURNI_CLICK, this.object));
|
||||
}
|
||||
|
||||
public update(time: number): void
|
||||
{
|
||||
super.update(time);
|
||||
@ -256,6 +264,11 @@ export class FurnitureLogic extends MovingObjectLogic
|
||||
{
|
||||
if(this.eventDispatcher)
|
||||
{
|
||||
if(adUrl && (adUrl.indexOf('http') === 0))
|
||||
{
|
||||
this.eventDispatcher.dispatchEvent(new RoomObjectRoomAdEvent(RoomObjectRoomAdEvent.ROOM_AD_TOOLTIP_SHOW, this.object));
|
||||
}
|
||||
|
||||
const mouseEvent = new RoomObjectMouseEvent(RoomObjectMouseEvent.MOUSE_ENTER, this.object, event.eventId, event.altKey, event.ctrlKey, event.shiftKey, event.buttonDown);
|
||||
|
||||
mouseEvent.localX = event.localX;
|
||||
@ -274,6 +287,11 @@ export class FurnitureLogic extends MovingObjectLogic
|
||||
{
|
||||
if(this.eventDispatcher)
|
||||
{
|
||||
if(adUrl && (adUrl.indexOf('http') === 0))
|
||||
{
|
||||
this.eventDispatcher.dispatchEvent(new RoomObjectRoomAdEvent(RoomObjectRoomAdEvent.ROOM_AD_TOOLTIP_HIDE, this.object));
|
||||
}
|
||||
|
||||
const mouseEvent = new RoomObjectMouseEvent(RoomObjectMouseEvent.MOUSE_LEAVE, this.object, event.eventId, event.altKey, event.ctrlKey, event.shiftKey, event.buttonDown);
|
||||
|
||||
mouseEvent.localX = event.localX;
|
||||
@ -301,6 +319,13 @@ export class FurnitureLogic extends MovingObjectLogic
|
||||
mouseEvent.spriteOffsetY = event.spriteOffsetY;
|
||||
|
||||
this.eventDispatcher.dispatchEvent(mouseEvent);
|
||||
|
||||
if(adUrl && (adUrl.indexOf('http') === 0))
|
||||
{
|
||||
this.eventDispatcher.dispatchEvent(new RoomObjectRoomAdEvent(RoomObjectRoomAdEvent.ROOM_AD_TOOLTIP_HIDE, this.object));
|
||||
}
|
||||
|
||||
if(adUrl && adUrl.length) this.handleAdClick();
|
||||
}
|
||||
return;
|
||||
case MouseEventType.MOUSE_DOWN:
|
||||
@ -357,6 +382,8 @@ export class FurnitureLogic extends MovingObjectLogic
|
||||
|
||||
const adUrl = this.getAdClickUrl(this.object.model);
|
||||
|
||||
|
||||
|
||||
if(this.widget) this.eventDispatcher.dispatchEvent(new RoomObjectWidgetRequestEvent(RoomObjectWidgetRequestEvent.OPEN_WIDGET, this.object));
|
||||
|
||||
this.eventDispatcher.dispatchEvent(new RoomObjectStateChangedEvent(RoomObjectStateChangedEvent.STATE_CHANGE, this.object));
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { IRoomObjectModel } from '../../../../../room/object/IRoomObjectModel';
|
||||
import { HabboWebTools } from '../../../../utils';
|
||||
import { RoomObjectVariable } from '../../RoomObjectVariable';
|
||||
import { FurnitureRoomBrandingLogic } from './FurnitureRoomBrandingLogic';
|
||||
|
||||
@ -15,4 +16,18 @@ export class FurnitureRoomBillboardLogic extends FurnitureRoomBrandingLogic
|
||||
{
|
||||
return model.getValue<string>(RoomObjectVariable.FURNITURE_BRANDING_URL);
|
||||
}
|
||||
|
||||
protected handleAdClick():void
|
||||
{
|
||||
const adUrl = this.getAdClickUrl(this.object.model);
|
||||
|
||||
if(adUrl.indexOf('http') === 0)
|
||||
{
|
||||
HabboWebTools.openWebPage(adUrl);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
super.handleAdClick();
|
||||
}
|
||||
}
|
@ -43,6 +43,11 @@ export class HabboWebTools
|
||||
}
|
||||
}
|
||||
|
||||
public static openWebPage(pageUrl: string): void
|
||||
{
|
||||
window.open(pageUrl);
|
||||
}
|
||||
|
||||
public static sendHeartBeat(): void
|
||||
{
|
||||
try
|
||||
|
Loading…
Reference in New Issue
Block a user