aboutsummaryrefslogtreecommitdiff
path: root/src/actor/components.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/actor/components.rs')
-rw-r--r--src/actor/components.rs52
1 files changed, 0 insertions, 52 deletions
diff --git a/src/actor/components.rs b/src/actor/components.rs
deleted file mode 100644
index 43987c0..0000000
--- a/src/actor/components.rs
+++ /dev/null
@@ -1,52 +0,0 @@
-//! Components related to actors
-
-use bevy::{prelude::*, utils::HashMap};
-use yarnspinner::{compiler::{Compiler, File}, core::{Library, LineId}, runtime::{Dialogue, MemoryVariableStorage, StringTableTextProvider}};
-
-/// Main actor component, holds state about dialogue along with the dialogue runner itself
-#[derive(Component)]
-pub struct Actor {
- /// Whether this actor is currently conversing
- pub active: bool,
- /// Yarnspinner dialogue runner
- pub dialogue: Dialogue,
- /// Yarnspinner dialogue metadata
- pub metadata: HashMap<LineId, Vec<String>>,
-}
-
-impl Actor {
- /// Create a new actor from the given source code, starting on the given start node, and with
- /// the given function library
- pub fn new(file_name: &str, source: &[u8], start_node: &str, function_library: &Library) -> Self {
- let compilation = Compiler::new()
- .add_file(File {
- source: String::from_utf8_lossy(source).into(),
- file_name: file_name.into(),
- })
- .compile()
- .unwrap();
-
- let mut base_language_string_table = std::collections::HashMap::new();
- let mut metadata = HashMap::new();
-
- for (k, v) in compilation.string_table {
- base_language_string_table.insert(k.clone(), v.text);
- metadata.insert(k, v.metadata);
- }
-
- let mut text_provider = StringTableTextProvider::new();
- text_provider.extend_base_language(base_language_string_table);
-
- let mut dialogue = Dialogue::new(Box::new(MemoryVariableStorage::new()), Box::new(text_provider));
- dialogue.library_mut().extend(function_library.clone());
- dialogue.add_program(compilation.program.unwrap());
- dialogue.set_node(start_node).unwrap();
-
- Self {
- active: false,
- dialogue,
- metadata,
- }
- }
-}
-