(158a62970) Don't allow to replace an existing character. TODO: should make this possible later on, but requires additional logic. Fixes #1375.
This commit is contained in:
@@ -1296,27 +1296,33 @@ namespace Barotrauma
|
|||||||
string speciesName = name;
|
string speciesName = name;
|
||||||
// Config file
|
// Config file
|
||||||
string configFilePath = Path.Combine(mainFolder, $"{speciesName}.xml").Replace(@"\", @"/");
|
string configFilePath = Path.Combine(mainFolder, $"{speciesName}.xml").Replace(@"\", @"/");
|
||||||
if (ContentPackage.GetFilesOfType(GameMain.SelectedPackages, ContentType.Character).None(path => path.Contains(speciesName)))
|
if (ContentPackage.GetFilesOfType(GameMain.SelectedPackages, ContentType.Character).Any(path => path.Contains(speciesName)))
|
||||||
{
|
{
|
||||||
// Create the config file
|
GUI.AddMessage(GetCharacterEditorTranslation("ExistingCharacterFound"), Color.Red, font: GUI.LargeFont);
|
||||||
XElement mainElement = new XElement("Character",
|
// TODO: add a prompt: "Do you want to replace it?" + functionality
|
||||||
new XAttribute("name", speciesName),
|
return false;
|
||||||
new XAttribute("humanoid", isHumanoid),
|
|
||||||
new XElement("ragdolls", new XAttribute("folder", Path.Combine(mainFolder, $"Ragdolls/").Replace(@"\", @"/"))),
|
|
||||||
new XElement("animations", new XAttribute("folder", Path.Combine(mainFolder, $"Animations/").Replace(@"\", @"/"))),
|
|
||||||
new XElement("health"),
|
|
||||||
new XElement("ai"));
|
|
||||||
XDocument doc = new XDocument(mainElement);
|
|
||||||
if (!Directory.Exists(mainFolder))
|
|
||||||
{
|
|
||||||
Directory.CreateDirectory(mainFolder);
|
|
||||||
}
|
|
||||||
doc.Save(configFilePath);
|
|
||||||
// Add to the selected content package
|
|
||||||
contentPackage.AddFile(configFilePath, ContentType.Character);
|
|
||||||
contentPackage.Save(contentPackage.Path);
|
|
||||||
DebugConsole.NewMessage(GetCharacterEditorTranslation("ContentPackageSaved").Replace("[path]", contentPackage.Path));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create the config file
|
||||||
|
XElement mainElement = new XElement("Character",
|
||||||
|
new XAttribute("name", speciesName),
|
||||||
|
new XAttribute("humanoid", isHumanoid),
|
||||||
|
new XElement("ragdolls", new XAttribute("folder", Path.Combine(mainFolder, $"Ragdolls/").Replace(@"\", @"/"))),
|
||||||
|
new XElement("animations", new XAttribute("folder", Path.Combine(mainFolder, $"Animations/").Replace(@"\", @"/"))),
|
||||||
|
new XElement("health"),
|
||||||
|
new XElement("ai"));
|
||||||
|
|
||||||
|
XDocument doc = new XDocument(mainElement);
|
||||||
|
if (!Directory.Exists(mainFolder))
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory(mainFolder);
|
||||||
|
}
|
||||||
|
doc.Save(configFilePath);
|
||||||
|
// Add to the selected content package
|
||||||
|
contentPackage.AddFile(configFilePath, ContentType.Character);
|
||||||
|
contentPackage.Save(contentPackage.Path);
|
||||||
|
DebugConsole.NewMessage(GetCharacterEditorTranslation("ContentPackageSaved").Replace("[path]", contentPackage.Path));
|
||||||
|
|
||||||
// Ragdoll
|
// Ragdoll
|
||||||
string ragdollFolder = RagdollParams.GetFolder(speciesName);
|
string ragdollFolder = RagdollParams.GetFolder(speciesName);
|
||||||
string ragdollPath = RagdollParams.GetDefaultFile(speciesName);
|
string ragdollPath = RagdollParams.GetDefaultFile(speciesName);
|
||||||
|
|||||||
+1
@@ -84,6 +84,7 @@ namespace Barotrauma
|
|||||||
var folder = XMLExtensions.TryLoadXml(Character.GetConfigFile(speciesName))?.Root?.Element("ragdolls")?.GetAttributeString("folder", string.Empty);
|
var folder = XMLExtensions.TryLoadXml(Character.GetConfigFile(speciesName))?.Root?.Element("ragdolls")?.GetAttributeString("folder", string.Empty);
|
||||||
if (string.IsNullOrEmpty(folder) || folder.ToLowerInvariant() == "default")
|
if (string.IsNullOrEmpty(folder) || folder.ToLowerInvariant() == "default")
|
||||||
{
|
{
|
||||||
|
//DebugConsole.NewMessage("[RagollParams] Using the default folder.");
|
||||||
folder = GetDefaultFolder(speciesName);
|
folder = GetDefaultFolder(speciesName);
|
||||||
}
|
}
|
||||||
return folder;
|
return folder;
|
||||||
|
|||||||
Reference in New Issue
Block a user