mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-06-05 14:04:12 +02:00
wip
This commit is contained in:
@@ -207,9 +207,9 @@ export class RoomController {
|
|||||||
private onCanvasClick(ev: MouseEvent) {
|
private onCanvasClick(ev: MouseEvent) {
|
||||||
if (this.isCanvasDragging) return;
|
if (this.isCanvasDragging) return;
|
||||||
if (this.worker != null) {
|
if (this.worker != null) {
|
||||||
this.worker.postMessage({ type: 'dom:click', ev: { offsetX: ev.offsetX, offsetY: ev.offsetY } });
|
this.worker.postMessage({ type: 'dom:click', ev: { x: ev.offsetX, y: ev.offsetY } });
|
||||||
} else if (this.engine != null) {
|
} else if (this.engine != null) {
|
||||||
this.engine.domEvents.emit('click', { offsetX: ev.offsetX, offsetY: ev.offsetY });
|
this.engine.domEvents.emit('click', { x: ev.offsetX, y: ev.offsetY });
|
||||||
}
|
}
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
ev.stopPropagation();
|
ev.stopPropagation();
|
||||||
|
|||||||
@@ -215,7 +215,7 @@ export class RoomEngine extends EventEmitter<RoomEngineEvents> {
|
|||||||
private disposed = false;
|
private disposed = false;
|
||||||
|
|
||||||
public domEvents: EventEmitter<{
|
public domEvents: EventEmitter<{
|
||||||
'click': (event: { offsetX: number; offsetY: number; }) => void;
|
'click': (event: { x: number; y: number; }) => void;
|
||||||
'keydown': (event: { code: string; shiftKey: boolean; }) => void;
|
'keydown': (event: { code: string; shiftKey: boolean; }) => void;
|
||||||
'keyup': (event: { code: string; shiftKey: boolean; }) => void;
|
'keyup': (event: { code: string; shiftKey: boolean; }) => void;
|
||||||
'wheel': (event: { deltaY: number; }) => void;
|
'wheel': (event: { deltaY: number; }) => void;
|
||||||
@@ -520,7 +520,7 @@ export class RoomEngine extends EventEmitter<RoomEngineEvents> {
|
|||||||
this.selectObject(null);
|
this.selectObject(null);
|
||||||
|
|
||||||
// TODO: __PICK__考慮
|
// TODO: __PICK__考慮
|
||||||
const pickingInfo = this.scene.pick(this.scene.pointerX, this.scene.pointerY,
|
const pickingInfo = this.scene.pick(ev.x, ev.y,
|
||||||
(m) => m.name.includes('__PICK__') || (m.isVisible && m.isEnabled() && m.metadata?.objectId != null && this.objectEntities.has(m.metadata.objectId)));
|
(m) => m.name.includes('__PICK__') || (m.isVisible && m.isEnabled() && m.metadata?.objectId != null && this.objectEntities.has(m.metadata.objectId)));
|
||||||
|
|
||||||
if (pickingInfo.pickedMesh != null) {
|
if (pickingInfo.pickedMesh != null) {
|
||||||
|
|||||||
@@ -62,6 +62,11 @@ onmessage = async (event) => {
|
|||||||
engine.scene.onPointerObservable.notifyObservers({ type: BABYLON.PointerEventTypes.POINTERDOWN, event: event.data.ev });
|
engine.scene.onPointerObservable.notifyObservers({ type: BABYLON.PointerEventTypes.POINTERDOWN, event: event.data.ev });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 'dom:click': {
|
||||||
|
if (engine == null) break;
|
||||||
|
engine.domEvents.emit('click', event.data.ev);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case 'call': {
|
case 'call': {
|
||||||
if (engine != null) engine[event.data.fn](...event.data.args);
|
if (engine != null) engine[event.data.fn](...event.data.args);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user