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; }
}