use crate::{
graph::constructor::{GraphNodeConstructor, GraphNodeConstructorContainer},
scene::{
self,
animation::{absm::AnimationBlendingStateMachine, AnimationPlayer},
camera::Camera,
decal::Decal,
dim2::{self, rectangle::Rectangle},
graph::Graph,
light::{directional::DirectionalLight, point::PointLight, spot::SpotLight},
mesh::Mesh,
navmesh::NavigationalMesh,
node::Node,
particle_system::ParticleSystem,
pivot::Pivot,
probe::ReflectionProbe,
ragdoll::Ragdoll,
sound::{listener::Listener, Sound},
sprite::Sprite,
terrain::Terrain,
tilemap::TileMap,
},
};
pub type NodeConstructor = GraphNodeConstructor<Node, Graph>;
pub type NodeConstructorContainer = GraphNodeConstructorContainer<Node, Graph>;
pub fn new_node_constructor_container() -> NodeConstructorContainer {
let container = NodeConstructorContainer::default();
container.add::<dim2::collider::Collider>();
container.add::<dim2::joint::Joint>();
container.add::<Rectangle>();
container.add::<dim2::rigidbody::RigidBody>();
container.add::<DirectionalLight>();
container.add::<PointLight>();
container.add::<SpotLight>();
container.add::<Mesh>();
container.add::<ParticleSystem>();
container.add::<Sound>();
container.add::<Listener>();
container.add::<Camera>();
container.add::<scene::collider::Collider>();
container.add::<Decal>();
container.add::<scene::joint::Joint>();
container.add::<Pivot>();
container.add::<scene::rigidbody::RigidBody>();
container.add::<Sprite>();
container.add::<Terrain>();
container.add::<AnimationPlayer>();
container.add::<AnimationBlendingStateMachine>();
container.add::<NavigationalMesh>();
container.add::<Ragdoll>();
container.add::<TileMap>();
container.add::<ReflectionProbe>();
container
}