Fix RoomDragEvent

This commit is contained in:
Bill 2021-06-30 05:59:28 -04:00
parent d9ea7a8983
commit c2f2694cf5
12 changed files with 9 additions and 194 deletions

View File

@ -662,6 +662,8 @@ export class RoomEngine extends NitroManager implements IRoomEngine, IRoomCreato
if(!renderingCanvas || !point) return false;
this.events.dispatchEvent(new RoomDragEvent(roomId, -(renderingCanvas.screenOffsetX - point.x), -(renderingCanvas.screenOffsetY - point.y)));
renderingCanvas.screenOffsetX = point.x;
renderingCanvas.screenOffsetY = point.y;
@ -1175,18 +1177,14 @@ export class RoomEngine extends NitroManager implements IRoomEngine, IRoomCreato
}
}
const canvas = this.getRoomInstanceRenderingCanvas(this._activeRoomId, 1);
if(canvas)
if(this._activeRoomIsDragged)
{
if(this._activeRoomIsDragged)
{
canvas.screenOffsetX = (canvas.screenOffsetX + this._activeRoomDragX);
canvas.screenOffsetY = (canvas.screenOffsetY + this._activeRoomDragY);
const renderingCanvas = this.getRoomInstanceRenderingCanvas(this._activeRoomId, 1);
this._activeRoomDragX = 0;
this._activeRoomDragY = 0;
}
if(renderingCanvas) this.setRoomInstanceRenderingCanvasOffset(this._activeRoomId, 1, new Point((renderingCanvas.screenOffsetX + this._activeRoomDragX), (renderingCanvas.screenOffsetY + this._activeRoomDragY)));
this._activeRoomDragX = 0;
this._activeRoomDragY = 0;
}
}
@ -1460,8 +1458,7 @@ export class RoomEngine extends NitroManager implements IRoomEngine, IRoomCreato
if(this.useOffsetScrolling)
{
renderingCanvas.screenOffsetX = -(roomCamera.location.x);
renderingCanvas.screenOffsetY = -(roomCamera.location.y);
this.setRoomInstanceRenderingCanvasOffset(this.activeRoomId, 1, new Point(-(roomCamera.location.x), -(roomCamera.location.y)));
}
else
{
@ -2568,8 +2565,6 @@ export class RoomEngine extends NitroManager implements IRoomEngine, IRoomCreato
this._activeRoomDragX += offsetX;
this._activeRoomDragY += offsetY;
this.events.dispatchEvent(new RoomDragEvent(this.activeRoomId, offsetX, offsetY));
this._activeRoomWasDragged = true;
}
}

View File

@ -1,16 +0,0 @@
import { IDisposable } from '../../core/common/disposable/IDisposable';
import { NitroEvent } from '../../core/events/NitroEvent';
import { IRoomWidgetHandlerContainer } from './IRoomWidgetHandlerContainer';
import { RoomWidgetUpdateEvent } from './widget/events/RoomWidgetUpdateEvent';
import { RoomWidgetMessage } from './widget/messages/RoomWidgetMessage';
export interface IRoomWidgetHandler extends IDisposable
{
update(): void;
processWidgetMessage(message: RoomWidgetMessage): RoomWidgetUpdateEvent;
processEvent(event: NitroEvent): void;
type: string;
messageTypes: string[];
eventTypes: string[];
container: IRoomWidgetHandlerContainer;
}

View File

@ -1,27 +0,0 @@
import { Rectangle } from 'pixi.js';
import { IConnection } from '../../core/communication/connections/IConnection';
import { IEventDispatcher } from '../../core/events/IEventDispatcher';
import { IRoomObject } from '../../room/object/IRoomObject';
import { IAvatarRenderManager } from '../avatar/IAvatarRenderManager';
import { IRoomEngine } from '../room/IRoomEngine';
import { IRoomSession } from '../session/IRoomSession';
import { IRoomSessionManager } from '../session/IRoomSessionManager';
import { ISessionDataManager } from '../session/ISessionDataManager';
import { RoomWidgetUpdateEvent } from './widget/events/RoomWidgetUpdateEvent';
import { RoomWidgetMessage } from './widget/messages/RoomWidgetMessage';
export interface IRoomWidgetHandlerContainer
{
getFirstCanvasId(): number;
getRoomViewRect(): Rectangle;
checkFurniManipulationRights(roomId: number, objectId: number, category: number): boolean;
isOwnerOfFurniture(roomObject: IRoomObject): boolean;
processWidgetMessage(message: RoomWidgetMessage): RoomWidgetUpdateEvent;
events: IEventDispatcher;
connection: IConnection;
roomEngine: IRoomEngine;
avatarRenderManager: IAvatarRenderManager;
roomSession: IRoomSession;
roomSessionManager: IRoomSessionManager;
sessionDataManager: ISessionDataManager;
}

View File

@ -1,5 +1,3 @@
export * from './IRoomWidgetHandler';
export * from './IRoomWidgetHandlerContainer';
export * from './MouseEventType';
export * from './TouchEventType';
export * from './widget';

View File

@ -1,85 +0,0 @@
import { IEventDispatcher } from '../../../core/events/IEventDispatcher';
import { IRoomWidgetHandler } from '../IRoomWidgetHandler';
import { IRoomWidget } from './IRoomWidget';
import { IRoomWidgetMessageListener } from './IRoomWidgetMessageListener';
export class ConversionTrackingWidget implements IRoomWidget
{
private _widgetHandler: IRoomWidgetHandler;
private _messageListener: IRoomWidgetMessageListener;
private _events: IEventDispatcher;
private _disposed: boolean;
constructor()
{
this._widgetHandler = null;
this._messageListener = null;
this._events = null;
this._disposed = false;
}
public initialize(k: number = 0): void
{
}
public dispose(): void
{
if(this.disposed) return;
this._messageListener = null;
if(this._events && !this._events.disposed)
{
this.unregisterUpdateEvents(this._events);
}
if(this._widgetHandler)
{
this._widgetHandler.dispose();
this._widgetHandler = null;
}
this._events = null;
this._disposed = true;
}
public registerUpdateEvents(eventDispatcher: IEventDispatcher): void
{
this._events = eventDispatcher;
}
public unregisterUpdateEvents(eventDispatcher: IEventDispatcher): void
{
this._events = null;
}
public get disposed(): boolean
{
return this._disposed;
}
public get widgetHandler(): IRoomWidgetHandler
{
return this._widgetHandler;
}
public set widgetHandler(handler: IRoomWidgetHandler)
{
this._widgetHandler = handler;
//@ts-ignore
if(!this._widgetHandler.widget) this._widgetHandler.widget = this;
}
public get messageListener(): IRoomWidgetMessageListener
{
return this._messageListener;
}
public set messageListener(listener: IRoomWidgetMessageListener)
{
this._messageListener = listener;
}
}

View File

@ -1,13 +0,0 @@
import { IEventDispatcher } from '../../../core/events/IEventDispatcher';
import { IRoomWidgetHandler } from '../IRoomWidgetHandler';
import { IRoomWidgetMessageListener } from './IRoomWidgetMessageListener';
export interface IRoomWidget
{
initialize(_arg_1?: number): void;
dispose(): void;
registerUpdateEvents(eventDispatcher: IEventDispatcher): void;
unregisterUpdateEvents(eventDispatcher: IEventDispatcher): void;
widgetHandler: IRoomWidgetHandler;
messageListener: IRoomWidgetMessageListener;
}

View File

@ -1,7 +0,0 @@
import { RoomWidgetUpdateEvent } from './events/RoomWidgetUpdateEvent';
import { RoomWidgetMessage } from './messages/RoomWidgetMessage';
export interface IRoomWidgetMessageListener
{
processWidgetMessage(message: RoomWidgetMessage): RoomWidgetUpdateEvent;
}

View File

@ -1,9 +0,0 @@
import { NitroEvent } from '../../../../core/events/NitroEvent';
export class RoomWidgetUpdateEvent extends NitroEvent
{
constructor(type: string)
{
super(type);
}
}

View File

@ -1 +0,0 @@
export * from './RoomWidgetUpdateEvent';

View File

@ -1,6 +1 @@
export * from './ConversionTrackingWidget';
export * from './enums';
export * from './events';
export * from './IRoomWidget';
export * from './IRoomWidgetMessageListener';
export * from './messages';

View File

@ -1,14 +0,0 @@
export class RoomWidgetMessage
{
private _type: string;
constructor(type: string)
{
this._type = type;
}
public get type(): string
{
return this._type;
}
}

View File

@ -1 +0,0 @@
export * from './RoomWidgetMessage';