Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }