ItemSourcePanel.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using System.Collections.Generic;
  2. using Core.Language;
  3. using Excel2Json;
  4. using Fort23.Core;
  5. using Fort23.UTool;
  6. using Mono.Utility;
  7. namespace Fort23.Mono
  8. {
  9. [UIBinding(prefab = "ItemSourcePanel")]
  10. public partial class ItemSourcePanel : UIPanel
  11. {
  12. List<SkipToWidget> skipToWidgets = new List<SkipToWidget>();
  13. private CTask<bool> callBack;
  14. private bool isSkipto = false;
  15. private void Init()
  16. {
  17. isPopUi = true;
  18. isAddStack = false;
  19. }
  20. protected override void AddEvent()
  21. {
  22. }
  23. protected override void DelEvent()
  24. {
  25. }
  26. public override void AddButtonEvent()
  27. {
  28. }
  29. public async override CTask<bool> AsyncInit(object[] uiData)
  30. {
  31. int itemId = (int)uiData[0];
  32. callBack = uiData[1] as CTask<bool>;
  33. ItemConfig itemConfig = ConfigComponent.Instance.Get<ItemConfig>(itemId);
  34. Text_ItemName.text = LanguageManager.Instance.Text(itemConfig.itemName);
  35. Icon_quality.icon_name = "dec_wupin_pinzhi" + itemConfig.quality;
  36. Icon_Item.icon_name = itemConfig.icon;
  37. Text_ItemCount.text = PlayerManager.Instance.BagController.GetItemCount(itemId).ToString();
  38. if (itemConfig.SkiptoID != null)
  39. {
  40. foreach (var skiptoId in itemConfig.SkiptoID)
  41. {
  42. SkipToWidget skipToWidget = await UIManager.Instance.CreateGComponent<SkipToWidget>(null, Content);
  43. skipToWidget.CustonInit(skiptoId);
  44. skipToWidgets.Add(skipToWidget);
  45. skipToWidget.OnClick = OnClick;
  46. }
  47. }
  48. return await base.AsyncInit(uiData);
  49. }
  50. private void OnClick(ItemWidgetBasic obj)
  51. {
  52. SkipToWidget skipToWidget = obj as SkipToWidget;
  53. isSkipto = true;
  54. UIManager.Instance.HideUIUIPanel(this);
  55. SkiptoHelper.Skipto(skipToWidget.SkiptoConfig.ID);
  56. }
  57. public static async CTask<bool> OpenPanel(int itemId)
  58. {
  59. CTask<bool> callBack = CTask<bool>.Create();
  60. await UIManager.Instance.LoadAndOpenPanel<ItemSourcePanel>(null, UILayer.Top,
  61. uiData: new object[] { itemId, callBack }, isShowBG: true);
  62. return await callBack;
  63. }
  64. public override void Close()
  65. {
  66. foreach (var skipToWidget in skipToWidgets)
  67. {
  68. UIManager.Instance.DormancyGComponent(skipToWidget);
  69. }
  70. skipToWidgets.Clear();
  71. callBack?.SetResult(isSkipto);
  72. isSkipto = false;
  73. base.Close();
  74. }
  75. }
  76. }