Vixen
c7401864
csharp
public sealed class DefinitionCatalog

Every definition a build knows, and the tag table baked out of them.

Read the guide page for this →

Remarks

Immutable. A content update produces a new catalog and Reload swaps it in, which is what makes a reload safe while a frame is running: a reader that took the old one keeps reading a consistent old one rather than watching a dictionary mutate underneath it.

The tag table is here rather than beside it because the two are one artefact — a definition's tags are indices into this table, and a catalog paired with the wrong table is a set of rules about the wrong tags. BuildHash covers both.

Fields and properties (5)

  • public static DefinitionCatalog Empty

    A catalog with nothing in it. What a host that has loaded no content has.

  • public GameplayTagTable Tags

    The tag table every tag in every definition here is numbered against.

  • public int Count

    How many definitions it holds.

  • public uint BuildHash

    A hash over every address and the tag table, so two hosts can establish they agree before either dispatches anything that carries a DefId.

  • public IEnumerable<Definition> All

    Every definition, in address order.

Methods (4)

  • public bool Contains(DefId id)

    Whether the catalog has a definition with this id.

  • public bool TryGet<TDefinition>(DefId id, out TDefinition? definition) where TDefinition : Definition

    Finds a definition and checks it is the kind the caller expected.

  • public Definition? Find(DefId id)

    Finds a definition, whatever kind it is.

  • public IEnumerable<TDefinition> OfType<TDefinition>() where TDefinition : Definition

    Every definition of one kind.

Used by (90, showing 40)

  • AddressTestsMmo.Content.Tests
  • AuthoredContentMmo.Content.Tests
  • ContentTestsMmo.Content.Tests
  • CoverageTestsMmo.Content.Tests
  • CreatureLibraryMmo.Shared
  • MmoLibrariesMmo.Shared
  • ReferenceTestsMmo.Content.Tests
  • ContentVixen.Editor.Gameplay.Loot.Tests
  • DefinitionImporterTestsVixen.Editor.Assets.Tests
  • LootOutlineTestsVixen.Editor.Gameplay.Loot.Tests
  • LootSimulatorTestsVixen.Editor.Gameplay.Loot.Tests
  • LootTableModelTestsVixen.Editor.Gameplay.Loot.Tests
  • AbilityCasterTestsVixen.Gameplay.Combat.Tests
  • AbilityLibraryVixen.Gameplay.Combat
  • AbilityLibraryTestsVixen.Gameplay.Combat.Tests
  • ChatFilterTestsVixen.Gameplay.Chat.Tests
  • ChatLibraryVixen.Gameplay.Chat
  • ChatRouterTestsVixen.Gameplay.Chat.Tests
  • CollectionLibraryVixen.Gameplay.Collections
  • CollectionTestsVixen.Gameplay.Collections.Tests
  • CombatResolverTestsVixen.Gameplay.Combat.Tests
  • ContainerBasicsTestsVixen.Gameplay.Inventory.Tests
  • ContainerTransactionTestsVixen.Gameplay.Inventory.Tests
  • ContentVixen.Gameplay.Instances.Tests
  • ContentVixen.Gameplay.Ai.Tests
  • ContentVixen.Gameplay.Quests.Tests
  • ContentVixen.Gameplay.Combat.Tests
  • ContentVixen.Gameplay.Loot.Tests
  • ContentVixen.Gameplay.Shooting.Tests
  • ContentVixen.Gameplay.Movement.Tests
  • ContentVixen.Gameplay.Chat.Tests
  • ContentVixen.Gameplay.Housing.Tests
  • ContentVixen.Gameplay.Collections.Tests
  • ContentVixen.Gameplay.Inventory.Tests
  • ContentVixen.Gameplay.Social.Tests
  • ContentVixen.Gameplay.Travel.Tests
  • ContentVixen.Gameplay.Pvp.Tests
  • ContentVixen.Gameplay.Progression.Tests
  • ContentVixen.Gameplay.Interaction.Tests
  • ContentVixen.Gameplay.Exploration.Tests