From 26f24250fa56e6f2ed001d1ce59762f26803019f Mon Sep 17 00:00:00 2001 From: FreezeDriedMangoes Date: Fri, 13 May 2022 09:45:33 -0400 Subject: [PATCH] feat: made a debug menu component --- NewHorizons/Utility/DebugMenu.cs | 74 ++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 NewHorizons/Utility/DebugMenu.cs diff --git a/NewHorizons/Utility/DebugMenu.cs b/NewHorizons/Utility/DebugMenu.cs new file mode 100644 index 00000000..06e30612 --- /dev/null +++ b/NewHorizons/Utility/DebugMenu.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; +using UnityEngine.InputSystem; + +namespace NewHorizons.Utility +{ + class DebugMenu : MonoBehaviour + { + GUIStyle _editorMenuStyle; + Vector2 EditorMenuSize = new Vector2(600, 900); + bool menuOpen = false; + + private void InitMenu() + { + if (_editorMenuStyle != null) return; + + Texture2D bgTexture = MakeTexture((int)EditorMenuSize.x, (int)EditorMenuSize.y, Color.black); + + _editorMenuStyle = new GUIStyle + { + normal = + { + background = bgTexture + } + }; + } + + private Texture2D MakeTexture(int width, int height, Color color) + { + Color[] pixels = new Color[width*height]; + + for(int i = 0; i < pixels.Length; i++) + { + pixels[i] = color; + } + + Texture2D newTexture = new Texture2D(width, height); + newTexture.SetPixels(pixels); + newTexture.Apply(); + return newTexture; + } + + private void OnGUI() + { + if (!menuOpen) return; + if (!Main.Debug) return; + + Vector2 menuPosition = Vector2.zero; // new Vector2(Screen.width - EditorMenuSize.x - 10, 10); + + //TODO: add gui for stuff https://github.com/Bwc9876/OW-SaveEditor/blob/master/SaveEditor/SaveEditor.cs + // https://docs.unity3d.com/ScriptReference/GUI.TextField.html + GUILayout.BeginArea(new Rect(menuPosition.x, menuPosition.y, EditorMenuSize.x, EditorMenuSize.y), _editorMenuStyle); + GUILayout.Label("*: Restart Required"); + GUILayout.Space(20); + GUILayout.Label("*: Restart Required"); + GUILayout.EndArea(); + } + + private void Update() + { + if (!Main.Debug) return; + + if (Keyboard.current[Key.Escape].wasPressedThisFrame) + { + menuOpen = !menuOpen; + if (menuOpen) InitMenu(); + } + } + } +}