Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / ui / mapEditor / MapEditorPanel.cs
@小李xl 小李xl on 1 Aug 2023 1 KB 小修改
  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. private EditorLayerBar _editorLayerBar;
  10.  
  11. public override void OnCreateUi()
  12. {
  13. S_TabContainer.Instance.SetTabTitle(0, "地图");
  14. S_TabContainer.Instance.SetTabTitle(1, "对象");
  15. //S_MapLayer.Instance.Init(S_MapLayer);
  16. _editorTileMapBar = new EditorTileMapBar(this, S_TileMap);
  17. _editorLayerBar = new EditorLayerBar(this, S_MapLayer);
  18. }
  19.  
  20. public override void OnShowUi()
  21. {
  22. S_Left.Instance.Resized += OnMapViewResized;
  23. S_Back.Instance.Pressed += OnBackClick;
  24. OnMapViewResized();
  25. _editorTileMapBar.OnShow();
  26. _editorLayerBar.OnShow();
  27. }
  28.  
  29. public override void OnHideUi()
  30. {
  31. S_Left.Instance.Resized -= OnMapViewResized;
  32. S_Back.Instance.Pressed -= OnBackClick;
  33. _editorTileMapBar.OnHide();
  34. _editorLayerBar.OnHide();
  35. }
  36.  
  37. public override void OnDestroyUi()
  38. {
  39. _editorTileMapBar.OnDestroy();
  40. _editorLayerBar.OnDestroy();
  41. }
  42. public override void Process(float delta)
  43. {
  44. _editorTileMapBar.Process(delta);
  45. _editorLayerBar.Process(delta);
  46. }
  47.  
  48. /// <summary>
  49. /// 加载地牢, 返回是否加载成功
  50. /// </summary>
  51. public bool LoadMap(DungeonRoomSplit roomSplit)
  52. {
  53. return S_TileMap.Instance.Load(roomSplit);
  54. }
  55. //调整地图显示区域大小
  56. private void OnMapViewResized()
  57. {
  58. S_SubViewport.Instance.Size = S_Left.Instance.Size.AsVector2I() - new Vector2I(4, 4);
  59. }
  60.  
  61. private void OnBackClick()
  62. {
  63. //返回上一个Ui
  64. if (PrevUi != null)
  65. {
  66. Destroy();
  67. PrevUi.ShowUi();
  68. }
  69. }
  70. }