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) }); }
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); }
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; }
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); }
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]); }
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); }
public IWorldObject Create(FacingPosition position) { return(baseFactory.Create()); }
public IWorldObject Create(FacingPosition position) { var index = numberGenerator.GenerateNumber(position).ToInt(); return(factories[index].Create()); }