Esempio n. 1
0
    List <Vector2DInt> CalculateVisibleChunksPositions(Vector2DInt inViewOrigin)
    {
        // Calculate the visible area
        int renderDistance = Constants.Terrain.RENDER_DISTANCE;
        int chunksToSide   = (renderDistance - 1) / 2;

        List <Vector2DInt> visibleChunks = new List <Vector2DInt>();

        for (int y = 0; y < renderDistance; y++)
        {
            for (int x = 0; x < renderDistance; x++)
            {
                Vector2DInt possibleChunksPositions = new Vector2DInt(x - chunksToSide + inViewOrigin.x,
                                                                      y - chunksToSide + inViewOrigin.y);

                if (WorldChunkManager.ChunkPositionIsWithinWorld(possibleChunksPositions))
                {
                    visibleChunks.Add(possibleChunksPositions);
                }
            }
        }

        return(visibleChunks);
    }