summaryrefslogtreecommitdiff
path: root/platforms/tortuise-script-compiled/src/script.rs
diff options
context:
space:
mode:
Diffstat (limited to 'platforms/tortuise-script-compiled/src/script.rs')
-rw-r--r--platforms/tortuise-script-compiled/src/script.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/platforms/tortuise-script-compiled/src/script.rs b/platforms/tortuise-script-compiled/src/script.rs
new file mode 100644
index 0000000..d316fe5
--- /dev/null
+++ b/platforms/tortuise-script-compiled/src/script.rs
@@ -0,0 +1,29 @@
+use tortuise::script::Operation;
+
+use crate::ScriptContext;
+
+impl ScriptContext<'_> {
+ pub fn current_script_name(&self) -> String {
+ puffin::profile_function!();
+ self.0.manifest.scripts[self.0.script_id].name().to_owned()
+ }
+
+ pub fn script_id(&self, name: &str) -> Option<usize> {
+ puffin::profile_function!();
+ self.0.scripts.script_id_by_name(name)
+ }
+
+ pub fn activate_script(&mut self, name: &str) -> Option<()> {
+ puffin::profile_function!();
+ let id = self.script_id(name)?;
+ self.0.operation_queue.push(Operation::ActivateScript(id));
+ Some(())
+ }
+
+ pub fn deactivate_script(&mut self, name: &str) -> Option<()> {
+ puffin::profile_function!();
+ let id = self.script_id(name)?;
+ self.0.operation_queue.push(Operation::DeactivateScript(id));
+ Some(())
+ }
+}