neon-sprawl/server/NeonSprawl.Server/Game/Gathering/ResourceNodeInstanceMutatio...

19 lines
847 B
C#

namespace NeonSprawl.Server.Game.Gathering;
/// <summary>Result of <see cref="ResourceNodeInstanceOperations.TryCommitSuccessfulGatherDecrement"/> (NEO-61).</summary>
public enum ResourceNodeInstanceMutationKind
{
/// <summary>Validation or depletion deny — capacity unchanged when already depleted.</summary>
Denied,
/// <summary>Decrement applied and persisted.</summary>
Applied,
}
/// <param name="ReasonCode">Populated when <see cref="Kind"/> is <see cref="ResourceNodeInstanceMutationKind.Denied"/>.</param>
/// <param name="Snapshot">Authoritative snapshot after apply, or current snapshot on depletion deny; null for unknown node.</param>
public readonly record struct ResourceNodeInstanceMutationOutcome(
ResourceNodeInstanceMutationKind Kind,
string? ReasonCode,
ResourceNodeInstanceSnapshot? Snapshot);