diff --git a/Barotrauma/BarotraumaShared/LocalMods/[DebugOnlyTest]TestLuaMod/Lua/init.lua b/Barotrauma/BarotraumaShared/LocalMods/[DebugOnlyTest]TestLuaMod/Lua/init.lua index cac8db7c9..600035344 100644 --- a/Barotrauma/BarotraumaShared/LocalMods/[DebugOnlyTest]TestLuaMod/Lua/init.lua +++ b/Barotrauma/BarotraumaShared/LocalMods/[DebugOnlyTest]TestLuaMod/Lua/init.lua @@ -26,6 +26,9 @@ end) local failed, package = trygetpackage("[DebugOnlyTest]TestLuaMod") +print("packageFailed=", failed) +print("package", package.Name) + local success, config = ConfigService.TryGetConfig(SettingBase.Single, package, "TestFloat") print("config ", success, " ", config) diff --git a/Barotrauma/BarotraumaShared/LocalMods/[DebugOnlyTest]TestLuaMod/ModConfig.xml b/Barotrauma/BarotraumaShared/LocalMods/[DebugOnlyTest]TestLuaMod/ModConfig.xml index 8889ae392..1af981a06 100644 --- a/Barotrauma/BarotraumaShared/LocalMods/[DebugOnlyTest]TestLuaMod/ModConfig.xml +++ b/Barotrauma/BarotraumaShared/LocalMods/[DebugOnlyTest]TestLuaMod/ModConfig.xml @@ -1,5 +1,5 @@ - + diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/ConfigService.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/ConfigService.cs index 2ff7199f6..442aa0185 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/ConfigService.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/ConfigService.cs @@ -325,6 +325,8 @@ public sealed partial class ConfigService : IConfigService { return FluentResults.Result.Ok(); } + + var result = new FluentResults.Result(); var taskBuilder = ImmutableArray.CreateBuilder>>(); var toProcessErrors = new ConcurrentStack(); @@ -362,7 +364,9 @@ public sealed partial class ConfigService : IConfigService { if (!_instanceFactory.TryGetValue(info.DataType, out var factory)) { - return FluentResults.Result.Fail($"{nameof(LoadConfigsAsync)}: Could not retrieve the instance factory for the data type of '{info.DataType}'!"); + result.WithError( + $"{nameof(LoadConfigsAsync)}: Could not retrieve the instance factory for the data type of '{info.DataType}'!"); + continue; } if (_settingsInstances.ContainsKey((info.OwnerPackage, info.InternalName))) { @@ -383,13 +387,13 @@ public sealed partial class ConfigService : IConfigService } catch (Exception e) { - FluentResults.Result.Fail( + result.WithError( $"{nameof(LoadConfigsAsync)}: Error while instancing setting for '{instanceFactoryInfo.configInfo.OwnerPackage}.{instanceFactoryInfo.configInfo.InternalName}': {e.Message}!"); + continue; } } using var settingsLck = await _settingsByPackageLock.AcquireWriterLock(); // block to protect new bag instance creation - var result = new FluentResults.Result(); while (toProcessInstanceQueue.TryDequeue(out var newInstanceData)) {