Example #1
0
        [TestCase(2U, 2U, 1.0f, 2.0f, 1, 1)] // 1.0 and 2.0f considered inside the 1 tile
        public void TestGivenTileInGrid_GetTileContainingWorldPosition_ReturnsCoordinate(
            uint numTilesX, uint numTilesY, float x, float y, int expectedCoordX, int expectedCoordY)
        {
            _grid.NumTilesX.Returns(numTilesX);
            _grid.NumTilesY.Returns(numTilesY);
            _grid.OriginWorldPosition.Returns(new Vector2(0, 0));

            IntVector2?position = _positionCalculator.GetTileContainingWorldPosition(new Vector2(x, y));

            Assert.NotNull(position);
            Assert.AreEqual(IntVector2.Of(expectedCoordX, expectedCoordY), position);
        }
Example #2
0
        private IntVector2?GetTileAtMousePositionInternal()
        {
            Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0);
            Vector3 curPosition    = _camera.ScreenToWorldPoint(curScreenPoint);

            return(_gridPositionCalculator.GetTileContainingWorldPosition(curPosition));
        }
Example #3
0
        public Vector2?GetLocalPosition(Vector2 worldPosition)
        {
            IntVector2?tileCoords = _gridPositionCalculator.GetTileContainingWorldPosition(worldPosition);

            if (tileCoords == null)
            {
                _logger.Log(LoggedFeature.Drawing, "TileCoords not found for world position: {0}", worldPosition);
                return(null);
            }

            IntVector2 bottomLeftTileCoords = GetBottomLeftGridTileCoords(tileCoords.Value);
            Vector2    tileOrigin           = _gridPositionCalculator.GetTileOriginWorldPosition(bottomLeftTileCoords);

            return(worldPosition - tileOrigin);
        }