Files
Fishing2/Assets/Scripts/UI/Bag/BagPanel.cs

83 lines
2.1 KiB
C#

// 本脚本只在不存在时会生成一次。已存在不会再次生成覆盖
using System.Collections.Generic;
using UnityEngine;
using NBC;
using NBF.Fishing2;
namespace NBF
{
public partial class BagPanel : UIPanel
{
protected override void OnInit()
{
base.OnInit();
}
protected override void OnShow()
{
ItemList.List.OnClickItem += OnClickItem;
Game.Input.OnUICanceled += OnUICanceled;
UseBottomMenu();
List<TabItemData> tabItemList = new List<TabItemData>();
var role = App.Main.GetComponent<Role>();
var roleBag = role.GetComponent<RoleBag>();
var dic = roleBag.GetItemsByType();
foreach (var (type, list) in dic)
{
TabItemData tabItem = new TabItemData
{
Key = type.ToString()
};
tabItem.Items.AddRange(list);
tabItemList.Add(tabItem);
}
ItemList.SetPanel(this);
ItemList.SetData(tabItemList, true, true);
}
private void OnUICanceled(string action)
{
if (!IsTop) return;
if (action == InputDef.UI.SubPrev)
{
}
else if (action == InputDef.UI.SubNext)
{
}
else if (action == InputDef.UI.Up)
{
}
else if (action == InputDef.UI.Down)
{
}
}
private void OnClickItem(object item)
{
if (item is not BagItem bagItem) return;
// ItemDetailsPanel.s
ItemDetailsPanel.Show(bagItem.ItemInfo);
}
private void UseBottomMenu()
{
BottomMenu.Use(this);
}
protected override void OnHide()
{
Game.Input.OnUICanceled -= OnUICanceled;
ItemList.List.OnClickItem -= OnClickItem;
}
protected override void OnDestroy()
{
base.OnDestroy();
}
}
}