diff options
Diffstat (limited to 'rust/src')
-rw-r--r-- | rust/src/game.rs | 1 | ||||
-rw-r--r-- | rust/src/goal_trigger.rs | 30 | ||||
-rw-r--r-- | rust/src/lib.rs | 2 |
3 files changed, 32 insertions, 1 deletions
diff --git a/rust/src/game.rs b/rust/src/game.rs index ece5a54..7004f96 100644 --- a/rust/src/game.rs +++ b/rust/src/game.rs @@ -41,6 +41,5 @@ impl Game { // This function will be called in every frame #[export] unsafe fn _process(&self, _owner: &Spatial, delta: f64) { - godot_print!("Inside {} _process(), delta is {}", self.name, delta); } } diff --git a/rust/src/goal_trigger.rs b/rust/src/goal_trigger.rs new file mode 100644 index 0000000..457eb7b --- /dev/null +++ b/rust/src/goal_trigger.rs @@ -0,0 +1,30 @@ +use gdnative::api::*; +use gdnative::prelude::*; +use gdnative::core_types::VariantArray; +use gdnative::object::*; + +/// The SpinningCube "class" +#[derive(NativeClass)] +#[inherit(Node)] +pub struct GoalTriggerZone { + level_loader: Option<Ref<Node>>, +} + +#[methods] +impl GoalTriggerZone { + fn new(_owner: &Node) -> Self { + GoalTriggerZone { + level_loader: None, + } + } + + #[export] + unsafe fn _ready(&mut self, owner: &Node) { + // TODO get loader + } + + #[export] + fn overlap(&mut self, owner: &Node) { + godot_print!("OVERLAPPED"); + } +} diff --git a/rust/src/lib.rs b/rust/src/lib.rs index 534955f..401b668 100644 --- a/rust/src/lib.rs +++ b/rust/src/lib.rs @@ -5,6 +5,7 @@ mod buff_phase; mod buff_trait; mod buff_ball; mod buff_extra; +pub mod goal_trigger; use gdnative::prelude::{godot_init, InitHandle}; @@ -12,6 +13,7 @@ use gdnative::prelude::{godot_init, InitHandle}; fn init(handle: InitHandle) { handle.add_class::<game::Game>(); handle.add_class::<spinning_cube::SpinningCube>(); + handle.add_class::<goal_trigger::GoalTriggerZone>(); } // macros that create the entry-points of the dynamic library. |