macro_rules! godot_class {
(
class $name:ident: $owner:ty {
fields {
$(
$(#[$fattr:meta])*
$fname:ident : $fty:ty,
)*
}
setup($builder:ident) $pbody:block
constructor($header:ident) $construct:block
$($tt:tt)*
}
) => { ... };
}Expand description
Convenience macro to declare a native class.
§Example
ⓘ
godot_class! {
class HelloWorld: godot::Node {
fields {
x: f32,
}
setup(builder) {
builder.add_property(
Property {
name: "base/x",
default: 1.0,
hint: PropertyHint::Range {
range: 0.0..1.0,
step: 0.01,
slider: true
},
getter: |this: &mut RustTest| this.x,
setter: |this: &mut RustTest, v| this.x = v,
usage: PropertyUsage::DEFAULT,
}
);
}
constructor(header) {
HelloWorld {
header,
}
}
export fn _ready(&mut self) {
godot_print!("hello, world.");
}
}
}