using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Globalization; using System.Runtime.InteropServices; namespace Barotrauma.LuaCs.Data; #region ModConfigurationInfo public partial record ModConfigInfo : IModConfigInfo { public ContentPackage Package { get; init; } public string PackageName { get; init; } public TargetRunMode RunModes { get; init; } public ImmutableArray SupportedCultures { get; init; } public ImmutableArray Assemblies { get; init; } public ImmutableArray Localizations { get; init; } public ImmutableArray LuaScripts { get; init; } public ImmutableArray Configs { get; init; } public ImmutableArray ConfigProfiles { get; init; } } #endregion #region DataContracts public record AssemblyResourceInfo : IAssemblyResourceInfo { public ContentPackage OwnerPackage { get; init; } public string FriendlyName { get; init; } public bool IsScript { get; init; } public string InternalName { get; init; } public bool LazyLoad { get; init; } public Platform SupportedPlatforms { get; init; } public Target SupportedTargets { get; init; } public int LoadPriority { get; init; } public ImmutableArray FilePaths { get; init; } public ImmutableArray SupportedCultures { get; init; } public ImmutableArray Dependencies { get; init; } public bool Optional { get; init; } } public record DependencyInfo : IPackageDependencyInfo { public ContentPackage OwnerPackage { get; init; } public string FolderPath { get; init; } public string PackageName { get; init; } public ulong SteamWorkshopId { get; init; } public ContentPackage DependencyPackage { get; init; } } public record LocalizationResourceInfo : ILocalizationResourceInfo { public ContentPackage OwnerPackage { get; init; } public CultureInfo TargetCulture { get; init; } public Platform SupportedPlatforms { get; init; } public Target SupportedTargets { get; init; } public int LoadPriority { get; init; } public ImmutableArray FilePaths { get; init; } public ImmutableArray SupportedCultures { get; init; } public ImmutableArray Dependencies { get; init; } public bool Optional { get; init; } } public readonly struct LuaScriptResourceInfo : ILuaResourceInfo { public ContentPackage OwnerPackage { get; init; } public Platform SupportedPlatforms { get; init; } public Target SupportedTargets { get; init; } public int LoadPriority { get; init; } public ImmutableArray FilePaths { get; init; } public ImmutableArray SupportedCultures { get; init; } public ImmutableArray Dependencies { get; init; } public bool Optional { get; init; } public string InternalName { get; init; } public bool LazyLoad { get; init; } } #endregion