调整部分数据表配置,优化 SpriteCache 功能

This commit is contained in:
2026-09-13 20:36:21 +08:00
parent de53890de6
commit 7dc529a840
520 changed files with 24231 additions and 967 deletions
@@ -2,7 +2,7 @@ namespace SepCore.UI
{
public class RoleItemRawData
{
public int RoleId;
public string RoleName;
public string IconName;
}
}
@@ -5,8 +5,7 @@ namespace SepCore.UI
{
public class RolePropertyAreaRawData
{
public int RoleId;
public string RoleName;
public string Name;
public List<modifier> InitialProperties;
}
}
@@ -10,7 +10,7 @@ namespace SepCore.UI
{
private readonly IProcedureMenu _procedureMenu;
public int SelectedRoleId { get; private set; }
public string SelectedRoleName { get; private set; }
public SelectRoleUseCase(IProcedureMenu procedureMenu)
{
@@ -19,40 +19,36 @@ namespace SepCore.UI
public SelectRoleRawData CreateModel()
{
return BuildModel(0);
return BuildModel(null);
}
public SelectRoleRawData SelectRole(int roleId)
public SelectRoleRawData SelectRole(string roleName)
{
SelectedRoleId = roleId;
return BuildModel(roleId);
SelectedRoleName = roleName;
return BuildModel(roleName);
}
public SelectRoleRawData ClearSelection()
{
SelectedRoleId = 0;
return BuildModel(0);
SelectedRoleName = null;
return BuildModel(null);
}
public bool ConfirmSelectedRole()
{
IReadOnlyList<RoleConfig> roles = GameEntry.Luban.GetTable<RoleConfig>();
if (roles == null || roles.Count == 0)
{
return false;
}
if (SelectedRoleId <= 0 || !roles.Any(r => r.Id == SelectedRoleId))
var roles = GameEntry.Luban.GetTable<RoleConfig>();
var config = GameEntry.Luban.Get<RoleConfig>(SelectedRoleName);
if (string.IsNullOrEmpty(SelectedRoleName) || config == null)
{
int randomIndex = Random.Range(0, roles.Count);
SelectedRoleId = roles[randomIndex].Id;
SelectedRoleName = roles[randomIndex].Name;
}
_procedureMenu.ConfirmSelectRole(SelectedRoleId);
_procedureMenu.ConfirmSelectRole(SelectedRoleName);
return true;
}
private SelectRoleRawData BuildModel(int selectedRoleId)
private SelectRoleRawData BuildModel(string selectedRoleName)
{
IReadOnlyList<RoleConfig> roles = GameEntry.Luban.GetTable<RoleConfig>();
int count = roles.Count;
@@ -61,18 +57,19 @@ namespace SepCore.UI
{
roleItems[i] = new RoleItemRawData
{
RoleId = roles[i].Id,
IconName = roles[i].IconName
RoleName = roles[i].Name,
IconName = roles[i].Sprite
};
}
RoleConfig selectedRole = selectedRoleId > 0 ? roles.FirstOrDefault(r => r.Id == selectedRoleId) : null;
RoleConfig selectedRole = string.IsNullOrEmpty(selectedRoleName)
? null
: roles.FirstOrDefault(r => r.Name == selectedRoleName);
RolePropertyAreaRawData selectedRoleData = selectedRole == null
? null
: new RolePropertyAreaRawData
{
RoleId = selectedRole.Id,
RoleName = selectedRole.RoleName,
Name = selectedRole.Name,
InitialProperties = selectedRole.Modifiers
};