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