Files
LuaCsForBarotraumaEP/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Data/IBaseInfoDefinitions.cs
T
MapleWheels 01cc1d331b -- Squash:
- In progress implementation of services model.
2026-02-07 20:10:04 -05:00

78 lines
2.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
namespace Barotrauma.LuaCs.Data;
public interface IPlatformInfo
{
/// <summary>
/// Platforms that these localization files should be loaded for.
/// </summary>
[Required]
Platform SupportedPlatforms { get; }
/// <summary>
/// Targets that these localization files should be loaded for.
/// </summary>
[Required]
Target SupportedTargets { get; }
}
/// <summary>
/// Which package does the following data belong to?
/// </summary>
public interface IPackageInfo
{
ContentPackage OwnerPackage { get; }
}
/// <summary>
/// ResourceInfos contain metadata about a resource.
/// </summary>
public interface IResourceInfo : IPlatformInfo
{
/// <summary>
/// [Optional]
/// Allows you to specify the loading order for all assets of the same type (ie. styles, assemblies, etc.).
/// </summary>
int LoadPriority { get; }
/// <summary>
/// Resource absolute file paths.
/// </summary>
[Required]
ImmutableArray<string> FilePaths { get; }
/// <summary>
/// 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.
/// </summary>
bool Optional { get; }
}
/// <summary>
/// Information about supported cultures. It is intended to be ignored if the array is ImmutableArray.Empty .
/// </summary>
public interface IResourceCultureInfo
{
/// <summary>
/// List of supported cultures by this resource.
/// </summary>
ImmutableArray<CultureInfo> SupportedCultures { get; }
}
public interface ILoadableResourceInfo
{
/// <summary>
/// [UNIQUE] The name that will be used when trying to reference this resource for execution or loading.
/// </summary>
[Required]
public string InternalName { get; }
}