using System; using System.Collections.Generic; using System.Collections.Immutable; using System.ComponentModel.DataAnnotations; using System.Globalization; 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] Platform SupportedPlatforms { get; } /// /// Targets that these localization files should be loaded for. /// [Required] Target SupportedTargets { get; } } /// /// 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; } }