From addcfff12a76f861e07d844eabfa349e2f4014c1 Mon Sep 17 00:00:00 2001 From: Silas Bartha Date: Sun, 25 Aug 2024 02:22:37 -0400 Subject: Initial Commit --- src/actor/events.rs | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/actor/events.rs (limited to 'src/actor/events.rs') diff --git a/src/actor/events.rs b/src/actor/events.rs new file mode 100644 index 0000000..e24e7f3 --- /dev/null +++ b/src/actor/events.rs @@ -0,0 +1,72 @@ +//! Actor-related events + +use bevy::prelude::*; +use yarnspinner::{core::LineId, runtime::{Command, DialogueOption, Line, OptionId}}; + +/// Event called by user to progress dialogue +#[derive(Debug, Event)] +pub enum ContinueDialogueEvent { + /// Continue to next line of dialogue for given actor entity + Continue(Entity), + /// Submit option selection to given actor entity + SelectedOption { + /// Target actor entity + actor: Entity, + /// Selected option ID + option: OptionId + }, +} + +/// Event called by plugin in response to a corresponding yarnspinner dialogue events +/// +/// The user should catch these events to update UI, and never call it directly. +#[derive(Event)] +pub enum DialogueEvent { + /// Recieved new line of dialogue + Line { + /// Actor entity + actor: Entity, + /// Line of dialogue received + line: Line, + }, + /// Dialogue complete + DialogueComplete { + /// Actor entity + actor: Entity, + }, + /// Encountered an option selection + Options { + /// Actor entity + actor: Entity, + /// Options to select from + options: Vec, + }, + /// Triggered a yarnspinner command + Command { + /// Actor entity + actor: Entity, + /// Triggered command + command: Command, + }, + /// Node started + NodeStart { + /// Actor entity + actor: Entity, + /// Name of started node + name: String, + }, + /// Node complete + NodeComplete { + /// Actor entity + actor: Entity, + /// Name of completed node + name: String, + }, + /// Received line hints + LineHints { + /// Actor entity + actor: Entity, + /// Lines affected + lines: Vec, + }, +} -- cgit v1.2.3