You've already forked Nitro_Render_V3
mirror of
https://github.com/duckietm/Nitro_Render_V3.git
synced 2026-06-20 07:26:18 +00:00
52 lines
1.7 KiB
TypeScript
52 lines
1.7 KiB
TypeScript
import { IRoomGeometry, MouseEventType } from '@nitrots/api';
|
|
import { RoomObjectEvent, RoomObjectStateChangedEvent, RoomSpriteMouseEvent } from '@nitrots/events';
|
|
import { FurnitureLogic } from './FurnitureLogic';
|
|
|
|
export class FurnitureCounterClockLogic extends FurnitureLogic
|
|
{
|
|
public getEventTypes(): string[]
|
|
{
|
|
const types = [RoomObjectStateChangedEvent.STATE_CHANGE];
|
|
|
|
return this.mergeTypes(super.getEventTypes(), types);
|
|
}
|
|
|
|
public mouseEvent(event: RoomSpriteMouseEvent, geometry: IRoomGeometry): void
|
|
{
|
|
if(!event || !geometry || !this.object) return;
|
|
|
|
let objectEvent: RoomObjectEvent = null;
|
|
|
|
switch(event.type)
|
|
{
|
|
case MouseEventType.DOUBLE_CLICK:
|
|
switch(event.spriteTag)
|
|
{
|
|
case 'start_stop':
|
|
objectEvent = new RoomObjectStateChangedEvent(RoomObjectStateChangedEvent.STATE_CHANGE, this.object, 1);
|
|
break;
|
|
case 'reset':
|
|
objectEvent = new RoomObjectStateChangedEvent(RoomObjectStateChangedEvent.STATE_CHANGE, this.object, 2);
|
|
break;
|
|
}
|
|
|
|
if(this.eventDispatcher && objectEvent)
|
|
{
|
|
this.eventDispatcher.dispatchEvent(objectEvent);
|
|
|
|
return;
|
|
}
|
|
break;
|
|
}
|
|
|
|
super.mouseEvent(event, geometry);
|
|
}
|
|
|
|
public useObject(): void
|
|
{
|
|
if(!this.object || !this.eventDispatcher) return;
|
|
|
|
this.eventDispatcher.dispatchEvent(new RoomObjectStateChangedEvent(RoomObjectStateChangedEvent.STATE_CHANGE, this.object, 1));
|
|
}
|
|
}
|