Vixen
02b45cc4
csharp
public readonly record struct MoveKey

A move's identity: stable, hashable, and the same on every machine.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

What an overlay keys on and what a tie breaks on. Two sets are composed by matching these, and a scoring tie is settled by comparing them — so it has to mean the same thing in the editor that composed the set and on every machine that later plays it.

⚠ 64 bits here where a Symbol is 32. A symbol lives in a vocabulary of a few dozen words that a bake can check for collisions; a key lives in a set of hundreds of move names composed from several sources, and a collision there would silently make one move override another. The extra four bytes are on a type that appears once per entry rather than several times.

Fields and properties (1)

  • public ulong Hash

    A hash of the move's name.

Methods (7)

  • public MoveKey(ulong Hash)

    A move's identity: stable, hashable, and the same on every machine.

  • public static MoveKey Of(string name)

    Hashes a name.

  • public int CompareTo(MoveKey other)

    Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.

  • public static bool operator <(MoveKey left, MoveKey right)

    Orders two keys.

  • public static bool operator <=(MoveKey left, MoveKey right)
  • public static bool operator >(MoveKey left, MoveKey right)
  • public static bool operator >=(MoveKey left, MoveKey right)

Used by (10)

  • AuthoringTestsVixen.Animation.Tests
  • LoadPathTestsVixen.Animation.Tests
  • MoveCandidateVixen.Animation
  • MoveEntryVixen.Animation
  • MoveExplanationVixen.Animation
  • MoveExplanationsVixen.Animation
  • MoveQueryVixen.Animation
  • MoveSetVixen.Animation
  • MoveSetTestsVixen.Animation.Tests
  • QueryMoveSelectorVixen.Animation