diff --git a/Barotrauma/BarotraumaClient/ClientSource/LuaCs/LuaCsSetup.cs b/Barotrauma/BarotraumaClient/ClientSource/LuaCs/LuaCsSetup.cs index 83e158ff0..8a20415ab 100644 --- a/Barotrauma/BarotraumaClient/ClientSource/LuaCs/LuaCsSetup.cs +++ b/Barotrauma/BarotraumaClient/ClientSource/LuaCs/LuaCsSetup.cs @@ -15,14 +15,13 @@ namespace Barotrauma partial class LuaCsSetup { private bool _isClientPromptActive; - + /// - /// + /// Returns whether execution should continue /// - /// Returns whether execution should continue. public bool CheckReadyToRun() { - // fast exit if enabled or unavailable. + // Fast exit if enabled if (this.IsCsEnabled) { return true; @@ -32,10 +31,24 @@ namespace Barotrauma foreach (ContentPackage cp in PackageManagementService.GetLoadedAssemblyPackages()) { + if (cp.NameMatches(PackageId)) + { + continue; + } + if (cp.UgcId.TryUnwrap(out ContentPackageId id)) + { sb.AppendLine($"- {cp.Name} ({id})"); + } else + { sb.AppendLine($"- {cp.Name} (Not On Workshop)"); + } + } + + if (string.IsNullOrEmpty(sb.ToString())) + { + return true; } if (!_isClientPromptActive) @@ -44,16 +57,18 @@ namespace Barotrauma if (GameMain.Client == null || GameMain.Client.IsServerOwner) { DisplayCsModsPromptServer(sb); + return true; } else { DisplayCsModsPromptClient(sb); + return false; } } - - return false; - - + else + { + return false; + } void DisplayCsModsPromptServer(StringBuilder sb) { @@ -104,6 +119,8 @@ namespace Barotrauma // avoid a TOCTOU scenario. this.IsCsEnabled = false; this._isClientPromptActive = false; + SetRunState(RunState.LoadedNoExec); + SetRunState(RunState.Running); return true; } finally diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs index 451f8a959..f5cc64f15 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs @@ -24,6 +24,8 @@ namespace Barotrauma partial class LuaCsSetup : IDisposable, IEventScreenSelected, IEventEnabledPackageListChanged, IEventReloadAllPackages { + public const string PackageId = "LuaCsForBarotrauma"; + private static LuaCsSetup _luaCsSetup; public static LuaCsSetup Instance => _luaCsSetup ??= new LuaCsSetup(); @@ -145,9 +147,9 @@ namespace Barotrauma void LoadLuaCsConfig() { - var luaCsPackage = ContentPackageManager.EnabledPackages.Regular.FirstOrDefault(cp => cp.NameMatches("LuaCsForBarotrauma"), null) - ?? ContentPackageManager.LocalPackages.FirstOrDefault(cp => cp.NameMatches("LuaCsForBarotrauma")) - ?? ContentPackageManager.WorkshopPackages.FirstOrDefault(cp => cp.NameMatches("LuaCsForBarotrauma")); + var luaCsPackage = ContentPackageManager.EnabledPackages.Regular.FirstOrDefault(cp => cp.NameMatches(PackageId), null) + ?? ContentPackageManager.LocalPackages.FirstOrDefault(cp => cp.NameMatches(PackageId)) + ?? ContentPackageManager.WorkshopPackages.FirstOrDefault(cp => cp.NameMatches(PackageId)); _isCsEnabled = ConfigService.TryGetConfig>(luaCsPackage, "IsCsEnabled", out var val1)