/// <summary>
        /// Attempt to add an item to the inventory
        /// </summary>
        /// <param name="itemToAdd"></param>
        /// <returns>true if item was added, false otherwise</returns>
        public bool AddItem(Item itemToAdd, bool addToUi)
        {
            GD.Print("InventoryController - AddItem");
            if (!managedItems.Contains(itemToAdd))
            {
                AddChild(itemToAdd);
                managedItems.Add(itemToAdd);
                if (addToUi)
                {
                    playerInventoryUiManager.AddItemToUi(itemToAdd);
                }

                return(true);
            }

            return(false);
        }
        public void Init(
            ArmorController armorController,
            WeaponController weaponController,
            GroundItemController groundItemController,
            PlayerInventoryUiManager playerInventoryUiManager
            )
        {
            this.armorController          = armorController;
            this.weaponController         = weaponController;
            this.groundItemController     = groundItemController;
            this.playerInventoryUiManager = playerInventoryUiManager;

            for (int i = 0; i < GetChildCount(); i++)
            {
                if (GetChild(i) is Item item)
                {
                    GD.Print("InventoryController - AddItem");
                    managedItems.Add(item);
                    playerInventoryUiManager.AddItemToUi(item);
                    item.SetEnabled(false);
                }
            }
        }