using System; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; using UnityEngine.UI; #if UNITY_EDITOR using UnityEditor; #endif public class equipItemPrefab : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler, IPointerClickHandler { [Header("so")] public equipmentSO itemSO; [Header("info")] public Image itemBtm; public Color[] itemBtmColors; public Sprite[] itemBtmSprites; public Image itemProfileIcon; public string itemType; public string itemName; public Button itemButton; [Header("description popup")] public GameObject eqpmtDesPrefab; public Transform popupParent; public float popupHorizontalOffset = 40f; public float popupBottomEdgePadding = 32f; public float popupBottomAvoidanceOffset = 24f; [Header("events")] public UnityEvent onItemClicked; [Header("interaction")] public bool allowDrag = true; public bool allowQuickTransfer = true; [Header("equipperProfile")] public Image equipperProfileIcon; private Action clickHandler; private Func rightClickHandler; private GameObject spawnedDescription; private bool suppressNextClick; private Canvas rootCanvas; private Camera uiCamera; private GameObject dragGhost; private RectTransform dragGhostRect; private bool isDraggingWithLeftButton; private void Awake() { if (itemButton == null) { itemButton = GetComponent