aboutsummaryrefslogtreecommitdiffstats
path: root/rust/src
diff options
context:
space:
mode:
Diffstat (limited to 'rust/src')
-rw-r--r--rust/src/goal_trigger.rs30
-rw-r--r--rust/src/lib.rs2
2 files changed, 32 insertions, 0 deletions
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 30f4f2a..1be319a 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;
mod test;
mod basic_die;
@@ -14,6 +15,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>();
handle.add_class::<test::SpinningCubeReverse>();
handle.add_class::<basic_die::BasicDie>();
}