43 lines
1.5 KiB
TypeScript
43 lines
1.5 KiB
TypeScript
// automatically generated by the FlatBuffers compiler, do not modify
|
|
|
|
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
|
|
|
|
import { KeyboardInput } from '../input-event/keyboard-input.js';
|
|
import { MouseInput } from '../input-event/mouse-input.js';
|
|
import { MouseMovement } from '../input-event/mouse-movement.js';
|
|
|
|
|
|
export enum Input {
|
|
NONE = 0,
|
|
Keyboard = 1,
|
|
MouseMovement = 2,
|
|
MouseInput = 3
|
|
}
|
|
|
|
export function unionToInput(
|
|
type: Input,
|
|
accessor: (obj:KeyboardInput|MouseInput|MouseMovement) => KeyboardInput|MouseInput|MouseMovement|null
|
|
): KeyboardInput|MouseInput|MouseMovement|null {
|
|
switch(Input[type]) {
|
|
case 'NONE': return null;
|
|
case 'Keyboard': return accessor(new KeyboardInput())! as KeyboardInput;
|
|
case 'MouseMovement': return accessor(new MouseMovement())! as MouseMovement;
|
|
case 'MouseInput': return accessor(new MouseInput())! as MouseInput;
|
|
default: return null;
|
|
}
|
|
}
|
|
|
|
export function unionListToInput(
|
|
type: Input,
|
|
accessor: (index: number, obj:KeyboardInput|MouseInput|MouseMovement) => KeyboardInput|MouseInput|MouseMovement|null,
|
|
index: number
|
|
): KeyboardInput|MouseInput|MouseMovement|null {
|
|
switch(Input[type]) {
|
|
case 'NONE': return null;
|
|
case 'Keyboard': return accessor(index, new KeyboardInput())! as KeyboardInput;
|
|
case 'MouseMovement': return accessor(index, new MouseMovement())! as MouseMovement;
|
|
case 'MouseInput': return accessor(index, new MouseInput())! as MouseInput;
|
|
default: return null;
|
|
}
|
|
}
|