第一批重构,主要是物理迁移脚本和部分命名空间的调整
- 结构上迁移文件,将脚本分成 Base/Runtime/Presentation/Procedure/Editor 五大文件夹 - 调整 DataTable 和 Definition 下脚本的命名空间 - 依据 UI-5层架构设计规范 拆分原先的 UI 到 Runtime 和 Presentation 下
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eb6dcefdb25c4eb4e98cb364ac73a7c9
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,11 @@
|
||||
namespace UI
|
||||
{
|
||||
public class SelectRoleFormRawData
|
||||
{
|
||||
public int[] RoleIds;
|
||||
public string[] RoleIconNames;
|
||||
public int SelectedRoleId;
|
||||
public string SelectedRoleName;
|
||||
public string SelectedRoleInitialPropertyText;
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5c23c1db541a47b09b8c475018758f9e
|
||||
timeCreated: 1771144321
|
||||
@@ -0,0 +1,99 @@
|
||||
using System.Text;
|
||||
using SepCore.DataTable;
|
||||
using GameFramework.DataTable;
|
||||
using Procedure;
|
||||
using UnityEngine;
|
||||
|
||||
namespace UI
|
||||
{
|
||||
public class SelectRoleFormUseCase : IUIUseCase
|
||||
{
|
||||
private readonly IDataTable<DRRole> _roleDataTable;
|
||||
|
||||
private readonly ProcedureStartMenu _procedureStartMenu;
|
||||
|
||||
public int SelectedRoleId { get; private set; }
|
||||
|
||||
public SelectRoleFormUseCase(ProcedureStartMenu procedureStartMenu)
|
||||
{
|
||||
_procedureStartMenu = procedureStartMenu;
|
||||
_roleDataTable = GameEntry.DataTable.GetDataTable<DRRole>();
|
||||
}
|
||||
|
||||
public SelectRoleFormRawData CreateModel()
|
||||
{
|
||||
return BuildModel(0);
|
||||
}
|
||||
|
||||
public SelectRoleFormRawData SelectRole(int roleId)
|
||||
{
|
||||
SelectedRoleId = roleId;
|
||||
return BuildModel(roleId);
|
||||
}
|
||||
|
||||
public bool ConfirmSelectedRole()
|
||||
{
|
||||
DRRole[] roles = _roleDataTable != null ? _roleDataTable.GetAllDataRows() : null;
|
||||
if (roles == null || roles.Length == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (SelectedRoleId < 0 || _roleDataTable.GetDataRow(SelectedRoleId) == null)
|
||||
{
|
||||
int randomIndex = Random.Range(0, roles.Length);
|
||||
SelectedRoleId = roles[randomIndex].Id;
|
||||
}
|
||||
|
||||
bool result = SelectedRoleId >= 0;
|
||||
if (result)
|
||||
{
|
||||
_procedureStartMenu.StartGame(SelectedRoleId);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private SelectRoleFormRawData BuildModel(int selectedRoleId)
|
||||
{
|
||||
DRRole[] roles = _roleDataTable.GetAllDataRows();
|
||||
int count = _roleDataTable.Count;
|
||||
int[] roleIds = new int[count];
|
||||
string[] iconNames = new string[count];
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
roleIds[i] = roles[i].Id;
|
||||
iconNames[i] = roles[i].IconName;
|
||||
}
|
||||
|
||||
DRRole selectedRole = selectedRoleId > 0 ? _roleDataTable.GetDataRow(selectedRoleId) : null;
|
||||
return new SelectRoleFormRawData
|
||||
{
|
||||
RoleIds = roleIds,
|
||||
RoleIconNames = iconNames,
|
||||
SelectedRoleId = selectedRole?.Id ?? -1,
|
||||
SelectedRoleName = selectedRole?.RoleName,
|
||||
SelectedRoleInitialPropertyText = selectedRole != null
|
||||
? BuildRoleInitialPropertyText(selectedRole)
|
||||
: null
|
||||
};
|
||||
}
|
||||
|
||||
private static string BuildRoleInitialPropertyText(DRRole role)
|
||||
{
|
||||
if (role == null || role.InitialProperties == null || role.InitialProperties.Length == 0)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < role.InitialProperties.Length; i++)
|
||||
{
|
||||
sb.Append(role.InitialProperties[i]);
|
||||
sb.Append('\n');
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aec2db2225cb4bb890eb347e73fc5890
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 35c8961f073eae8479506bdec8b745f8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8e4010de30b33144fa20400058edfeba
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace UI
|
||||
{
|
||||
public class StartMenuFormRawData
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7f5cdd950661442fa1760bc2b2db6f2d
|
||||
timeCreated: 1771144299
|
||||
Reference in New Issue
Block a user