public void PlaceItem(string item, string location)
        {
            if (shopItems.ContainsKey(location))
            {
                shopItems[location].Add(item);
            }
            else
            {
                nonShopItems.Add(location, item);
            }
            UpdateOrder(location);
            unplacedLocations.Remove(location);
            if (LogicManager.GetItemDef(item).progression)
            {
                unplacedProgression.Remove(item);
                UpdateReachableLocations(item);
            }
            else
            {
                unplacedItems.Remove(item);
            }

            if (LogicManager.GetItemDef(item).pool == "Grub")
            {
                pm.AddGrubLocation(location);
            }
            else if (LogicManager.GetItemDef(item).pool == "Essence_Boss" || LogicManager.GetItemDef(item).pool == "Root")
            {
                pm.AddEssenceLocation(location, LogicManager.GetItemDef(item).geo);
            }
            else if (LogicManager.GetItemDef(item).pool == "Flame")
            {
                pm.AddFlameLocation(location);
            }
        }