Skip to content

Plating

Namespace Nfty.Ticket in assembly Nfty.Ticket.

public static class Plating

Turns a ticket into the ordered list of draws that reproduces it.

Remarks

Bottom-first, in layerOrder — generation's own paint order, which the ticket already carries because Ticketer walks the layers in it.

Nothing here touches a pixel. The colorize rule a renderer must implement is one line: rgb = HsvToRgb(hue, sat, source.R / 255) with the source's alpha carried through untouched — which is exactly what Colorizer.Apply computes, via a 256-entry table it builds because the red channel is the only per-pixel input.

Methods

Plate(MenuArchive, AssetTicket)

public static IReadOnlyList<Draw> Plate(MenuArchive menu, AssetTicket ticket);

The draws that reproduce a ticket.

Parameters

  • menu (MenuArchive) - The Menu the ticket was rolled against.
  • ticket (AssetTicket) - The roll.

Returns. One draw per present layer, bottom-first.

Exceptions

  • KeyNotFoundException - The Menu has no recipe named by AssetTicket.RecipeId; that recipe has no layer for one of the ticket's ingredient ids (both from MenuArchive.Layer()); or the Menu has no art cell for one of the ticket's rolled variants (from MenuArchive.Cell()). All three name the specific id that was not found.
  • FormatException - A colorized layer's hue or saturation quantize differs from the Menu's colorization for that layer. The message names the layer.