feat: resolve character figures from config
This commit is contained in:
@@ -15,12 +15,12 @@ namespace XGame
|
||||
public CharacterConfigItem GetDefault()
|
||||
{
|
||||
CharacterConfigItem item = Find(defaultCharacterId);
|
||||
return item ?? (characters.Count > 0 ? characters[0] : null);
|
||||
return item ?? (characters != null && characters.Count > 0 ? characters[0] : null);
|
||||
}
|
||||
|
||||
public CharacterConfigItem Find(string id)
|
||||
{
|
||||
if (string.IsNullOrEmpty(id))
|
||||
if (string.IsNullOrEmpty(id) || characters == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
@@ -36,6 +36,40 @@ namespace XGame
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public int GetFigure(string id)
|
||||
{
|
||||
return GetFigure(Find(id) ?? GetDefault());
|
||||
}
|
||||
|
||||
public int GetFigure(CharacterConfigItem item)
|
||||
{
|
||||
if (item == null || characters == null)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (int i = 0; i < characters.Count; i++)
|
||||
{
|
||||
if (ReferenceEquals(characters[i], item))
|
||||
{
|
||||
return i + 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
public CharacterConfigItem GetByFigure(int figure)
|
||||
{
|
||||
int index = figure - 1;
|
||||
if (characters != null && index >= 0 && index < characters.Count && characters[index] != null)
|
||||
{
|
||||
return characters[index];
|
||||
}
|
||||
|
||||
return GetDefault();
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
|
||||
Reference in New Issue
Block a user