3 releases

new 0.0.4 Apr 11, 2025
0.0.3 Apr 11, 2025
0.0.2 Apr 7, 2025
0.0.1 Apr 7, 2025

#586 in Debugging

Download history 375/week @ 2025-04-05

380 downloads per month

GPL-3.0-only

14KB
249 lines

Turing API

The rust Turing scripting API for Beat Saber

This API exposes methods defined by the Turing mod for Beat Saber map scripting

This is a work-in-progress and will not be usable until the Turing mod is released (probably will be a while)

Traits

UnityConvertible

pub trait UnityConvertible {
  type UnityType;
  fn to_unity_type(self) -> Self::UnityType;
  fn from_unity_type(t: Self::UnityType) -> Self;
}

Structs

Static types


Beatmap

impl Beatmap {
  
  pub fn add_color_note(note: ColorNote) { ... }
  
  pub fn add_bomb_note(note: ColorNote) { ... }
  
  pub fn add_chain_head_note(note: ColorNote) { ... }
  
  pub fn add_chain_link_note(note: ColorNote) { ... }
  
  pub fn add_chain_note(note: ColorNote) { ... }
  
  pub fn add_arc(note: ColorNote) { ... }
  
  pub fn add_wall(note: ColorNote) { ... }
  
}

Data

impl Data {

  pub fn set_temp_value<T>(key: &str, v: T) {...}

  pub fn get_temp_value<T>(key: &str) -> Option<T> {...}

  pub fn remove_temp_value(key: &str) {...}

}

Log

impl Log {
  
  pub fn info(message: &str) {...}

  pub fn warning(message: &str) {...}

  pub fn error(message: &str) {...}

  pub fn debug(message: &str) {...}
  
}

Instanced types


Color

impl Color {
  pub fn set_rgb(&mut self, r: f32, g: f32, b: f32) {...}
  pub fn set_rgba(&mut self, r: f32, g: f32, b: f32, a: f32) {...}
}

ColorNote


BombNote


ChainHeadNote


ChainLinkNote


ChainNote


Arc


Wall


Saber


Vec2

impl Vec2 {
  pub fn get_x(&self) -> f32 { ... }
  pub fn get_y(&self) -> f32 { ... }
  
  pub fn set_x(&self, x: f32) { ... }
  pub fn set_y(&self, y: f32) { ... }
}
impl UnityConvertible for glam::Vec2 {
  type UnityType = Vec2;
  // ...
}

Vec3

impl Vec3 {
  pub fn get_x(&self) -> f32 { ... }
  pub fn get_y(&self) -> f32 { ... }
  pub fn get_z(&self) -> f32 { ... }
  
  pub fn set_x(&self, x: f32) { ... }
  pub fn set_y(&self, y: f32) { ... }
  pub fn set_z(&self, z: f32) { ... }
}
impl UnityConvertible for glam::Vec3 {
  type UnityType = Vec3;
  // ...
}

Vec4

impl Vec4 {
  pub fn get_x(&self) -> f32 { ... }
  pub fn get_y(&self) -> f32 { ... }
  pub fn get_z(&self) -> f32 { ... }
  pub fn get_w(&self) -> f32 { ... }
  
  pub fn set_x(&self, x: f32) { ... }
  pub fn set_y(&self, y: f32) { ... }
  pub fn set_z(&self, z: f32) { ... }
  pub fn set_w(&self, z: f32) { ... }
}
impl UnityConvertible for glam::Vec4 {
  type UnityType = Vec4;
  // ...
}

Quat

impl Quat {
  pub fn get_x(&self) -> f32 { ... }
  pub fn get_y(&self) -> f32 { ... }
  pub fn get_z(&self) -> f32 { ... }
  pub fn get_w(&self) -> f32 { ... }
  
  pub fn set_x(&self, x: f32) { ... }
  pub fn set_y(&self, y: f32) { ... }
  pub fn set_z(&self, z: f32) { ... }
  pub fn set_w(&self, z: f32) { ... }
}
impl UnityConvertible for glam::Quat {
  type UnityType = Quat;
  // ...
}

Static Functions

pub fn create_color_note(beat: f32) -> ColorNote {...}
pub fn create_bomb_note(beat: f32) -> BombNote {...}
pub fn create_chain_head_note(beat: f32) -> ChainHeadNote {...}
pub fn create_chain_link_note(beat: f32) -> ChainLinkNote {...}
pub fn create_chain_note(beat: f32) -> ChainNote {...}
pub fn create_arc(beat: f32) -> Arc {...}
pub fn create_wall(beat: f32) -> Wall {...}

Dependencies

~4.5MB
~146K SLoC