diff options
author | chai <chaifix@163.com> | 2021-01-25 14:28:30 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-01-25 14:28:30 +0800 |
commit | 6eb915c129fc90c6f4c82ae097dd6ffad5239efc (patch) | |
tree | 7dd2be50edf41f36b60fac84696e731c13afe617 /Client/Assets/Scripts/XMainClient/UI/RecycleItemBagView.cs |
+scripts
Diffstat (limited to 'Client/Assets/Scripts/XMainClient/UI/RecycleItemBagView.cs')
-rw-r--r-- | Client/Assets/Scripts/XMainClient/UI/RecycleItemBagView.cs | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/Client/Assets/Scripts/XMainClient/UI/RecycleItemBagView.cs b/Client/Assets/Scripts/XMainClient/UI/RecycleItemBagView.cs new file mode 100644 index 00000000..667d1e31 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/RecycleItemBagView.cs @@ -0,0 +1,126 @@ +using System;
+using UILib;
+using UnityEngine;
+using XUtliPoolLib;
+
+namespace XMainClient.UI
+{
+ internal class RecycleItemBagView : DlgHandlerBase
+ {
+ private XRecycleItemDocument _doc = null;
+
+ private QualityFilterHandler qualityFilter;
+
+ private static int QualityMask = 3;
+
+ private IXUIScrollView bagScrollView = null;
+
+ private XBagWindow bagWindow;
+
+ protected override void Init()
+ {
+ base.Init();
+ this._doc = XDocuments.GetSpecificDocument<XRecycleItemDocument>(XRecycleItemDocument.uuID);
+ this._doc.BagView = this;
+ DlgHandlerBase.EnsureCreate<QualityFilterHandler>(ref this.qualityFilter, base.PanelObject.transform.Find("FilterPanel").gameObject, null, true);
+ this.qualityFilter.Set(RecycleItemBagView.QualityMask, new QualityFilterCallback(this._OnFilterOK));
+ this.bagScrollView = (base.PanelObject.transform.Find("Panel").GetComponent("XUIScrollView") as IXUIScrollView);
+ this.bagWindow = new XBagWindow(base.PanelObject, new ItemUpdateHandler(this.WrapContentItemUpdated), new GetItemHandler(this._doc.GetItems));
+ this.bagWindow.Init();
+ }
+
+ public override void RegisterEvent()
+ {
+ base.RegisterEvent();
+ IXUIButton ixuibutton = base.PanelObject.transform.Find("FilterBtn").GetComponent("XUIButton") as IXUIButton;
+ ixuibutton.RegisterClickEventHandler(new ButtonClickEventHandler(this._OnFilterClicked));
+ }
+
+ protected override void OnShow()
+ {
+ base.OnShow();
+ this.bagWindow.OnShow();
+ this.qualityFilter.SetVisible(false);
+ }
+
+ protected override void OnHide()
+ {
+ base.OnHide();
+ this.bagWindow.OnHide();
+ this._doc.ResetSelection(false);
+ }
+
+ public override void OnUnload()
+ {
+ this._doc.BagView = null;
+ this.bagWindow = null;
+ base.OnUnload();
+ }
+
+ public void Refresh()
+ {
+ this.bagWindow.RefreshWindow();
+ }
+
+ public void UpdateView()
+ {
+ this.bagWindow.UpdateBag();
+ }
+
+ protected bool _OnFilterClicked(IXUIButton btn)
+ {
+ this.qualityFilter.SetVisible(true);
+ return true;
+ }
+
+ protected void _OnFilterOK(int mask)
+ {
+ RecycleItemBagView.QualityMask = mask;
+ this._doc.GetQuickSelectItems(mask);
+ }
+
+ private void WrapContentItemUpdated(Transform t, int index)
+ {
+ IXUISprite ixuisprite = t.Find("Icon").GetComponent("XUISprite") as IXUISprite;
+ IXUILongPress ixuilongPress = ixuisprite.gameObject.GetComponent("XUILongPress") as IXUILongPress;
+ bool flag = this.bagWindow.m_XItemList == null || index >= this.bagWindow.m_XItemList.Count || index < 0;
+ if (flag)
+ {
+ XSingleton<XItemDrawerMgr>.singleton.DrawItem(t.gameObject, null);
+ ixuilongPress.RegisterSpriteLongPressEventHandler(null);
+ }
+ else
+ {
+ ixuisprite.ID = this.bagWindow.m_XItemList[index].uid;
+ int num = 0;
+ this._doc.IsSelected(ixuisprite.ID, out num);
+ bool flag2 = num == 0;
+ if (flag2)
+ {
+ XSingleton<XItemDrawerMgr>.singleton.DrawItem(t.gameObject, null);
+ ixuilongPress.RegisterSpriteLongPressEventHandler(null);
+ ixuisprite.RegisterSpriteClickEventHandler(null);
+ }
+ else
+ {
+ XSingleton<XItemDrawerMgr>.singleton.DrawItem(t.gameObject, this.bagWindow.m_XItemList[index]);
+ ixuilongPress.RegisterSpriteLongPressEventHandler(new SpriteClickEventHandler(this.OnItemLongPressed));
+ IXUILabel ixuilabel = t.Find("Num").GetComponent("XUILabel") as IXUILabel;
+ ixuilabel.SetText(num.ToString());
+ ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnItemClicked));
+ }
+ }
+ }
+
+ public void OnItemClicked(IXUISprite iSp)
+ {
+ this._doc.ToggleItemSelect(iSp.ID);
+ }
+
+ public void OnItemLongPressed(IXUISprite iSp)
+ {
+ XItem bagItemByUID = XBagDocument.BagDoc.GetBagItemByUID(iSp.ID);
+ XSingleton<UiUtility>.singleton.ShowTooltipDialog(bagItemByUID, null, iSp, false, 0u);
+ }
+ }
+}
|