lotus_script/
lib.rs

1pub use lotus_bindgen_macros::lotus_bindgen;
2
3use message::Message;
4
5use crate::var::get_var;
6
7pub mod action;
8pub mod content;
9#[doc(hidden)]
10pub mod event;
11pub mod font;
12pub mod gizmos;
13pub mod graphics;
14pub mod input;
15pub mod log;
16#[doc(hidden)]
17pub mod macros;
18pub mod math;
19pub mod message;
20pub mod module;
21pub mod public_vars;
22pub mod rand;
23#[doc(hidden)]
24pub mod settings;
25pub mod time;
26pub mod var;
27pub mod vehicle;
28pub mod prelude {
29    pub use crate::{
30        action,
31        graphics::{textures::Texture, Color},
32        log,
33        message::{message_type, send_message, Message, MessageTarget, MessageType},
34        rand, script, time,
35        var::{get_var, set_var, VariableType},
36        Script,
37    };
38}
39
40pub trait Script {
41    /// Initialize the script.
42    fn init(&mut self) {}
43
44    /// Register actions.
45    fn actions() -> Vec<action::RegisterAction> {
46        Default::default()
47    }
48
49    /// Tick the script.
50    fn tick(&mut self) {}
51
52    /// Handle a message.
53    #[allow(unused_variables)]
54    fn on_message(&mut self, msg: Message) {}
55}
56
57/// Returns true if the object the script is attached to is remote controlled.
58pub fn is_rc() -> bool {
59    unsafe { lotus_script_sys::env::is_rc() }
60}