调整 UIRouter 的打开关闭 UI 的返回值,统一成 UniTask

This commit is contained in:
SepComet 2026-06-06 13:33:33 +08:00 committed by basil
parent fbb9e1e068
commit 3b61e263cc
11 changed files with 38 additions and 37 deletions

View File

@ -41,7 +41,7 @@ namespace SepCore.UI
}; };
} }
public override async UniTask<int?> OpenUIAsync(object userData = null, float timeout = 30f) public override async UniTask OpenUIAsync(object userData = null, float timeout = 30f)
{ {
if (userData is not DialogRawData rawData) if (userData is not DialogRawData rawData)
{ {
@ -54,14 +54,14 @@ namespace SepCore.UI
Log.Warning("DialogController.OpenUIAsync() rawData is required."); Log.Warning("DialogController.OpenUIAsync() rawData is required.");
} }
return null; return;
} }
DialogContext context = BuildContext(rawData); DialogContext context = BuildContext(rawData);
if (context == null) if (context == null)
{ {
Log.Warning("DialogController.OpenUIAsync() rawData is invalid."); Log.Warning("DialogController.OpenUIAsync() rawData is invalid.");
return null; return;
} }
_onClickConfirmGFAction = rawData.OnClickConfirm; _onClickConfirmGFAction = rawData.OnClickConfirm;
@ -69,7 +69,7 @@ namespace SepCore.UI
_onClickOtherGFAction = rawData.OnClickOther; _onClickOtherGFAction = rawData.OnClickOther;
_currentUserData = rawData.UserData; _currentUserData = rawData.UserData;
return await OpenFormAsync(context, timeout); await OpenFormAsync(context, timeout);
} }
public override async UniTask CloseUIAsync(object userData = null, float timeout = 30f) public override async UniTask CloseUIAsync(object userData = null, float timeout = 30f)

View File

@ -46,7 +46,7 @@ namespace SepCore.UI
return new DisplayItemInfoContext(rawData); return new DisplayItemInfoContext(rawData);
} }
public override async UniTask<int?> OpenUIAsync(object userData = null, float timeout = 30f) public override async UniTask OpenUIAsync(object userData = null, float timeout = 30f)
{ {
if (userData is not DisplayItemInfoRawData rawData) if (userData is not DisplayItemInfoRawData rawData)
{ {
@ -59,18 +59,18 @@ namespace SepCore.UI
Log.Warning("DisplayItemInfoController.OpenUIAsync() rawData is required."); Log.Warning("DisplayItemInfoController.OpenUIAsync() rawData is required.");
} }
return null; return;
} }
DisplayItemInfoContext context = BuildContext(rawData); DisplayItemInfoContext context = BuildContext(rawData);
if (context == null) if (context == null)
{ {
Log.Warning("DisplayItemInfoController.OpenUIAsync() rawData is invalid."); Log.Warning("DisplayItemInfoController.OpenUIAsync() rawData is invalid.");
return null; return;
} }
_locked = false; _locked = false;
return await OpenFormAsync(context, timeout); await OpenFormAsync(context, timeout);
} }
public override async UniTask CloseUIAsync(object userData = null, float timeout = 30f) public override async UniTask CloseUIAsync(object userData = null, float timeout = 30f)

View File

@ -18,15 +18,15 @@ namespace SepCore.UI
return new HudContext(); return new HudContext();
} }
public override async UniTask<int?> OpenUIAsync(object userData = null, float timeout = 30f) public override async UniTask OpenUIAsync(object userData = null, float timeout = 30f)
{ {
if (userData != null) if (userData != null)
{ {
Log.Warning("HudController.OpenUIAsync() userData type is invalid."); Log.Warning("HudController.OpenUIAsync() userData type is invalid.");
return null; return;
} }
return await OpenFormAsync(BuildHudContext(), timeout); await OpenFormAsync(BuildHudContext(), timeout);
} }
public override void BindUseCase(IUIUseCase useCase) public override void BindUseCase(IUIUseCase useCase)

View File

@ -57,7 +57,7 @@ namespace SepCore.UI
{ {
Title = reward.Title, Title = reward.Title,
Icon = null, Icon = null,
ItemRarity = reward.Rarity, ItemRarity = reward.Rarity,
Description = ItemDescUtility.CreatePropDescription(reward.Modifiers), Description = ItemDescUtility.CreatePropDescription(reward.Modifiers),
IconAssetName = reward.IconAssetName IconAssetName = reward.IconAssetName
}); });
@ -70,27 +70,27 @@ namespace SepCore.UI
}; };
} }
public override async UniTask<int?> OpenUIAsync(object userData = null, float timeout = 30f) public override async UniTask OpenUIAsync(object userData = null, float timeout = 30f)
{ {
if (userData is LevelUpRawData rawData) if (userData is LevelUpRawData rawData)
{ {
return await OpenUIAsync(rawData, timeout); await OpenUIAsync(rawData, timeout);
} }
if (userData != null) if (userData != null)
{ {
Log.Warning("LevelUpController.OpenUIAsync() userData type is invalid."); Log.Warning("LevelUpController.OpenUIAsync() userData type is invalid.");
return null; return;
} }
if (_useCase == null) if (_useCase == null)
{ {
Log.Error("LevelUpController.OpenUIAsync() useCase is null."); Log.Error("LevelUpController.OpenUIAsync() useCase is null.");
return null; return;
} }
LevelUpRawData initialRawData = _useCase.CreateInitialModel(); LevelUpRawData initialRawData = _useCase.CreateInitialModel();
return await OpenUIAsync(initialRawData, timeout); await OpenUIAsync(initialRawData, timeout);
} }
public async UniTask<int?> OpenUIAsync(LevelUpRawData rawData, float timeout = 30f) public async UniTask<int?> OpenUIAsync(LevelUpRawData rawData, float timeout = 30f)

View File

@ -218,27 +218,27 @@ namespace SepCore.UI
return await OpenFormAsync(context, timeout); return await OpenFormAsync(context, timeout);
} }
public override async UniTask<int?> OpenUIAsync(object userData = null, float timeout = 30f) public override async UniTask OpenUIAsync(object userData = null, float timeout = 30f)
{ {
if (userData is ShopRawData rawData) if (userData is ShopRawData rawData)
{ {
return await OpenUIAsync(rawData, timeout); await OpenUIAsync(rawData, timeout);
} }
if (userData != null) if (userData != null)
{ {
Log.Warning("ShopController.OpenUIAsync() userData type is invalid."); Log.Warning("ShopController.OpenUIAsync() userData type is invalid.");
return null; return;
} }
if (_useCase == null) if (_useCase == null)
{ {
Log.Error("ShopController.OpenUIAsync() useCase is null."); Log.Error("ShopController.OpenUIAsync() useCase is null.");
return null; return;
} }
ShopRawData initialRawData = _useCase.CreateInitialModel(); ShopRawData initialRawData = _useCase.CreateInitialModel();
return await OpenUIAsync(initialRawData, timeout); await OpenUIAsync(initialRawData, timeout);
} }
public override void BindUseCase(IUIUseCase useCase) public override void BindUseCase(IUIUseCase useCase)
@ -272,7 +272,8 @@ namespace SepCore.UI
for (int i = 0; i < result.GoodsItems.Count; i++) for (int i = 0; i < result.GoodsItems.Count; i++)
{ {
if (i < Context.GoodsItems.Count) Context.GoodsItems[i] = await GoodsItemContext.CreateAsync(result.GoodsItems[i]); if (i < Context.GoodsItems.Count)
Context.GoodsItems[i] = await GoodsItemContext.CreateAsync(result.GoodsItems[i]);
else Context.GoodsItems.Add(await GoodsItemContext.CreateAsync(result.GoodsItems[i])); else Context.GoodsItems.Add(await GoodsItemContext.CreateAsync(result.GoodsItems[i]));
} }

View File

@ -40,15 +40,15 @@ namespace SepCore.UI
return new MenuContext(); return new MenuContext();
} }
public override async UniTask<int?> OpenUIAsync(object userData = null, float timeout = 30f) public override async UniTask OpenUIAsync(object userData = null, float timeout = 30f)
{ {
if (userData != null) if (userData != null)
{ {
Log.Warning("MenuController.OpenUIAsync() userData type is invalid."); Log.Warning("MenuController.OpenUIAsync() userData type is invalid.");
return null; return;
} }
return await OpenFormAsync(BuildMenuContext(), timeout); await OpenFormAsync(BuildMenuContext(), timeout);
} }
public override void BindUseCase(IUIUseCase useCase) public override void BindUseCase(IUIUseCase useCase)

View File

@ -73,27 +73,27 @@ namespace SepCore.UI
}; };
} }
public override async UniTask<int?> OpenUIAsync(object userData = null, float timeout = 30f) public override async UniTask OpenUIAsync(object userData = null, float timeout = 30f)
{ {
if (userData is SelectRoleRawData rawData) if (userData is SelectRoleRawData rawData)
{ {
return await OpenUIAsync(rawData, timeout); await OpenUIAsync(rawData, timeout);
} }
if (userData != null) if (userData != null)
{ {
Log.Warning("SelectRoleController.OpenUIAsync() userData type is invalid."); Log.Warning("SelectRoleController.OpenUIAsync() userData type is invalid.");
return null; return;
} }
if (_useCase == null) if (_useCase == null)
{ {
Log.Error("SelectRoleController.OpenUIAsync() useCase is null."); Log.Error("SelectRoleController.OpenUIAsync() useCase is null.");
return null; return;
} }
SelectRoleRawData initialRawData = _useCase.CreateModel(); SelectRoleRawData initialRawData = _useCase.CreateModel();
return await OpenUIAsync(initialRawData, timeout); await OpenUIAsync(initialRawData, timeout);
} }
public async UniTask<int?> OpenUIAsync(SelectRoleRawData rawData, float timeout = 30f) public async UniTask<int?> OpenUIAsync(SelectRoleRawData rawData, float timeout = 30f)

View File

@ -23,11 +23,11 @@ namespace SepCore.Procedure
#region FSM #region FSM
protected override async void OnEnter(ProcedureOwner procedureOwner) protected override void OnEnter(ProcedureOwner procedureOwner)
{ {
base.OnEnter(procedureOwner); base.OnEnter(procedureOwner);
await GameEntry.UIRouter.OpenUIAsync(UIFormType.MenuForm); GameEntry.UIRouter.OpenUIAsync(UIFormType.MenuForm);
var useCase = new SelectRoleUseCase(StartGame); var useCase = new SelectRoleUseCase(StartGame);
GameEntry.UIRouter.BindUIUseCase(UIFormType.SelectRoleForm, useCase); GameEntry.UIRouter.BindUIUseCase(UIFormType.SelectRoleForm, useCase);

View File

@ -66,12 +66,12 @@ namespace SepCore.UIRouter
controller.BindUseCase(useCase); controller.BindUseCase(useCase);
} }
public UniTask<int?> OpenUIAsync(UIFormType uiFormType, object userData = null, float timeout = 30f) public UniTask OpenUIAsync(UIFormType uiFormType, object userData = null, float timeout = 30f)
{ {
IUIFormController controller = GetOrCreateController(uiFormType); IUIFormController controller = GetOrCreateController(uiFormType);
if (controller == null) if (controller == null)
{ {
return UniTask.FromResult<int?>(null); return default;
} }
return controller.OpenUIAsync(userData, timeout); return controller.OpenUIAsync(userData, timeout);

View File

@ -4,7 +4,7 @@ namespace SepCore.UI
{ {
public interface IUIFormController public interface IUIFormController
{ {
UniTask<int?> OpenUIAsync(object userData = null, float timeout = 30f); UniTask OpenUIAsync(object userData = null, float timeout = 30f);
UniTask CloseUIAsync(object userData = null, float timeout = 30f); UniTask CloseUIAsync(object userData = null, float timeout = 30f);

View File

@ -100,7 +100,7 @@ namespace SepCore.UI
} }
} }
public abstract UniTask<int?> OpenUIAsync(object userData = null, float timeout = 30f); public abstract UniTask OpenUIAsync(object userData = null, float timeout = 30f);
public virtual UniTask CloseUIAsync(object userData = null, float timeout = 30f) public virtual UniTask CloseUIAsync(object userData = null, float timeout = 30f)
{ {