private void buttonCreateCharacter_Click(object sender, EventArgs e)
{
var asset = _rpcForm.CreateAndSaveEmptyAsset(false);
if (asset == null)
return;
var name = "RPC Character";
var options = CurrentAsset.GetAllCharacterSources().Select(c => c.Name).Where(n => n.StartsWith(name)).ToArray();
if (options.Length > 0)
{
var a = options.Select(o => Regex.Match(o, $"^{name}\\((\\d+)\\)$"))
.Where(m => m.Success)
.Select(m => int.Parse(m.Groups[1].Value)).ToArray();
int value = 1;
if (a.Length > 0)
value = a.Max() + 1;
name += $"({value})";
}
asset.CharacterName = name;
asset.SaveToFile();
CurrentAsset.AddNewCharacterSource(new CharacterSourceDTO() {Name = name,Source = asset.AssetFilePath});
_characterSources.DataSource = CurrentAsset.GetAllCharacterSources().ToList();
_characterSources.Refresh();
SetModified();
}