using System.Collections.Generic;
using System.Collections.Immutable;
using System.Globalization;
using System.Runtime.CompilerServices;
using System.Xml.Serialization;
namespace Barotrauma.LuaCs.Data;
public interface IBaseResourceInfo : IResourceInfo, IDataInfo, IDependencyInfo {}
public interface IConfigResourceInfo : IBaseResourceInfo {}
///
/// Represents loadable Lua files.
///
public interface ILuaScriptResourceInfo : IBaseResourceInfo
{
///
/// Should this script be run automatically.
///
[XmlAttribute("IsAutorun")]
public bool IsAutorun { get; }
}
public interface IAssemblyResourceInfo : IBaseResourceInfo
{
///
/// The friendly name of the assembly. Script files belonging to the same assembly should all have the same name.
/// Legacy scripts will all be given the sanitized name of the Content Package they belong to.
///
[XmlAttribute("FriendlyName")]
public string FriendlyName { get; }
///
/// Is this entry referring to a script file collection.
///
[XmlAttribute("IsScript")]
public bool IsScript { get; }
///
/// [Required(IsScript: true)] Whether the internal compiled assembly name should be named to enabled use of the
/// attribute.
///
[XmlAttribute("UseInternalAccessName")]
public bool UseInternalAccessName { get; }
///
/// Should the following resources only be used for Compilation MetadataReference.
/// NOTE: Affects the entire package's assembly resources, meant for internal use only.
///
[XmlAttribute("IsReferenceModeOnly")]
public bool IsReferenceModeOnly { get; }
}
#region Collections
public interface IAssembliesResourcesInfo
{
ImmutableArray Assemblies { get; }
}
public interface ILuaScriptsResourcesInfo
{
ImmutableArray LuaScripts { get; }
}
public interface IConfigsResourcesInfo
{
ImmutableArray Configs { get; }
}
#endregion