Ejemplo n.º 1
0
        public void SupportsIrregularSizedMapChunks()
        {
            var map = new Map2D <float>(16, 32);

            var oldBoot = new Entity {
                Name = "Old Boot"
            };
            var newBoot = new Entity {
                Name = "New Boot"
            };

            map.PutEntity(1, 1, oldBoot);   // W:{1,1}, C:{0,0}
            map.PutEntity(16, 33, newBoot); // w:{33,33}, C:{0,2}

            Assert.That(map.GetEntitiesInChunk(new ChunkSpace(0, 0, 0)).Count(), Is.EqualTo(1));
            Assert.That(map.GetEntitiesInChunk(new ChunkSpace(0, 2, 0)).Count(), Is.EqualTo(1));

            Assert.That(map.GetEntitiesInChunk(new ChunkSpace(0, 0, 0)).Single(), Is.EqualTo(oldBoot));
            Assert.That(map.GetEntitiesInChunk(new ChunkSpace(0, 2, 0)).Single(), Is.EqualTo(newBoot));

            Assert.That(map.GetEntitiesAt(1, 1).Single() == oldBoot);
            Assert.That(map.GetEntitiesAt(16, 33).Single() == newBoot);

            Assert.That(map.ChunksWithin(0, 0, 33, 33, createIfNull: false).Count(), Is.EqualTo(2));
        }
Ejemplo n.º 2
0
        public void SupportsAddingAndMovingEntities()
        {
            var map = new Map2D <float>(16, 16);

            var oldBoot = new Entity {
                Name = "Old Boot"
            };

            map.PutEntity(1, 1, oldBoot);

            Assert.That(map.GetEntitiesAt(1, 1).Any());
            Assert.That(oldBoot.X == 1 && oldBoot.Y == 1);

            map.PutEntity(17, 17, oldBoot);
            Assert.That(map.GetEntitiesAt(1, 1).Any() == false);
            Assert.That(map.GetEntitiesAt(17, 17).Any());
            Assert.That(oldBoot.X == 17 && oldBoot.Y == 17);
        }
Ejemplo n.º 3
0
        public void SupportsQuantumEntanglementPrevention()
        {
            var map = new Map2D <float>(16, 16);

            var oldBoot = new Entity {
                Name = "Old Boot"
            };

            map.PutEntity(1, 1, oldBoot);

            Assert.That(map.GetEntitiesAt(1, 1).Any());
            Assert.That(oldBoot.X == 1 && oldBoot.Y == 1);

            // Put the boot somewhere else, moving it.
            map.PutEntity(17, 17, oldBoot);
            oldBoot.Name = "Spooky Old Boot";

            Assert.That(map.GetEntitiesAt(1, 1).Any() == false);
            Assert.That(map.GetEntitiesAt(17, 17).Any());
        }
Ejemplo n.º 4
0
        public void SupportsAddingAndRemovingEntities()
        {
            var map = new Map2D <float>(16, 16);

            var oldBoot = new Entity {
                Name = "Old Boot"
            };

            map.PutEntity(1, 1, oldBoot);

            Assert.That(map.GetEntitiesAt(1, 1).Any());
            Assert.That(oldBoot.X == 1 && oldBoot.Y == 1);

            map.RemoveEntity(oldBoot);
            Assert.That(map.GetEntitiesAt(1, 1).Any() == false);

            // After removing, items have null coordinates.
            Assert.That(oldBoot.X == null);
            Assert.That(oldBoot.Y == null);
            Assert.That(oldBoot.Z == null);
        }
Ejemplo n.º 5
0
        public void SupportsGettingEntitiesInLocalArea()
        {
            var map = new Map2D <float>(16, 16);

            var oldBoot = new Entity {
                Name = "Old Boot"
            };
            var oldCan = new Entity {
                Name = "Old Boot"
            };
            var oldBucket = new Entity {
                Name = "Old Boot"
            };

            map.PutEntity(1, 1, oldBoot);
            map.PutEntity(1, 1, oldBucket);
            map.PutEntity(1, 1, oldCan);

            Assert.That(map.GetEntitiesAt(1, 1).Any());
            Assert.That(oldBoot.X == 1 && oldBoot.Y == 1);

            Assert.That(map.GetEntitiesInChunk(1, 1).Count() == 3);
        }