diff --git a/Barotrauma/BarotraumaServer/Source/DebugConsole.cs b/Barotrauma/BarotraumaServer/Source/DebugConsole.cs index a3d73eb15..f097ff73b 100644 --- a/Barotrauma/BarotraumaServer/Source/DebugConsole.cs +++ b/Barotrauma/BarotraumaServer/Source/DebugConsole.cs @@ -90,7 +90,16 @@ namespace Barotrauma while (queuedMessages.Count > 0) { ColoredText msg = queuedMessages.Dequeue(); - + if (GameSettings.SaveDebugConsoleLogs) + { + unsavedMessages.Add(msg); + if (unsavedMessages.Count >= messagesPerFile) + { + SaveLogs(); + unsavedMessages.Clear(); + } + } + string msgTxt = msg.Text; if (msg.IsCommand) commandMemory.Add(msgTxt); diff --git a/Barotrauma/BarotraumaShared/Source/Characters/Character.cs b/Barotrauma/BarotraumaShared/Source/Characters/Character.cs index 2b6720a95..c58ac9d3a 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/Character.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/Character.cs @@ -894,6 +894,47 @@ namespace Barotrauma return configFile; } + private static IEnumerable characterConfigFiles; + private static IEnumerable CharacterConfigFiles + { +#if SERVER + if (GameMain.Server != null && IsRemotePlayer) + { + if (characterConfigFiles == null) + { + characterConfigFiles = GameMain.Instance.GetFilesOfType(ContentType.Character); + } + return characterConfigFiles; + } + } + + /// + /// Searches for a character config file from all currently selected content packages, + /// or from a specific package if the contentPackage parameter is given. + /// + public static string GetConfigFile(string speciesName, ContentPackage contentPackage = null) + { + string configFile = null; + if (contentPackage == null) + { + configFile = GameMain.Instance.GetFilesOfType(ContentType.Character) + .FirstOrDefault(c => Path.GetFileName(c).ToLowerInvariant() == $"{speciesName.ToLowerInvariant()}.xml"); + } + else + { + configFile = contentPackage.GetFilesOfType(ContentType.Character)? + .FirstOrDefault(c => Path.GetFileName(c).ToLowerInvariant() == $"{speciesName.ToLowerInvariant()}.xml"); + } + + if (configFile == null) + { + DebugConsole.ThrowError($"Couldn't find a config file for {speciesName} from the selected content packages!"); + DebugConsole.ThrowError($"(The config file must end with \"{speciesName}.xml\")"); + return string.Empty; + } + return configFile; + } + private static IEnumerable characterConfigFiles; private static IEnumerable CharacterConfigFiles { diff --git a/Barotrauma/BarotraumaShared/Source/Map/Structure.cs b/Barotrauma/BarotraumaShared/Source/Map/Structure.cs index c36ab9215..7cf65a8bf 100644 --- a/Barotrauma/BarotraumaShared/Source/Map/Structure.cs +++ b/Barotrauma/BarotraumaShared/Source/Map/Structure.cs @@ -366,13 +366,6 @@ namespace Barotrauma return Name; } - partial void InitProjSpecific(); - - public override string ToString() - { - return Name; - } - public override MapEntity Clone() { var clone = new Structure(rect, Prefab, Submarine)