public CoverData GetData(int x, int y)
        {
            CoverChunk chunk = GetChunkAt(x, y);

            if (chunk == null)
            {
                return(default);               // no data to return
        public void SetOrientation(int x, int y, int orientation)
        {
            ValidateExists(x, y);
            CoverChunk chunk = GetChunkAt(x, y);

            chunk.SetOrientation(GetPositionInChunk(x, y), orientation);

            // if our new count is 0, remove the chunk
            if (chunk.CoverCount == 0)
            {
                Point chunkPos = GetChunkFor(x, y);
                _chunks[chunkPos.X, chunkPos.Y] = null;
            }
        }