summaryrefslogtreecommitdiff
path: root/scripts/GUI/ItemMenuEntry.cs
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/GUI/ItemMenuEntry.cs')
-rw-r--r--scripts/GUI/ItemMenuEntry.cs41
1 files changed, 41 insertions, 0 deletions
diff --git a/scripts/GUI/ItemMenuEntry.cs b/scripts/GUI/ItemMenuEntry.cs
new file mode 100644
index 0000000..449c97b
--- /dev/null
+++ b/scripts/GUI/ItemMenuEntry.cs
@@ -0,0 +1,41 @@
+using Godot;
+
+public partial class ItemMenuEntry : HBoxContainer
+{
+ private TextureRect icon;
+ private Label shortcutLabel;
+ private Label nameLabel;
+ private Button activateBtn;
+ private Button dropBtn;
+
+ [Signal]
+ public delegate void ActivateEventHandler(ConsumableItem Item);
+
+ [Signal]
+ public delegate void DropEventHandler(ConsumableItem item);
+
+ private ConsumableItem item;
+
+ public void Initialize(ConsumableItem item, char? shortcut) {
+ this.item = item;
+ nameLabel.Text = item.DisplayName;
+ if (shortcut != null) {
+ shortcutLabel.Text = $"{shortcut}";
+ } else {
+ shortcutLabel.Text = "";
+ }
+ icon.Texture = item.Texture;
+ }
+
+ public override void _Ready() {
+ base._Ready();
+ icon = GetNode<TextureRect>("Icon");
+ shortcutLabel = GetNode<Label>("Shortcut");
+ nameLabel = GetNode<Label>("ItemName");
+ activateBtn = GetNode<Button>("ActivateBtn");
+ dropBtn = GetNode<Button>("DropButton");
+
+ activateBtn.Pressed += () => EmitSignal(SignalName.Activate, item);
+ dropBtn.Pressed += () => EmitSignal(SignalName.Drop, item);
+ }
+}