16 lines
735 B
C#
16 lines
735 B
C#
using System.Diagnostics.CodeAnalysis;
|
|
|
|
namespace NeonSprawl.Server.Game.Factions;
|
|
|
|
/// <summary>
|
|
/// Read-only access to validated <see cref="FactionDefRow"/> entries loaded at startup (<see cref="FactionDefinitionCatalog"/>).
|
|
/// </summary>
|
|
public interface IFactionDefinitionRegistry
|
|
{
|
|
/// <summary>Attempts to resolve a faction by stable <c>id</c> (see <c>faction-def.schema.json</c>). Unknown ids and <c>null</c> return <c>false</c> without throwing.</summary>
|
|
bool TryGetDefinition(string? factionId, [NotNullWhen(true)] out FactionDefRow? definition);
|
|
|
|
/// <summary>Every loaded definition, ordered by <see cref="FactionDefRow.Id"/> (ordinal).</summary>
|
|
IReadOnlyList<FactionDefRow> GetDefinitionsInIdOrder();
|
|
}
|