62 lines
1.3 KiB
TypeScript
62 lines
1.3 KiB
TypeScript
import {
|
|
Vector2,
|
|
Intersection,
|
|
Object3D,
|
|
ColorRepresentation,
|
|
Vector3,
|
|
} from 'three';
|
|
import { WorldFile } from './world-file';
|
|
|
|
export interface MousePositionEvent {
|
|
position: Vector2;
|
|
positionGL: Vector2;
|
|
}
|
|
|
|
export interface MouseMoveEvent extends MousePositionEvent {
|
|
offset: Vector2;
|
|
offsetGL: Vector2;
|
|
helper?: boolean;
|
|
}
|
|
|
|
export interface MouseButtonEvent extends MousePositionEvent {
|
|
button: number;
|
|
helper?: boolean;
|
|
target?: Intersection<Object3D>;
|
|
shift?: boolean;
|
|
control?: boolean;
|
|
alt?: boolean;
|
|
}
|
|
|
|
export interface EnvironmentEvent {
|
|
sunColor?: ColorRepresentation;
|
|
sunPosition?: Vector3;
|
|
sunStrength?: number;
|
|
ambientColor?: ColorRepresentation;
|
|
ambientStrength?: number;
|
|
clearColor?: ColorRepresentation;
|
|
}
|
|
|
|
export interface ChangeEvent {
|
|
object: Object3D;
|
|
property: string;
|
|
value: any;
|
|
edited?: boolean;
|
|
transformed?: boolean;
|
|
}
|
|
|
|
export interface SceneTreeEvent {
|
|
world: Object3D;
|
|
environment: EnvironmentEvent;
|
|
}
|
|
|
|
export type EngineEvents = {
|
|
error: (error: Error) => void;
|
|
mouseDown: (event: MouseButtonEvent) => void;
|
|
mouseUp: (event: MouseButtonEvent) => void;
|
|
mouseMove: (event: MouseMoveEvent) => void;
|
|
setEnvironment: (event: EnvironmentEvent) => void;
|
|
change: (event: ChangeEvent) => void;
|
|
resize: (event: Vector2) => void;
|
|
initialized: () => void;
|
|
};
|