mylingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
118 lines (94 loc) • 2.9 kB
text/typescript
import IEventLoop, { eventLoopDefaults, eventLoopSchema } from "./IEventLoop"
import { LingoMouseEvent } from "./IMouse"
import Defaults from "./utils/Defaults"
import { ExtractProps } from "./utils/extractProps"
import fn from "./utils/fn"
import { hideSchema } from "./utils/nonEditorSchemaSet"
import Nullable from "./utils/Nullable"
import NullableDefault from "./utils/NullableDefault"
export default interface IStaticObjectManager extends IEventLoop {
onClick: Nullable<(e: LingoMouseEvent) => void>
onMouseDown: Nullable<(e: LingoMouseEvent) => void>
onMouseUp: Nullable<(e: LingoMouseEvent) => void>
onMouseOver: Nullable<(e: LingoMouseEvent) => void>
onMouseOut: Nullable<(e: LingoMouseEvent) => void>
onMouseMove: Nullable<(e: LingoMouseEvent) => void>
onLookToEnd: Nullable<() => void>
lookAt: Function | Array<any>
lookTo: Function | Array<any>
name: string
id: Nullable<string>
bloom: boolean
outline: boolean
visible: boolean
frustumCulled: boolean
castShadow: boolean
receiveShadow: boolean
metalnessFactor: Nullable<number>
roughnessFactor: Nullable<number>
opacityFactor: Nullable<number>
envFactor: Nullable<number>
adjustColor: Nullable<string>
reflection: boolean
illumination: boolean
toon: boolean
}
export const staticObjectManagerSchema: Required<
ExtractProps<IStaticObjectManager>
> = {
...eventLoopSchema,
onClick: Function,
onMouseDown: Function,
onMouseUp: Function,
onMouseOver: Function,
onMouseOut: Function,
onMouseMove: Function,
onLookToEnd: Function,
lookAt: [Function, Array],
lookTo: [Function, Array],
name: String,
id: String,
bloom: Boolean,
outline: Boolean,
visible: Boolean,
frustumCulled: Boolean,
castShadow: Boolean,
receiveShadow: Boolean,
metalnessFactor: Number,
roughnessFactor: Number,
opacityFactor: Number,
envFactor: Number,
adjustColor: String,
reflection: Boolean,
illumination: Boolean,
toon: Boolean
}
hideSchema(["lookAt", "lookTo"])
export const staticObjectManagerDefaults: Defaults<IStaticObjectManager> = {
...eventLoopDefaults,
onClick: undefined,
onMouseDown: undefined,
onMouseUp: undefined,
onMouseOver: undefined,
onMouseOut: undefined,
onMouseMove: undefined,
onLookToEnd: undefined,
lookAt: fn,
lookTo: fn,
name: "",
id: undefined,
bloom: false,
outline: false,
visible: true,
frustumCulled: true,
castShadow: true,
receiveShadow: true,
metalnessFactor: new NullableDefault(0),
roughnessFactor: new NullableDefault(1),
opacityFactor: new NullableDefault(1),
envFactor: new NullableDefault(1),
adjustColor: new NullableDefault("#ffffff"),
reflection: false,
illumination: false,
toon: false
}