neon-sprawl/server/NeonSprawl.Server/Game/Factions/IFactionDefinitionRegistry.cs

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