aboutsummaryrefslogtreecommitdiffstats
path: root/rust
diff options
context:
space:
mode:
Diffstat (limited to 'rust')
-rw-r--r--rust/src/game.rs1
-rw-r--r--rust/src/goal_trigger.rs30
-rw-r--r--rust/src/lib.rs2
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.