// TODO its time to start think about tile meta data
 private bool IsTileBlockingSight(int x, int y)
 {
     if (m_tileMap.IsInBounds(x, y))
     {
         return(m_tileMap[x, y] == 0);
     }
     return(true);
 }
 // TODO need a way to handle meta data for tiles
 protected virtual bool IsTileBlockingMovement(int x, int y)
 {
     if (m_tileMap.IsInBounds(x, y))
     {
         Debug.Log(m_tileMap[x, y]);
         return(m_tileMap[x, y] == 0); // TODO assumes tile id 0 is walls and everything else is walkable
     }
     return(true);
 }
    private void EnqueueIfMatches(Queue <Vector2Int> queue, int x, int y, int initial)
    {
        if (m_tileMap.IsInBounds(x, y) == false)
        {
            return;
        }

        if (m_tileMap[x, y] == initial)
        {
            queue.Enqueue(new Vector2Int(x, y));
        }
    }