Esempio n. 1
0
        public void CornerUpdateHasCorrectRight()
        {
            var cornerUpdate = new FacingPosition(new Coordinate(0, 1), new Coordinate(5, 4));

            Assert.AreEqual(1, cornerUpdate.Right.X);
            Assert.AreEqual(0, cornerUpdate.Right.Y);
        }
 public bool[] GenerateNumber(FacingPosition position)
 {
     return(new bool[] {
         blueprintBuilder.HasBlock(position.Position + position.Forward),
         blueprintBuilder.HasBlock(position.Position + position.Right),
         blueprintBuilder.HasBlock(position.Position + position.Forward + position.Right)
     });
 }
Esempio n. 3
0
        public void CornerUpdatePropertiesAreSetCorrectly()
        {
            var cornerUpdate = new FacingPosition(new Coordinate(1, 0), new Coordinate(5, 4));

            Assert.AreEqual(1, cornerUpdate.Forward.X);
            Assert.AreEqual(0, cornerUpdate.Forward.Y);
            Assert.AreEqual(5, cornerUpdate.Position.X);
            Assert.AreEqual(4, cornerUpdate.Position.Y);
        }
Esempio n. 4
0
 public void GenerateTile(TileType type_ = TileType.wall, FacingPosition facingPos_ = FacingPosition.Down)
 {
     this._type      = type_;
     this.tileChar   = this._type.ToString().ToCharArray()[0];
     this._facingPos = FacingPosition.Down;
     this.path       = this._assetsPath + _tilesFiles[this._type] + "_" + this._facingPos.ToString().ToLower() + this._fileExt;
     //Console.WriteLine(this.path);
     return;
 }
Esempio n. 5
0
        private void CreateDetailObject(FacingPosition detailUpdate)
        {
            var detailObject = detailFactory.Create(detailUpdate);

            detailObject.Position = tiles.Get(detailUpdate.Position).Position;
            detailObject.Scale    = tiles.Get(detailUpdate.Position).Scale;
            detailObject.Rotation = detailUpdate.Forward.ToVector2();
            controller.AssignBlockControl(detailObject, detailUpdate.Position);
            details.Set(detailUpdate.Position, detailObject);
        }
        public void FactoryPicksSecondBaseFactoryCorrectly()
        {
            var facingPosition = new FacingPosition(new Coordinate(1, 0), new Coordinate(3, 4));

            mockSecondFactory.Setup(factory => factory.Create()).Returns(mockObject.Object);
            mockNumberGenerator.Setup(generator => generator.GenerateNumber(facingPosition))
            .Returns(new bool[] { true });

            var worldObject = factoryPicker.Create(facingPosition);

            Assert.AreEqual(mockObject.Object, worldObject);
        }
        public void DetailIsNotCreatedForNullBlocks()
        {
            var facingPosition = new FacingPosition(Coordinates.Up, new Coordinate(2, 3));

            mockFactory.Setup(factory => factory.Create(facingPosition)).Returns(mockObject.Object);
            detailUpdates.Add(new FacingPosition(Coordinates.Up, new Coordinate(1, -1)));
            tiles[3, 2] = mockTile.Object;
            var position = new Coordinate(1, 4);

            blockDetailsViewUpdater.UpdateDetails(position);
            mockFactory.Verify(factory => factory.Create(It.IsAny <FacingPosition>()), Times.Never);
        }
        public void DetailIsUpdatedAtCorrectPosition()
        {
            var facingPosition = new FacingPosition(Coordinates.Up, new Coordinate(2, 3));

            mockFactory.Setup(factory => factory.Create(facingPosition)).Returns(mockObject.Object);
            detailUpdates.Add(new FacingPosition(Coordinates.Up, new Coordinate(1, -1)));
            tiles.Set(new Coordinate(2, 3), mockTile.Object);
            var position = new Coordinate(1, 4);

            blockDetailsViewUpdater.UpdateDetails(position);
            mockBlueprintBuilder.Verify(builder => builder.HasBlock(new Coordinate(2, 3)), Times.Once);
        }
Esempio n. 9
0
        public void CheckIfFrontBlockIsEmpty()
        {
            var mockBlock                   = new Mock <IBlock>();
            var mockBlueprintBuilder        = new Mock <IBlueprintBuilder>();
            var cornerBlocksNumberGenerator = new EdgeBlocksNumberGenerator(mockBlueprintBuilder.Object);

            mockBlueprintBuilder.Setup(builder => builder.HasBlock(new Coordinate(1, 3))).Returns(false);

            var facingPosition = new FacingPosition(new Coordinate(0, 1), new Coordinate(1, 2));
            var bitNumber      = cornerBlocksNumberGenerator.GenerateNumber(facingPosition);

            Assert.AreEqual(false, bitNumber[0]);
        }
Esempio n. 10
0
        public void CheckIfDiagonalBlockIsCountedTest()
        {
            var mockBlueprintBuilder = new Mock <IBlueprintBuilder>();

            mockBlueprintBuilder.Setup(builder => builder.HasBlock(new Coordinate(2, 3))).Returns(true);
            var cornerBlocksNumberGenerator = new CornerBlocksNumberGenerator(mockBlueprintBuilder.Object);

            var facingPosition = new FacingPosition(new Coordinate(0, 1), new Coordinate(1, 2));
            var bitNumber      = cornerBlocksNumberGenerator.GenerateNumber(facingPosition);

            Assert.AreEqual(false, bitNumber[0]);
            Assert.AreEqual(false, bitNumber[1]);
            Assert.AreEqual(true, bitNumber[2]);
        }
        public void OldDetailIsDeletedOnUpdated()
        {
            var facingPosition = new FacingPosition(Coordinates.Down, new Coordinate(1, 3));

            mockFactory.Setup(factory => factory.Create(facingPosition)).Returns(mockObject.Object);
            detailUpdates.Add(new FacingPosition(Coordinates.Down, new Coordinate(0, 0)));
            detailUpdates.Add(new FacingPosition(Coordinates.Down, new Coordinate(0, 0)));
            mockBlueprintBuilder.Setup(builder => builder.HasBlock(new Coordinate(1, 3))).Returns(true);
            mockBlueprintBuilder.Setup(builder => builder.GetBlock(new Coordinate(1, 3))).Returns(mockBlock.Object);

            var position = new Coordinate(1, 3);

            tiles.Set(position, mockTile.Object);

            blockDetailsViewUpdater.UpdateDetails(position);

            mockFactory.Verify(factory => factory.Create(facingPosition), Times.Exactly(2));
            mockObject.Verify(worldObject => worldObject.Delete(), Times.Once());
        }
        public void ObjectIsCreatedAtCorrectPositionScaleAndRotation()
        {
            var position       = new Coordinate(1, 3);
            var facingPosition = new FacingPosition(Coordinates.Right, position);

            detailUpdates.Add(new FacingPosition(new Coordinate(1, 0), new Coordinate(0, 0)));
            mockFactory.Setup(factory => factory.Create(facingPosition)).Returns(mockObject.Object);
            mockBlueprintBuilder.Setup(builder => builder.HasBlock(position)).Returns(true);
            mockBlueprintBuilder.Setup(builder => builder.GetBlock(position)).Returns(mockBlock.Object);
            mockTile.Setup(tile => tile.Position).Returns(new Vector2(5, 7));
            mockTile.Setup(tile => tile.Scale).Returns(new Vector2(3, 2));
            tiles[3, 1] = mockTile.Object;

            blockDetailsViewUpdater.UpdateDetails(position);

            mockBlueprintBuilder.Verify(builder => builder.HasBlock(position), Times.Once);
            mockFactory.Verify(factory => factory.Create(facingPosition), Times.Once);
            Assert.AreEqual(5, mockObject.Object.Position.X);
            Assert.AreEqual(7, mockObject.Object.Position.Y);
            Assert.AreEqual(3, mockObject.Object.Scale.X);
            Assert.AreEqual(2, mockObject.Object.Scale.Y);
            Assert.AreEqual(1, mockObject.Object.Rotation.X);
            Assert.AreEqual(0, mockObject.Object.Rotation.Y);
        }
Esempio n. 13
0
 public IWorldObject Create(FacingPosition position)
 {
     return(baseFactory.Create());
 }
        public IWorldObject Create(FacingPosition position)
        {
            var index = numberGenerator.GenerateNumber(position).ToInt();

            return(factories[index].Create());
        }