Compare commits

...

2 Commits

Author SHA1 Message Date
29ddd128c6
docs: document more stuff and better 2024-08-29 17:59:46 +03:00
514e80c1a0
feat: enable docs building 2024-08-29 17:44:40 +03:00
10 changed files with 31 additions and 3 deletions

View File

@ -2,7 +2,7 @@ extends Node2D
func _ready() -> void:
for flock in get_children():
for i in 100: spawnBoid(flock)
for i in 1000: spawnBoid(flock)
func spawnBoid(flock: Flock2D) -> void:
var boid: Boid2D = preload("../example_boid.tscn").instantiate()

16
rust/Cargo.lock generated
View File

@ -164,6 +164,7 @@ version = "0.1.3"
source = "git+https://github.com/godot-rust/gdext?branch=master#7634fe769d1fcb66209586f0b6c06aac40978253"
dependencies = [
"godot-bindings",
"markdown",
"proc-macro2",
"quote",
"venial",
@ -197,6 +198,15 @@ version = "0.2.158"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
[[package]]
name = "markdown"
version = "1.0.0-alpha.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "911a8325e6fb87b89890cd4529a2ab34c2669c026279e61c26b7140a3d821ccb"
dependencies = [
"unicode-id",
]
[[package]]
name = "memchr"
version = "2.7.4"
@ -308,6 +318,12 @@ dependencies = [
"unicode-ident",
]
[[package]]
name = "unicode-id"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1b6def86329695390197b82c1e244a54a131ceb66c996f2088a3876e2ae083f"
[[package]]
name = "unicode-ident"
version = "1.0.12"

View File

@ -10,7 +10,7 @@ crate-type = ["cdylib"]
stats = []
[dependencies]
godot = { git = "https://github.com/godot-rust/gdext", branch = "master", features = ["api-4-3", "experimental-threads"] }
godot = { git = "https://github.com/godot-rust/gdext", branch = "master", features = ["api-4-3", "experimental-threads", "register-docs"] }
glam = { version = "0.28", features = ["fast-math"] }
rayon = { version = "1.10" }
rustc-hash = "2"

View File

@ -5,6 +5,8 @@ use crate::{BoidProperties, Flock2D};
#[derive(GodotClass)]
#[class(init, base=Node2D)]
/// A 2D boid.
/// Doesn't do anything on it's own, must be a child of a `Flock2D`.
pub struct Boid2D {
#[export]
/// The properties of this boid.

View File

@ -5,6 +5,8 @@ use crate::{to_glam_vec, BoidProperties, Flock3D};
#[derive(GodotClass)]
#[class(init, base=Node3D)]
/// A 3D boid.
/// Doesn't do anything on it's own, must be a child of a `Flock3D`.
pub struct Boid3D {
#[export]
/// The properties of this boid.

View File

@ -2,6 +2,7 @@ use godot::prelude::*;
#[derive(Default, Clone, Debug, GodotClass)]
#[class(tool, init, base=Resource)]
/// Properties for a 2D/3D boid.
pub struct BoidProperties {
#[export]
#[init(val = 4.0)]

View File

@ -7,6 +7,8 @@ use super::Flock;
#[derive(GodotClass)]
#[class(init, base=Node2D)]
/// A flock that holds 2D boids.
/// Adding `Boid2D` as a child of this node will register the boid.
pub struct Flock2D {
#[export]
/// Properties of this flock.
@ -58,6 +60,7 @@ impl INode2D for Flock2D {
impl Flock2D {
#[func]
#[inline(always)]
/// Retrieve the ID of this flock.
pub fn get_id(&self) -> i64 {
self.base().instance_id().to_i64()
}

View File

@ -9,6 +9,8 @@ use super::Flock;
#[derive(GodotClass)]
#[class(init, base=Node3D)]
/// A flock that holds 3D boids.
/// Adding `Boid3D` as a child of this node will register the boid.
pub struct Flock3D {
#[export]
/// Properties of this flock.
@ -60,6 +62,7 @@ impl INode3D for Flock3D {
impl Flock3D {
#[func]
#[inline(always)]
/// Retrieve the ID of this flock.
pub fn get_id(&self) -> i64 {
self.base().instance_id().to_i64()
}

View File

@ -2,6 +2,7 @@ use godot::prelude::*;
#[derive(Default, Clone, Debug, GodotClass)]
#[class(tool, init, base=Resource)]
/// Properties for a 2D/3D flock.
pub struct FlockProperties {
#[export]
#[init(val = 625.0)]

View File

@ -74,7 +74,7 @@ unsafe impl ExtensionLibrary for BoidsExtension {
#[derive(GodotClass)]
#[class(init, base=Node)]
/// Node that will make calls automatically to process 2D/3D boids, providing some configuration options.
/// It's best to use this as an autoload singleton.
/// It's best to use this as an autoload singleton. The plugin will register an autoload by default so you don't have to set this up yourself.
pub struct BoidsProcess {
#[export]
#[init(val = true)]