common extensions and some utilities
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user