common extensions and some utilities

This commit is contained in:
2025-03-19 00:18:40 +01:00
parent f80fd22a00
commit e62bd2aa6d
35 changed files with 323 additions and 58 deletions

View File

@@ -44,14 +44,11 @@ namespace RebootKit.Engine.Services.Console {
public ConsoleService(Config config) {
_config = config;
}
public async UniTask OnWakeUp(CancellationToken cancellationToken) {
_logger.Info("Waking up");
_ui = UnityEngine.Object.Instantiate(_config.ConsoleUIPrefab);
UnityEngine.Object.DontDestroyOnLoad(_ui.gameObject);
await UniTask.Yield(cancellationToken);
_config.ToggleAction.Action.Enable();
_config.ToggleAction.Action.performed += OnToggleAction;
@@ -156,9 +153,11 @@ namespace RebootKit.Engine.Services.Console {
_ui.SetVisibility(!_ui.IsVisible);
if (_ui.IsVisible) {
// RR.Input().DisableControls();
RR.Input().DisableControls();
RR.Input().UnlockCursor();
} else {
RR.Input().EnableControls();
RR.Input().LockCursor();
}
}

View File

@@ -13,8 +13,10 @@ namespace RebootKit.Engine.Services.Console {
[SerializeField]
private bool _loadCVarsFromResources = true;
public override ConsoleService Create() {
public override ConsoleService Create(DIContext context) {
ConsoleService service = new(_config);
context.Inject(service);
foreach (CVar cvar in _initialCVars) {
service.Replace(cvar);
cvar.Reset();
@@ -28,7 +30,7 @@ namespace RebootKit.Engine.Services.Console {
}
}
return new ConsoleService(_config);
return service;
}
}
}

View File

@@ -1,26 +1,33 @@
using System.Text;
using UnityEngine;
using UnityEngine.UIElements;
using Logger = RebootKit.Engine.Foundation.Logger;
namespace RebootKit.Engine.Services.Console {
public class ConsoleUI : MonoBehaviour {
private static readonly Logger Logger = new(nameof(ConsoleUI));
private StringBuilder _content = new();
[SerializeField]
private UIDocument _document;
private Label _labelMessage;
private TextField _textField;
private Button _submitButton;
public bool IsVisible { get; private set; }
private void Awake() {
private void OnEnable() {
IsVisible = _document.enabled;
VisualElement root = _document.rootVisualElement;
return;
// _textField = root.Q<TextField>("console-text-field");
// _submitButton = root.Q<Button>("console-btn-submit");
// _submitButton.clicked += OnSubmitButtonClicked;
_labelMessage = root.Q<Label>("console-window-message");
_labelMessage.text = "SIEMA";
_textField = root.Q<TextField>("console-text-field");
_submitButton = root.Q<Button>("console-btn-submit");
_submitButton.clicked += OnSubmitButtonClicked;
}
private void OnSubmit(string input) {
@@ -30,22 +37,26 @@ namespace RebootKit.Engine.Services.Console {
public void SetVisibility(bool visible) {
_document.enabled = visible;
IsVisible = visible;
}
public void Write(string message) {
_content.Append(message);
//_textField.value = _content.ToString();
_labelMessage.text = _content.ToString();
_labelMessage.MarkDirtyRepaint();
}
public void Clear() {
_content.Clear();
_labelMessage.text = "";
if (_textField != null) {
_textField.value = "";
_textField.label = "";
}
}
private void OnSubmitButtonClicked() {
Logger.Info("Submit");
OnSubmit(_textField.value);
}
}