Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / ui / mapEditor / MapEditorPanel.cs
@小李xl 小李xl on 6 Aug 2023 1 KB 更新Ui生成器
  1. using Godot;
  2. using UI.MapEditorTools;
  3.  
  4. namespace UI.MapEditor;
  5.  
  6. public partial class MapEditorPanel : MapEditor
  7. {
  8. private EditorTileMapBar _editorTileMapBar;
  9. public override void OnCreateUi()
  10. {
  11. S_TabContainer.Instance.SetTabTitle(0, "地图");
  12. S_TabContainer.Instance.SetTabTitle(1, "对象");
  13. //S_MapLayer.Instance.Init(S_MapLayer);
  14. _editorTileMapBar = new EditorTileMapBar(this, S_TileMap);
  15. }
  16.  
  17. public override void OnShowUi()
  18. {
  19. S_Left.Instance.Resized += OnMapViewResized;
  20. S_Back.Instance.Pressed += OnBackClick;
  21. OnMapViewResized();
  22. _editorTileMapBar.OnShow();
  23. }
  24.  
  25. public override void OnHideUi()
  26. {
  27. S_Left.Instance.Resized -= OnMapViewResized;
  28. S_Back.Instance.Pressed -= OnBackClick;
  29. _editorTileMapBar.OnHide();
  30. }
  31.  
  32. public override void OnDestroyUi()
  33. {
  34. _editorTileMapBar.OnDestroy();
  35. }
  36. public override void Process(float delta)
  37. {
  38. _editorTileMapBar.Process(delta);
  39. }
  40.  
  41. /// <summary>
  42. /// 加载地牢, 返回是否加载成功
  43. /// </summary>
  44. public bool LoadMap(DungeonRoomSplit roomSplit)
  45. {
  46. return S_TileMap.Instance.Load(roomSplit);
  47. }
  48. //调整地图显示区域大小
  49. private void OnMapViewResized()
  50. {
  51. S_SubViewport.Instance.Size = S_Left.Instance.Size.AsVector2I() - new Vector2I(4, 4);
  52. }
  53.  
  54. private void OnBackClick()
  55. {
  56. //返回上一个Ui
  57. OpenPrevUi();
  58. }
  59. }