Skip to content

Nfty.Ticket

The roll, and nothing else. net10.0, no NuGet packages, no imaging library: reference this alone to decide what an asset is - recipe, variants, rolled color, DNA - on a server or in an engine.

49 public types. Each page lists the public and protected members with their signatures and the documentation written beside the code.

Nfty.Core.Generation

Type Kind Summary
ColorBuckets class The one place a rolled color is folded into the quantized bucket that identifies it.
ColorRoller class Turns a layer's colorization into the color one asset will use.
Dna class An asset's identity: SHA-256 over the recipe id, each layer's variant id, and — for colorized layers — the QUANTIZED color.
IRng interface The single source of randomness a run consumes.
LayerSelection struct What one layer contributed to an asset, in the form the DNA hashes.
RolledColor struct One rolled color: the hue and saturation a value-map is tinted with.
RulesEngine class Decides whether a rolled selection satisfies a recipe's incompatibility rules.
SeedHash class Turns a user's seed string into RNG state.
SplitMix64Rng class SplitMix64.
WeightedRoller class Weighted selection with a stable, locale-independent draw order.
WeightedRoller.WeightTable struct A weight table with its ordering and running totals already resolved.

Nfty.Core.Imaging

Type Kind Summary
ColorConvert class Conversions between RGB and the two color spaces a layer can be authored in.
ColorSpec class Parses the prefixed color specs an author writes.
RgbColor struct An 8-bit-per-channel color, used as the neutral currency between the color-space conversions and ImageSharp.

Nfty.Core.Model

Type Kind Summary
Collection record The collection's marketplace-facing identity, copied into every asset's metadata.
ColorDefaults class What a new colorized layer starts with, stated once so the two ways of creating a layer cannot produce two different layers.
ColorEntry record One weighted color option.
ColorModel enum Which color space a layer's hue and saturation are interpreted in.
ColorRange record A band of color a Dynamic layer can roll within.
Colorization record How a Dynamic or Static layer is colored.
CookBookManifest record The top-level container: canvas, collection identity, and the per-Recipe roll weights.
DepthMap class A per-pixel front/back depth pair for one layer's artwork, so a 2D asset can be lifted into a scene with real parallax.
DepthMaps class Helpers for collections of DepthMaps.
Dimensions record Canvas size in pixels.
ISchemaVersioned interface A manifest that declares the schema it was written against.
IncompatibilityRule record A constraint on which variants may be rolled together.
IngredientManifest record One layer, or trait-category: a kind, how it is colored, and its weighted variants.
KitchenManifest record A Kitchen: the top-level workspace, and the sixth domain word.
LayerKind enum How a layer's rolled variant image is turned into pixels.
RecipeManifest record A complete template for one character type: which layers, in what order, and which combinations are illegal.
RuleTarget record A specific variant of a specific layer.
RuleType enum What a rule does to a rolled selection.
Schema class The manifest schema range this build can read and write.
Variant record One image inside an Ingredient — the smallest unit a roll can land on.

Nfty.Ticket

Type Kind Summary
AssetTicket record One roll, complete, costing no pixels: what a server stores and hands a client.
Draw struct One layer to draw.
Lookup class Lookup helpers shared by every assembly that resolves ids to things.
MenuArchive class Reads a .mnu Menu: every weight, rule and colorization a rolled asset needs, plus its art, with no imaging library involved.
MenuArt record How a Menu carries its art.
MenuArtMode enum Whether a Menu carries its art as one atlas or as a file per variant.
MenuBook record A CookBook flattened for runtime: every weight, rule and colorization, plus where the art is, and not one decoded pixel.
MenuCell record Where one variant's art sits inside the atlas.
MenuLayer record One layer, as a Menu records it: everything needed to roll and to tint, and no pixels.
MenuRecipe record One recipe, as a Menu records it.
MenuSchema class The Menu schema range this build can read and write — separate from Schema because a Menu is not a CookBook manifest and evolves on its own line.
Plating class Turns a ticket into the ordered list of draws that reproduces it.
PreparedMenu class A Menu with its draw order and running weight totals already resolved.
TicketLayer struct What one layer contributed to a rolled asset.
Ticketer class The roll: decides a whole asset and touches no pixels.