SupaLidlGame/UI/Inventory/ShopMenu.cs

77 lines
1.7 KiB
C#
Raw Normal View History

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