This commit is contained in:
2026-04-30 19:33:16 +08:00
commit fb2252f688
556 changed files with 69721 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
using GeometryTD.CustomEvent;
using TMPro;
using UnityEngine;
using UnityGameFramework.Runtime;
namespace GeometryTD.UI
{
public class MenuForm : UGuiForm
{
[SerializeField] private TMP_Text _titleText;
[SerializeField] private TMP_Text _startButtonText;
[SerializeField] private TMP_Text _settingsButtonText;
[SerializeField] private TMP_Text _exitButtonText;
private MenuFormContext _context;
public void RefreshUI(MenuFormContext context)
{
_context = context;
if (_context == null)
{
return;
}
SetText(_titleText, _context.TitleText);
SetText(_startButtonText, _context.StartButtonText);
SetText(_settingsButtonText, _context.SettingsButtonText);
SetText(_exitButtonText, _context.ExitButtonText);
}
public void OnStartButtonClick()
{
GameEntry.Event.Fire(this, MenuStartRequestedEventArgs.Create());
}
public void OnSettingsButtonClick()
{
GameEntry.Event.Fire(this, MenuSettingsRequestedEventArgs.Create());
}
public void OnExitButtonClick()
{
GameEntry.Event.Fire(this, MenuExitRequestedEventArgs.Create());
}
protected override void OnOpen(object userData)
{
base.OnOpen(userData);
if (userData is MenuFormContext context)
{
RefreshUI(context);
return;
}
Log.Warning("MenuForm requires MenuFormContext as userData.");
}
protected override void OnClose(bool isShutdown, object userData)
{
_context = null;
base.OnClose(isShutdown, userData);
}
private static void SetText(TMP_Text textComponent, string value)
{
if (textComponent == null)
{
return;
}
textComponent.text = value ?? string.Empty;
}
}
}
+80
View File
@@ -0,0 +1,80 @@
using GeometryTD.CustomEvent;
using GeometryTD.Procedure;
using UnityEngine;
using UnityGameFramework.Runtime;
namespace GeometryTD.UI
{
public class TestMenuForm : UGuiForm
{
[SerializeField] private GameObject combatButtonObject;
[SerializeField] private GameObject eventButtonObject;
[SerializeField] private GameObject shopButtonObject;
private TestMenuFormContext _context;
public void RefreshUI(TestMenuFormContext context)
{
_context = context;
if (_context == null)
{
SetButtonVisible(combatButtonObject, false);
SetButtonVisible(eventButtonObject, false);
SetButtonVisible(shopButtonObject, false);
return;
}
SetButtonVisible(
combatButtonObject,
_context.CurrentNodeType == RunNodeType.Combat || _context.CurrentNodeType == RunNodeType.BossCombat);
SetButtonVisible(eventButtonObject, _context.CurrentNodeType == RunNodeType.Event);
SetButtonVisible(shopButtonObject, _context.CurrentNodeType == RunNodeType.Shop);
}
public void OnCombatButtonClick()
{
GameEntry.Event.Fire(this, TestMenuNodeClickEventArgs.Create(TestMenuNodeType.Combat));
}
public void OnEventButtonClick()
{
GameEntry.Event.Fire(this, TestMenuNodeClickEventArgs.Create(TestMenuNodeType.Event));
}
public void OnShopButtonClick()
{
GameEntry.Event.Fire(this, TestMenuNodeClickEventArgs.Create(TestMenuNodeType.Shop));
}
protected override void OnOpen(object userData)
{
base.OnOpen(userData);
if (userData is TestMenuFormContext context)
{
RefreshUI(context);
return;
}
Log.Warning("TestMenuForm requires TestMenuFormContext as userData.");
}
protected override void OnClose(bool isShutdown, object userData)
{
_context = null;
SetButtonVisible(combatButtonObject, false);
SetButtonVisible(eventButtonObject, false);
SetButtonVisible(shopButtonObject, false);
base.OnClose(isShutdown, userData);
}
private static void SetButtonVisible(GameObject buttonObject, bool visible)
{
if (buttonObject != null)
{
buttonObject.SetActive(visible);
}
}
}
}