using System; using UnityEngine; namespace Kryz.CharacterStats.Examples { public class EquipmentPanel : MonoBehaviour { [SerializeField] Transform equipmentSlotsParent; [SerializeField] EquipmentSlot[] equipmentSlots; public UnityEvent_Item OnItemRightClickedEvent = new UnityEvent_Item(); private void Start() { for (int i = 0; i < equipmentSlots.Length; i++) { equipmentSlots[i].OnRightClickEvent.AddListener((X) => OnItemRightClickedEvent.Invoke(X)); } } private void OnValidate() { if (equipmentSlotsParent != null) equipmentSlots = equipmentSlotsParent.GetComponentsInChildren(); } public bool AddItem(EquippableItem item, out EquippableItem previousItem) { for (int i = 0; i < equipmentSlots.Length; i++) { if (equipmentSlots[i].EquipmentType == item.EquipmentType) { previousItem = (EquippableItem)equipmentSlots[i].Item; equipmentSlots[i].Item = item; return true; } } previousItem = null; return false; } public bool RemoveItem(EquippableItem item) { for (int i = 0; i < equipmentSlots.Length; i++) { if (equipmentSlots[i].Item == item) { equipmentSlots[i].Item = null; return true; } } return false; } public EquipmentSlot[] GetCurrentSlots() { return equipmentSlots; } } }