예제 #1
0
        public void EntityRemove_RemoveMultipleTimesInSameTick()
        {
            EntityArray entityArray = new EntityArray(3, new ComponentsDefinition());

            Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity0));
            Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity1));
            Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity2));
            entityArray.RemoveEntity(newEntity0);
            entityArray.RemoveEntity(newEntity0);
            entityArray.EndUpdate();
            entityArray.RemoveEntity(newEntity2);
            entityArray.RemoveEntity(newEntity2);
            Assert.IsFalse(entityArray.TryGetEntity(0, out _));
            Assert.IsTrue(entityArray.TryGetEntity(1, out _));
            Assert.IsTrue(entityArray.TryGetEntity(2, out _));
            entityArray.EndUpdate();
            entityArray.RemoveEntity(newEntity1);
            entityArray.RemoveEntity(newEntity1);
            Assert.IsFalse(entityArray.TryGetEntity(0, out _));
            Assert.IsTrue(entityArray.TryGetEntity(1, out _));
            Assert.IsFalse(entityArray.TryGetEntity(2, out _));
            entityArray.EndUpdate();
            Assert.IsFalse(entityArray.TryGetEntity(0, out _));
            Assert.IsFalse(entityArray.TryGetEntity(1, out _));
            Assert.IsFalse(entityArray.TryGetEntity(2, out _));
        }
예제 #2
0
        public void EntityCreate_TooMany_OverMultipleTicks()
        {
            EntityArray entityArray = new EntityArray(3, new ComponentsDefinition());

            Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity0));
            Assert.AreEqual(0, newEntity0.ID);
            Assert.IsFalse(entityArray.TryGetEntity(0, out _));
            Assert.IsFalse(entityArray.TryGetEntity(1, out _));
            Assert.IsFalse(entityArray.TryGetEntity(2, out _));
            entityArray.EndUpdate();
            Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity1));
            Assert.AreEqual(1, newEntity1.ID);
            Assert.IsTrue(entityArray.TryGetEntity(0, out Entity fetchedEntity0a));
            Assert.AreEqual(newEntity0, fetchedEntity0a);
            Assert.IsFalse(entityArray.TryGetEntity(1, out _));
            Assert.IsFalse(entityArray.TryGetEntity(2, out _));
            entityArray.EndUpdate();
            Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity2));
            Assert.AreEqual(2, newEntity2.ID);
            Assert.IsTrue(entityArray.TryGetEntity(0, out Entity fetchedEntity0b));
            Assert.AreEqual(newEntity0, fetchedEntity0b);
            Assert.IsTrue(entityArray.TryGetEntity(1, out Entity fetchedEntity1b));
            Assert.AreEqual(newEntity1, fetchedEntity1b);
            Assert.IsFalse(entityArray.TryGetEntity(2, out _));
            entityArray.EndUpdate();
            Assert.IsFalse(entityArray.TryCreateEntity(out Entity noEntityc));
            Assert.AreEqual(Entity.NoEntity, noEntityc);
            Assert.IsTrue(entityArray.TryGetEntity(0, out Entity fetchedEntity0c));
            Assert.AreEqual(newEntity0, fetchedEntity0c);
            Assert.IsTrue(entityArray.TryGetEntity(1, out Entity fetchedEntity1c));
            Assert.AreEqual(newEntity1, fetchedEntity1c);
            Assert.IsTrue(entityArray.TryGetEntity(2, out Entity fetchedEntity2c));
            Assert.AreEqual(newEntity2, fetchedEntity2c);
            entityArray.EndUpdate();
            Assert.IsFalse(entityArray.TryCreateEntity(out Entity noEntityd));
            Assert.AreEqual(Entity.NoEntity, noEntityd);
            Assert.IsTrue(entityArray.TryGetEntity(0, out Entity fetchedEntity0d));
            Assert.AreEqual(newEntity0, fetchedEntity0d);
            Assert.IsTrue(entityArray.TryGetEntity(1, out Entity fetchedEntity1d));
            Assert.AreEqual(newEntity1, fetchedEntity1d);
            Assert.IsTrue(entityArray.TryGetEntity(2, out Entity fetchedEntity2d));
            Assert.AreEqual(newEntity2, fetchedEntity2d);
        }
예제 #3
0
        public void EntityRemove_NoEntityExists()
        {
            EntityArray entityArray = new EntityArray(3, new ComponentsDefinition());

            Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity0));
            Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity1));
            Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity2));
            entityArray.RemoveEntity(newEntity1);
            entityArray.EndUpdate();
            Assert.IsTrue(entityArray.TryGetEntity(0, out _));
            Assert.IsFalse(entityArray.TryGetEntity(1, out _));
            Assert.IsTrue(entityArray.TryGetEntity(2, out _));
            entityArray.RemoveEntity(newEntity1);
            Assert.IsTrue(entityArray.TryGetEntity(0, out _));
            Assert.IsFalse(entityArray.TryGetEntity(1, out _));
            Assert.IsTrue(entityArray.TryGetEntity(2, out _));
            entityArray.EndUpdate();
            Assert.IsTrue(entityArray.TryGetEntity(0, out _));
            Assert.IsFalse(entityArray.TryGetEntity(1, out _));
            Assert.IsTrue(entityArray.TryGetEntity(2, out _));
        }
예제 #4
0
        public void EntityCreate()
        {
            EntityArray entityArray = new EntityArray(3, new ComponentsDefinition());

            Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity));
            Assert.AreEqual(0, newEntity.ID);
            Assert.IsFalse(entityArray.TryGetEntity(0, out _));
            Assert.IsFalse(entityArray.TryGetEntity(1, out _));
            Assert.IsFalse(entityArray.TryGetEntity(2, out _));
            entityArray.EndUpdate();
            Assert.IsTrue(entityArray.TryGetEntity(0, out Entity fetchedEntity));
            Assert.AreEqual(newEntity, fetchedEntity);
            Assert.IsFalse(entityArray.TryGetEntity(1, out _));
            Assert.IsFalse(entityArray.TryGetEntity(2, out _));
        }
예제 #5
0
        public void EntityCreate_MultipleFillCapacity()
        {
            EntityArray entityArray = new EntityArray(3, new ComponentsDefinition());

            Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity0));
            Assert.AreEqual(0, newEntity0.ID);
            Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity1));
            Assert.AreEqual(1, newEntity1.ID);
            Assert.IsTrue(entityArray.TryCreateEntity(out Entity newEntity2));
            Assert.AreEqual(2, newEntity2.ID);
            Assert.IsFalse(entityArray.TryGetEntity(0, out _));
            Assert.IsFalse(entityArray.TryGetEntity(1, out _));
            Assert.IsFalse(entityArray.TryGetEntity(2, out _));
            entityArray.EndUpdate();
            Assert.IsTrue(entityArray.TryGetEntity(0, out Entity fetchedEntity0));
            Assert.AreEqual(newEntity0, fetchedEntity0);
            Assert.IsTrue(entityArray.TryGetEntity(1, out Entity fetchedEntity1));
            Assert.AreEqual(newEntity1, fetchedEntity1);
            Assert.IsTrue(entityArray.TryGetEntity(2, out Entity fetchedEntity2));
            Assert.AreEqual(newEntity2, fetchedEntity2);
        }