using System; using System.Collections.Generic; using System.Collections.Immutable; using System.ComponentModel.DataAnnotations; using System.Globalization; using System.Xml.Serialization; namespace Barotrauma.LuaCs.Data; public interface IDependencyInfo { /// /// List of dependency packages required by this resource. /// ImmutableArray RequiredPackages { get; } /// /// List of packages incompatible with this resource. /// ImmutableArray IncompatiblePackages { get; } } public interface IPlatformInfo { /// /// Platforms that these localization files should be loaded for. /// [Required] [XmlAttribute("Platform")] Platform SupportedPlatforms { get; } /// /// Targets that these localization files should be loaded for. /// [Required] [XmlAttribute("Target")] Target SupportedTargets { get; } } /// /// ResourceInfos contain metadata about a resource. /// public interface IResourceInfo : IPlatformInfo { /// /// [Optional] /// Specifies the loading order for all assets of the same type (ie. styles, assemblies, etc.) from /// the same . Lower number is higher priority, see /// [XmlAttribute("LoadPriority")] 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. /// [XmlAttribute("Optional")] bool Optional { get; } }