using System; using System.Collections.Generic; using System.Collections.Immutable; using System.ComponentModel.DataAnnotations; using System.Globalization; namespace Barotrauma.LuaCs.Data; public interface IPlatformInfo { /// /// Platforms that these localization files should be loaded for. /// [Required] Platform SupportedPlatforms { get; } /// /// Targets that these localization files should be loaded for. /// [Required] Target SupportedTargets { get; } } /// /// All info we should have on a package for a given resource. /// public interface IPackageInfo : IDataInfo { } /// /// ResourceInfos contain metadata about a resource. /// public interface IResourceInfo : IPlatformInfo { /// /// [Optional] /// Allows you to specify the loading order for all assets of the same type (ie. styles, assemblies, etc.). /// int LoadPriority { get; } /// /// Resource absolute file paths. /// [Required] ImmutableArray FilePaths { get; } /// /// Marks this resource as optional (ie. Cross-CP content). Setting this to true will allow the dependency system to /// try and order the loading but not fail if it runs into circular dependency issues. /// bool Optional { get; } } /// /// Information about supported cultures. It is intended to be ignored if the array is ImmutableArray.Empty . /// public interface IResourceCultureInfo { /// /// List of supported cultures by this resource. /// ImmutableArray SupportedCultures { get; } }