DivineSenceEventPreviewPanel.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using Fort23.Core;
  2. using UnityEngine;
  3. namespace Fort23.Mono
  4. {
  5. [UIBinding(prefab = "DivineSenceEventPreviewPanel" )]
  6. public partial class DivineSenceEventPreviewPanel : UIPanel,IScrollListContent
  7. {
  8. private void Init()
  9. {
  10. }
  11. protected override void AddEvent()
  12. {
  13. EventManager.Instance.AddEventListener(CustomEventType.RemoveEvent, RemoveEvent);
  14. }
  15. protected override void DelEvent()
  16. {
  17. EventManager.Instance.RemoveEventListener(CustomEventType.RemoveEvent, RemoveEvent);
  18. }
  19. public override void AddButtonEvent()
  20. {
  21. Btn_Close.onClick.AddListener(() =>
  22. {
  23. UIManager.Instance.HideUIUIPanel(this);
  24. });
  25. }
  26. private void RemoveEvent(IEventData e)
  27. {
  28. UIManager.Instance.DormancyAllGComponent<ShengShiEventWidgetType2>();
  29. Content.Init(this, AccountFileInfo.Instance.playerData.eventList.Count);
  30. }
  31. public override CTask<bool> AsyncInit(object[] uiData)
  32. {
  33. Content.Init(this, AccountFileInfo.Instance.playerData.eventList.Count);
  34. return base.AsyncInit(uiData);
  35. }
  36. public async CTask<IScorllListWidget> GetIScorllListWidget(int index, RectTransform root)
  37. {
  38. if (index < 0 || index >=AccountFileInfo.Instance.playerData.eventList.Count)
  39. {
  40. return null;
  41. }
  42. ShengShiEventWidgetType2 shengShiEventWidgetType2 = await UIManager.Instance.CreateGComponent<ShengShiEventWidgetType2>(null, ContentRoot);
  43. shengShiEventWidgetType2.CustomInit(AccountFileInfo.Instance.playerData.eventList[index]);
  44. shengShiEventWidgetType2.onClick = OnClick;
  45. return shengShiEventWidgetType2;
  46. }
  47. private void OnClick(ItemWidgetBasic obj)
  48. {
  49. ShengShiEventWidgetType2 shengShiEventWidgetType2 = obj as ShengShiEventWidgetType2;
  50. if (EventSystemManager.Instance.isTriggerEvent)
  51. return;
  52. UIManager.Instance.HideUIUIPanel(this);
  53. UIManager.Instance.DormancyAllGComponent<ShengShiEventWidget>();
  54. EventSystemManager.Instance.TriggerEvent(shengShiEventWidgetType2.eventList);
  55. }
  56. public void HindIScorllListWidget(IScorllListWidget widget)
  57. {
  58. UIManager.Instance.DormancyGComponent(widget as UIComponent);
  59. }
  60. public async static CTask<DivineSenceEventPreviewPanel> OpenPanel()
  61. {
  62. DivineSenceEventPreviewPanel divineSenceEventPreviewPanel = await UIManager.Instance.LoadAndOpenPanel<DivineSenceEventPreviewPanel>(null);
  63. return divineSenceEventPreviewPanel;
  64. }
  65. public override void Close()
  66. {
  67. UIManager.Instance.DormancyAllGComponent<ShengShiEventWidgetType2>();
  68. EventSystemManager.Instance.isOpenUi = false;
  69. base.Close();
  70. }
  71. }
  72. }