UNPKG

mylingo3d

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

82 lines (81 loc) 5.05 kB
import IGroup from "../../interface/IGroup"; import IModel from "../../interface/IModel"; import IDummy from "../../interface/IDummy"; import IBuilding from "../../interface/IBuilding"; import ITree from "../../interface/ITree"; import ISvgMesh from "../../interface/ISvgMesh"; import IHTMLMesh from "../../interface/IHTMLMesh"; import IReflector from "../../interface/IReflector"; import IWater from "../../interface/IWater"; import ISprite from "../../interface/ISprite"; import ITrigger from "../../interface/ITrigger"; import ISpawnPoint from "../../interface/ISpawnPoint"; import IAudio from "../../interface/IAudio"; import ICamera from "../../interface/ICamera"; import IAmbientLight from "../../interface/IAmbientLight"; import IAreaLight from "../../interface/IAreaLight"; import IDirectionalLight from "../../interface/IDirectionalLight"; import ISkyLight from "../../interface/ISkyLight"; import IPointLight from "../../interface/IPointLight"; import ISpotLight from "../../interface/ISpotLight"; import IPrimitive from "../../interface/IPrimitive"; import ISkybox from "../../interface/ISkybox"; import IEnvironment from "../../interface/IEnvironment"; import ISetup from "../../interface/ISetup"; export type GameObjectType = "group" | "model" | "dummy" | "building" | "tree" | "svgMesh" | "htmlMesh" | "reflector" | "water" | "sprite" | "trigger" | "spawnPoint" | "audio" | "ambientLight" | "areaLight" | "directionalLight" | "skyLight" | "pointLight" | "spotLight" | "camera" | "orbitCamera" | "thirdPersonCamera" | "firstPersonCamera" | "circle" | "cone" | "cube" | "cylinder" | "octahedron" | "plane" | "sphere" | "tetrahedron" | "torus" | "skybox" | "environment" | "setup"; export type VersionNode = { type: "lingo3d"; version: string; }; export type AnimationData = Record<string, //property name Record<string, //frame number cast as string number>>; export type AnimationNode = { type: "animation"; data: Record<string, //target name AnimationData>; }; type Node = { type: GameObjectType; children?: Array<BaseSceneGraphNode>; }; export declare const nonSerializedProperties: string[]; export declare const nonEditorSettings: Array<keyof ISetup | "autoMount">; type TypedPropsNode<Props, Type extends GameObjectType> = Partial<Props> & Node & { type: Type; }; export type GroupNode = TypedPropsNode<IGroup, "group">; export type ModelNode = TypedPropsNode<IModel, "model">; export type DummyNode = TypedPropsNode<IDummy, "dummy">; export type BuildingNode = TypedPropsNode<IBuilding, "building">; export type TreeNode = TypedPropsNode<ITree, "tree">; export type SvgMeshNode = TypedPropsNode<ISvgMesh, "svgMesh">; export type HTMLMeshNode = TypedPropsNode<IHTMLMesh, "htmlMesh">; export type ReflectorNode = TypedPropsNode<IReflector, "reflector">; export type WaterNode = TypedPropsNode<IWater, "water">; export type SpriteNode = TypedPropsNode<ISprite, "sprite">; export type TriggerNode = TypedPropsNode<ITrigger, "trigger">; export type SpawnPointNode = TypedPropsNode<ISpawnPoint, "spawnPoint">; export type AudioNode = TypedPropsNode<IAudio, "audio">; export type CameraNode = TypedPropsNode<ICamera, "camera">; export type AmbientLightNode = TypedPropsNode<IAmbientLight, "ambientLight">; export type AreaLightNode = TypedPropsNode<IAreaLight, "areaLight">; export type DirectionalLightNode = TypedPropsNode<IDirectionalLight, "directionalLight">; export type SkyLightNode = TypedPropsNode<ISkyLight, "skyLight">; export type PointLightNode = TypedPropsNode<IPointLight, "pointLight">; export type SpotLightNode = TypedPropsNode<ISpotLight, "spotLight">; export type CircleNode = TypedPropsNode<IPrimitive, "circle">; export type ConeNode = TypedPropsNode<IPrimitive, "cone">; export type CubeNode = TypedPropsNode<IPrimitive, "cube">; export type CylinderNode = TypedPropsNode<IPrimitive, "cylinder">; export type OctahedronNode = TypedPropsNode<IPrimitive, "octahedron">; export type PlaneNode = TypedPropsNode<IPrimitive, "plane">; export type SphereNode = TypedPropsNode<IPrimitive, "sphere">; export type TetrahedronNode = TypedPropsNode<IPrimitive, "tetrahedron">; export type TorusNode = TypedPropsNode<IPrimitive, "torus">; export type SkyboxNode = TypedPropsNode<ISkybox, "skybox">; export type EnvironmentNode = TypedPropsNode<IEnvironment, "environment">; export type SetupNode = TypedPropsNode<ISetup, "setup">; export type BaseSceneGraphNode = GroupNode | ModelNode | DummyNode | BuildingNode | TreeNode | SvgMeshNode | HTMLMeshNode | ReflectorNode | WaterNode | SpriteNode | TriggerNode | SpawnPointNode | AudioNode | CameraNode | AmbientLightNode | AreaLightNode | DirectionalLightNode | SkyLightNode | PointLightNode | SpotLightNode | CircleNode | ConeNode | CubeNode | CylinderNode | OctahedronNode | PlaneNode | SphereNode | TetrahedronNode | TorusNode | SkyboxNode | EnvironmentNode | SetupNode; export type SceneGraphNode = BaseSceneGraphNode | AnimationNode | VersionNode; export {};