(Feat) add crafting discovery + notification + inventory tool tips

This commit is contained in:
2026-07-09 17:44:52 +02:00
parent c6830fa7a4
commit faa061cced
454 changed files with 2445 additions and 229 deletions
+25 -2
View File
@@ -6,7 +6,7 @@ using System;
namespace Ashwild.Inventory
{
public class SlotUI : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler, IDropHandler, IPointerClickHandler
public class SlotUI : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler, IDropHandler, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler
{
[Header("References")]
[SerializeField] private Image iconImage;
@@ -26,6 +26,8 @@ namespace Ashwild.Inventory
private int slotIndex;
private Action<int, int> onSwapRequested;
private Action<int, bool> onClicked;
private Action<int> onHoverEnter;
private Action onHoverExit;
public int SlotIndex => slotIndex;
@@ -43,11 +45,14 @@ namespace Ashwild.Inventory
ghostObject.SetActive(false);
}
public void Initialize(int index, Action<int, int> swapCallback, Action<int, bool> clickCallback)
public void Initialize(int index, Action<int, int> swapCallback, Action<int, bool> clickCallback,
Action<int> hoverEnterCallback = null, Action hoverExitCallback = null)
{
slotIndex = index;
onSwapRequested = swapCallback;
onClicked = clickCallback;
onHoverEnter = hoverEnterCallback;
onHoverExit = hoverExitCallback;
}
/// <summary>
@@ -170,5 +175,23 @@ namespace Ashwild.Inventory
if (eventData.button == PointerEventData.InputButton.Right)
onClicked?.Invoke(slotIndex, true);
}
/// <summary>
/// Reports the hovered slot index so the manager can show its description panel. Suppressed
/// while a drag is in progress, where the panel would only get in the way.
/// </summary>
public void OnPointerEnter(PointerEventData eventData)
{
if (draggedSlot != null) return;
onHoverEnter?.Invoke(slotIndex);
}
/// <summary>
/// Reports that the pointer left the slot so the manager can hide the description panel.
/// </summary>
public void OnPointerExit(PointerEventData eventData)
{
onHoverExit?.Invoke();
}
}
}