From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../Scripts/XMainClient/UI/RecycleItemBagView.cs | 126 +++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/RecycleItemBagView.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/RecycleItemBagView.cs') 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.uuID); + this._doc.BagView = this; + DlgHandlerBase.EnsureCreate(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.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.singleton.DrawItem(t.gameObject, null); + ixuilongPress.RegisterSpriteLongPressEventHandler(null); + ixuisprite.RegisterSpriteClickEventHandler(null); + } + else + { + XSingleton.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.singleton.ShowTooltipDialog(bagItemByUID, null, iSp, false, 0u); + } + } +} -- cgit v1.1-26-g67d0