From a8d076656d6c429354274a2d791b842d5c50cdb8 Mon Sep 17 00:00:00 2001 From: XtraCube <72575280+XtraCube@users.noreply.github.com> Date: Wed, 26 Mar 2025 18:45:48 -0400 Subject: [PATCH] more WIP presets --- MiraAPI/Hud/InputBox.cs | 82 ++++++++++++------- .../Patches/Options/GamePresetsTabPatches.cs | 10 +++ 2 files changed, 64 insertions(+), 28 deletions(-) diff --git a/MiraAPI/Hud/InputBox.cs b/MiraAPI/Hud/InputBox.cs index b1b1466..7ebd7e4 100644 --- a/MiraAPI/Hud/InputBox.cs +++ b/MiraAPI/Hud/InputBox.cs @@ -6,86 +6,112 @@ using UnityEngine.UI; namespace MiraAPI.Hud; +/// +/// Simple input box for user input. +/// [RegisterInIl2Cpp] public class InputBox : MonoBehaviour { - private GameObject dialog; - private InputField inputField; + public GameObject dialog; + public InputField inputField; public void CreateDialog(string title, Action onSubmit) { - // Create Canvas var canvasObj = new GameObject("DialogCanvas"); canvasObj.transform.SetParent(transform); canvasObj.layer = LayerMask.NameToLayer("UI"); + var canvas = canvasObj.AddComponent(); canvas.renderMode = RenderMode.ScreenSpaceOverlay; canvasObj.AddComponent().uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; canvasObj.AddComponent(); - // Create Panel var panelObj = new GameObject("DialogPanel"); panelObj.transform.SetParent(canvasObj.transform); var panelRect = panelObj.AddComponent(); var img = panelObj.AddComponent(); - img.color = new Color(0, 0, 0, 0.6f); // Semi-transparent black - img.raycastTarget = true; - panelRect.sizeDelta = new Vector2(200, 200); + img.color = new Color(0.1f, 0.1f, 0.1f, 0.9f); + img.raycastTarget = true; + img.sprite = CreateRoundedSprite(); + + panelRect.sizeDelta = new Vector2(300, 200); panelRect.anchoredPosition = Vector2.zero; - // Create Title Text var titleText = CreateText(panelObj, title); titleText.alignment = TextAnchor.MiddleCenter; - titleText.fontSize = 24; + titleText.fontSize = 26; + titleText.fontStyle = FontStyle.Bold; titleText.color = Color.white; + var titleRect = titleText.GetComponent(); - titleRect.sizeDelta = new Vector2(200, 40); + titleRect.sizeDelta = new Vector2(280, 50); titleRect.anchoredPosition = new Vector2(0, 70); - // Create InputField var inputObj = new GameObject("InputField"); inputObj.transform.SetParent(panelObj.transform); var inputRect = inputObj.AddComponent(); - inputRect.sizeDelta = new Vector2(150, 50); - inputRect.anchoredPosition = new Vector2(0, 30); + inputRect.sizeDelta = new Vector2(220, 40); + inputRect.anchoredPosition = new Vector2(0, 20); + + var inputBg = inputObj.AddComponent(); + inputBg.color = new Color(1, 1, 1, 0.8f); inputField = inputObj.AddComponent(); - inputField.textComponent = CreateText(inputObj); - inputField.placeholder = CreateText(inputObj, "Enter text here..."); + inputField.textComponent = CreateText(inputObj, "", 18, Color.black); + inputField.placeholder = CreateText(inputObj, "Enter text here...", 18, new Color(0.5f, 0.5f, 0.5f)); - // Create Submit Button var buttonObj = new GameObject("SubmitButton"); buttonObj.transform.SetParent(panelObj.transform); var button = buttonObj.AddComponent