ultrawidify/src/ext/lib/kbm/PlayerMouseHandler.ts

92 lines
2.1 KiB
TypeScript
Raw Normal View History

2025-05-04 02:18:58 +02:00
import { LogAggregator } from './../logging/LogAggregator';
2022-09-28 01:18:58 +02:00
import EventBus, { EventBusCommand } from '../EventBus';
2025-05-04 02:18:58 +02:00
import { ComponentLogger } from '../logging/ComponentLogger';
2022-09-28 01:18:58 +02:00
import Settings from '../Settings';
import { SiteSettings } from '../settings/SiteSettings';
2022-11-20 14:46:01 +01:00
import KbmBase from './KbmBase';
2022-09-28 01:18:58 +02:00
if(process.env.CHANNEL !== 'stable'){
console.info("Loading PlayerMouseHandler");
}
2025-05-04 02:18:58 +02:00
const BASE_LOGGING_STYLES = {
log: "color: #ff0"
};
2022-09-28 01:18:58 +02:00
/**
* Handles keypress
*/
2022-11-20 14:46:01 +01:00
export class MouseHandler extends KbmBase {
listenFor: string[] = ['mousemove'];
2022-11-20 14:46:01 +01:00
2022-09-28 01:18:58 +02:00
playerElement: HTMLElement;
eventBusCommands: { [x: string]: EventBusCommand } = {
'kbm-enable': {
function: () => this.enable()
},
'kbm-disable': {
function: () => this.disable()
},
'kbm-set-config': {
function: (data: {config: any, temporary?: boolean}) => this.setConfig(data.config, data.temporary),
},
'uw-enable': {
function: () => this.load()
},
'uw-disable': {
function: () => this.disable()
},
}
//#region lifecycle
2025-05-04 02:18:58 +02:00
constructor(playerElement: HTMLElement, eventBus: EventBus, siteSettings: SiteSettings, settings: Settings, logAggregator: LogAggregator) {
const tmpLogger = new ComponentLogger(logAggregator, 'MouseHandler', {styles: BASE_LOGGING_STYLES});
super(eventBus, siteSettings, settings, tmpLogger);
2022-11-20 14:46:01 +01:00
2022-09-28 01:18:58 +02:00
this.settings = settings;
this.siteSettings = siteSettings;
2022-09-28 01:18:58 +02:00
this.eventBus = eventBus;
this.playerElement = playerElement;
this.init();
}
init() {
2025-05-04 02:18:58 +02:00
// this.logger.debug('init', 'starting init');
2022-09-28 01:18:58 +02:00
}
load() {
// todo: process whether mouse movement should be enabled or disabled
2022-09-28 01:18:58 +02:00
this.addListener();
}
destroy() {
this.removeListener();
}
//#endregion
//#region listener setup, teardown, handling
handleEvent(event: MouseEvent) {
switch (event.type) {
case 'mousemove':
this.handleMouseMove(event)
}
}
//#endregion
enable() {
this.load();
}
disable() {
this.removeListener();
}
private handleMouseMove(event: MouseEvent) {
}
}