87 lines
2.6 KiB
C#
87 lines
2.6 KiB
C#
using DanielLochner.Assets.SimpleScrollSnap;
|
|
using Invector.vItemManager;
|
|
using Sirenix.OdinInspector;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace Beyond
|
|
{
|
|
public class ButtonWeaponBindController : MonoBehaviour, IButtonItemBindController
|
|
{
|
|
[SerializeField]
|
|
private SimpleScrollSnap scrollSnap;
|
|
|
|
[SerializeField]
|
|
private List<ItemPanelController> itemPanels = new List<ItemPanelController>();
|
|
|
|
[SerializeField]
|
|
private bEquipArea equipArea;
|
|
|
|
private void OnDestroy()
|
|
{
|
|
RemoveListeners();
|
|
}
|
|
|
|
private void RemoveListeners()
|
|
{
|
|
if (!equipArea)
|
|
{
|
|
return;
|
|
}
|
|
for (int i = 0; i < equipArea.equipSlots.Count; i++)
|
|
{
|
|
bEquipSlot equipSlot = equipArea.equipSlots[i];
|
|
List<ItemPanelController> itemPanelControllers = GetItemPanels();
|
|
ItemPanelController spellPanel = itemPanelControllers[i];
|
|
equipSlot.onAddItem.RemoveListener(spellPanel.SetPanelToItemImage);
|
|
equipSlot.onRemoveItem.RemoveListener(spellPanel.SetPanelToDefaultImage);
|
|
}
|
|
}
|
|
|
|
public void BindPanelToItemSlot(int index)
|
|
{
|
|
GameObject weaponPanelObject = scrollSnap.Panels[index];
|
|
weaponPanelObject.SetActive(true);
|
|
ItemPanelController weaponPanel = weaponPanelObject.GetComponent<ItemPanelController>();
|
|
itemPanels.Add(weaponPanel);
|
|
bEquipSlot equipSlot = equipArea.equipSlots[index];
|
|
equipSlot.onAddItem.AddListener(weaponPanel.SetPanelToItemImage);
|
|
if (equipArea.equipSlots[index].item)
|
|
{
|
|
weaponPanel.SetPanelToItemImage(equipArea.equipSlots[index].item);
|
|
}
|
|
equipSlot.onRemoveItem.AddListener(weaponPanel.SetPanelToDefaultImage);
|
|
}
|
|
|
|
public ItemPanelController GetCurrentItemPanel()
|
|
{
|
|
return itemPanels[scrollSnap.CurrentPanel];
|
|
}
|
|
|
|
public int GetEquipSlotsCount()
|
|
{
|
|
return equipArea.equipSlots.Count;
|
|
}
|
|
|
|
public bEquipArea getEquipArea()
|
|
{
|
|
return equipArea;
|
|
}
|
|
|
|
public void SetEquipSlot()
|
|
{
|
|
equipArea.SetEquipSlot(scrollSnap.CurrentPanel);
|
|
}
|
|
|
|
public bEquipArea GetEquipArea()
|
|
{
|
|
return equipArea;
|
|
}
|
|
|
|
public List<ItemPanelController> GetItemPanels()
|
|
{
|
|
return itemPanels;
|
|
}
|
|
}
|
|
} |