Files
2024-11-20 15:21:28 +01:00

52 lines
1.6 KiB
C#

using System.Collections.Generic;
using UnityEngine;
namespace Invector.vItemManager
{
public class vEquipmentReferenceControl : MonoBehaviour
{
[System.Serializable]
public class vEquipmentReference
{
public string name;
public int id;
public vEquipment equipment;
}
public List<vEquipmentReference> equipmentReferences;
private void Awake()
{
vItemManager itemManager = GetComponentInParent<vItemManager>();
itemManager.onEquipItem.AddListener(OnEquip);
itemManager.onUnequipItem.AddListener(OnUniquip);
}
protected virtual void OnEquip(vEquipArea equipArea, vItem equipment)
{
if(equipment) SetActiveEquipment(equipment, true);
}
protected virtual void OnUniquip(vEquipArea equipArea, vItem equipment)
{
if (equipment) SetActiveEquipment(equipment, false);
}
public virtual void SetActiveEquipment( vItem item,bool active)
{
var equipments = equipmentReferences.FindAll(e => e.id.Equals(item.id));
for (int i = 0; i < equipments.Count; i++)
{
if (equipments[i].equipment)
{
equipments[i].equipment.gameObject.SetActive(active);
if(active)
{
equipments[i].equipment.OnEquip(item);
}
else equipments[i].equipment.OnUnequip(item);
}
}
}
}
}