private void GetNewTrees()
    {
        //Removing non-valid trees from existing dictionary
        Dictionary <Tree, GameObject> temp = new Dictionary <Tree, GameObject>(_trees);

        foreach (KeyValuePair <Tree, GameObject> pair in temp)
        {
            if (_selectionArea.Contains(pair.Key.Position) == false)
            {
                pair.Value.SetActive(false);
                _jobIconsPool.Push(pair.Value);
                _trees.Remove(pair.Key);
            }
        }
        temp.Clear();

        //Detecting new trees.
        foreach (Vector2Int position in _selectionArea.GetPositions())
        {
            Tile t = Utils.TileAt(position.x, position.y);
            if (t is null || t.Contents is null || t.Contents.StaticObject is null)
            {
                continue;
            }

            StaticObject staticObject = t.Contents.StaticObject;

            if (staticObject.GetType() != typeof(Tree) || (staticObject as Tree).HasCutJob)
            {
                continue;
            }

            if (_trees.ContainsKey(staticObject as Tree) == false)
            {
                _trees.Add(staticObject as Tree, CreateJobIcon(staticObject as Tree));
            }
        }
    }