Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / ui / encyclopedia / EncyclopediaPanel.cs
@小李xl 小李xl on 13 Mar 2024 2 KB 图鉴基本功能制作完成
  1. using System.Linq;
  2. using Config;
  3. using Godot;
  4.  
  5. namespace UI.Encyclopedia;
  6.  
  7. public partial class EncyclopediaPanel : Encyclopedia
  8. {
  9. //tab网格
  10. private UiGrid<TabButton, TabData> _tab;
  11. //item网格
  12. private UiGrid<ObjectButton, ExcelConfig.ActivityBase> _grid;
  13. //private long _id;
  14.  
  15. public override void OnCreateUi()
  16. {
  17. S_CloseButton.Instance.Pressed += OnCloseClick;
  18. _tab = CreateUiGrid<TabButton, TabData, TabCell>(S_TabButton);
  19. _tab.SetColumns(10);
  20. _tab.SetCellOffset(new Vector2I(0, 0));
  21. _tab.Add(new TabData(ResourcePath.resource_sprite_ui_encyclopedia_TabIcon1_png, ActivityType.Weapon));
  22. _tab.Add(new TabData(ResourcePath.resource_sprite_ui_encyclopedia_TabIcon1_png, ActivityType.Prop));
  23. _tab.Add(new TabData(ResourcePath.resource_sprite_ui_encyclopedia_TabIcon1_png, ActivityType.Enemy));
  24. _grid = CreateUiGrid<ObjectButton, ExcelConfig.ActivityBase, ItemCell>(S_ObjectButton);
  25. _grid.SetHorizontalExpand(true);
  26. _grid.SetAutoColumns(true);
  27. _grid.SetCellOffset(new Vector2I(10, 10));
  28.  
  29. _tab.SelectIndex = 0;
  30. }
  31.  
  32. public override void OnShowUi()
  33. {
  34. GameCamera.Main.LockCamera();
  35. }
  36. public override void OnHideUi()
  37. {
  38. GameCamera.Main.UnLockCamera();
  39. }
  40.  
  41. public override void OnDestroyUi()
  42. {
  43. }
  44. public override void Process(float delta)
  45. {
  46. if (Input.IsActionJustPressed("ui_cancel"))
  47. {
  48. OnCloseClick();
  49. }
  50. }
  51. /// <summary>
  52. /// 设置选中的tab
  53. /// </summary>
  54. public void SelectTab(ActivityType type)
  55. {
  56. // StopCoroutine(_id);
  57. // _id = StartCoroutine(
  58. // _grid.SetDataListCoroutine(
  59. // ExcelConfig.ActivityBase_List.Where(data => data.Type == type).ToArray()
  60. // )
  61. // );
  62. _grid.SetDataList(
  63. ExcelConfig.ActivityBase_List.Where(data => data.Type == type).ToArray()
  64. );
  65. SelectItem(null);
  66. }
  67.  
  68. /// <summary>
  69. /// 设置选中的物体
  70. /// </summary>
  71. public void SelectItem(ExcelConfig.ActivityBase config)
  72. {
  73. if (config != null)
  74. {
  75. S_ItemInfoBg.Instance.Visible = true;
  76. S_ItemName.Instance.Text = config.Name;
  77. S_ItemTexture.Instance.Texture = ResourceManager.LoadTexture2D(config.Icon);
  78. S_ItemDes.Instance.Text = config.Intro;
  79. //S_ItemDes.Instance.Text = config.Details;
  80. }
  81. else
  82. {
  83. S_ItemInfoBg.Instance.Visible = false;
  84. S_ItemName.Instance.Text = null;
  85. S_ItemTexture.Instance.Texture = null;
  86. S_ItemDes.Instance.Text = null;
  87. }
  88. }
  89.  
  90. private void OnCloseClick()
  91. {
  92. if (PrevUi != null)
  93. {
  94. OpenPrevUi();
  95. }
  96. else
  97. {
  98. Destroy();
  99. }
  100. }
  101.  
  102. }