Vixen
02b45cc4
csharp
public sealed class MoveSet

A character's whole movement vocabulary: a flat list, and no hierarchy at all.

Read the guide page for this →

Remarks

Flat because a hierarchy forces an author to pick an axis to be primary, and there is never one. The moment a style is a container, every question crossing two axes needs a nesting order — is the injured walk in snow inside injured or inside snow? — and no answer is right. Facets have no order, so the question does not arise.

One allocation, walked in order. Selection touches every candidate, so the entries are one array and the scan is a straight loop over it. That is worth more than any index at the sizes a real set reaches, and it is why Entries is a span.

⚠ Overlays are resolved here, at build time, not at selection time. What a frame sees is one flat table with every override already applied. There is no inheritance chain in memory, no fallback walk per query, and no way for a runtime bug to resolve an override differently from the editor's preview of it.

Fields and properties (4)

  • public string Name

    What the set is called.

  • public int Count

    How many moves it holds.

  • public ReadOnlySpan<MoveEntry> Entries

    The moves, in key order.

  • public MoveEntry this[int index]

    One move by index.

Methods (6)

  • public MoveCandidate Candidate(int index)

    One candidate, as the selection pass reads it.

  • public bool Matches(int index, FacetSet required)

    Whether the move at an index says everything a query requires.

  • public static MoveSet Compose(string name, IEnumerable<MoveSet>? bases, params ReadOnlySpan<MoveEntry> own)

    Builds a set from entries, and from the sets it overlays.

  • public static MoveSet Of(string name, params ReadOnlySpan<MoveEntry> own)

    Builds a set with no bases.

  • public bool TryGet(MoveKey key, out MoveEntry? entry)

    The entry with a key, if the set has one.

  • public override string ToString()

    Returns a string that represents the current object.

Used by (19)

  • MoveSelectionBenchmarksVixen.Benchmarks.Animation
  • AuthoringTestsVixen.Animation.Tests
  • BakedVixen.Animation
  • IMoveSelectorVixen.Animation
  • LoadPathTestsVixen.Animation.Tests
  • MoveCoverageVixen.Animation
  • MoveExplanationsVixen.Animation
  • MoveSetCacheVixen.Animation
  • MoveSetContentVixen.Animation
  • MoveSetMotionVixen.Animation
  • MoveSetTestsVixen.Animation.Tests
  • MoveTransitionTestsVixen.Animation.Tests
  • QueryMoveSelectorVixen.Animation
  • SeamTestsVixen.Animation.Tests
  • TableTestSelectorVixen.Animation.Tests
  • AnimationWiringTestsVixen.Editor.App.Tests
  • MoveSetDocumentVixen.Editor.AssetEditors
  • MoveSetImporterTestsVixen.Editor.Assets.Tests
  • MoveSetViewVixen.Editor.AssetEditors