using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Diagnostics.CodeAnalysis; using Barotrauma.LuaCs.Configuration; using Barotrauma.LuaCs.Data; using Barotrauma.Networking; namespace Barotrauma.LuaCs.Services; public interface IConfigService : IService { /* * Resource Files. */ bool TryAddConfigs(ImmutableArray configResources); bool TryAddConfigsProfiles(ImmutableArray configProfileResources); void RemoveConfigs(ImmutableArray configResources); void RemoveConfigsProfiles(ImmutableArray configProfilesResources); /* * Already processed */ bool TryAddConfigs(ImmutableArray configs); bool TryAddConfigsProfiles(ImmutableArray configProfiles); void RemoveConfigs(ImmutableArray configs); void RemoveConfigsProfiles(ImmutableArray configProfiles); /* * Immediate mode, does not have displayable functionality */ IConfigEntry 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; IConfigList AddConfigList(ContentPackage package, string name, int defaultIndex, IReadOnlyList values, NetSync syncMode = NetSync.None, ClientPermissions permissions = ClientPermissions.None, Func valueChangePredicate = null, Action onValueChanged = null); IReadOnlyDictionary GetConfigsForPackage(ContentPackage package); IReadOnlyDictionary GetConfigsForPackage(string packageName); IReadOnlyDictionary<(ContentPackage, string), IConfigBase> GetAllConfigs(); }