public static void Execute() { var context = EntitiesContext.CreateContext(); context.MapComponent <A>().MapComponent <B>().MapComponent <C>().MapComponent <D>().MapComponent <E>(); var systems = new EntitiesSystems(context, GetSystems()); for (int i = 0; i < 1000; i++) { var entity = context.Manager.CreateEntity(); if (i % 2 == 0) { context.Manager.AddComponent <A>(entity.Id); } context.Manager.AddComponent <B>(entity.Id); context.Manager.AddComponent <C>(entity.Id); if (i % 3 == 0) { context.Manager.AddComponent <D>(entity.Id); } context.Manager.AddComponent <E>(entity.Id); } for (int i = 0; i < 5000; i++) { systems.Tick(); } }
public void TestSystem() { var context = EntitiesContext.CreateContext(); context.MapComponent <EComponent>().MapComponent <EComponent2>(); var systems = new EntitiesSystems(context, new IEntitiesSystem[] { new ESystem() }); var manager = context.Manager; var entity = manager.CreateEntity(); manager.AddComponent <EComponent>(entity.Id); for (int i = 0; i < 10; i++) { systems.Tick(); manager.SetComponent <EComponent>(entity.Id, new EComponent { X = 1, Y = 2 }); Assert.True(manager.GetEntities().Count == 1); Assert.NotNull(manager.GetEntity(entity.Id)); EComponent resultComponent; Assert.True(manager.GetComponent <EComponent>(entity.Id, out resultComponent)); Assert.True(manager.GetEntity(entity.Id).Id.Id == 1 + i); manager.Dispose(manager.GetEntity(entity.Id).Id); manager.CreateEntity(); Assert.True(manager.GetEntity(entity.Id).Id.Id != 1); } }