main/handler/MouseHandler.js
import { Vector3 } from 'commons/math/Vector3';
import { GameState } from 'GameState';
import { Logger } from 'commons/Logger';
export class MouseHandler {
static get BUTTONS() {
return {
LMB: 0,
MID: 1,
RMB: 2,
B3: 3,
B4: 4,
B5: 5,
B6: 6,
B7: 7
}
}
constructor(domElement) {
this._logger = new Logger(MouseHandler.name);
this._buttons = new Map();
this._position = Vector3(0, 0, 0);
domElement.addEventListener('mousemove', (event) => {
var rect = domElement.getBoundingClientRect()
this._position = Vector3(event.clientX - rect.left, event.clientY - rect.top, 0);
}, false);
domElement.addEventListener('mousedown', (event) => {
event.preventDefault();
event.stopPropagation();
this._buttons.set(event.button, GameState.time);
this._logger.debug("down on position " + this._position.x + ", " + this.position.y);
}, false);
domElement.addEventListener('mouseup', (event) => {
event.stopPropagation();
this._buttons.delete(event.button);
}, false);
}
get position() {
return Vector3(this._position.x / GameState.ratio, this._position.y / GameState.ratio, this._position.z);
}
}