cheat UI
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace BrewMonster.Scripts
|
||||
{
|
||||
public class DebugCmdHistoryListItem : MonoBehaviour
|
||||
{
|
||||
[SerializeField] TMP_Text _label;
|
||||
[SerializeField] Button _btnUse;
|
||||
[SerializeField] Button _btnDelete;
|
||||
|
||||
private DlgConsole _console;
|
||||
private DebugCmdHistoryStore.Entry _entry;
|
||||
|
||||
public void Bind(DlgConsole console, DebugCmdHistoryStore.Entry entry)
|
||||
{
|
||||
_console = console;
|
||||
_entry = entry;
|
||||
|
||||
if (_label == null)
|
||||
_label = GetComponentInChildren<TMP_Text>(true);
|
||||
|
||||
if (_btnUse == null)
|
||||
_btnUse = GetComponentInChildren<Button>(true);
|
||||
|
||||
if (_btnDelete == null)
|
||||
{
|
||||
// Optional: if you have multiple buttons, assign _btnDelete in inspector.
|
||||
// Auto-find by name as best-effort.
|
||||
var buttons = GetComponentsInChildren<Button>(true);
|
||||
for (int i = 0; i < buttons.Length; i++)
|
||||
{
|
||||
var b = buttons[i];
|
||||
if (b != null && b.gameObject.name.IndexOf("delete", System.StringComparison.OrdinalIgnoreCase) >= 0)
|
||||
{
|
||||
_btnDelete = b;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (_label != null)
|
||||
{
|
||||
string cmd = entry.hasParam ? $"{entry.header} {entry.param}" : $"{entry.header}";
|
||||
if (!string.IsNullOrWhiteSpace(entry.describe))
|
||||
_label.text = $"{entry.describe} ({cmd})";
|
||||
else
|
||||
_label.text = cmd;
|
||||
}
|
||||
|
||||
if (_btnUse != null)
|
||||
{
|
||||
_btnUse.onClick.RemoveListener(OnUseClicked);
|
||||
_btnUse.onClick.AddListener(OnUseClicked);
|
||||
}
|
||||
|
||||
if (_btnDelete != null)
|
||||
{
|
||||
_btnDelete.onClick.RemoveListener(OnDeleteClicked);
|
||||
_btnDelete.onClick.AddListener(OnDeleteClicked);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnUseClicked()
|
||||
{
|
||||
if (_console == null || _entry == null)
|
||||
return;
|
||||
|
||||
_console.ApplyHistoryItemToInputs(_entry.header, _entry.param, _entry.hasParam, _entry.describe);
|
||||
}
|
||||
|
||||
private void OnDeleteClicked()
|
||||
{
|
||||
if (_console == null || _entry == null)
|
||||
return;
|
||||
|
||||
_console.RemoveHistoryItem(_entry.header, _entry.param, _entry.hasParam);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user