using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Threading.Tasks; using Barotrauma.Extensions; using Barotrauma.LuaCs.Data; namespace Barotrauma.LuaCs.Services; public interface IPackageManagementService : IReusableService, ILocalizationsResourcesInfo, IConfigsResourcesInfo, IConfigProfilesResourcesInfo, ILuaScriptsResourcesInfo, IAssembliesResourcesInfo #if CLIENT ,IStylesResourcesInfo #endif { /// /// Loads and parses the provided for supported by the current runtime environment. /// /// /// Task LoadPackageInfosAsync(ContentPackage packages); /// /// Loads and parses the provided collection for supported by the current runtime environment. /// /// /// Task> LoadPackagesInfosAsync(IReadOnlyList packages); IReadOnlyList GetAllLoadedPackages(); void DisposePackageInfos(ContentPackage package); void DisposePackagesInfos(IReadOnlyList packages); void DisposeAllPackagesInfos(); // single FluentResults.Result GetAssembliesInfos(ContentPackage package, bool onlySupportedResources = true); FluentResults.Result GetConfigsInfos(ContentPackage package, bool onlySupportedResources = true); FluentResults.Result GetConfigProfilesInfos(ContentPackage package, bool onlySupportedResources = true); FluentResults.Result GetLocalizationsInfos(ContentPackage package, bool onlySupportedResources = true); FluentResults.Result GetLuaScriptsInfos(ContentPackage package, bool onlySupportedResources = true); #if CLIENT FluentResults.Result GetStylesInfos(ContentPackage package, bool onlySupportedResources = true); #endif // collection FluentResults.Result GetAssembliesInfos(IReadOnlyList packages, bool onlySupportedResources = true); FluentResults.Result GetConfigsInfos(IReadOnlyList packages, bool onlySupportedResources = true); FluentResults.Result GetConfigProfilesInfos(IReadOnlyList packages, bool onlySupportedResources = true); FluentResults.Result GetLocalizationsInfos(IReadOnlyList packages, bool onlySupportedResources = true); FluentResults.Result GetLuaScriptsInfos(IReadOnlyList packages, bool onlySupportedResources = true); #if CLIENT FluentResults.Result GetStylesInfos(IReadOnlyList packages, bool onlySupportedResources = true); #endif Task> GetAssembliesInfosAsync(IReadOnlyList packages, bool onlySupportedResources = true); Task> GetConfigsInfosAsync(IReadOnlyList packages, bool onlySupportedResources = true); Task> GetConfigProfilesInfosAsync(IReadOnlyList packages, bool onlySupportedResources = true); Task> GetLocalizationsInfosAsync(IReadOnlyList packages, bool onlySupportedResources = true); Task> GetLuaScriptsInfosAsync(IReadOnlyList packages, bool onlySupportedResources = true); #if CLIENT Task> GetStylesInfosAsync(IReadOnlyList packages, bool onlySupportedResources = true); #endif }