using Godot; using System.Collections.Generic; namespace SupaLidlGame.UI.Inventory; public partial class ShopMenu : Control, IModal { private Items.IItemCollection _source; public Items.IItemCollection Source { get => _source; set { _source = value; _inventoryGrid.Source = value; } } [Export] private InventoryGrid _inventoryGrid; private InventorySlot _selected; public void ShowModal() { Show(); var animPlayer = GetNode("%AnimationPlayer"); animPlayer.Play("open"); } public void HideModal() { Hide(); _source = null; } public async void Close() { var animPlayer = GetNode("%AnimationPlayer"); animPlayer.Play("close"); await ToSignal(animPlayer, AnimationPlayer.SignalName.AnimationFinished); HideModal(); } public override void _Ready() { _inventoryGrid.SlotFocused += (InventorySlot slot) => { if (slot.Item is not null) { SetTooltipItem(slot); } }; _inventoryGrid.SlotUnfocused += (InventorySlot slot) => { SetTooltipItem(_selected); }; _inventoryGrid.SlotSelected += (InventorySlot slot) => { _selected = slot; SetTooltipItem(slot); GetNode