using Godot; using System.Collections.Generic; namespace SupaLidlGame.UI.Inventory; public partial class ShopMenu : BaseMenu, IModal { private Items.IItemCollection<Items.ShopEntry> _source; public Items.IItemCollection<Items.ShopEntry> Source { get => _source; set { _source = value; _inventoryGrid.Source = value; } } public override void ShowModal() { Show(); var animPlayer = GetNode<AnimationPlayer>("%AnimationPlayer"); animPlayer.Play("open"); } public override void HideModal() { Hide(); _source = null; } public override void _Ready() { base._Ready(); _focusButtonOnSelect = GetNode<Button>("%BuyButton"); GetNode<Button>("%BuyButton").GuiInput += (InputEvent @event) => { if (@event.IsActionPressed("ui_cancel")) { GetViewport().SetInputAsHandled(); _selected?.GrabFocus(); } }; } protected override void SetTooltipItem(InventorySlot slot) { base.SetTooltipItem(slot); if (slot == _selected) { GetNode<Button>("%BuyButton").Disabled = false; } else { GetNode<Button>("%BuyButton").Disabled = true; } } public override void OnButtonPress(Button button) { throw new System.NotImplementedException("Not yet implemented."); } public override void _UnhandledInput(InputEvent @event) { if (@event.IsActionPressed("ui_cancel")) { GetViewport().SetInputAsHandled(); Close(); } } }