예제 #1
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 _));
        }
예제 #2
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 _));
        }