using EcsRx.Collections; using EcsRx.Collections.Database; using EcsRx.Collections.Entity; using EcsRx.Components.Database; using EcsRx.Components.Lookups; using EcsRx.Entities; using EcsRx.Events; using EcsRx.Executor; using EcsRx.Executor.Handlers; using EcsRx.Groups.Observable; using EcsRx.Infrastructure.Dependencies; using EcsRx.Infrastructure.Events; using EcsRx.Infrastructure.Extensions; using EcsRx.MicroRx.Events; using EcsRx.Pools; using EcsRx.Scheduling; using EcsRx.Threading; using System.Collections; namespace EcsRx.Infrastructure.Modules { public class FrameworkModule : IDependencyModule { public void Setup(IDependencyContainer container) { container.Bind(); container.Bind(); container.Bind(); container.Bind(); container.Bind(); container.Bind(); container.Bind(); container.Bind(); container.Bind(); container.Bind(); container.Bind(); container.Bind(); container.Bind(); container.Bind(x => x.ToBoundType(typeof(IUpdateScheduler))); container.Bind(); container.Bind(new BindingConfiguration{ToMethod = CreateDefaultTypeLookup}); container.Bind(); } private static object CreateDefaultTypeLookup(IDependencyContainer container) { var componentTypeAssigner = container.Resolve(); var allComponents = componentTypeAssigner.GenerateComponentLookups(); return new ComponentTypeLookup(allComponents); } public IEnumerator Initialize(IDependencyContainer container) { yield break; } public void Shutdown(IDependencyContainer container) { } } }