示例#1
0
        public void DoAction_MultipleEntitiesMatched_CalledForAllEntities()
        {
            var target = new EntitySystems();

            target.NotifyEntityAdded(new Entity());
            target.NotifyEntityAdded(new Entity());
            target.NotifyEntityAdded(new Entity());

            target.DoAction(TimeSpan.Zero);

            Assert.AreEqual(1, target.DoActionCount);
            Assert.AreEqual(3, target.DoActionPerEntityCount);
        }
示例#2
0
        public void BeforeFirstCommit_NoEntitiesHandled()
        {
            var entity        = new Entity();
            var component     = new Component();
            var system        = new EntitySystems();
            var entities      = new EntityList();
            var entitySystems = new EntitySystemList(entities);

            entities.Add(entity);
            entitySystems.Add(system);
            entity.AddComponent(component);

            entitySystems.NotifyDoAction(TimeSpan.Zero);

            Assert.AreEqual(0, system.Counter);
        }
示例#3
0
        public void NotifyDoAction_SubsystemDisableEntity_OtherSubsystemsShouldReceiveNotification()
        {
            var entity        = new Entity();
            var component     = new Component();
            var system        = new EntitySystems();
            var disabler      = new DisablerSystem();
            var entities      = new EntityList();
            var entitySystems = new EntitySystemList(entities);

            entities.Add(entity);
            entitySystems.Add(disabler);
            entitySystems.Add(system);
            entity.AddComponent(component);
            entities.CommitChanges();

            entitySystems.NotifyDoAction(TimeSpan.Zero);

            Assert.AreEqual(11, system.Counter);
        }
示例#4
0
        public void DisableComponent_EntityRemovedFromSystem()
        {
            var entity        = new Entity();
            var component     = new Component();
            var system        = new EntitySystems();
            var entities      = new EntityList();
            var entitySystems = new EntitySystemList(entities);

            entities.Add(entity);
            entitySystems.Add(system);
            entity.AddComponent(component);
            entities.CommitChanges();

            component.Enabled = false;
            entities.CommitChanges();

            entitySystems.NotifyDoAction(TimeSpan.Zero);

            Assert.AreEqual(110, system.Counter);
        }
示例#5
0
        public void EnableEntity_EntityAddedToSystem()
        {
            var entity        = new Entity();
            var component     = new Component();
            var system        = new EntitySystems();
            var entities      = new EntityList();
            var entitySystems = new EntitySystemList(entities);

            entities.Add(entity);
            entitySystems.Add(system);
            entity.AddComponent(component);
            entity.Enabled = false;
            entities.CommitChanges();

            entity.Enabled = true;
            entities.CommitChanges();

            entitySystems.NotifyDoAction(TimeSpan.Zero);

            Assert.AreEqual(11, system.Counter);
        }
示例#6
0
        public void ComponentEnabled_WhenEntityDisabled_NoNotification()
        {
            var entity        = new Entity();
            var component     = new Component();
            var system        = new EntitySystems();
            var entities      = new EntityList();
            var entitySystems = new EntitySystemList(entities);

            entities.Add(entity);
            entitySystems.Add(system);
            entity.AddComponent(component);
            entity.Enabled    = false;
            component.Enabled = false;
            entities.CommitChanges();

            component.Enabled = true;
            entities.CommitChanges();

            entitySystems.NotifyDoAction(TimeSpan.Zero);

            Assert.AreEqual(0, system.Counter);
        }