UniqueSpaceExhaustedException¶
Namespace Nfty.Core.Generation in assembly Nfty.Core.
More unique assets were requested than the cookbook can produce. UniqueSpaceExhaustedException.Available is the true maximum only when UniqueSpaceExhaustedException.Certainty says so; otherwise it is a bound, and UniqueSpaceExhaustedException.Certainty is what says in which direction.
Remarks¶
This carried a bool isExact, and read every non-exact outcome as "the real figure is GREATER — so the reroll budget, not the space, is what ran out". One of those outcomes is the opposite: a recipe with rules and more combinations than the enumeration budget reports an upper bound, and telling a user their book allows "more than" a number it may not reach is worse than saying nothing.
Constructors¶
UniqueSpaceExhaustedException(BigInteger, SpaceCertainty, int, int, string)¶
public UniqueSpaceExhaustedException(BigInteger available, SpaceCertainty certainty, int requested, int produced, string message);
Creates the exception.
Parameters
available(BigInteger) - The space the book admits.certainty(SpaceCertainty) - What that figure is.requested(int) - How many were asked for.produced(int) - How many were produced.message(string) - The message shown to the user verbatim.
Properties¶
Available¶
How many unique DNA the book actually admits.
Remarks
A BigInteger, like the count it comes from: a book whose space is too big to fit a Int64 is exactly the book most likely to exhaust a caller's reroll budget for some other reason, so this is the last place the figure should be a saturated sentinel.
Certainty¶
What UniqueSpaceExhaustedException.Available is: the figure, a floor, a ceiling, or nothing.
IsExact¶
Whether UniqueSpaceExhaustedException.Available is the real figure rather than a bound.
Produced¶
How many were produced before the space ran out.
Requested¶
How many assets were asked for.