using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; using Barotrauma.LuaCs.Configuration; using Barotrauma.LuaCs.Data; using Barotrauma.LuaCs.Networking; using Barotrauma.LuaCs.Services.Safe; using Barotrauma.Networking; namespace Barotrauma.LuaCs.Services; public partial interface IConfigService : IReusableService, ILuaConfigService { /* * Resource Files. */ Task LoadConfigsAsync(ImmutableArray configResources); Task LoadConfigsProfilesAsync(ImmutableArray configProfileResources); FluentResults.Result DisposeConfigs(ImmutableArray configResources); FluentResults.Result DisposeConfigsProfiles(ImmutableArray configProfilesResources); FluentResults.Result DisposeConfigs(ContentPackage package); FluentResults.Result DisposeConfigsProfiles(ContentPackage package); /* * Immediate mode */ FluentResults.Result> AddConfigEntry(ContentPackage package, string name, T defaultValue, NetSync syncMode = NetSync.None, ClientPermissions permissions = ClientPermissions.None, Func valueChangePredicate = null, Action> onValueChanged = null) where T : IConvertible, IEquatable; FluentResults.Result AddConfigList(ContentPackage package, string name, int defaultIndex, IReadOnlyList values, NetSync syncMode = NetSync.None, ClientPermissions permissions = ClientPermissions.None, Func valueChangePredicate = null, Action onValueChanged = null); FluentResults.Result> AddConfigRangeEntry(ContentPackage package, string name, T defaultValue, T minValue, T maxValue, Func, int> getStepCount, NetSync syncMode = NetSync.None, ClientPermissions permissions = ClientPermissions.None, Func valueChangePredicate = null, Action> onValueChanged = null) where T : IConvertible, IEquatable; FluentResults.Result> AddConfigEntry(string packageName, string name, T defaultValue, NetSync syncMode = NetSync.None, ClientPermissions permissions = ClientPermissions.None, Func valueChangePredicate = null, Action> onValueChanged = null) where T : IConvertible, IEquatable; FluentResults.Result AddConfigList(string packageName, string name, int defaultIndex, IReadOnlyList values, NetSync syncMode = NetSync.None, ClientPermissions permissions = ClientPermissions.None, Func valueChangePredicate = null, Action onValueChanged = null); FluentResults.Result> AddConfigRangeEntry(string packageName, string name, T defaultValue, T minValue, T maxValue, Func, int> getStepCount, NetSync syncMode = NetSync.None, ClientPermissions permissions = ClientPermissions.None, Func valueChangePredicate = null, Action> onValueChanged = null) where T : IConvertible, IEquatable; FluentResults.Result> GetConfigsForPackage(ContentPackage package); FluentResults.Result> GetConfigsForPackage(string packageName); IReadOnlyDictionary<(ContentPackage, string), IConfigBase> GetAllConfigs(); T GetConfig(ContentPackage package, string name) where T : IConfigBase; T GetConfig(string packageName, string name) where T : IConfigBase; }