Vixen
c7401864
csharp
public record class InteractableDefinition

Something a player can use: a node, a chest, a door, a lever, a forge.

Read the guide page for this →

Remarks

Doc 28 § Interaction: "one channelled-interaction system with different definitions". Mining a node, smelting at a forge, opening a chest, reading a book, flipping a lever and picking a herb differ in a duration, a tag and a result.

⚠ Every member is settable, for the YAML binder's reason — see ModifierDefinition.

Fields and properties (11)

  • public string DisplayName

    What it is called.

  • public string Tag

    What it is — Interactable.Node.Ore. Also what a station requirement asks for.

  • public string Verb

    What the prompt says — Mine.

  • public float ChannelSeconds

    How long using it takes, in seconds. Zero for an instant one.

  • public InterruptOn Interrupts

    What stops it.

  • public int Uses

    How many times it may be used before it is gone. Zero for a lever.

  • public float RespawnSeconds

    How long until it comes back, in seconds. Zero for never.

  • public InteractionInstancing Instancing

    Whose the remaining uses are.

  • public string Yields

    The address of what using it yields — a loot table, usually. Empty for a door.

  • public List<RequirementDefinition> Requires

    What has to be true to use it.

  • public List<string> GrantsTags

    Tags using it grants — an attunement, a flag on a door.

Methods (1)

  • public override void CollectTags(ICollection<string> tags)

    Every tag this definition mentions, so the content build can bake the tag table.

Used by (8)

  • ReferenceTestsMmo.Content.Tests
  • ContentVixen.Gameplay.Interaction.Tests
  • InteractableVixen.Gameplay.Interaction
  • InteractionLibraryVixen.Gameplay.Interaction
  • InteractionModuleVixen.Gameplay.Interaction
  • InteractionTestsVixen.Gameplay.Interaction.Tests
  • TypeRegistrationVixen.Gameplay.Interaction
  • Vixen_Gameplay_Interaction_InteractableDefinitionSerializerVixen.Gameplay.Interaction