Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / ui / debugger / DebuggerPanel.cs
  1. using Godot;
  2.  
  3. namespace UI.Debugger;
  4.  
  5. public partial class DebuggerPanel : Debugger
  6. {
  7. private bool _showPanel = false;
  8. private int _len = 0;
  9. private bool _isDown = false;
  10. private Vector2 _offset;
  11. private Vector2 _prevPos;
  12. private bool _moveFlag;
  13. public override void OnCreateUi()
  14. {
  15. S_Bg.Instance.Visible = false;
  16. S_HoverButton.Instance.Pressed += OnClickHoverButton;
  17. S_HoverButton.Instance.ButtonDown += OnMouseDown;
  18. S_HoverButton.Instance.ButtonUp += OnMouseUp;
  19. S_Clear.Instance.Pressed += OnClear;
  20. S_Close.Instance.Pressed += OnClose;
  21. }
  22.  
  23. public override void OnDestroyUi()
  24. {
  25. }
  26.  
  27. public override void Process(float delta)
  28. {
  29. if (_showPanel)
  30. {
  31. if (Debug.AllLogMessage.Length != _len)
  32. {
  33. S_Label.Instance.Text = Debug.AllLogMessage;
  34. _len = Debug.AllLogMessage.Length;
  35. }
  36. }
  37. else
  38. {
  39. if (_isDown)
  40. {
  41. var temp = GetGlobalMousePosition() - _offset;
  42. if (temp != _prevPos)
  43. {
  44. _moveFlag = true;
  45. _prevPos = temp;
  46. S_HoverButton.Instance.GlobalPosition = temp;
  47. }
  48. }
  49. }
  50.  
  51. S_Fps.Instance.Text = "FPS:" + Mathf.RoundToInt(Engine.GetFramesPerSecond());
  52. }
  53.  
  54. private void OnMouseDown()
  55. {
  56. _isDown = true;
  57. _moveFlag = false;
  58. _prevPos = S_HoverButton.Instance.GlobalPosition;
  59. _offset = GetGlobalMousePosition() - _prevPos;
  60. }
  61. private void OnMouseUp()
  62. {
  63. _isDown = false;
  64. }
  65. private void OnClickHoverButton()
  66. {
  67. if (_moveFlag)
  68. {
  69. return;
  70. }
  71. _showPanel = true;
  72. S_Bg.Instance.Visible = _showPanel;
  73. S_HoverButton.Instance.Visible = false;
  74. }
  75.  
  76. private void OnClear()
  77. {
  78. Debug.Clear();
  79. S_Label.Instance.Text = "";
  80. _len = 0;
  81. }
  82.  
  83. private void OnClose()
  84. {
  85. _showPanel = false;
  86. S_Bg.Instance.Visible = _showPanel;
  87. S_HoverButton.Instance.Visible = true;
  88. }
  89. }