mylingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
79 lines (76 loc) • 3.36 kB
text/typescript
import ObjectManager from "../../display/core/ObjectManager"
import Model from "../../display/Model"
import Dummy from "../../display/Dummy"
import Building from "../../display/Building"
import Tree from "../../display/Tree"
import SvgMesh from "../../display/SvgMesh"
import HTMLMesh from "../../display/HTMLMesh"
import Reflector from "../../display/Reflector"
import Water from "../../display/Water"
import Sprite from "../../display/Sprite"
import Circle from "../../display/primitives/Circle"
import Cone from "../../display/primitives/Cone"
import Cube from "../../display/primitives/Cube"
import Cylinder from "../../display/primitives/Cylinder"
import Octahedron from "../../display/primitives/Octahedron"
import Plane from "../../display/primitives/Plane"
import Sphere from "../../display/primitives/Sphere"
import Tetrahedron from "../../display/primitives/Tetrahedron"
import Torus from "../../display/primitives/Torus"
import Camera from "../../display/cameras/Camera"
import AmbientLight from "../../display/lights/AmbientLight"
import AreaLight from "../../display/lights/AreaLight"
import DirectionalLight from "../../display/lights/DirectionalLight"
import SkyLight from "../../display/lights/SkyLight"
import PointLight from "../../display/lights/PointLight"
import SpotLight from "../../display/lights/SpotLight"
import Group from "../../display/Group"
import { GameObjectType } from "./types"
import { type } from "@lincode/utils"
import ThirdPersonCamera from "../../display/cameras/ThirdPersonCamera"
import FirstPersonCamera from "../../display/cameras/FirstPersonCamera"
import OrbitCamera from "../../display/cameras/OrbitCamera"
import Skybox from "../../display/Skybox"
import Environment from "../../display/Environment"
import Setup from "../../display/Setup"
import Trigger from "../../display/Trigger"
import SpawnPoint from "../../display/SpawnPoint"
import Audio from "../../display/Audio"
const record = type<Record<GameObjectType, () => ObjectManager>>({
group: () => new Group(),
model: () => new Model(),
svgMesh: () => new SvgMesh(),
htmlMesh: () => new HTMLMesh(),
dummy: () => new Dummy(),
building: () => new Building(),
tree: () => new Tree(),
reflector: () => new Reflector(),
water: () => new Water(),
sprite: () => new Sprite(),
trigger: () => new Trigger() as any,
spawnPoint: () => new SpawnPoint() as any,
audio: () => new Audio() as any,
camera: () => new Camera(),
thirdPersonCamera: () => new ThirdPersonCamera(),
firstPersonCamera: () => new FirstPersonCamera(),
orbitCamera: () => new OrbitCamera() as any,
ambientLight: () => new AmbientLight(),
areaLight: () => new AreaLight(),
directionalLight: () => new DirectionalLight(),
skyLight: () => new SkyLight(),
pointLight: () => new PointLight(),
spotLight: () => new SpotLight(),
circle: () => new Circle(),
cone: () => new Cone(),
cube: () => new Cube(),
cylinder: () => new Cylinder(),
octahedron: () => new Octahedron(),
plane: () => new Plane(),
sphere: () => new Sphere(),
tetrahedron: () => new Tetrahedron(),
torus: () => new Torus(),
skybox: () => new Skybox() as any,
environment: () => new Environment() as any,
setup: () => new Setup() as any
})
export default (type: GameObjectType) => record[type]()