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