[INFO] fetching crate gdnative-bindings-lily 0.9.3... [INFO] testing gdnative-bindings-lily-0.9.3 against try#b83b707f97d809763b7861afa7638871f3339a33 for pr-145838-1 [INFO] extracting crate gdnative-bindings-lily 0.9.3 into /workspace/builds/worker-2-tc2/source [INFO] started tweaking crates.io crate gdnative-bindings-lily 0.9.3 [INFO] finished tweaking crates.io crate gdnative-bindings-lily 0.9.3 [INFO] tweaked toml for crates.io crate gdnative-bindings-lily 0.9.3 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate gdnative-bindings-lily 0.9.3 on toolchain b83b707f97d809763b7861afa7638871f3339a33 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 67 packages to latest compatible versions [INFO] [stderr] Adding bitflags v1.3.2 (available: v2.9.3) [INFO] [stderr] Adding gdnative-core v0.9.3 (available: v0.11.3) [INFO] [stderr] Adding gdnative-sys v0.9.3 (available: v0.11.3) [INFO] [stderr] Adding gdnative_bindings_generator v0.9.3 (available: v0.11.3) [INFO] [stderr] Adding heck v0.3.3 (available: v0.5.0) [INFO] [stderr] Adding mini-internal v0.1.13 (available: v0.1.42) [INFO] [stderr] Adding miniserde v0.1.13 (available: v0.1.42) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1128a44da67fb3148a14855eb7ec869879b4d2191d25ad0f3cc2d675681d37d9 [INFO] running `Command { std: "docker" "start" "-a" "1128a44da67fb3148a14855eb7ec869879b4d2191d25ad0f3cc2d675681d37d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1128a44da67fb3148a14855eb7ec869879b4d2191d25ad0f3cc2d675681d37d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1128a44da67fb3148a14855eb7ec869879b4d2191d25ad0f3cc2d675681d37d9", kill_on_drop: false }` [INFO] [stdout] 1128a44da67fb3148a14855eb7ec869879b4d2191d25ad0f3cc2d675681d37d9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+b83b707f97d809763b7861afa7638871f3339a33" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0f3f6fd74433560d3a72559a0beee6184bd6304fd5b22c52cd5edc304f50ce42 [INFO] running `Command { std: "docker" "start" "-a" "0f3f6fd74433560d3a72559a0beee6184bd6304fd5b22c52cd5edc304f50ce42", kill_on_drop: false }` [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling itoa v0.4.8 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling regex-syntax v0.8.6 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Compiling libloading v0.8.8 [INFO] [stderr] Compiling bindgen v0.56.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling peeking_take_while v0.1.2 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling shlex v0.1.1 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling nom v5.1.3 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling clang-sys v1.8.1 [INFO] [stderr] Compiling xmlparser v0.13.6 [INFO] [stderr] Compiling parking_lot_core v0.8.6 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling ahash v0.7.8 [INFO] [stderr] Compiling roxmltree v0.14.1 [INFO] [stderr] Compiling instant v0.1.13 [INFO] [stderr] Compiling heck v0.3.3 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling unindent v0.1.11 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling hashbrown v0.12.3 [INFO] [stderr] Compiling approx v0.4.0 [INFO] [stderr] Compiling parking_lot v0.11.2 [INFO] [stderr] Compiling euclid v0.22.11 [INFO] [stderr] Compiling regex-automata v0.4.10 [INFO] [stderr] Compiling cexpr v0.4.0 [INFO] [stderr] Compiling regex v1.11.2 [INFO] [stderr] Compiling mini-internal v0.1.13 [INFO] [stderr] Compiling gdnative-impl-proc-macros v0.9.3 [INFO] [stderr] Compiling miniserde v0.1.13 [INFO] [stderr] Compiling gdnative_bindings_generator v0.9.3 [INFO] [stderr] Compiling gdnative-bindings-lily v0.9.3 (/opt/rustwide/workdir) [INFO] [stderr] Compiling gdnative-sys v0.9.3 [INFO] [stderr] Compiling gdnative-core v0.9.3 [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:10:1353 [INFO] [stdout] | [INFO] [stdout] 10 | ...n_camel_case_types)] # [derive (Debug)] pub struct VideoStream { this : RawObject < Self > , } impl VideoStream { } impl gdnative_core... [INFO] [stdout] | ----------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VideoStream` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:64:1307 [INFO] [stdout] | [INFO] [stdout] 64 | ...case_types)] # [derive (Debug)] pub struct Physics2DDirectBodyStateSW { this : RawObject < Self > , } impl Physics2DDirectBodyStateSW ... [INFO] [stdout] | -------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `Physics2DDirectBodyStateSW` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:142:1458 [INFO] [stdout] | [INFO] [stdout] 142 | ...l_case_types)] # [derive (Debug)] pub struct VisualScriptCustomNode { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , ... [INFO] [stdout] | ---------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualScriptCustomNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:202:1450 [INFO] [stdout] | [INFO] [stdout] 202 | ...el_case_types)] # [derive (Debug)] pub struct VisualScriptIndexSet { this : RawObject < Self > , } impl VisualScriptIndexSet { # [doc ... [INFO] [stdout] | -------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualScriptIndexSet` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:214:1309 [INFO] [stdout] | [INFO] [stdout] 214 | ...on_camel_case_types)] # [derive (Debug)] pub struct JavaClass { this : RawObject < Self > , } impl JavaClass { # [doc = "Creates a new... [INFO] [stdout] | --------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `JavaClass` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:232:1516 [INFO] [stdout] | [INFO] [stdout] 232 | ..._case_types)] # [derive (Debug)] pub struct AudioEffectLowShelfFilter { this : RawObject < Self > , } impl AudioEffectLowShelfFilter {... [INFO] [stdout] | ------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioEffectLowShelfFilter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:256:1478 [INFO] [stdout] | [INFO] [stdout] 256 | ...case_types)] # [derive (Debug)] pub struct VisualShaderNodeFaceForward { this : RawObject < Self > , } impl VisualShaderNodeFaceForwar... [INFO] [stdout] | --------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeFaceForward` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:292:1408 [INFO] [stdout] | [INFO] [stdout] 292 | ...el_case_types)] # [derive (Debug)] pub struct ARVRInterfaceGDNative { this : RawObject < Self > , } impl ARVRInterfaceGDNative { # [do... [INFO] [stdout] | --------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `ARVRInterfaceGDNative` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:298:1186 [INFO] [stdout] | [INFO] [stdout] 298 | ...camel_case_types)] # [derive (Debug)] pub struct GlobalConstants { this : RawObject < Self > , } # [doc = "Constants"] # [allow (non_u... [INFO] [stdout] | --------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `GlobalConstants` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:328:1842 [INFO] [stdout] | [INFO] [stdout] 328 | ...n_camel_case_types)] # [derive (Debug)] pub struct HSeparator { this : RawObject < Self > , } impl HSeparator { # [doc = "Creates a ne... [INFO] [stdout] | ---------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `HSeparator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:430:1353 [INFO] [stdout] | [INFO] [stdout] 430 | ...el_case_types)] # [derive (Debug)] pub struct ResourceFormatLoader { this : RawObject < Self > , } impl ResourceFormatLoader { # [doc ... [INFO] [stdout] | -------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `ResourceFormatLoader` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:436:1553 [INFO] [stdout] | [INFO] [stdout] 436 | ...ase_types)] # [derive (Debug)] pub struct VisualShaderNodeScalarSwitch { this : RawObject < Self > , } impl VisualShaderNodeScalarSwit... [INFO] [stdout] | ---------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeScalarSwitch` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:448:1792 [INFO] [stdout] | [INFO] [stdout] 448 | ...n_camel_case_types)] # [derive (Debug)] pub struct ARVRCamera { this : RawObject < Self > , } impl ARVRCamera { # [doc = "Creates a ne... [INFO] [stdout] | ---------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `ARVRCamera` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:472:1434 [INFO] [stdout] | [INFO] [stdout] 472 | ...amel_case_types)] # [derive (Debug)] pub struct VisualScriptSelf { this : RawObject < Self > , } impl VisualScriptSelf { # [doc = "Cre... [INFO] [stdout] | ---------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualScriptSelf` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:508:1874 [INFO] [stdout] | [INFO] [stdout] 508 | ...n_camel_case_types)] # [derive (Debug)] pub struct ToolButton { this : RawObject < Self > , } impl ToolButton { # [doc = "Creates a ne... [INFO] [stdout] | ---------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `ToolButton` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:514:1516 [INFO] [stdout] | [INFO] [stdout] 514 | ..._case_types)] # [derive (Debug)] pub struct AudioEffectHighPassFilter { this : RawObject < Self > , } impl AudioEffectHighPassFilter {... [INFO] [stdout] | ------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioEffectHighPassFilter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:556:1552 [INFO] [stdout] | [INFO] [stdout] 556 | ...case_types)] # [derive (Debug)] pub struct VisualShaderNodeVec3Uniform { this : RawObject < Self > , } impl VisualShaderNodeVec3Unifor... [INFO] [stdout] | --------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeVec3Uniform` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:574:1460 [INFO] [stdout] | [INFO] [stdout] 574 | ...camel_case_types)] # [derive (Debug)] pub struct AudioEffectEQ6 { this : RawObject < Self > , } impl AudioEffectEQ6 { # [doc = "Create... [INFO] [stdout] | -------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioEffectEQ6` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:580:1842 [INFO] [stdout] | [INFO] [stdout] 580 | ...n_camel_case_types)] # [derive (Debug)] pub struct VSeparator { this : RawObject < Self > , } impl VSeparator { # [doc = "Creates a ne... [INFO] [stdout] | ---------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VSeparator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:592:1908 [INFO] [stdout] | [INFO] [stdout] 592 | ..._camel_case_types)] # [derive (Debug)] pub struct HBoxContainer { this : RawObject < Self > , } impl HBoxContainer { # [doc = "Creates... [INFO] [stdout] | ------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `HBoxContainer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:616:1458 [INFO] [stdout] | [INFO] [stdout] 616 | ...l_case_types)] # [derive (Debug)] pub struct VisualScriptExpression { this : RawObject < Self > , } impl VisualScriptExpression { # [d... [INFO] [stdout] | ---------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualScriptExpression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:664:1556 [INFO] [stdout] | [INFO] [stdout] 664 | ...ase_types)] # [derive (Debug)] pub struct VisualShaderNodeColorUniform { this : RawObject < Self > , } impl VisualShaderNodeColorUnifo... [INFO] [stdout] | ---------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeColorUniform` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:700:1520 [INFO] [stdout] | [INFO] [stdout] 700 | ...case_types)] # [derive (Debug)] pub struct AudioEffectBandLimitFilter { this : RawObject < Self > , } impl AudioEffectBandLimitFilter ... [INFO] [stdout] | -------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioEffectBandLimitFilter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:718:1437 [INFO] [stdout] | [INFO] [stdout] 718 | ...mel_case_types)] # [derive (Debug)] pub struct AnimationNodeOutput { this : RawObject < Self > , } impl AnimationNodeOutput { # [doc =... [INFO] [stdout] | ------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AnimationNodeOutput` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:766:1652 [INFO] [stdout] | [INFO] [stdout] 766 | ...se_types)] # [derive (Debug)] pub struct VisualShaderNodeCubeMapUniform { this : RawObject < Self > , } impl VisualShaderNodeCubeMapUn... [INFO] [stdout] | ------------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeCubeMapUniform` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:778:1458 [INFO] [stdout] | [INFO] [stdout] 778 | ...l_case_types)] # [derive (Debug)] pub struct VisualShaderNodeCustom { this : RawObject < Self > , } impl VisualShaderNodeCustom { # [d... [INFO] [stdout] | ---------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeCustom` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:784:1457 [INFO] [stdout] | [INFO] [stdout] 784 | ...ase_types)] # [derive (Debug)] pub struct WebRTCPeerConnectionGDNative { this : RawObject < Self > , } impl WebRTCPeerConnectionGDNati... [INFO] [stdout] | ---------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `WebRTCPeerConnectionGDNative` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:832:1560 [INFO] [stdout] | [INFO] [stdout] 832 | ...ase_types)] # [derive (Debug)] pub struct VisualShaderNodeScalarUniform { this : RawObject < Self > , } impl VisualShaderNodeScalarUni... [INFO] [stdout] | ----------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeScalarUniform` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:880:1470 [INFO] [stdout] | [INFO] [stdout] 880 | ...mel_case_types)] # [derive (Debug)] pub struct EditorImportPlugin { this : RawObject < Self > , } impl EditorImportPlugin { } impl gdn... [INFO] [stdout] | ------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `EditorImportPlugin` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:946:1387 [INFO] [stdout] | [INFO] [stdout] 946 | ...mel_case_types)] # [derive (Debug)] pub struct StreamPeerGDNative { this : RawObject < Self > , } impl StreamPeerGDNative { # [doc = "... [INFO] [stdout] | ------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `StreamPeerGDNative` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:952:1486 [INFO] [stdout] | [INFO] [stdout] 952 | ...ase_types)] # [derive (Debug)] pub struct VisualShaderNodeVectorRefract { this : RawObject < Self > , } impl VisualShaderNodeVectorRef... [INFO] [stdout] | ----------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeVectorRefract` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:970:1522 [INFO] [stdout] | [INFO] [stdout] 970 | ..._case_types)] # [derive (Debug)] pub struct VisualScriptComposeArray { this : RawObject < Self > , } impl VisualScriptComposeArray { #... [INFO] [stdout] | ------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualScriptComposeArray` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:982:1494 [INFO] [stdout] | [INFO] [stdout] 982 | ...se_types)] # [derive (Debug)] pub struct VisualShaderNodeVectorDecompose { this : RawObject < Self > , } impl VisualShaderNodeVectorDe... [INFO] [stdout] | ------------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeVectorDecompose` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1024:1400 [INFO] [stdout] | [INFO] [stdout] 1024 | ...on_camel_case_types)] # [derive (Debug)] pub struct Texture3D { this : RawObject < Self > , } impl Texture3D { # [doc = "Creates a new... [INFO] [stdout] | --------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `Texture3D` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1030:1498 [INFO] [stdout] | [INFO] [stdout] 1030 | ...e_types)] # [derive (Debug)] pub struct VisualShaderNodeScalarSmoothStep { this : RawObject < Self > , } impl VisualShaderNodeScalarSm... [INFO] [stdout] | -------------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeScalarSmoothStep` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1042:1490 [INFO] [stdout] | [INFO] [stdout] 1042 | ...se_types)] # [derive (Debug)] pub struct VisualShaderNodeVectorDistance { this : RawObject < Self > , } impl VisualShaderNodeVectorDis... [INFO] [stdout] | ------------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeVectorDistance` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1096:1495 [INFO] [stdout] | [INFO] [stdout] 1096 | ...l_case_types)] # [derive (Debug)] pub struct EditorSceneImporterFBX { this : RawObject < Self > , } impl EditorSceneImporterFBX { } im... [INFO] [stdout] | ---------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `EditorSceneImporterFBX` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1156:1798 [INFO] [stdout] | [INFO] [stdout] 1156 | ...n_camel_case_types)] # [derive (Debug)] pub struct Position2D { this : RawObject < Self > , } impl Position2D { # [doc = "Creates a ne... [INFO] [stdout] | ---------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `Position2D` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1222:1478 [INFO] [stdout] | [INFO] [stdout] 1222 | ...case_types)] # [derive (Debug)] pub struct VisualShaderNodeScalarClamp { this : RawObject < Self > , } impl VisualShaderNodeScalarClam... [INFO] [stdout] | --------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeScalarClamp` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1234:1572 [INFO] [stdout] | [INFO] [stdout] 1234 | ...e_types)] # [derive (Debug)] pub struct VisualShaderNodeTransformUniform { this : RawObject < Self > , } impl VisualShaderNodeTransfor... [INFO] [stdout] | -------------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeTransformUniform` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1324:1244 [INFO] [stdout] | [INFO] [stdout] 1324 | ...amel_case_types)] # [derive (Debug)] pub struct Physics2DServerSW { this : RawObject < Self > , } impl Physics2DServerSW { } impl gdna... [INFO] [stdout] | ----------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `Physics2DServerSW` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1456:1194 [INFO] [stdout] | [INFO] [stdout] 1456 | ..._camel_case_types)] # [derive (Debug)] pub struct InputDefault { this : RawObject < Self > , } impl InputDefault { } impl gdnative_cor... [INFO] [stdout] | ------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `InputDefault` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1462:1564 [INFO] [stdout] | [INFO] [stdout] 1462 | ...se_types)] # [derive (Debug)] pub struct VisualShaderNodeBooleanUniform { this : RawObject < Self > , } impl VisualShaderNodeBooleanUn... [INFO] [stdout] | ------------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeBooleanUniform` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1474:1446 [INFO] [stdout] | [INFO] [stdout] 1474 | ...mel_case_types)] # [derive (Debug)] pub struct VisualScriptSubCall { this : RawObject < Self > , } impl VisualScriptSubCall { # [doc =... [INFO] [stdout] | ------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualScriptSubCall` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1516:1832 [INFO] [stdout] | [INFO] [stdout] 1516 | ...on_camel_case_types)] # [derive (Debug)] pub struct SpotLight { this : RawObject < Self > , } impl SpotLight { # [doc = "Creates a new... [INFO] [stdout] | --------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `SpotLight` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1522:1522 [INFO] [stdout] | [INFO] [stdout] 1522 | ...ypes)] # [derive (Debug)] pub struct VisualShaderNodeVectorScalarSmoothStep { this : RawObject < Self > , } impl VisualShaderNodeVecto... [INFO] [stdout] | -------------------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeVectorScalarSmoothStep` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1528:1836 [INFO] [stdout] | [INFO] [stdout] 1528 | ...n_camel_case_types)] # [derive (Debug)] pub struct PopupDialog { this : RawObject < Self > , } impl PopupDialog { # [doc = "Creates a ... [INFO] [stdout] | ----------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `PopupDialog` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1564:1688 [INFO] [stdout] | [INFO] [stdout] 1564 | ...ypes)] # [derive (Debug)] pub struct VisualShaderNodeTextureUniformTriplanar { this : RawObject < Self > , } impl VisualShaderNodeText... [INFO] [stdout] | --------------------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeTextureUniformTriplanar` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1582:1906 [INFO] [stdout] | [INFO] [stdout] 1582 | ...n_camel_case_types)] # [derive (Debug)] pub struct CSGCombiner { this : RawObject < Self > , } impl CSGCombiner { # [doc = "Creates a ... [INFO] [stdout] | ----------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `CSGCombiner` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1684:1454 [INFO] [stdout] | [INFO] [stdout] 1684 | ...ase_types)] # [derive (Debug)] pub struct AudioStreamPlaybackResampled { this : RawObject < Self > , } impl AudioStreamPlaybackResampl... [INFO] [stdout] | ---------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioStreamPlaybackResampled` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1726:1872 [INFO] [stdout] | [INFO] [stdout] 1726 | ...camel_case_types)] # [derive (Debug)] pub struct MarginContainer { this : RawObject < Self > , } impl MarginContainer { # [doc = "Crea... [INFO] [stdout] | --------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `MarginContainer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1750:1498 [INFO] [stdout] | [INFO] [stdout] 1750 | ...e_types)] # [derive (Debug)] pub struct VisualShaderNodeVectorScalarStep { this : RawObject < Self > , } impl VisualShaderNodeVectorSc... [INFO] [stdout] | -------------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeVectorScalarStep` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1786:1846 [INFO] [stdout] | [INFO] [stdout] 1786 | ...non_camel_case_types)] # [derive (Debug)] pub struct HSlider { this : RawObject < Self > , } impl HSlider { # [doc = "Creates a new in... [INFO] [stdout] | ------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `HSlider` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1792:1426 [INFO] [stdout] | [INFO] [stdout] 1792 | ...on_camel_case_types)] # [derive (Debug)] pub struct PointMesh { this : RawObject < Self > , } impl PointMesh { # [doc = "Creates a new... [INFO] [stdout] | --------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `PointMesh` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1798:1321 [INFO] [stdout] | [INFO] [stdout] 1798 | ..._camel_case_types)] # [derive (Debug)] pub struct TriangleMesh { this : RawObject < Self > , } impl TriangleMesh { # [doc = "Creates a... [INFO] [stdout] | ------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `TriangleMesh` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1846:1478 [INFO] [stdout] | [INFO] [stdout] 1846 | ...case_types)] # [derive (Debug)] pub struct VisualShaderNodeVectorClamp { this : RawObject < Self > , } impl VisualShaderNodeVectorClam... [INFO] [stdout] | --------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeVectorClamp` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1888:1464 [INFO] [stdout] | [INFO] [stdout] 1888 | ...camel_case_types)] # [derive (Debug)] pub struct AudioEffectEQ10 { this : RawObject < Self > , } impl AudioEffectEQ10 { # [doc = "Crea... [INFO] [stdout] | --------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioEffectEQ10` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1894:1309 [INFO] [stdout] | [INFO] [stdout] 1894 | ...ase_types)] # [derive (Debug)] pub struct BulletPhysicsDirectBodyState { this : RawObject < Self > , } impl BulletPhysicsDirectBodySta... [INFO] [stdout] | ---------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `BulletPhysicsDirectBodyState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:1912:1520 [INFO] [stdout] | [INFO] [stdout] 1912 | ...case_types)] # [derive (Debug)] pub struct AudioEffectHighShelfFilter { this : RawObject < Self > , } impl AudioEffectHighShelfFilter ... [INFO] [stdout] | -------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioEffectHighShelfFilter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2056:1449 [INFO] [stdout] | [INFO] [stdout] 2056 | ...l_case_types)] # [derive (Debug)] pub struct AnimationNodeTimeScale { this : RawObject < Self > , } impl AnimationNodeTimeScale { # [d... [INFO] [stdout] | ---------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AnimationNodeTimeScale` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2074:1771 [INFO] [stdout] | [INFO] [stdout] 2074 | ...(non_camel_case_types)] # [derive (Debug)] pub struct Panel { this : RawObject < Self > , } impl Panel { # [doc = "Creates a new insta... [INFO] [stdout] | ----- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `Panel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2092:1482 [INFO] [stdout] | [INFO] [stdout] 2092 | ...ase_types)] # [derive (Debug)] pub struct VisualShaderNodeVectorInterp { this : RawObject < Self > , } impl VisualShaderNodeVectorInte... [INFO] [stdout] | ---------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeVectorInterp` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2104:1398 [INFO] [stdout] | [INFO] [stdout] 2104 | ..._camel_case_types)] # [derive (Debug)] pub struct StyleBoxEmpty { this : RawObject < Self > , } impl StyleBoxEmpty { # [doc = "Creates... [INFO] [stdout] | ------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `StyleBoxEmpty` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2116:1652 [INFO] [stdout] | [INFO] [stdout] 2116 | ...e_types)] # [derive (Debug)] pub struct VisualShaderNodeGlobalExpression { this : RawObject < Self > , } impl VisualShaderNodeGlobalEx... [INFO] [stdout] | -------------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeGlobalExpression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2122:1506 [INFO] [stdout] | [INFO] [stdout] 2122 | ..._types)] # [derive (Debug)] pub struct VisualShaderNodeTransformDecompose { this : RawObject < Self > , } impl VisualShaderNodeTransfo... [INFO] [stdout] | ---------------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeTransformDecompose` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2128:1365 [INFO] [stdout] | [INFO] [stdout] 2128 | ...camel_case_types)] # [derive (Debug)] pub struct AudioBusLayout { this : RawObject < Self > , } impl AudioBusLayout { # [doc = "Create... [INFO] [stdout] | -------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioBusLayout` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2146:1846 [INFO] [stdout] | [INFO] [stdout] 2146 | ...non_camel_case_types)] # [derive (Debug)] pub struct VSlider { this : RawObject < Self > , } impl VSlider { # [doc = "Creates a new in... [INFO] [stdout] | ------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VSlider` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2170:1293 [INFO] [stdout] | [INFO] [stdout] 2170 | ...camel_case_types)] # [derive (Debug)] pub struct RootMotionView { this : RawObject < Self > , } impl RootMotionView { } impl gdnative_... [INFO] [stdout] | -------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `RootMotionView` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2206:1450 [INFO] [stdout] | [INFO] [stdout] 2206 | ...el_case_types)] # [derive (Debug)] pub struct VisualScriptIndexGet { this : RawObject < Self > , } impl VisualScriptIndexGet { # [doc ... [INFO] [stdout] | -------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualScriptIndexGet` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2218:1462 [INFO] [stdout] | [INFO] [stdout] 2218 | ...l_case_types)] # [derive (Debug)] pub struct VisualShaderNodeFresnel { this : RawObject < Self > , } impl VisualShaderNodeFresnel { # ... [INFO] [stdout] | ----------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeFresnel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2236:1412 [INFO] [stdout] | [INFO] [stdout] 2236 | ..._camel_case_types)] # [derive (Debug)] pub struct TextureArray { this : RawObject < Self > , } impl TextureArray { # [doc = "Creates a... [INFO] [stdout] | ------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `TextureArray` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2248:1353 [INFO] [stdout] | [INFO] [stdout] 2248 | ...n_camel_case_types)] # [derive (Debug)] pub struct AudioEffect { this : RawObject < Self > , } impl AudioEffect { } impl gdnative_core... [INFO] [stdout] | ----------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioEffect` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2272:1349 [INFO] [stdout] | [INFO] [stdout] 2272 | ...mel_case_types)] # [derive (Debug)] pub struct ResourceFormatSaver { this : RawObject < Self > , } impl ResourceFormatSaver { # [doc =... [INFO] [stdout] | ------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `ResourceFormatSaver` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2302:1880 [INFO] [stdout] | [INFO] [stdout] 2302 | ...n_camel_case_types)] # [derive (Debug)] pub struct CheckButton { this : RawObject < Self > , } impl CheckButton { # [doc = "Creates a ... [INFO] [stdout] | ----------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `CheckButton` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2374:1873 [INFO] [stdout] | [INFO] [stdout] 2374 | ...n_camel_case_types)] # [derive (Debug)] pub struct VScrollBar { this : RawObject < Self > , } impl VScrollBar { # [doc = "Creates a ne... [INFO] [stdout] | ---------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VScrollBar` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2386:1862 [INFO] [stdout] | [INFO] [stdout] 2386 | ...on_camel_case_types)] # [derive (Debug)] pub struct CheckBox { this : RawObject < Self > , } impl CheckBox { # [doc = "Creates a new i... [INFO] [stdout] | -------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `CheckBox` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2410:1454 [INFO] [stdout] | [INFO] [stdout] 2410 | ...el_case_types)] # [derive (Debug)] pub struct VisualScriptSceneTree { this : RawObject < Self > , } impl VisualScriptSceneTree { # [do... [INFO] [stdout] | --------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualScriptSceneTree` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2440:1165 [INFO] [stdout] | [INFO] [stdout] 2440 | ...non_camel_case_types)] # [derive (Debug)] pub struct IP_Unix { this : RawObject < Self > , } impl IP_Unix { } impl gdnative_core :: pr... [INFO] [stdout] | ------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `IP_Unix` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2476:1512 [INFO] [stdout] | [INFO] [stdout] 2476 | ..._case_types)] # [derive (Debug)] pub struct AudioEffectLowPassFilter { this : RawObject < Self > , } impl AudioEffectLowPassFilter { #... [INFO] [stdout] | ------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioEffectLowPassFilter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2488:1341 [INFO] [stdout] | [INFO] [stdout] 2488 | ...on_camel_case_types)] # [derive (Debug)] pub struct TextFile { this : RawObject < Self > , } impl TextFile { # [doc = "Creates a new i... [INFO] [stdout] | -------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `TextFile` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2524:1486 [INFO] [stdout] | [INFO] [stdout] 2524 | ...ase_types)] # [derive (Debug)] pub struct VisualShaderNodeVectorCompose { this : RawObject < Self > , } impl VisualShaderNodeVectorCom... [INFO] [stdout] | ----------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeVectorCompose` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2554:1474 [INFO] [stdout] | [INFO] [stdout] 2554 | ...case_types)] # [derive (Debug)] pub struct VisualShaderNodeDotProduct { this : RawObject < Self > , } impl VisualShaderNodeDotProduct ... [INFO] [stdout] | -------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeDotProduct` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2584:1454 [INFO] [stdout] | [INFO] [stdout] 2584 | ...el_case_types)] # [derive (Debug)] pub struct VisualScriptCondition { this : RawObject < Self > , } impl VisualScriptCondition { # [do... [INFO] [stdout] | --------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualScriptCondition` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2614:1450 [INFO] [stdout] | [INFO] [stdout] 2614 | ...el_case_types)] # [derive (Debug)] pub struct VisualScriptIterator { this : RawObject < Self > , } impl VisualScriptIterator { # [doc ... [INFO] [stdout] | -------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualScriptIterator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2632:1458 [INFO] [stdout] | [INFO] [stdout] 2632 | ...se_types)] # [derive (Debug)] pub struct EditorResourceConversionPlugin { this : RawObject < Self > , } impl EditorResourceConversionP... [INFO] [stdout] | ------------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `EditorResourceConversionPlugin` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2638:1464 [INFO] [stdout] | [INFO] [stdout] 2638 | ...camel_case_types)] # [derive (Debug)] pub struct AudioEffectEQ21 { this : RawObject < Self > , } impl AudioEffectEQ21 { # [doc = "Crea... [INFO] [stdout] | --------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioEffectEQ21` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2644:1478 [INFO] [stdout] | [INFO] [stdout] 2644 | ...case_types)] # [derive (Debug)] pub struct VisualShaderNodeDeterminant { this : RawObject < Self > , } impl VisualShaderNodeDeterminan... [INFO] [stdout] | --------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeDeterminant` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2668:1498 [INFO] [stdout] | [INFO] [stdout] 2668 | ...e_types)] # [derive (Debug)] pub struct VisualShaderNodeTransformCompose { this : RawObject < Self > , } impl VisualShaderNodeTransfor... [INFO] [stdout] | -------------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeTransformCompose` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2698:1494 [INFO] [stdout] | [INFO] [stdout] 2698 | ...se_types)] # [derive (Debug)] pub struct VisualShaderNodeVectorScalarMix { this : RawObject < Self > , } impl VisualShaderNodeVectorSc... [INFO] [stdout] | ------------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeVectorScalarMix` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2704:1445 [INFO] [stdout] | [INFO] [stdout] 2704 | ...el_case_types)] # [derive (Debug)] pub struct AnimationNodeTimeSeek { this : RawObject < Self > , } impl AnimationNodeTimeSeek { # [do... [INFO] [stdout] | --------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AnimationNodeTimeSeek` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2740:1482 [INFO] [stdout] | [INFO] [stdout] 2740 | ...ase_types)] # [derive (Debug)] pub struct VisualShaderNodeOuterProduct { this : RawObject < Self > , } impl VisualShaderNodeOuterProdu... [INFO] [stdout] | ---------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeOuterProduct` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2848:1830 [INFO] [stdout] | [INFO] [stdout] 2848 | ...n_camel_case_types)] # [derive (Debug)] pub struct PopupPanel { this : RawObject < Self > , } impl PopupPanel { # [doc = "Creates a ne... [INFO] [stdout] | ---------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `PopupPanel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2884:1498 [INFO] [stdout] | [INFO] [stdout] 2884 | ...e_types)] # [derive (Debug)] pub struct VisualShaderNodeVectorSmoothStep { this : RawObject < Self > , } impl VisualShaderNodeVectorSm... [INFO] [stdout] | -------------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeVectorSmoothStep` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2914:1321 [INFO] [stdout] | [INFO] [stdout] 2914 | ..._camel_case_types)] # [derive (Debug)] pub struct SpatialGizmo { this : RawObject < Self > , } impl SpatialGizmo { } impl gdnative_cor... [INFO] [stdout] | ------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `SpatialGizmo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2920:1429 [INFO] [stdout] | [INFO] [stdout] 2920 | ...amel_case_types)] # [derive (Debug)] pub struct AnimationRootNode { this : RawObject < Self > , } impl AnimationRootNode { # [doc = "C... [INFO] [stdout] | ----------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AnimationRootNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2938:1504 [INFO] [stdout] | [INFO] [stdout] 2938 | ...l_case_types)] # [derive (Debug)] pub struct AudioEffectNotchFilter { this : RawObject < Self > , } impl AudioEffectNotchFilter { # [d... [INFO] [stdout] | ---------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioEffectNotchFilter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2944:1439 [INFO] [stdout] | [INFO] [stdout] 2944 | ...el_case_types)] # [derive (Debug)] pub struct AudioStreamMicrophone { this : RawObject < Self > , } impl AudioStreamMicrophone { # [do... [INFO] [stdout] | --------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioStreamMicrophone` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:2962:1387 [INFO] [stdout] | [INFO] [stdout] 2962 | ...mel_case_types)] # [derive (Debug)] pub struct PacketPeerGDNative { this : RawObject < Self > , } impl PacketPeerGDNative { # [doc = "... [INFO] [stdout] | ------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `PacketPeerGDNative` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3052:1926 [INFO] [stdout] | [INFO] [stdout] 3052 | ...camel_case_types)] # [derive (Debug)] pub struct HSplitContainer { this : RawObject < Self > , } impl HSplitContainer { # [doc = "Crea... [INFO] [stdout] | --------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `HSplitContainer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3070:1450 [INFO] [stdout] | [INFO] [stdout] 3070 | ...el_case_types)] # [derive (Debug)] pub struct VisualScriptFunction { this : RawObject < Self > , } impl VisualScriptFunction { # [doc ... [INFO] [stdout] | -------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualScriptFunction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3172:1873 [INFO] [stdout] | [INFO] [stdout] 3172 | ...n_camel_case_types)] # [derive (Debug)] pub struct HScrollBar { this : RawObject < Self > , } impl HScrollBar { # [doc = "Creates a ne... [INFO] [stdout] | ---------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `HScrollBar` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3262:1516 [INFO] [stdout] | [INFO] [stdout] 3262 | ..._case_types)] # [derive (Debug)] pub struct AudioEffectBandPassFilter { this : RawObject < Self > , } impl AudioEffectBandPassFilter {... [INFO] [stdout] | ------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioEffectBandPassFilter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3292:1349 [INFO] [stdout] | [INFO] [stdout] 3292 | ...mel_case_types)] # [derive (Debug)] pub struct AudioEffectInstance { this : RawObject < Self > , } impl AudioEffectInstance { } impl g... [INFO] [stdout] | ------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioEffectInstance` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3346:1458 [INFO] [stdout] | [INFO] [stdout] 3346 | ...l_case_types)] # [derive (Debug)] pub struct VisualShaderNodeSwitch { this : RawObject < Self > , } impl VisualShaderNodeSwitch { # [d... [INFO] [stdout] | ---------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeSwitch` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3352:1365 [INFO] [stdout] | [INFO] [stdout] 3352 | ...camel_case_types)] # [derive (Debug)] pub struct RichTextEffect { this : RawObject < Self > , } impl RichTextEffect { # [doc = "Create... [INFO] [stdout] | -------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `RichTextEffect` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3364:1458 [INFO] [stdout] | [INFO] [stdout] 3364 | ...l_case_types)] # [derive (Debug)] pub struct VisualShaderNodeOutput { this : RawObject < Self > , } impl VisualShaderNodeOutput { } im... [INFO] [stdout] | ---------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeOutput` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3376:1438 [INFO] [stdout] | [INFO] [stdout] 3376 | ...amel_case_types)] # [derive (Debug)] pub struct VisualScriptWhile { this : RawObject < Self > , } impl VisualScriptWhile { # [doc = "C... [INFO] [stdout] | ----------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualScriptWhile` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3430:1349 [INFO] [stdout] | [INFO] [stdout] 3430 | ...mel_case_types)] # [derive (Debug)] pub struct AudioStreamPlayback { this : RawObject < Self > , } impl AudioStreamPlayback { } impl g... [INFO] [stdout] | ------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AudioStreamPlayback` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3454:1258 [INFO] [stdout] | [INFO] [stdout] 3454 | ...on_camel_case_types)] # [derive (Debug)] pub struct Separator { this : RawObject < Self > , } impl Separator { } impl gdnative_core ::... [INFO] [stdout] | --------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `Separator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3460:1908 [INFO] [stdout] | [INFO] [stdout] 3460 | ..._camel_case_types)] # [derive (Debug)] pub struct VBoxContainer { this : RawObject < Self > , } impl VBoxContainer { # [doc = "Creates... [INFO] [stdout] | ------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VBoxContainer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3508:1926 [INFO] [stdout] | [INFO] [stdout] 3508 | ...camel_case_types)] # [derive (Debug)] pub struct VSplitContainer { this : RawObject < Self > , } impl VSplitContainer { # [doc = "Crea... [INFO] [stdout] | --------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VSplitContainer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3538:1866 [INFO] [stdout] | [INFO] [stdout] 3538 | ...camel_case_types)] # [derive (Debug)] pub struct PanelContainer { this : RawObject < Self > , } impl PanelContainer { # [doc = "Create... [INFO] [stdout] | -------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `PanelContainer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3550:1470 [INFO] [stdout] | [INFO] [stdout] 3550 | ..._case_types)] # [derive (Debug)] pub struct VisualShaderNodeVectorLen { this : RawObject < Self > , } impl VisualShaderNodeVectorLen {... [INFO] [stdout] | ------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeVectorLen` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3556:1490 [INFO] [stdout] | [INFO] [stdout] 3556 | ...l_case_types)] # [derive (Debug)] pub struct MultiplayerPeerGDNative { this : RawObject < Self > , } impl MultiplayerPeerGDNative { # ... [INFO] [stdout] | ----------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `MultiplayerPeerGDNative` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3586:1707 [INFO] [stdout] | [INFO] [stdout] 3586 | ..._camel_case_types)] # [derive (Debug)] pub struct JNISingleton { this : RawObject < Self > , } impl JNISingleton { # [doc = "Creates a... [INFO] [stdout] | ------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `JNISingleton` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3616:1246 [INFO] [stdout] | [INFO] [stdout] 3616 | ...mel_case_types)] # [derive (Debug)] pub struct BulletPhysicsServer { this : RawObject < Self > , } impl BulletPhysicsServer { } impl g... [INFO] [stdout] | ------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `BulletPhysicsServer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3658:1442 [INFO] [stdout] | [INFO] [stdout] 3658 | ...mel_case_types)] # [derive (Debug)] pub struct VisualScriptSwitch { this : RawObject < Self > , } impl VisualScriptSwitch { # [doc = "... [INFO] [stdout] | ------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualScriptSwitch` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3670:1458 [INFO] [stdout] | [INFO] [stdout] 3670 | ...se_types)] # [derive (Debug)] pub struct EditorResourcePreviewGenerator { this : RawObject < Self > , } impl EditorResourcePreviewGene... [INFO] [stdout] | ------------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `EditorResourcePreviewGenerator` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3676:1442 [INFO] [stdout] | [INFO] [stdout] 3676 | ...mel_case_types)] # [derive (Debug)] pub struct VisualShaderNodeIf { this : RawObject < Self > , } impl VisualShaderNodeIf { # [doc = "... [INFO] [stdout] | ------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeIf` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3712:1760 [INFO] [stdout] | [INFO] [stdout] 3712 | ...n_camel_case_types)] # [derive (Debug)] pub struct Position3D { this : RawObject < Self > , } impl Position3D { # [doc = "Creates a ne... [INFO] [stdout] | ---------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `Position3D` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3718:1477 [INFO] [stdout] | [INFO] [stdout] 3718 | ..._case_types)] # [derive (Debug)] pub struct WebRTCDataChannelGDNative { this : RawObject < Self > , } impl WebRTCDataChannelGDNative {... [INFO] [stdout] | ------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `WebRTCDataChannelGDNative` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3730:1337 [INFO] [stdout] | [INFO] [stdout] 3730 | ...amel_case_types)] # [derive (Debug)] pub struct ResourceImporter { this : RawObject < Self > , } impl ResourceImporter { } impl gdnati... [INFO] [stdout] | ---------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `ResourceImporter` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3760:1482 [INFO] [stdout] | [INFO] [stdout] 3760 | ...ase_types)] # [derive (Debug)] pub struct VisualShaderNodeScalarInterp { this : RawObject < Self > , } impl VisualShaderNodeScalarInte... [INFO] [stdout] | ---------------------------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `VisualShaderNodeScalarInterp` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `this` is never read [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:3784:1434 [INFO] [stdout] | [INFO] [stdout] 3784 | ..._case_types)] # [derive (Debug)] pub struct AnimationTrackEditPlugin { this : RawObject < Self > , } impl AnimationTrackEditPlugin { }... [INFO] [stdout] | ------------------------ ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = note: `AnimationTrackEditPlugin` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:4:5143 [INFO] [stdout] | [INFO] [stdout] 4 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 4 | # [doc = "`core class GradientTexture` inherits `Texture` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_gradienttexture.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nGradientTexture inherits methods from:\n - [Texture](struct.Texture.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct GradientTexture { this : RawObject < Self > , } impl GradientTexture { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = GradientTextureMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "The [Gradient] that will be used to fill the texture."] # [doc = ""] # [inline] pub fn gradient (& self) -> Option < Ref < crate :: generated :: gradient :: Gradient , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = GradientTextureMethodTable :: get (get_api ()) . get_gradient ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: gradient :: Gradient , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "The [Gradient] that will be used to fill the texture."] # [doc = ""] # [inline] pub fn set_gradient (& self , gradient : impl AsArg < crate :: generated :: gradient :: Gradient >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GradientTextureMethodTable :: get (get_api ()) . set_gradient ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , gradient . as_arg_ptr ()) ; } } # [doc = "The number of color samples that will be obtained from the [Gradient]."] # [doc = ""] # [inline] pub fn set_width (& self , width : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GradientTextureMethodTable :: get (get_api ()) . set_width ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , width) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for GradientTexture { } unsafe impl GodotObject for GradientTexture { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "GradientTexture" } } impl std :: ops :: Deref for GradientTexture { type Target = crate :: generated :: texture :: Texture ; # [inline] fn deref (& self) -> & crate :: generated :: texture :: Texture { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for GradientTexture { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: texture :: Texture { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: texture :: Texture > for GradientTexture { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for GradientTexture { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for GradientTexture { } unsafe impl SubClass < crate :: generated :: object :: Object > for GradientTexture { } impl Instanciable for GradientTexture { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { GradientTexture :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct GradientTextureMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_gradient : * mut sys :: godot_method_bind , pub set_gradient : * mut sys :: godot_method_bind , pub set_width : * mut sys :: godot_method_bind } impl GradientTextureMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : GradientTextureMethodTable = GradientTextureMethodTable { class_constructor : None , get_gradient : 0 as * mut sys :: godot_method_bind , set_gradient : 0 as * mut sys :: godot_method_bind , set_width : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { GradientTextureMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "GradientTexture\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_gradient = (gd_api . godot_method_bind_get_method) (class_name , "get_gradient\0" . as_ptr () as * const c_char) ; table . set_gradient = (gd_api . godot_method_bind_get_method) (class_name , "set_gradient\0" . as_ptr () as * const c_char) ; table . set_width = (gd_api . godot_method_bind_get_method) (class_name , "set_width\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:16:4913 [INFO] [stdout] | [INFO] [stdout] 16 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 16 | # [doc = "`core class InputEventMagnifyGesture` inherits `InputEventGesture` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_inputeventmagnifygesture.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nInputEventMagnifyGesture inherits methods from:\n - [InputEventGesture](struct.InputEventGesture.html)\n - [InputEventWithModifiers](struct.InputEventWithModifiers.html)\n - [InputEvent](struct.InputEvent.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct InputEventMagnifyGesture { this : RawObject < Self > , } impl InputEventMagnifyGesture { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = InputEventMagnifyGestureMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = ""] # [doc = ""] # [inline] pub fn factor (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventMagnifyGestureMethodTable :: get (get_api ()) . get_factor ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn set_factor (& self , factor : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventMagnifyGestureMethodTable :: get (get_api ()) . set_factor ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , factor) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for InputEventMagnifyGesture { } unsafe impl GodotObject for InputEventMagnifyGesture { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "InputEventMagnifyGesture" } } impl std :: ops :: Deref for InputEventMagnifyGesture { type Target = crate :: generated :: input_event_gesture :: InputEventGesture ; # [inline] fn deref (& self) -> & crate :: generated :: input_event_gesture :: InputEventGesture { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for InputEventMagnifyGesture { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: input_event_gesture :: InputEventGesture { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: input_event_gesture :: InputEventGesture > for InputEventMagnifyGesture { } unsafe impl SubClass < crate :: generated :: input_event_with_modifiers :: InputEventWithModifiers > for InputEventMagnifyGesture { } unsafe impl SubClass < crate :: generated :: input_event :: InputEvent > for InputEventMagnifyGesture { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for InputEventMagnifyGesture { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for InputEventMagnifyGesture { } unsafe impl SubClass < crate :: generated :: object :: Object > for InputEventMagnifyGesture { } impl Instanciable for InputEventMagnifyGesture { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { InputEventMagnifyGesture :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct InputEventMagnifyGestureMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_factor : * mut sys :: godot_method_bind , pub set_factor : * mut sys :: godot_method_bind } impl InputEventMagnifyGestureMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : InputEventMagnifyGestureMethodTable = InputEventMagnifyGestureMethodTable { class_constructor : None , get_factor : 0 as * mut sys :: godot_method_bind , set_factor : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { InputEventMagnifyGestureMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "InputEventMagnifyGesture\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_factor = (gd_api . godot_method_bind_get_method) (class_name , "get_factor\0" . as_ptr () as * const c_char) ; table . set_factor = (gd_api . godot_method_bind_get_method) (class_name , "set_factor\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:22:8426 [INFO] [stdout] | [INFO] [stdout] 22 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 22 | # [doc = "`core class Shape2D` inherits `Resource` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_shape2d.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nShape2D inherits methods from:\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct Shape2D { this : RawObject < Self > , } impl Shape2D { # [doc = "Returns `true` if this shape is colliding with another.\nThis method needs the transformation matrix for this shape (`local_xform`), the shape to check collisions with (`with_shape`), and the transformation matrix of that shape (`shape_xform`)."] # [doc = ""] # [inline] pub fn collide (& self , local_xform : Transform2D , with_shape : impl AsArg < crate :: generated :: shape_2d :: Shape2D > , shape_xform : Transform2D) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = Shape2DMethodTable :: get (get_api ()) . collide ; let ret = crate :: icalls :: icallptr_bool_trans2D_obj_trans2D (method_bind , self . this . sys () . as_ptr () , local_xform , with_shape . as_arg_ptr () , shape_xform) ; ret as _ } } # [doc = "Returns a list of the points where this shape touches another. If there are no collisions the list is empty.\nThis method needs the transformation matrix for this shape (`local_xform`), the shape to check collisions with (`with_shape`), and the transformation matrix of that shape (`shape_xform`)."] # [doc = ""] # [inline] pub fn collide_and_get_contacts (& self , local_xform : Transform2D , with_shape : impl AsArg < crate :: generated :: shape_2d :: Shape2D > , shape_xform : Transform2D) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = Shape2DMethodTable :: get (get_api ()) . collide_and_get_contacts ; let ret = crate :: icalls :: icallvar__trans2D_obj_trans2D (method_bind , self . this . sys () . as_ptr () , local_xform , with_shape . as_arg_ptr () , shape_xform) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = "Returns whether this shape would collide with another, if a given movement was applied.\nThis method needs the transformation matrix for this shape (`local_xform`), the movement to test on this shape (`local_motion`), the shape to check collisions with (`with_shape`), the transformation matrix of that shape (`shape_xform`), and the movement to test onto the other object (`shape_motion`)."] # [doc = ""] # [inline] pub fn collide_with_motion (& self , local_xform : Transform2D , local_motion : Vector2 , with_shape : impl AsArg < crate :: generated :: shape_2d :: Shape2D > , shape_xform : Transform2D , shape_motion : Vector2) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = Shape2DMethodTable :: get (get_api ()) . collide_with_motion ; let ret = crate :: icalls :: icallptr_bool_trans2D_vec2_obj_trans2D_vec2 (method_bind , self . this . sys () . as_ptr () , local_xform , local_motion , with_shape . as_arg_ptr () , shape_xform , shape_motion) ; ret as _ } } # [doc = "Returns a list of the points where this shape would touch another, if a given movement was applied. If there are no collisions the list is empty.\nThis method needs the transformation matrix for this shape (`local_xform`), the movement to test on this shape (`local_motion`), the shape to check collisions with (`with_shape`), the transformation matrix of that shape (`shape_xform`), and the movement to test onto the other object (`shape_motion`)."] # [doc = ""] # [inline] pub fn collide_with_motion_and_get_contacts (& self , local_xform : Transform2D , local_motion : Vector2 , with_shape : impl AsArg < crate :: generated :: shape_2d :: Shape2D > , shape_xform : Transform2D , shape_motion : Vector2) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = Shape2DMethodTable :: get (get_api ()) . collide_with_motion_and_get_contacts ; let ret = crate :: icalls :: icallvar__trans2D_vec2_obj_trans2D_vec2 (method_bind , self . this . sys () . as_ptr () , local_xform , local_motion , with_shape . as_arg_ptr () , shape_xform , shape_motion) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = "Draws a solid shape onto a [CanvasItem] with the [VisualServer] API filled with the specified `color`. The exact drawing method is specific for each shape and cannot be configured."] # [doc = ""] # [inline] pub fn draw (& self , canvas_item : Rid , color : Color) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Shape2DMethodTable :: get (get_api ()) . draw ; let ret = crate :: icalls :: icallptr_void_rid_color (method_bind , self . this . sys () . as_ptr () , canvas_item , color) ; } } # [doc = "The shape's custom solver bias."] # [doc = ""] # [inline] pub fn custom_solver_bias (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = Shape2DMethodTable :: get (get_api ()) . get_custom_solver_bias ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The shape's custom solver bias."] # [doc = ""] # [inline] pub fn set_custom_solver_bias (& self , bias : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Shape2DMethodTable :: get (get_api ()) . set_custom_solver_bias ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , bias) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for Shape2D { } unsafe impl GodotObject for Shape2D { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "Shape2D" } } impl std :: ops :: Deref for Shape2D { type Target = crate :: generated :: resource :: Resource ; # [inline] fn deref (& self) -> & crate :: generated :: resource :: Resource { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for Shape2D { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: resource :: Resource { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: resource :: Resource > for Shape2D { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for Shape2D { } unsafe impl SubClass < crate :: generated :: object :: Object > for Shape2D { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct Shape2DMethodTable { pub class_constructor : sys :: godot_class_constructor , pub collide : * mut sys :: godot_method_bind , pub collide_and_get_contacts : * mut sys :: godot_method_bind , pub collide_with_motion : * mut sys :: godot_method_bind , pub collide_with_motion_and_get_contacts : * mut sys :: godot_method_bind , pub draw : * mut sys :: godot_method_bind , pub get_custom_solver_bias : * mut sys :: godot_method_bind , pub set_custom_solver_bias : * mut sys :: godot_method_bind } impl Shape2DMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : Shape2DMethodTable = Shape2DMethodTable { class_constructor : None , collide : 0 as * mut sys :: godot_method_bind , collide_and_get_contacts : 0 as * mut sys :: godot_method_bind , collide_with_motion : 0 as * mut sys :: godot_method_bind , collide_with_motion_and_get_contacts : 0 as * mut sys :: godot_method_bind , draw : 0 as * mut sys :: godot_method_bind , get_custom_solver_bias : 0 as * mut sys :: godot_method_bind , set_custom_solver_bias : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { Shape2DMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "Shape2D\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . collide = (gd_api . godot_method_bind_get_method) (class_name , "collide\0" . as_ptr () as * const c_char) ; table . collide_and_get_contacts = (gd_api . godot_method_bind_get_method) (class_name , "collide_and_get_contacts\0" . as_ptr () as * const c_char) ; table . collide_with_motion = (gd_api . godot_method_bind_get_method) (class_name , "collide_with_motion\0" . as_ptr () as * const c_char) ; table . collide_with_motion_and_get_contacts = (gd_api . godot_method_bind_get_method) (class_name , "collide_with_motion_and_get_contacts\0" . as_ptr () as * const c_char) ; table . draw = (gd_api . godot_method_bind_get_method) (class_name , "draw\0" . as_ptr () as * const c_char) ; table . get_custom_solver_bias = (gd_api . godot_method_bind_get_method) (class_name , "get_custom_solver_bias\0" . as_ptr () as * const c_char) ; table . set_custom_solver_bias = (gd_api . godot_method_bind_get_method) (class_name , "set_custom_solver_bias\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:28:8112 [INFO] [stdout] | [INFO] [stdout] 28 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 28 | # [doc = "`core class InterpolatedCamera` inherits `Camera` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_interpolatedcamera.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`InterpolatedCamera` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nInterpolatedCamera inherits methods from:\n - [Camera](struct.Camera.html)\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct InterpolatedCamera { this : RawObject < Self > , } impl InterpolatedCamera { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = InterpolatedCameraMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "How quickly the camera moves toward its target. Higher values will result in tighter camera motion."] # [doc = ""] # [inline] pub fn speed (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = InterpolatedCameraMethodTable :: get (get_api ()) . get_speed ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The target's [NodePath]."] # [doc = ""] # [inline] pub fn target_path (& self) -> NodePath { unsafe { let method_bind : * mut sys :: godot_method_bind = InterpolatedCameraMethodTable :: get (get_api ()) . get_target_path ; let ret = crate :: icalls :: icallptr_nodepath (method_bind , self . this . sys () . as_ptr ()) ; NodePath :: from_sys (ret) } } # [doc = "If `true`, and a target is set, the camera will move automatically."] # [doc = ""] # [inline] pub fn is_interpolation_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = InterpolatedCameraMethodTable :: get (get_api ()) . is_interpolation_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, and a target is set, the camera will move automatically."] # [doc = ""] # [inline] pub fn set_interpolation_enabled (& self , target_path : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = InterpolatedCameraMethodTable :: get (get_api ()) . set_interpolation_enabled ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , target_path) ; } } # [doc = "How quickly the camera moves toward its target. Higher values will result in tighter camera motion."] # [doc = ""] # [inline] pub fn set_speed (& self , speed : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = InterpolatedCameraMethodTable :: get (get_api ()) . set_speed ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , speed) ; } } # [doc = "Sets the node to move toward and orient with."] # [doc = ""] # [inline] pub fn set_target (& self , target : impl AsArg < crate :: generated :: object :: Object >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = InterpolatedCameraMethodTable :: get (get_api ()) . set_target ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , target . as_arg_ptr ()) ; } } # [doc = "The target's [NodePath]."] # [doc = ""] # [inline] pub fn set_target_path (& self , target_path : impl Into < NodePath >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = InterpolatedCameraMethodTable :: get (get_api ()) . set_target_path ; let ret = crate :: icalls :: icallptr_void_nodepath (method_bind , self . this . sys () . as_ptr () , target_path . into ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for InterpolatedCamera { } unsafe impl GodotObject for InterpolatedCamera { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "InterpolatedCamera" } } impl QueueFree for InterpolatedCamera { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for InterpolatedCamera { type Target = crate :: generated :: camera :: Camera ; # [inline] fn deref (& self) -> & crate :: generated :: camera :: Camera { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for InterpolatedCamera { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: camera :: Camera { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: camera :: Camera > for InterpolatedCamera { } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for InterpolatedCamera { } unsafe impl SubClass < crate :: generated :: node :: Node > for InterpolatedCamera { } unsafe impl SubClass < crate :: generated :: object :: Object > for InterpolatedCamera { } impl Instanciable for InterpolatedCamera { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { InterpolatedCamera :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct InterpolatedCameraMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_speed : * mut sys :: godot_method_bind , pub get_target_path : * mut sys :: godot_method_bind , pub is_interpolation_enabled : * mut sys :: godot_method_bind , pub set_interpolation_enabled : * mut sys :: godot_method_bind , pub set_speed : * mut sys :: godot_method_bind , pub set_target : * mut sys :: godot_method_bind , pub set_target_path : * mut sys :: godot_method_bind } impl InterpolatedCameraMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : InterpolatedCameraMethodTable = InterpolatedCameraMethodTable { class_constructor : None , get_speed : 0 as * mut sys :: godot_method_bind , get_target_path : 0 as * mut sys :: godot_method_bind , is_interpolation_enabled : 0 as * mut sys :: godot_method_bind , set_interpolation_enabled : 0 as * mut sys :: godot_method_bind , set_speed : 0 as * mut sys :: godot_method_bind , set_target : 0 as * mut sys :: godot_method_bind , set_target_path : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { InterpolatedCameraMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "InterpolatedCamera\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_speed = (gd_api . godot_method_bind_get_method) (class_name , "get_speed\0" . as_ptr () as * const c_char) ; table . get_target_path = (gd_api . godot_method_bind_get_method) (class_name , "get_target_path\0" . as_ptr () as * const c_char) ; table . is_interpolation_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_interpolation_enabled\0" . as_ptr () as * const c_char) ; table . set_interpolation_enabled = (gd_api . godot_method_bind_get_method) (class_name , "set_interpolation_enabled\0" . as_ptr () as * const c_char) ; table . set_speed = (gd_api . godot_method_bind_get_method) (class_name , "set_speed\0" . as_ptr () as * const c_char) ; table . set_target = (gd_api . godot_method_bind_get_method) (class_name , "set_target\0" . as_ptr () as * const c_char) ; table . set_target_path = (gd_api . godot_method_bind_get_method) (class_name , "set_target_path\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:34:5159 [INFO] [stdout] | [INFO] [stdout] 34 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 34 | # [doc = "`core class PCKPacker` inherits `Reference` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_pckpacker.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nPCKPacker inherits methods from:\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct PCKPacker { this : RawObject < Self > , } impl PCKPacker { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = PCKPackerMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Adds the `source_path` file to the current PCK package at the `pck_path` internal path (should start with `res://`)."] # [doc = ""] # [inline] pub fn add_file (& self , pck_path : impl Into < GodotString > , source_path : impl Into < GodotString >) -> GodotResult { unsafe { let method_bind : * mut sys :: godot_method_bind = PCKPackerMethodTable :: get (get_api ()) . add_file ; let ret = crate :: icalls :: icallptr_i64_str_str (method_bind , self . this . sys () . as_ptr () , pck_path . into () , source_path . into ()) ; GodotError :: result_from_sys (ret as _) } } # [doc = "Writes the files specified using all [method add_file] calls since the last flush. If `verbose` is `true`, a list of files added will be printed to the console for easier debugging.\n# Default Arguments\n* `verbose` - `false`"] # [doc = ""] # [inline] pub fn flush (& self , verbose : bool) -> GodotResult { unsafe { let method_bind : * mut sys :: godot_method_bind = PCKPackerMethodTable :: get (get_api ()) . flush ; let ret = crate :: icalls :: icallptr_i64_bool (method_bind , self . this . sys () . as_ptr () , verbose) ; GodotError :: result_from_sys (ret as _) } } # [doc = "Creates a new PCK file with the name `pck_name`. The `.pck` file extension isn't added automatically, so it should be part of `pck_name` (even though it's not required).\n# Default Arguments\n* `alignment` - `0`"] # [doc = ""] # [inline] pub fn pck_start (& self , pck_name : impl Into < GodotString > , alignment : i64) -> GodotResult { unsafe { let method_bind : * mut sys :: godot_method_bind = PCKPackerMethodTable :: get (get_api ()) . pck_start ; let ret = crate :: icalls :: icallptr_i64_str_i64 (method_bind , self . this . sys () . as_ptr () , pck_name . into () , alignment) ; GodotError :: result_from_sys (ret as _) } } } impl gdnative_core :: private :: godot_object :: Sealed for PCKPacker { } unsafe impl GodotObject for PCKPacker { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "PCKPacker" } } impl std :: ops :: Deref for PCKPacker { type Target = crate :: generated :: reference :: Reference ; # [inline] fn deref (& self) -> & crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for PCKPacker { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: reference :: Reference > for PCKPacker { } unsafe impl SubClass < crate :: generated :: object :: Object > for PCKPacker { } impl Instanciable for PCKPacker { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { PCKPacker :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct PCKPackerMethodTable { pub class_constructor : sys :: godot_class_constructor , pub add_file : * mut sys :: godot_method_bind , pub flush : * mut sys :: godot_method_bind , pub pck_start : * mut sys :: godot_method_bind } impl PCKPackerMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : PCKPackerMethodTable = PCKPackerMethodTable { class_constructor : None , add_file : 0 as * mut sys :: godot_method_bind , flush : 0 as * mut sys :: godot_method_bind , pck_start : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { PCKPackerMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "PCKPacker\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . add_file = (gd_api . godot_method_bind_get_method) (class_name , "add_file\0" . as_ptr () as * const c_char) ; table . flush = (gd_api . godot_method_bind_get_method) (class_name , "flush\0" . as_ptr () as * const c_char) ; table . pck_start = (gd_api . godot_method_bind_get_method) (class_name , "pck_start\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:40:8153 [INFO] [stdout] | [INFO] [stdout] 40 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 40 | # [doc = "`core class VisualInstance` inherits `Spatial` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_visualinstance.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = ""] # [doc = "\n## Class hierarchy\n\nVisualInstance inherits methods from:\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct VisualInstance { this : RawObject < Self > , } impl VisualInstance { # [doc = "Returns the [AABB] (also known as the bounding box) for this [VisualInstance]. See also [method get_transformed_aabb]."] # [doc = ""] # [inline] pub fn get_aabb (& self) -> Aabb { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualInstanceMethodTable :: get (get_api ()) . get_aabb ; let ret = crate :: icalls :: icallptr_aabb (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Returns the RID of the resource associated with this [VisualInstance]. For example, if the Node is a [MeshInstance], this will return the RID of the associated [Mesh]."] # [doc = ""] # [inline] pub fn get_base (& self) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualInstanceMethodTable :: get (get_api ()) . get_base ; let ret = crate :: icalls :: icallptr_rid (method_bind , self . this . sys () . as_ptr ()) ; Rid :: from_sys (ret) } } # [doc = "Returns the RID of this instance. This RID is the same as the RID returned by [method VisualServer.instance_create]. This RID is needed if you want to call [VisualServer] functions directly on this [VisualInstance]."] # [doc = ""] # [inline] pub fn get_instance (& self) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualInstanceMethodTable :: get (get_api ()) . get_instance ; let ret = crate :: icalls :: icallptr_rid (method_bind , self . this . sys () . as_ptr ()) ; Rid :: from_sys (ret) } } # [doc = "The render layer(s) this [VisualInstance] is drawn on.\nThis object will only be visible for [Camera]s whose cull mask includes the render object this [VisualInstance] is set to."] # [doc = ""] # [inline] pub fn layer_mask (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualInstanceMethodTable :: get (get_api ()) . get_layer_mask ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` when the specified layer is enabled in [member layers] and `false` otherwise."] # [doc = ""] # [inline] pub fn get_layer_mask_bit (& self , layer : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualInstanceMethodTable :: get (get_api ()) . get_layer_mask_bit ; let ret = crate :: icalls :: icallptr_bool_i64 (method_bind , self . this . sys () . as_ptr () , layer) ; ret as _ } } # [doc = "Returns the transformed [AABB] (also known as the bounding box) for this [VisualInstance].\nTransformed in this case means the [AABB] plus the position, rotation, and scale of the [Spatial]'s [Transform]. See also [method get_aabb]."] # [doc = ""] # [inline] pub fn get_transformed_aabb (& self) -> Aabb { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualInstanceMethodTable :: get (get_api ()) . get_transformed_aabb ; let ret = crate :: icalls :: icallptr_aabb (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Sets the resource that is instantiated by this [VisualInstance], which changes how the engine handles the [VisualInstance] under the hood. Equivalent to [method VisualServer.instance_set_base]."] # [doc = ""] # [inline] pub fn set_base (& self , base : Rid) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualInstanceMethodTable :: get (get_api ()) . set_base ; let ret = crate :: icalls :: icallptr_void_rid (method_bind , self . this . sys () . as_ptr () , base) ; } } # [doc = "The render layer(s) this [VisualInstance] is drawn on.\nThis object will only be visible for [Camera]s whose cull mask includes the render object this [VisualInstance] is set to."] # [doc = ""] # [inline] pub fn set_layer_mask (& self , mask : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualInstanceMethodTable :: get (get_api ()) . set_layer_mask ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , mask) ; } } # [doc = "Enables a particular layer in [member layers]."] # [doc = ""] # [inline] pub fn set_layer_mask_bit (& self , layer : i64 , enabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualInstanceMethodTable :: get (get_api ()) . set_layer_mask_bit ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , layer , enabled) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for VisualInstance { } unsafe impl GodotObject for VisualInstance { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "VisualInstance" } } impl QueueFree for VisualInstance { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for VisualInstance { type Target = crate :: generated :: spatial :: Spatial ; # [inline] fn deref (& self) -> & crate :: generated :: spatial :: Spatial { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for VisualInstance { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: spatial :: Spatial { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for VisualInstance { } unsafe impl SubClass < crate :: generated :: node :: Node > for VisualInstance { } unsafe impl SubClass < crate :: generated :: object :: Object > for VisualInstance { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct VisualInstanceMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_aabb : * mut sys :: godot_method_bind , pub get_base : * mut sys :: godot_method_bind , pub get_instance : * mut sys :: godot_method_bind , pub get_layer_mask : * mut sys :: godot_method_bind , pub get_layer_mask_bit : * mut sys :: godot_method_bind , pub get_transformed_aabb : * mut sys :: godot_method_bind , pub set_base : * mut sys :: godot_method_bind , pub set_layer_mask : * mut sys :: godot_method_bind , pub set_layer_mask_bit : * mut sys :: godot_method_bind } impl VisualInstanceMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : VisualInstanceMethodTable = VisualInstanceMethodTable { class_constructor : None , get_aabb : 0 as * mut sys :: godot_method_bind , get_base : 0 as * mut sys :: godot_method_bind , get_instance : 0 as * mut sys :: godot_method_bind , get_layer_mask : 0 as * mut sys :: godot_method_bind , get_layer_mask_bit : 0 as * mut sys :: godot_method_bind , get_transformed_aabb : 0 as * mut sys :: godot_method_bind , set_base : 0 as * mut sys :: godot_method_bind , set_layer_mask : 0 as * mut sys :: godot_method_bind , set_layer_mask_bit : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { VisualInstanceMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "VisualInstance\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_aabb = (gd_api . godot_method_bind_get_method) (class_name , "get_aabb\0" . as_ptr () as * const c_char) ; table . get_base = (gd_api . godot_method_bind_get_method) (class_name , "get_base\0" . as_ptr () as * const c_char) ; table . get_instance = (gd_api . godot_method_bind_get_method) (class_name , "get_instance\0" . as_ptr () as * const c_char) ; table . get_layer_mask = (gd_api . godot_method_bind_get_method) (class_name , "get_layer_mask\0" . as_ptr () as * const c_char) ; table . get_layer_mask_bit = (gd_api . godot_method_bind_get_method) (class_name , "get_layer_mask_bit\0" . as_ptr () as * const c_char) ; table . get_transformed_aabb = (gd_api . godot_method_bind_get_method) (class_name , "get_transformed_aabb\0" . as_ptr () as * const c_char) ; table . set_base = (gd_api . godot_method_bind_get_method) (class_name , "set_base\0" . as_ptr () as * const c_char) ; table . set_layer_mask = (gd_api . godot_method_bind_get_method) (class_name , "set_layer_mask\0" . as_ptr () as * const c_char) ; table . set_layer_mask_bit = (gd_api . godot_method_bind_get_method) (class_name , "set_layer_mask_bit\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:46:17190 [INFO] [stdout] | [INFO] [stdout] 46 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 46 | # [doc = "`core class GeometryInstance` inherits `VisualInstance` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_geometryinstance.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = ""] # [doc = "\n## Class hierarchy\n\nGeometryInstance inherits methods from:\n - [VisualInstance](struct.VisualInstance.html)\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct GeometryInstance { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct Flags (pub i64) ; impl Flags { pub const USE_BAKED_LIGHT : Flags = Flags (0i64) ; pub const DRAW_NEXT_FRAME_IF_VISIBLE : Flags = Flags (1i64) ; pub const MAX : Flags = Flags (2i64) ; } impl From < i64 > for Flags { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < Flags > for i64 { # [inline] fn from (v : Flags) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct LightmapScale (pub i64) ; impl LightmapScale { pub const _1X : LightmapScale = LightmapScale (0i64) ; pub const _2X : LightmapScale = LightmapScale (1i64) ; pub const _4X : LightmapScale = LightmapScale (2i64) ; pub const _8X : LightmapScale = LightmapScale (3i64) ; pub const MAX : LightmapScale = LightmapScale (4i64) ; } impl From < i64 > for LightmapScale { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < LightmapScale > for i64 { # [inline] fn from (v : LightmapScale) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct ShadowCastingSetting (pub i64) ; impl ShadowCastingSetting { pub const OFF : ShadowCastingSetting = ShadowCastingSetting (0i64) ; pub const ON : ShadowCastingSetting = ShadowCastingSetting (1i64) ; pub const DOUBLE_SIDED : ShadowCastingSetting = ShadowCastingSetting (2i64) ; pub const SHADOWS_ONLY : ShadowCastingSetting = ShadowCastingSetting (3i64) ; } impl From < i64 > for ShadowCastingSetting { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < ShadowCastingSetting > for i64 { # [inline] fn from (v : ShadowCastingSetting) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl GeometryInstance { pub const FLAG_DRAW_NEXT_FRAME_IF_VISIBLE : i64 = 1i64 ; pub const FLAG_MAX : i64 = 2i64 ; pub const FLAG_USE_BAKED_LIGHT : i64 = 0i64 ; pub const LIGHTMAP_SCALE_1X : i64 = 0i64 ; pub const LIGHTMAP_SCALE_2X : i64 = 1i64 ; pub const LIGHTMAP_SCALE_4X : i64 = 2i64 ; pub const LIGHTMAP_SCALE_8X : i64 = 3i64 ; pub const LIGHTMAP_SCALE_MAX : i64 = 4i64 ; pub const SHADOW_CASTING_SETTING_DOUBLE_SIDED : i64 = 2i64 ; pub const SHADOW_CASTING_SETTING_OFF : i64 = 0i64 ; pub const SHADOW_CASTING_SETTING_ON : i64 = 1i64 ; pub const SHADOW_CASTING_SETTING_SHADOWS_ONLY : i64 = 3i64 ; } impl GeometryInstance { # [doc = "The selected shadow casting flag. See [enum ShadowCastingSetting] for possible values."] # [doc = ""] # [inline] pub fn cast_shadows_setting (& self) -> crate :: generated :: geometry_instance :: ShadowCastingSetting { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . get_cast_shadows_setting ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: geometry_instance :: ShadowCastingSetting (ret) } } # [doc = "The extra distance added to the GeometryInstance's bounding box ([AABB]) to increase its cull box."] # [doc = ""] # [inline] pub fn extra_cull_margin (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . get_extra_cull_margin ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, this GeometryInstance will be used when baking lights using a [GIProbe] or [BakedLightmap]."] # [doc = ""] # [inline] pub fn flag (& self , flag : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . get_flag ; let ret = crate :: icalls :: icallptr_bool_i64 (method_bind , self . this . sys () . as_ptr () , flag) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn generate_lightmap (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . get_generate_lightmap ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn lightmap_scale (& self) -> crate :: generated :: geometry_instance :: LightmapScale { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . get_lightmap_scale ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: geometry_instance :: LightmapScale (ret) } } # [doc = "The GeometryInstance's max LOD distance.\n**Note:** This property currently has no effect."] # [doc = ""] # [inline] pub fn lod_max_distance (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . get_lod_max_distance ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The GeometryInstance's max LOD margin.\n**Note:** This property currently has no effect."] # [doc = ""] # [inline] pub fn lod_max_hysteresis (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . get_lod_max_hysteresis ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The GeometryInstance's min LOD distance.\n**Note:** This property currently has no effect."] # [doc = ""] # [inline] pub fn lod_min_distance (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . get_lod_min_distance ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The GeometryInstance's min LOD margin.\n**Note:** This property currently has no effect."] # [doc = ""] # [inline] pub fn lod_min_hysteresis (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . get_lod_min_hysteresis ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The material override for the whole geometry.\nIf a material is assigned to this property, it will be used instead of any material set in any material slot of the mesh."] # [doc = ""] # [inline] pub fn material_override (& self) -> Option < Ref < crate :: generated :: material :: Material , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . get_material_override ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: material :: Material , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "The selected shadow casting flag. See [enum ShadowCastingSetting] for possible values."] # [doc = ""] # [inline] pub fn set_cast_shadows_setting (& self , shadow_casting_setting : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . set_cast_shadows_setting ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , shadow_casting_setting) ; } } # [doc = "Overrides the bounding box of this node with a custom one. To remove it, set an [AABB] with all fields set to zero."] # [doc = ""] # [inline] pub fn set_custom_aabb (& self , aabb : Aabb) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . set_custom_aabb ; let ret = crate :: icalls :: icallptr_void_aabb (method_bind , self . this . sys () . as_ptr () , aabb) ; } } # [doc = "The extra distance added to the GeometryInstance's bounding box ([AABB]) to increase its cull box."] # [doc = ""] # [inline] pub fn set_extra_cull_margin (& self , margin : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . set_extra_cull_margin ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , margin) ; } } # [doc = "If `true`, this GeometryInstance will be used when baking lights using a [GIProbe] or [BakedLightmap]."] # [doc = ""] # [inline] pub fn set_flag (& self , flag : i64 , value : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . set_flag ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , flag , value) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_generate_lightmap (& self , enabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . set_generate_lightmap ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enabled) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_lightmap_scale (& self , scale : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . set_lightmap_scale ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , scale) ; } } # [doc = "The GeometryInstance's max LOD distance.\n**Note:** This property currently has no effect."] # [doc = ""] # [inline] pub fn set_lod_max_distance (& self , mode : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . set_lod_max_distance ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , mode) ; } } # [doc = "The GeometryInstance's max LOD margin.\n**Note:** This property currently has no effect."] # [doc = ""] # [inline] pub fn set_lod_max_hysteresis (& self , mode : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . set_lod_max_hysteresis ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , mode) ; } } # [doc = "The GeometryInstance's min LOD distance.\n**Note:** This property currently has no effect."] # [doc = ""] # [inline] pub fn set_lod_min_distance (& self , mode : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . set_lod_min_distance ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , mode) ; } } # [doc = "The GeometryInstance's min LOD margin.\n**Note:** This property currently has no effect."] # [doc = ""] # [inline] pub fn set_lod_min_hysteresis (& self , mode : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . set_lod_min_hysteresis ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , mode) ; } } # [doc = "The material override for the whole geometry.\nIf a material is assigned to this property, it will be used instead of any material set in any material slot of the mesh."] # [doc = ""] # [inline] pub fn set_material_override (& self , material : impl AsArg < crate :: generated :: material :: Material >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GeometryInstanceMethodTable :: get (get_api ()) . set_material_override ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , material . as_arg_ptr ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for GeometryInstance { } unsafe impl GodotObject for GeometryInstance { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "GeometryInstance" } } impl QueueFree for GeometryInstance { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for GeometryInstance { type Target = crate :: generated :: visual_instance :: VisualInstance ; # [inline] fn deref (& self) -> & crate :: generated :: visual_instance :: VisualInstance { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for GeometryInstance { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: visual_instance :: VisualInstance { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: visual_instance :: VisualInstance > for GeometryInstance { } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for GeometryInstance { } unsafe impl SubClass < crate :: generated :: node :: Node > for GeometryInstance { } unsafe impl SubClass < crate :: generated :: object :: Object > for GeometryInstance { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct GeometryInstanceMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_cast_shadows_setting : * mut sys :: godot_method_bind , pub get_extra_cull_margin : * mut sys :: godot_method_bind , pub get_flag : * mut sys :: godot_method_bind , pub get_generate_lightmap : * mut sys :: godot_method_bind , pub get_lightmap_scale : * mut sys :: godot_method_bind , pub get_lod_max_distance : * mut sys :: godot_method_bind , pub get_lod_max_hysteresis : * mut sys :: godot_method_bind , pub get_lod_min_distance : * mut sys :: godot_method_bind , pub get_lod_min_hysteresis : * mut sys :: godot_method_bind , pub get_material_override : * mut sys :: godot_method_bind , pub set_cast_shadows_setting : * mut sys :: godot_method_bind , pub set_custom_aabb : * mut sys :: godot_method_bind , pub set_extra_cull_margin : * mut sys :: godot_method_bind , pub set_flag : * mut sys :: godot_method_bind , pub set_generate_lightmap : * mut sys :: godot_method_bind , pub set_lightmap_scale : * mut sys :: godot_method_bind , pub set_lod_max_distance : * mut sys :: godot_method_bind , pub set_lod_max_hysteresis : * mut sys :: godot_method_bind , pub set_lod_min_distance : * mut sys :: godot_method_bind , pub set_lod_min_hysteresis : * mut sys :: godot_method_bind , pub set_material_override : * mut sys :: godot_method_bind } impl GeometryInstanceMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : GeometryInstanceMethodTable = GeometryInstanceMethodTable { class_constructor : None , get_cast_shadows_setting : 0 as * mut sys :: godot_method_bind , get_extra_cull_margin : 0 as * mut sys :: godot_method_bind , get_flag : 0 as * mut sys :: godot_method_bind , get_generate_lightmap : 0 as * mut sys :: godot_method_bind , get_lightmap_scale : 0 as * mut sys :: godot_method_bind , get_lod_max_distance : 0 as * mut sys :: godot_method_bind , get_lod_max_hysteresis : 0 as * mut sys :: godot_method_bind , get_lod_min_distance : 0 as * mut sys :: godot_method_bind , get_lod_min_hysteresis : 0 as * mut sys :: godot_method_bind , get_material_override : 0 as * mut sys :: godot_method_bind , set_cast_shadows_setting : 0 as * mut sys :: godot_method_bind , set_custom_aabb : 0 as * mut sys :: godot_method_bind , set_extra_cull_margin : 0 as * mut sys :: godot_method_bind , set_flag : 0 as * mut sys :: godot_method_bind , set_generate_lightmap : 0 as * mut sys :: godot_method_bind , set_lightmap_scale : 0 as * mut sys :: godot_method_bind , set_lod_max_distance : 0 as * mut sys :: godot_method_bind , set_lod_max_hysteresis : 0 as * mut sys :: godot_method_bind , set_lod_min_distance : 0 as * mut sys :: godot_method_bind , set_lod_min_hysteresis : 0 as * mut sys :: godot_method_bind , set_material_override : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { GeometryInstanceMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "GeometryInstance\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_cast_shadows_setting = (gd_api . godot_method_bind_get_method) (class_name , "get_cast_shadows_setting\0" . as_ptr () as * const c_char) ; table . get_extra_cull_margin = (gd_api . godot_method_bind_get_method) (class_name , "get_extra_cull_margin\0" . as_ptr () as * const c_char) ; table . get_flag = (gd_api . godot_method_bind_get_method) (class_name , "get_flag\0" . as_ptr () as * const c_char) ; table . get_generate_lightmap = (gd_api . godot_method_bind_get_method) (class_name , "get_generate_lightmap\0" . as_ptr () as * const c_char) ; table . get_lightmap_scale = (gd_api . godot_method_bind_get_method) (class_name , "get_lightmap_scale\0" . as_ptr () as * const c_char) ; table . get_lod_max_distance = (gd_api . godot_method_bind_get_method) (class_name , "get_lod_max_distance\0" . as_ptr () as * const c_char) ; table . get_lod_max_hysteresis = (gd_api . godot_method_bind_get_method) (class_name , "get_lod_max_hysteresis\0" . as_ptr () as * const c_char) ; table . get_lod_min_distance = (gd_api . godot_method_bind_get_method) (class_name , "get_lod_min_distance\0" . as_ptr () as * const c_char) ; table . get_lod_min_hysteresis = (gd_api . godot_method_bind_get_method) (class_name , "get_lod_min_hysteresis\0" . as_ptr () as * const c_char) ; table . get_material_override = (gd_api . godot_method_bind_get_method) (class_name , "get_material_override\0" . as_ptr () as * const c_char) ; table . set_cast_shadows_setting = (gd_api . godot_method_bind_get_method) (class_name , "set_cast_shadows_setting\0" . as_ptr () as * const c_char) ; table . set_custom_aabb = (gd_api . godot_method_bind_get_method) (class_name , "set_custom_aabb\0" . as_ptr () as * const c_char) ; table . set_extra_cull_margin = (gd_api . godot_method_bind_get_method) (class_name , "set_extra_cull_margin\0" . as_ptr () as * const c_char) ; table . set_flag = (gd_api . godot_method_bind_get_method) (class_name , "set_flag\0" . as_ptr () as * const c_char) ; table . set_generate_lightmap = (gd_api . godot_method_bind_get_method) (class_name , "set_generate_lightmap\0" . as_ptr () as * const c_char) ; table . set_lightmap_scale = (gd_api . godot_method_bind_get_method) (class_name , "set_lightmap_scale\0" . as_ptr () as * const c_char) ; table . set_lod_max_distance = (gd_api . godot_method_bind_get_method) (class_name , "set_lod_max_distance\0" . as_ptr () as * const c_char) ; table . set_lod_max_hysteresis = (gd_api . godot_method_bind_get_method) (class_name , "set_lod_max_hysteresis\0" . as_ptr () as * const c_char) ; table . set_lod_min_distance = (gd_api . godot_method_bind_get_method) (class_name , "set_lod_min_distance\0" . as_ptr () as * const c_char) ; table . set_lod_min_hysteresis = (gd_api . godot_method_bind_get_method) (class_name , "set_lod_min_hysteresis\0" . as_ptr () as * const c_char) ; table . set_material_override = (gd_api . godot_method_bind_get_method) (class_name , "set_material_override\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:52:7732 [INFO] [stdout] | [INFO] [stdout] 52 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 52 | # [doc = "`core class ParallaxLayer` inherits `Node2D` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_parallaxlayer.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`ParallaxLayer` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nParallaxLayer inherits methods from:\n - [Node2D](struct.Node2D.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct ParallaxLayer { this : RawObject < Self > , } impl ParallaxLayer { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = ParallaxLayerMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "The ParallaxLayer's [Texture] mirroring. Useful for creating an infinite scrolling background. If an axis is set to `0`, the [Texture] will not be mirrored."] # [doc = ""] # [inline] pub fn mirroring (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = ParallaxLayerMethodTable :: get (get_api ()) . get_mirroring ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "The ParallaxLayer's offset relative to the parent ParallaxBackground's [member ParallaxBackground.scroll_offset]."] # [doc = ""] # [inline] pub fn motion_offset (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = ParallaxLayerMethodTable :: get (get_api ()) . get_motion_offset ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Multiplies the ParallaxLayer's motion. If an axis is set to `0`, it will not scroll."] # [doc = ""] # [inline] pub fn motion_scale (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = ParallaxLayerMethodTable :: get (get_api ()) . get_motion_scale ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "The ParallaxLayer's [Texture] mirroring. Useful for creating an infinite scrolling background. If an axis is set to `0`, the [Texture] will not be mirrored."] # [doc = ""] # [inline] pub fn set_mirroring (& self , mirror : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ParallaxLayerMethodTable :: get (get_api ()) . set_mirroring ; let ret = crate :: icalls :: icallptr_void_vec2 (method_bind , self . this . sys () . as_ptr () , mirror) ; } } # [doc = "The ParallaxLayer's offset relative to the parent ParallaxBackground's [member ParallaxBackground.scroll_offset]."] # [doc = ""] # [inline] pub fn set_motion_offset (& self , offset : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ParallaxLayerMethodTable :: get (get_api ()) . set_motion_offset ; let ret = crate :: icalls :: icallptr_void_vec2 (method_bind , self . this . sys () . as_ptr () , offset) ; } } # [doc = "Multiplies the ParallaxLayer's motion. If an axis is set to `0`, it will not scroll."] # [doc = ""] # [inline] pub fn set_motion_scale (& self , scale : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ParallaxLayerMethodTable :: get (get_api ()) . set_motion_scale ; let ret = crate :: icalls :: icallptr_void_vec2 (method_bind , self . this . sys () . as_ptr () , scale) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for ParallaxLayer { } unsafe impl GodotObject for ParallaxLayer { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "ParallaxLayer" } } impl QueueFree for ParallaxLayer { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for ParallaxLayer { type Target = crate :: generated :: node_2d :: Node2D ; # [inline] fn deref (& self) -> & crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for ParallaxLayer { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: node_2d :: Node2D > for ParallaxLayer { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for ParallaxLayer { } unsafe impl SubClass < crate :: generated :: node :: Node > for ParallaxLayer { } unsafe impl SubClass < crate :: generated :: object :: Object > for ParallaxLayer { } impl Instanciable for ParallaxLayer { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { ParallaxLayer :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct ParallaxLayerMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_mirroring : * mut sys :: godot_method_bind , pub get_motion_offset : * mut sys :: godot_method_bind , pub get_motion_scale : * mut sys :: godot_method_bind , pub set_mirroring : * mut sys :: godot_method_bind , pub set_motion_offset : * mut sys :: godot_method_bind , pub set_motion_scale : * mut sys :: godot_method_bind } impl ParallaxLayerMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : ParallaxLayerMethodTable = ParallaxLayerMethodTable { class_constructor : None , get_mirroring : 0 as * mut sys :: godot_method_bind , get_motion_offset : 0 as * mut sys :: godot_method_bind , get_motion_scale : 0 as * mut sys :: godot_method_bind , set_mirroring : 0 as * mut sys :: godot_method_bind , set_motion_offset : 0 as * mut sys :: godot_method_bind , set_motion_scale : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { ParallaxLayerMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "ParallaxLayer\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_mirroring = (gd_api . godot_method_bind_get_method) (class_name , "get_mirroring\0" . as_ptr () as * const c_char) ; table . get_motion_offset = (gd_api . godot_method_bind_get_method) (class_name , "get_motion_offset\0" . as_ptr () as * const c_char) ; table . get_motion_scale = (gd_api . godot_method_bind_get_method) (class_name , "get_motion_scale\0" . as_ptr () as * const c_char) ; table . set_mirroring = (gd_api . godot_method_bind_get_method) (class_name , "set_mirroring\0" . as_ptr () as * const c_char) ; table . set_motion_offset = (gd_api . godot_method_bind_get_method) (class_name , "set_motion_offset\0" . as_ptr () as * const c_char) ; table . set_motion_scale = (gd_api . godot_method_bind_get_method) (class_name , "set_motion_scale\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:58:21646 [INFO] [stdout] | [INFO] [stdout] 58 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 58 | # [doc = "`core class GraphEdit` inherits `Control` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_graphedit.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`GraphEdit` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nGraphEdit inherits methods from:\n - [Control](struct.Control.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct GraphEdit { this : RawObject < Self > , } impl GraphEdit { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = GraphEditMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Makes possible the connection between two different slot types. The type is defined with the [method GraphNode.set_slot] method."] # [doc = ""] # [inline] pub fn add_valid_connection_type (& self , from_type : i64 , to_type : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . add_valid_connection_type ; let ret = crate :: icalls :: icallptr_void_i64_i64 (method_bind , self . this . sys () . as_ptr () , from_type , to_type) ; } } # [doc = "Makes possible to disconnect nodes when dragging from the slot at the left if it has the specified type."] # [doc = ""] # [inline] pub fn add_valid_left_disconnect_type (& self , _type : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . add_valid_left_disconnect_type ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , _type) ; } } # [doc = "Makes possible to disconnect nodes when dragging from the slot at the right if it has the specified type."] # [doc = ""] # [inline] pub fn add_valid_right_disconnect_type (& self , _type : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . add_valid_right_disconnect_type ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , _type) ; } } # [doc = "Removes all connections between nodes."] # [doc = ""] # [inline] pub fn clear_connections (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . clear_connections ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Create a connection between the `from_port` slot of the `from` GraphNode and the `to_port` slot of the `to` GraphNode. If the connection already exists, no connection is created."] # [doc = ""] # [inline] pub fn connect_node (& self , from : impl Into < GodotString > , from_port : i64 , to : impl Into < GodotString > , to_port : i64) -> GodotResult { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . connect_node ; let ret = crate :: icalls :: icallptr_i64_str_i64_str_i64 (method_bind , self . this . sys () . as_ptr () , from . into () , from_port , to . into () , to_port) ; GodotError :: result_from_sys (ret as _) } } # [doc = "Removes the connection between the `from_port` slot of the `from` GraphNode and the `to_port` slot of the `to` GraphNode. If the connection does not exist, no connection is removed."] # [doc = ""] # [inline] pub fn disconnect_node (& self , from : impl Into < GodotString > , from_port : i64 , to : impl Into < GodotString > , to_port : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . disconnect_node ; let ret = crate :: icalls :: icallptr_void_str_i64_str_i64 (method_bind , self . this . sys () . as_ptr () , from . into () , from_port , to . into () , to_port) ; } } # [doc = "Returns an Array containing the list of connections. A connection consists in a structure of the form `{ from_port: 0, from: \"GraphNode name 0\", to_port: 1, to: \"GraphNode name 1\" }`."] # [doc = ""] # [inline] pub fn get_connection_list (& self) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . get_connection_list ; let ret = crate :: icalls :: icallvar_ (method_bind , self . this . sys () . as_ptr ()) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = ""] # [doc = ""] # [inline] pub fn minimap_opacity (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . get_minimap_opacity ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn minimap_size (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . get_minimap_size ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "The scroll offset."] # [doc = ""] # [inline] pub fn scroll_ofs (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . get_scroll_ofs ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "The snapping distance in pixels."] # [doc = ""] # [inline] pub fn snap (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . get_snap ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The current zoom value."] # [doc = ""] # [inline] pub fn zoom (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . get_zoom ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Gets the [HBoxContainer] that contains the zooming and grid snap controls in the top left of the graph.\nWarning: The intended usage of this function is to allow you to reposition or add your own custom controls to the container. This is an internal control and as such should not be freed. If you wish to hide this or any of it's children use their [member CanvasItem.visible] property instead."] # [doc = ""] # [inline] pub fn get_zoom_hbox (& self) -> Option < Ref < crate :: generated :: hbox_container :: HBoxContainer , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . get_zoom_hbox ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: hbox_container :: HBoxContainer , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = ""] # [doc = ""] # [inline] pub fn is_minimap_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . is_minimap_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the `from_port` slot of the `from` GraphNode is connected to the `to_port` slot of the `to` GraphNode."] # [doc = ""] # [inline] pub fn is_node_connected (& self , from : impl Into < GodotString > , from_port : i64 , to : impl Into < GodotString > , to_port : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . is_node_connected ; let ret = crate :: icalls :: icallptr_bool_str_i64_str_i64 (method_bind , self . this . sys () . as_ptr () , from . into () , from_port , to . into () , to_port) ; ret as _ } } # [doc = "If `true`, enables disconnection of existing connections in the GraphEdit by dragging the right end."] # [doc = ""] # [inline] pub fn is_right_disconnects_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . is_right_disconnects_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, enables snapping."] # [doc = ""] # [inline] pub fn is_using_snap (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . is_using_snap ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns whether it's possible to connect slots of the specified types."] # [doc = ""] # [inline] pub fn is_valid_connection_type (& self , from_type : i64 , to_type : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . is_valid_connection_type ; let ret = crate :: icalls :: icallptr_bool_i64_i64 (method_bind , self . this . sys () . as_ptr () , from_type , to_type) ; ret as _ } } # [doc = "Makes it not possible to connect between two different slot types. The type is defined with the [method GraphNode.set_slot] method."] # [doc = ""] # [inline] pub fn remove_valid_connection_type (& self , from_type : i64 , to_type : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . remove_valid_connection_type ; let ret = crate :: icalls :: icallptr_void_i64_i64 (method_bind , self . this . sys () . as_ptr () , from_type , to_type) ; } } # [doc = "Removes the possibility to disconnect nodes when dragging from the slot at the left if it has the specified type."] # [doc = ""] # [inline] pub fn remove_valid_left_disconnect_type (& self , _type : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . remove_valid_left_disconnect_type ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , _type) ; } } # [doc = "Removes the possibility to disconnect nodes when dragging from the slot at the right if it has the specified type."] # [doc = ""] # [inline] pub fn remove_valid_right_disconnect_type (& self , _type : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . remove_valid_right_disconnect_type ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , _type) ; } } # [doc = "Sets the coloration of the connection between `from`'s `from_port` and `to`'s `to_port` with the color provided in the `activity` theme property."] # [doc = ""] # [inline] pub fn set_connection_activity (& self , from : impl Into < GodotString > , from_port : i64 , to : impl Into < GodotString > , to_port : i64 , amount : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . set_connection_activity ; let ret = crate :: icalls :: icallptr_void_str_i64_str_i64_f64 (method_bind , self . this . sys () . as_ptr () , from . into () , from_port , to . into () , to_port , amount) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_minimap_enabled (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . set_minimap_enabled ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_minimap_opacity (& self , p_opacity : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . set_minimap_opacity ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , p_opacity) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_minimap_size (& self , p_size : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . set_minimap_size ; let ret = crate :: icalls :: icallptr_void_vec2 (method_bind , self . this . sys () . as_ptr () , p_size) ; } } # [doc = "If `true`, enables disconnection of existing connections in the GraphEdit by dragging the right end."] # [doc = ""] # [inline] pub fn set_right_disconnects (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . set_right_disconnects ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "The scroll offset."] # [doc = ""] # [inline] pub fn set_scroll_ofs (& self , ofs : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . set_scroll_ofs ; let ret = crate :: icalls :: icallptr_void_vec2 (method_bind , self . this . sys () . as_ptr () , ofs) ; } } # [doc = "Sets the specified `node` as the one selected."] # [doc = ""] # [inline] pub fn set_selected (& self , node : impl AsArg < crate :: generated :: node :: Node >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . set_selected ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , node . as_arg_ptr ()) ; } } # [doc = "The snapping distance in pixels."] # [doc = ""] # [inline] pub fn set_snap (& self , pixels : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . set_snap ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , pixels) ; } } # [doc = "If `true`, enables snapping."] # [doc = ""] # [inline] pub fn set_use_snap (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . set_use_snap ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "The current zoom value."] # [doc = ""] # [inline] pub fn set_zoom (& self , p_zoom : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = GraphEditMethodTable :: get (get_api ()) . set_zoom ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , p_zoom) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for GraphEdit { } unsafe impl GodotObject for GraphEdit { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "GraphEdit" } } impl QueueFree for GraphEdit { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for GraphEdit { type Target = crate :: generated :: control :: Control ; # [inline] fn deref (& self) -> & crate :: generated :: control :: Control { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for GraphEdit { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: control :: Control { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: control :: Control > for GraphEdit { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for GraphEdit { } unsafe impl SubClass < crate :: generated :: node :: Node > for GraphEdit { } unsafe impl SubClass < crate :: generated :: object :: Object > for GraphEdit { } impl Instanciable for GraphEdit { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { GraphEdit :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct GraphEditMethodTable { pub class_constructor : sys :: godot_class_constructor , pub add_valid_connection_type : * mut sys :: godot_method_bind , pub add_valid_left_disconnect_type : * mut sys :: godot_method_bind , pub add_valid_right_disconnect_type : * mut sys :: godot_method_bind , pub clear_connections : * mut sys :: godot_method_bind , pub connect_node : * mut sys :: godot_method_bind , pub disconnect_node : * mut sys :: godot_method_bind , pub get_connection_list : * mut sys :: godot_method_bind , pub get_minimap_opacity : * mut sys :: godot_method_bind , pub get_minimap_size : * mut sys :: godot_method_bind , pub get_scroll_ofs : * mut sys :: godot_method_bind , pub get_snap : * mut sys :: godot_method_bind , pub get_zoom : * mut sys :: godot_method_bind , pub get_zoom_hbox : * mut sys :: godot_method_bind , pub is_minimap_enabled : * mut sys :: godot_method_bind , pub is_node_connected : * mut sys :: godot_method_bind , pub is_right_disconnects_enabled : * mut sys :: godot_method_bind , pub is_using_snap : * mut sys :: godot_method_bind , pub is_valid_connection_type : * mut sys :: godot_method_bind , pub remove_valid_connection_type : * mut sys :: godot_method_bind , pub remove_valid_left_disconnect_type : * mut sys :: godot_method_bind , pub remove_valid_right_disconnect_type : * mut sys :: godot_method_bind , pub set_connection_activity : * mut sys :: godot_method_bind , pub set_minimap_enabled : * mut sys :: godot_method_bind , pub set_minimap_opacity : * mut sys :: godot_method_bind , pub set_minimap_size : * mut sys :: godot_method_bind , pub set_right_disconnects : * mut sys :: godot_method_bind , pub set_scroll_ofs : * mut sys :: godot_method_bind , pub set_selected : * mut sys :: godot_method_bind , pub set_snap : * mut sys :: godot_method_bind , pub set_use_snap : * mut sys :: godot_method_bind , pub set_zoom : * mut sys :: godot_method_bind } impl GraphEditMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : GraphEditMethodTable = GraphEditMethodTable { class_constructor : None , add_valid_connection_type : 0 as * mut sys :: godot_method_bind , add_valid_left_disconnect_type : 0 as * mut sys :: godot_method_bind , add_valid_right_disconnect_type : 0 as * mut sys :: godot_method_bind , clear_connections : 0 as * mut sys :: godot_method_bind , connect_node : 0 as * mut sys :: godot_method_bind , disconnect_node : 0 as * mut sys :: godot_method_bind , get_connection_list : 0 as * mut sys :: godot_method_bind , get_minimap_opacity : 0 as * mut sys :: godot_method_bind , get_minimap_size : 0 as * mut sys :: godot_method_bind , get_scroll_ofs : 0 as * mut sys :: godot_method_bind , get_snap : 0 as * mut sys :: godot_method_bind , get_zoom : 0 as * mut sys :: godot_method_bind , get_zoom_hbox : 0 as * mut sys :: godot_method_bind , is_minimap_enabled : 0 as * mut sys :: godot_method_bind , is_node_connected : 0 as * mut sys :: godot_method_bind , is_right_disconnects_enabled : 0 as * mut sys :: godot_method_bind , is_using_snap : 0 as * mut sys :: godot_method_bind , is_valid_connection_type : 0 as * mut sys :: godot_method_bind , remove_valid_connection_type : 0 as * mut sys :: godot_method_bind , remove_valid_left_disconnect_type : 0 as * mut sys :: godot_method_bind , remove_valid_right_disconnect_type : 0 as * mut sys :: godot_method_bind , set_connection_activity : 0 as * mut sys :: godot_method_bind , set_minimap_enabled : 0 as * mut sys :: godot_method_bind , set_minimap_opacity : 0 as * mut sys :: godot_method_bind , set_minimap_size : 0 as * mut sys :: godot_method_bind , set_right_disconnects : 0 as * mut sys :: godot_method_bind , set_scroll_ofs : 0 as * mut sys :: godot_method_bind , set_selected : 0 as * mut sys :: godot_method_bind , set_snap : 0 as * mut sys :: godot_method_bind , set_use_snap : 0 as * mut sys :: godot_method_bind , set_zoom : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { GraphEditMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "GraphEdit\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . add_valid_connection_type = (gd_api . godot_method_bind_get_method) (class_name , "add_valid_connection_type\0" . as_ptr () as * const c_char) ; table . add_valid_left_disconnect_type = (gd_api . godot_method_bind_get_method) (class_name , "add_valid_left_disconnect_type\0" . as_ptr () as * const c_char) ; table . add_valid_right_disconnect_type = (gd_api . godot_method_bind_get_method) (class_name , "add_valid_right_disconnect_type\0" . as_ptr () as * const c_char) ; table . clear_connections = (gd_api . godot_method_bind_get_method) (class_name , "clear_connections\0" . as_ptr () as * const c_char) ; table . connect_node = (gd_api . godot_method_bind_get_method) (class_name , "connect_node\0" . as_ptr () as * const c_char) ; table . disconnect_node = (gd_api . godot_method_bind_get_method) (class_name , "disconnect_node\0" . as_ptr () as * const c_char) ; table . get_connection_list = (gd_api . godot_method_bind_get_method) (class_name , "get_connection_list\0" . as_ptr () as * const c_char) ; table . get_minimap_opacity = (gd_api . godot_method_bind_get_method) (class_name , "get_minimap_opacity\0" . as_ptr () as * const c_char) ; table . get_minimap_size = (gd_api . godot_method_bind_get_method) (class_name , "get_minimap_size\0" . as_ptr () as * const c_char) ; table . get_scroll_ofs = (gd_api . godot_method_bind_get_method) (class_name , "get_scroll_ofs\0" . as_ptr () as * const c_char) ; table . get_snap = (gd_api . godot_method_bind_get_method) (class_name , "get_snap\0" . as_ptr () as * const c_char) ; table . get_zoom = (gd_api . godot_method_bind_get_method) (class_name , "get_zoom\0" . as_ptr () as * const c_char) ; table . get_zoom_hbox = (gd_api . godot_method_bind_get_method) (class_name , "get_zoom_hbox\0" . as_ptr () as * const c_char) ; table . is_minimap_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_minimap_enabled\0" . as_ptr () as * const c_char) ; table . is_node_connected = (gd_api . godot_method_bind_get_method) (class_name , "is_node_connected\0" . as_ptr () as * const c_char) ; table . is_right_disconnects_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_right_disconnects_enabled\0" . as_ptr () as * const c_char) ; table . is_using_snap = (gd_api . godot_method_bind_get_method) (class_name , "is_using_snap\0" . as_ptr () as * const c_char) ; table . is_valid_connection_type = (gd_api . godot_method_bind_get_method) (class_name , "is_valid_connection_type\0" . as_ptr () as * const c_char) ; table . remove_valid_connection_type = (gd_api . godot_method_bind_get_method) (class_name , "remove_valid_connection_type\0" . as_ptr () as * const c_char) ; table . remove_valid_left_disconnect_type = (gd_api . godot_method_bind_get_method) (class_name , "remove_valid_left_disconnect_type\0" . as_ptr () as * const c_char) ; table . remove_valid_right_disconnect_type = (gd_api . godot_method_bind_get_method) (class_name , "remove_valid_right_disconnect_type\0" . as_ptr () as * const c_char) ; table . set_connection_activity = (gd_api . godot_method_bind_get_method) (class_name , "set_connection_activity\0" . as_ptr () as * const c_char) ; table . set_minimap_enabled = (gd_api . godot_method_bind_get_method) (class_name , "set_minimap_enabled\0" . as_ptr () as * const c_char) ; table . set_minimap_opacity = (gd_api . godot_method_bind_get_method) (class_name , "set_minimap_opacity\0" . as_ptr () as * const c_char) ; table . set_minimap_size = (gd_api . godot_method_bind_get_method) (class_name , "set_minimap_size\0" . as_ptr () as * const c_char) ; table . set_right_disconnects = (gd_api . godot_method_bind_get_method) (class_name , "set_right_disconnects\0" . as_ptr () as * const c_char) ; table . set_scroll_ofs = (gd_api . godot_method_bind_get_method) (class_name , "set_scroll_ofs\0" . as_ptr () as * const c_char) ; table . set_selected = (gd_api . godot_method_bind_get_method) (class_name , "set_selected\0" . as_ptr () as * const c_char) ; table . set_snap = (gd_api . godot_method_bind_get_method) (class_name , "set_snap\0" . as_ptr () as * const c_char) ; table . set_use_snap = (gd_api . godot_method_bind_get_method) (class_name , "set_use_snap\0" . as_ptr () as * const c_char) ; table . set_zoom = (gd_api . godot_method_bind_get_method) (class_name , "set_zoom\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:70:13550 [INFO] [stdout] | [INFO] [stdout] 70 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 70 | # [doc = "`tools class EditorSettings` inherits `Resource` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_editorsettings.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nEditorSettings inherits methods from:\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = "\n## Tool\n\nThis class is used to interact with Godot's editor."] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct EditorSettings { this : RawObject < Self > , } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl EditorSettings { pub const NOTIFICATION_EDITOR_SETTINGS_CHANGED : i64 = 10000i64 ; } impl EditorSettings { # [doc = "_Sample code is GDScript unless otherwise noted._\n\nAdds a custom property info to a property. The dictionary must contain:\n- `name`: [String] (the name of the property)\n- `type`: [int] (see [enum Variant.Type])\n- optionally `hint`: [int] (see [enum PropertyHint]) and `hint_string`: [String]\n**Example:**\n```gdscript\neditor_settings.set(\"category/property_name\", 0)\n\nvar property_info = {\n \"name\": \"category/property_name\",\n \"type\": TYPE_INT,\n \"hint\": PROPERTY_HINT_ENUM,\n \"hint_string\": \"one,two,three\"\n}\n\neditor_settings.add_property_info(property_info)\n```"] # [doc = ""] # [inline] pub fn add_property_info (& self , info : Dictionary) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . add_property_info ; let ret = crate :: icalls :: icallptr_void_dict (method_bind , self . this . sys () . as_ptr () , info) ; } } # [doc = "Erases the setting whose name is specified by `property`."] # [doc = ""] # [inline] pub fn erase (& self , property : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . erase ; let ret = crate :: icalls :: icallptr_void_str (method_bind , self . this . sys () . as_ptr () , property . into ()) ; } } # [doc = "Returns the list of favorite files and directories for this project."] # [doc = ""] # [inline] pub fn get_favorites (& self) -> StringArray { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . get_favorites ; let ret = crate :: icalls :: icallptr_strarr (method_bind , self . this . sys () . as_ptr ()) ; StringArray :: from_sys (ret) } } # [doc = "Returns project-specific metadata for the `section` and `key` specified. If the metadata doesn't exist, `default` will be returned instead. See also [method set_project_metadata].\n# Default Arguments\n* `default` - `null`"] # [doc = ""] # [inline] pub fn get_project_metadata (& self , section : impl Into < GodotString > , key : impl Into < GodotString > , default : impl OwnedToVariant) -> Variant { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . get_project_metadata ; let ret = crate :: icalls :: icallptr_var_str_str_var (method_bind , self . this . sys () . as_ptr () , section . into () , key . into () , default . owned_to_variant ()) ; Variant :: from_sys (ret) } } # [doc = "Returns the project-specific settings path. Projects all have a unique subdirectory inside the settings path where project-specific settings are saved."] # [doc = ""] # [inline] pub fn get_project_settings_dir (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . get_project_settings_dir ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = "Returns the list of recently visited folders in the file dialog for this project."] # [doc = ""] # [inline] pub fn get_recent_dirs (& self) -> StringArray { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . get_recent_dirs ; let ret = crate :: icalls :: icallptr_strarr (method_bind , self . this . sys () . as_ptr ()) ; StringArray :: from_sys (ret) } } # [doc = "Returns the value of the setting specified by `name`. This is equivalent to using [method Object.get] on the EditorSettings instance."] # [doc = ""] # [inline] pub fn get_setting (& self , name : impl Into < GodotString >) -> Variant { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . get_setting ; let ret = crate :: icalls :: icallptr_var_str (method_bind , self . this . sys () . as_ptr () , name . into ()) ; Variant :: from_sys (ret) } } # [doc = "Gets the global settings path for the engine. Inside this path, you can find some standard paths such as:\n`settings/tmp` - Used for temporary storage of files\n`settings/templates` - Where export templates are located"] # [doc = ""] # [inline] pub fn get_settings_dir (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . get_settings_dir ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = "Returns `true` if the setting specified by `name` exists, `false` otherwise."] # [doc = ""] # [inline] pub fn has_setting (& self , name : impl Into < GodotString >) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . has_setting ; let ret = crate :: icalls :: icallptr_bool_str (method_bind , self . this . sys () . as_ptr () , name . into ()) ; ret as _ } } # [doc = "Returns `true` if the setting specified by `name` can have its value reverted to the default value, `false` otherwise. When this method returns `true`, a Revert button will display next to the setting in the Editor Settings."] # [doc = ""] # [inline] pub fn property_can_revert (& self , name : impl Into < GodotString >) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . property_can_revert ; let ret = crate :: icalls :: icallptr_bool_str (method_bind , self . this . sys () . as_ptr () , name . into ()) ; ret as _ } } # [doc = "Returns the default value of the setting specified by `name`. This is the value that would be applied when clicking the Revert button in the Editor Settings."] # [doc = ""] # [inline] pub fn property_get_revert (& self , name : impl Into < GodotString >) -> Variant { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . property_get_revert ; let ret = crate :: icalls :: icallptr_var_str (method_bind , self . this . sys () . as_ptr () , name . into ()) ; Variant :: from_sys (ret) } } # [doc = "Sets the list of favorite files and directories for this project."] # [doc = ""] # [inline] pub fn set_favorites (& self , dirs : StringArray) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . set_favorites ; let ret = crate :: icalls :: icallptr_void_strarr (method_bind , self . this . sys () . as_ptr () , dirs) ; } } # [doc = "Sets the initial value of the setting specified by `name` to `value`. This is used to provide a value for the Revert button in the Editor Settings. If `update_current` is true, the current value of the setting will be set to `value` as well."] # [doc = ""] # [inline] pub fn set_initial_value (& self , name : impl Into < GodotString > , value : impl OwnedToVariant , update_current : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . set_initial_value ; let ret = crate :: icalls :: icallptr_void_str_var_bool (method_bind , self . this . sys () . as_ptr () , name . into () , value . owned_to_variant () , update_current) ; } } # [doc = "Sets project-specific metadata with the `section`, `key` and `data` specified. This metadata is stored outside the project folder and therefore won't be checked into version control. See also [method get_project_metadata]."] # [doc = ""] # [inline] pub fn set_project_metadata (& self , section : impl Into < GodotString > , key : impl Into < GodotString > , data : impl OwnedToVariant) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . set_project_metadata ; let ret = crate :: icalls :: icallptr_void_str_str_var (method_bind , self . this . sys () . as_ptr () , section . into () , key . into () , data . owned_to_variant ()) ; } } # [doc = "Sets the list of recently visited folders in the file dialog for this project."] # [doc = ""] # [inline] pub fn set_recent_dirs (& self , dirs : StringArray) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . set_recent_dirs ; let ret = crate :: icalls :: icallptr_void_strarr (method_bind , self . this . sys () . as_ptr () , dirs) ; } } # [doc = "Sets the `value` of the setting specified by `name`. This is equivalent to using [method Object.set] on the EditorSettings instance."] # [doc = ""] # [inline] pub fn set_setting (& self , name : impl Into < GodotString > , value : impl OwnedToVariant) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorSettingsMethodTable :: get (get_api ()) . set_setting ; let ret = crate :: icalls :: icallptr_void_str_var (method_bind , self . this . sys () . as_ptr () , name . into () , value . owned_to_variant ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for EditorSettings { } unsafe impl GodotObject for EditorSettings { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "EditorSettings" } } impl std :: ops :: Deref for EditorSettings { type Target = crate :: generated :: resource :: Resource ; # [inline] fn deref (& self) -> & crate :: generated :: resource :: Resource { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for EditorSettings { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: resource :: Resource { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: resource :: Resource > for EditorSettings { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for EditorSettings { } unsafe impl SubClass < crate :: generated :: object :: Object > for EditorSettings { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct EditorSettingsMethodTable { pub class_constructor : sys :: godot_class_constructor , pub add_property_info : * mut sys :: godot_method_bind , pub erase : * mut sys :: godot_method_bind , pub get_favorites : * mut sys :: godot_method_bind , pub get_project_metadata : * mut sys :: godot_method_bind , pub get_project_settings_dir : * mut sys :: godot_method_bind , pub get_recent_dirs : * mut sys :: godot_method_bind , pub get_setting : * mut sys :: godot_method_bind , pub get_settings_dir : * mut sys :: godot_method_bind , pub has_setting : * mut sys :: godot_method_bind , pub property_can_revert : * mut sys :: godot_method_bind , pub property_get_revert : * mut sys :: godot_method_bind , pub set_favorites : * mut sys :: godot_method_bind , pub set_initial_value : * mut sys :: godot_method_bind , pub set_project_metadata : * mut sys :: godot_method_bind , pub set_recent_dirs : * mut sys :: godot_method_bind , pub set_setting : * mut sys :: godot_method_bind } impl EditorSettingsMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : EditorSettingsMethodTable = EditorSettingsMethodTable { class_constructor : None , add_property_info : 0 as * mut sys :: godot_method_bind , erase : 0 as * mut sys :: godot_method_bind , get_favorites : 0 as * mut sys :: godot_method_bind , get_project_metadata : 0 as * mut sys :: godot_method_bind , get_project_settings_dir : 0 as * mut sys :: godot_method_bind , get_recent_dirs : 0 as * mut sys :: godot_method_bind , get_setting : 0 as * mut sys :: godot_method_bind , get_settings_dir : 0 as * mut sys :: godot_method_bind , has_setting : 0 as * mut sys :: godot_method_bind , property_can_revert : 0 as * mut sys :: godot_method_bind , property_get_revert : 0 as * mut sys :: godot_method_bind , set_favorites : 0 as * mut sys :: godot_method_bind , set_initial_value : 0 as * mut sys :: godot_method_bind , set_project_metadata : 0 as * mut sys :: godot_method_bind , set_recent_dirs : 0 as * mut sys :: godot_method_bind , set_setting : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { EditorSettingsMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "EditorSettings\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . add_property_info = (gd_api . godot_method_bind_get_method) (class_name , "add_property_info\0" . as_ptr () as * const c_char) ; table . erase = (gd_api . godot_method_bind_get_method) (class_name , "erase\0" . as_ptr () as * const c_char) ; table . get_favorites = (gd_api . godot_method_bind_get_method) (class_name , "get_favorites\0" . as_ptr () as * const c_char) ; table . get_project_metadata = (gd_api . godot_method_bind_get_method) (class_name , "get_project_metadata\0" . as_ptr () as * const c_char) ; table . get_project_settings_dir = (gd_api . godot_method_bind_get_method) (class_name , "get_project_settings_dir\0" . as_ptr () as * const c_char) ; table . get_recent_dirs = (gd_api . godot_method_bind_get_method) (class_name , "get_recent_dirs\0" . as_ptr () as * const c_char) ; table . get_setting = (gd_api . godot_method_bind_get_method) (class_name , "get_setting\0" . as_ptr () as * const c_char) ; table . get_settings_dir = (gd_api . godot_method_bind_get_method) (class_name , "get_settings_dir\0" . as_ptr () as * const c_char) ; table . has_setting = (gd_api . godot_method_bind_get_method) (class_name , "has_setting\0" . as_ptr () as * const c_char) ; table . property_can_revert = (gd_api . godot_method_bind_get_method) (class_name , "property_can_revert\0" . as_ptr () as * const c_char) ; table . property_get_revert = (gd_api . godot_method_bind_get_method) (class_name , "property_get_revert\0" . as_ptr () as * const c_char) ; table . set_favorites = (gd_api . godot_method_bind_get_method) (class_name , "set_favorites\0" . as_ptr () as * const c_char) ; table . set_initial_value = (gd_api . godot_method_bind_get_method) (class_name , "set_initial_value\0" . as_ptr () as * const c_char) ; table . set_project_metadata = (gd_api . godot_method_bind_get_method) (class_name , "set_project_metadata\0" . as_ptr () as * const c_char) ; table . set_recent_dirs = (gd_api . godot_method_bind_get_method) (class_name , "set_recent_dirs\0" . as_ptr () as * const c_char) ; table . set_setting = (gd_api . godot_method_bind_get_method) (class_name , "set_setting\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:76:9237 [INFO] [stdout] | [INFO] [stdout] 76 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 76 | # [doc = "`core class DirectionalLight` inherits `Light` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_directionallight.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`DirectionalLight` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nDirectionalLight inherits methods from:\n - [Light](struct.Light.html)\n - [VisualInstance](struct.VisualInstance.html)\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct DirectionalLight { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct ShadowDepthRange (pub i64) ; impl ShadowDepthRange { pub const STABLE : ShadowDepthRange = ShadowDepthRange (0i64) ; pub const OPTIMIZED : ShadowDepthRange = ShadowDepthRange (1i64) ; } impl From < i64 > for ShadowDepthRange { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < ShadowDepthRange > for i64 { # [inline] fn from (v : ShadowDepthRange) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct ShadowMode (pub i64) ; impl ShadowMode { pub const ORTHOGONAL : ShadowMode = ShadowMode (0i64) ; pub const PARALLEL_2_SPLITS : ShadowMode = ShadowMode (1i64) ; pub const PARALLEL_4_SPLITS : ShadowMode = ShadowMode (2i64) ; } impl From < i64 > for ShadowMode { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < ShadowMode > for i64 { # [inline] fn from (v : ShadowMode) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl DirectionalLight { pub const SHADOW_DEPTH_RANGE_OPTIMIZED : i64 = 1i64 ; pub const SHADOW_DEPTH_RANGE_STABLE : i64 = 0i64 ; pub const SHADOW_ORTHOGONAL : i64 = 0i64 ; pub const SHADOW_PARALLEL_2_SPLITS : i64 = 1i64 ; pub const SHADOW_PARALLEL_4_SPLITS : i64 = 2i64 ; } impl DirectionalLight { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = DirectionalLightMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Optimizes shadow rendering for detail versus movement. See [enum ShadowDepthRange]."] # [doc = ""] # [inline] pub fn shadow_depth_range (& self) -> crate :: generated :: directional_light :: ShadowDepthRange { unsafe { let method_bind : * mut sys :: godot_method_bind = DirectionalLightMethodTable :: get (get_api ()) . get_shadow_depth_range ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: directional_light :: ShadowDepthRange (ret) } } # [doc = "The light's shadow rendering algorithm. See [enum ShadowMode]."] # [doc = ""] # [inline] pub fn shadow_mode (& self) -> crate :: generated :: directional_light :: ShadowMode { unsafe { let method_bind : * mut sys :: godot_method_bind = DirectionalLightMethodTable :: get (get_api ()) . get_shadow_mode ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: directional_light :: ShadowMode (ret) } } # [doc = "If `true`, shadow detail is sacrificed in exchange for smoother transitions between splits."] # [doc = ""] # [inline] pub fn is_blend_splits_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = DirectionalLightMethodTable :: get (get_api ()) . is_blend_splits_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, shadow detail is sacrificed in exchange for smoother transitions between splits."] # [doc = ""] # [inline] pub fn set_blend_splits (& self , enabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = DirectionalLightMethodTable :: get (get_api ()) . set_blend_splits ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enabled) ; } } # [doc = "Optimizes shadow rendering for detail versus movement. See [enum ShadowDepthRange]."] # [doc = ""] # [inline] pub fn set_shadow_depth_range (& self , mode : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = DirectionalLightMethodTable :: get (get_api ()) . set_shadow_depth_range ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , mode) ; } } # [doc = "The light's shadow rendering algorithm. See [enum ShadowMode]."] # [doc = ""] # [inline] pub fn set_shadow_mode (& self , mode : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = DirectionalLightMethodTable :: get (get_api ()) . set_shadow_mode ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , mode) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for DirectionalLight { } unsafe impl GodotObject for DirectionalLight { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "DirectionalLight" } } impl QueueFree for DirectionalLight { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for DirectionalLight { type Target = crate :: generated :: light :: Light ; # [inline] fn deref (& self) -> & crate :: generated :: light :: Light { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for DirectionalLight { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: light :: Light { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: light :: Light > for DirectionalLight { } unsafe impl SubClass < crate :: generated :: visual_instance :: VisualInstance > for DirectionalLight { } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for DirectionalLight { } unsafe impl SubClass < crate :: generated :: node :: Node > for DirectionalLight { } unsafe impl SubClass < crate :: generated :: object :: Object > for DirectionalLight { } impl Instanciable for DirectionalLight { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { DirectionalLight :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct DirectionalLightMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_shadow_depth_range : * mut sys :: godot_method_bind , pub get_shadow_mode : * mut sys :: godot_method_bind , pub is_blend_splits_enabled : * mut sys :: godot_method_bind , pub set_blend_splits : * mut sys :: godot_method_bind , pub set_shadow_depth_range : * mut sys :: godot_method_bind , pub set_shadow_mode : * mut sys :: godot_method_bind } impl DirectionalLightMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : DirectionalLightMethodTable = DirectionalLightMethodTable { class_constructor : None , get_shadow_depth_range : 0 as * mut sys :: godot_method_bind , get_shadow_mode : 0 as * mut sys :: godot_method_bind , is_blend_splits_enabled : 0 as * mut sys :: godot_method_bind , set_blend_splits : 0 as * mut sys :: godot_method_bind , set_shadow_depth_range : 0 as * mut sys :: godot_method_bind , set_shadow_mode : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { DirectionalLightMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "DirectionalLight\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_shadow_depth_range = (gd_api . godot_method_bind_get_method) (class_name , "get_shadow_depth_range\0" . as_ptr () as * const c_char) ; table . get_shadow_mode = (gd_api . godot_method_bind_get_method) (class_name , "get_shadow_mode\0" . as_ptr () as * const c_char) ; table . is_blend_splits_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_blend_splits_enabled\0" . as_ptr () as * const c_char) ; table . set_blend_splits = (gd_api . godot_method_bind_get_method) (class_name , "set_blend_splits\0" . as_ptr () as * const c_char) ; table . set_shadow_depth_range = (gd_api . godot_method_bind_get_method) (class_name , "set_shadow_depth_range\0" . as_ptr () as * const c_char) ; table . set_shadow_mode = (gd_api . godot_method_bind_get_method) (class_name , "set_shadow_mode\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:82:6252 [INFO] [stdout] | [INFO] [stdout] 82 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 82 | # [doc = "`core class InputEventJoypadButton` inherits `InputEvent` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_inputeventjoypadbutton.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nInputEventJoypadButton inherits methods from:\n - [InputEvent](struct.InputEvent.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct InputEventJoypadButton { this : RawObject < Self > , } impl InputEventJoypadButton { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = InputEventJoypadButtonMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Button identifier. One of the [enum JoystickList] button constants."] # [doc = ""] # [inline] pub fn button_index (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventJoypadButtonMethodTable :: get (get_api ()) . get_button_index ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Represents the pressure the user puts on the button with his finger, if the controller supports it. Ranges from `0` to `1`."] # [doc = ""] # [inline] pub fn pressure (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventJoypadButtonMethodTable :: get (get_api ()) . get_pressure ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Button identifier. One of the [enum JoystickList] button constants."] # [doc = ""] # [inline] pub fn set_button_index (& self , button_index : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventJoypadButtonMethodTable :: get (get_api ()) . set_button_index ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , button_index) ; } } # [doc = "If `true`, the button's state is pressed. If `false`, the button's state is released."] # [doc = ""] # [inline] pub fn set_pressed (& self , pressed : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventJoypadButtonMethodTable :: get (get_api ()) . set_pressed ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , pressed) ; } } # [doc = "Represents the pressure the user puts on the button with his finger, if the controller supports it. Ranges from `0` to `1`."] # [doc = ""] # [inline] pub fn set_pressure (& self , pressure : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventJoypadButtonMethodTable :: get (get_api ()) . set_pressure ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , pressure) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for InputEventJoypadButton { } unsafe impl GodotObject for InputEventJoypadButton { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "InputEventJoypadButton" } } impl std :: ops :: Deref for InputEventJoypadButton { type Target = crate :: generated :: input_event :: InputEvent ; # [inline] fn deref (& self) -> & crate :: generated :: input_event :: InputEvent { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for InputEventJoypadButton { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: input_event :: InputEvent { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: input_event :: InputEvent > for InputEventJoypadButton { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for InputEventJoypadButton { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for InputEventJoypadButton { } unsafe impl SubClass < crate :: generated :: object :: Object > for InputEventJoypadButton { } impl Instanciable for InputEventJoypadButton { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { InputEventJoypadButton :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct InputEventJoypadButtonMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_button_index : * mut sys :: godot_method_bind , pub get_pressure : * mut sys :: godot_method_bind , pub set_button_index : * mut sys :: godot_method_bind , pub set_pressed : * mut sys :: godot_method_bind , pub set_pressure : * mut sys :: godot_method_bind } impl InputEventJoypadButtonMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : InputEventJoypadButtonMethodTable = InputEventJoypadButtonMethodTable { class_constructor : None , get_button_index : 0 as * mut sys :: godot_method_bind , get_pressure : 0 as * mut sys :: godot_method_bind , set_button_index : 0 as * mut sys :: godot_method_bind , set_pressed : 0 as * mut sys :: godot_method_bind , set_pressure : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { InputEventJoypadButtonMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "InputEventJoypadButton\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_button_index = (gd_api . godot_method_bind_get_method) (class_name , "get_button_index\0" . as_ptr () as * const c_char) ; table . get_pressure = (gd_api . godot_method_bind_get_method) (class_name , "get_pressure\0" . as_ptr () as * const c_char) ; table . set_button_index = (gd_api . godot_method_bind_get_method) (class_name , "set_button_index\0" . as_ptr () as * const c_char) ; table . set_pressed = (gd_api . godot_method_bind_get_method) (class_name , "set_pressed\0" . as_ptr () as * const c_char) ; table . set_pressure = (gd_api . godot_method_bind_get_method) (class_name , "set_pressure\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:88:9215 [INFO] [stdout] | [INFO] [stdout] 88 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 88 | # [doc = "`core class JSONParseResult` inherits `Reference` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_jsonparseresult.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nJSONParseResult inherits methods from:\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct JSONParseResult { this : RawObject < Self > , } impl JSONParseResult { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = JSONParseResultMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "The error type if the JSON source was not successfully parsed. See the [enum Error] constants."] # [doc = ""] # [inline] pub fn error (& self) -> GodotResult { unsafe { let method_bind : * mut sys :: godot_method_bind = JSONParseResultMethodTable :: get (get_api ()) . get_error ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; GodotError :: result_from_sys (ret as _) } } # [doc = "The line number where the error occurred if the JSON source was not successfully parsed."] # [doc = ""] # [inline] pub fn error_line (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = JSONParseResultMethodTable :: get (get_api ()) . get_error_line ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The error message if the JSON source was not successfully parsed. See the [enum Error] constants."] # [doc = ""] # [inline] pub fn error_string (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = JSONParseResultMethodTable :: get (get_api ()) . get_error_string ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = "_Sample code is GDScript unless otherwise noted._\n\nA [Variant] containing the parsed JSON. Use [method @GDScript.typeof] or the `is` keyword to check if it is what you expect. For example, if the JSON source starts with curly braces (`{}`), a [Dictionary] will be returned. If the JSON source starts with brackets (`[]`), an [Array] will be returned.\n**Note:** The JSON specification does not define integer or float types, but only a [i]number[/i] type. Therefore, parsing a JSON text will convert all numerical values to [float] types.\n**Note:** JSON objects do not preserve key order like Godot dictionaries, thus, you should not rely on keys being in a certain order if a dictionary is constructed from JSON. In contrast, JSON arrays retain the order of their elements:\n```gdscript\nvar p = JSON.parse('[\"hello\", \"world\", \"!\"]')\nif typeof(p.result) == TYPE_ARRAY:\n print(p.result[0]) # Prints \"hello\"\nelse:\n push_error(\"Unexpected results.\")\n```"] # [doc = ""] # [inline] pub fn result (& self) -> Variant { unsafe { let method_bind : * mut sys :: godot_method_bind = JSONParseResultMethodTable :: get (get_api ()) . get_result ; let ret = crate :: icalls :: icallptr_var (method_bind , self . this . sys () . as_ptr ()) ; Variant :: from_sys (ret) } } # [doc = "The error type if the JSON source was not successfully parsed. See the [enum Error] constants."] # [doc = ""] # [inline] pub fn set_error (& self , error : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = JSONParseResultMethodTable :: get (get_api ()) . set_error ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , error) ; } } # [doc = "The line number where the error occurred if the JSON source was not successfully parsed."] # [doc = ""] # [inline] pub fn set_error_line (& self , error_line : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = JSONParseResultMethodTable :: get (get_api ()) . set_error_line ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , error_line) ; } } # [doc = "The error message if the JSON source was not successfully parsed. See the [enum Error] constants."] # [doc = ""] # [inline] pub fn set_error_string (& self , error_string : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = JSONParseResultMethodTable :: get (get_api ()) . set_error_string ; let ret = crate :: icalls :: icallptr_void_str (method_bind , self . this . sys () . as_ptr () , error_string . into ()) ; } } # [doc = "_Sample code is GDScript unless otherwise noted._\n\nA [Variant] containing the parsed JSON. Use [method @GDScript.typeof] or the `is` keyword to check if it is what you expect. For example, if the JSON source starts with curly braces (`{}`), a [Dictionary] will be returned. If the JSON source starts with brackets (`[]`), an [Array] will be returned.\n**Note:** The JSON specification does not define integer or float types, but only a [i]number[/i] type. Therefore, parsing a JSON text will convert all numerical values to [float] types.\n**Note:** JSON objects do not preserve key order like Godot dictionaries, thus, you should not rely on keys being in a certain order if a dictionary is constructed from JSON. In contrast, JSON arrays retain the order of their elements:\n```gdscript\nvar p = JSON.parse('[\"hello\", \"world\", \"!\"]')\nif typeof(p.result) == TYPE_ARRAY:\n print(p.result[0]) # Prints \"hello\"\nelse:\n push_error(\"Unexpected results.\")\n```"] # [doc = ""] # [inline] pub fn set_result (& self , result : impl OwnedToVariant) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = JSONParseResultMethodTable :: get (get_api ()) . set_result ; let ret = crate :: icalls :: icallptr_void_var (method_bind , self . this . sys () . as_ptr () , result . owned_to_variant ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for JSONParseResult { } unsafe impl GodotObject for JSONParseResult { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "JSONParseResult" } } impl std :: ops :: Deref for JSONParseResult { type Target = crate :: generated :: reference :: Reference ; # [inline] fn deref (& self) -> & crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for JSONParseResult { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: reference :: Reference > for JSONParseResult { } unsafe impl SubClass < crate :: generated :: object :: Object > for JSONParseResult { } impl Instanciable for JSONParseResult { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { JSONParseResult :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct JSONParseResultMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_error : * mut sys :: godot_method_bind , pub get_error_line : * mut sys :: godot_method_bind , pub get_error_string : * mut sys :: godot_method_bind , pub get_result : * mut sys :: godot_method_bind , pub set_error : * mut sys :: godot_method_bind , pub set_error_line : * mut sys :: godot_method_bind , pub set_error_string : * mut sys :: godot_method_bind , pub set_result : * mut sys :: godot_method_bind } impl JSONParseResultMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : JSONParseResultMethodTable = JSONParseResultMethodTable { class_constructor : None , get_error : 0 as * mut sys :: godot_method_bind , get_error_line : 0 as * mut sys :: godot_method_bind , get_error_string : 0 as * mut sys :: godot_method_bind , get_result : 0 as * mut sys :: godot_method_bind , set_error : 0 as * mut sys :: godot_method_bind , set_error_line : 0 as * mut sys :: godot_method_bind , set_error_string : 0 as * mut sys :: godot_method_bind , set_result : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { JSONParseResultMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "JSONParseResult\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_error = (gd_api . godot_method_bind_get_method) (class_name , "get_error\0" . as_ptr () as * const c_char) ; table . get_error_line = (gd_api . godot_method_bind_get_method) (class_name , "get_error_line\0" . as_ptr () as * const c_char) ; table . get_error_string = (gd_api . godot_method_bind_get_method) (class_name , "get_error_string\0" . as_ptr () as * const c_char) ; table . get_result = (gd_api . godot_method_bind_get_method) (class_name , "get_result\0" . as_ptr () as * const c_char) ; table . set_error = (gd_api . godot_method_bind_get_method) (class_name , "set_error\0" . as_ptr () as * const c_char) ; table . set_error_line = (gd_api . godot_method_bind_get_method) (class_name , "set_error_line\0" . as_ptr () as * const c_char) ; table . set_error_string = (gd_api . godot_method_bind_get_method) (class_name , "set_error_string\0" . as_ptr () as * const c_char) ; table . set_result = (gd_api . godot_method_bind_get_method) (class_name , "set_result\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:94:6273 [INFO] [stdout] | [INFO] [stdout] 94 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 94 | # [doc = "`core class AudioEffectStereoEnhance` inherits `AudioEffect` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_audioeffectstereoenhance.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nAudioEffectStereoEnhance inherits methods from:\n - [AudioEffect](struct.AudioEffect.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct AudioEffectStereoEnhance { this : RawObject < Self > , } impl AudioEffectStereoEnhance { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = AudioEffectStereoEnhanceMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = ""] # [doc = ""] # [inline] pub fn pan_pullout (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectStereoEnhanceMethodTable :: get (get_api ()) . get_pan_pullout ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn surround (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectStereoEnhanceMethodTable :: get (get_api ()) . get_surround ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn time_pullout (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectStereoEnhanceMethodTable :: get (get_api ()) . get_time_pullout ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn set_pan_pullout (& self , amount : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectStereoEnhanceMethodTable :: get (get_api ()) . set_pan_pullout ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , amount) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_surround (& self , amount : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectStereoEnhanceMethodTable :: get (get_api ()) . set_surround ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , amount) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_time_pullout (& self , amount : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectStereoEnhanceMethodTable :: get (get_api ()) . set_time_pullout ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , amount) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for AudioEffectStereoEnhance { } unsafe impl GodotObject for AudioEffectStereoEnhance { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "AudioEffectStereoEnhance" } } impl std :: ops :: Deref for AudioEffectStereoEnhance { type Target = crate :: generated :: audio_effect :: AudioEffect ; # [inline] fn deref (& self) -> & crate :: generated :: audio_effect :: AudioEffect { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for AudioEffectStereoEnhance { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: audio_effect :: AudioEffect { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: audio_effect :: AudioEffect > for AudioEffectStereoEnhance { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for AudioEffectStereoEnhance { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for AudioEffectStereoEnhance { } unsafe impl SubClass < crate :: generated :: object :: Object > for AudioEffectStereoEnhance { } impl Instanciable for AudioEffectStereoEnhance { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { AudioEffectStereoEnhance :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct AudioEffectStereoEnhanceMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_pan_pullout : * mut sys :: godot_method_bind , pub get_surround : * mut sys :: godot_method_bind , pub get_time_pullout : * mut sys :: godot_method_bind , pub set_pan_pullout : * mut sys :: godot_method_bind , pub set_surround : * mut sys :: godot_method_bind , pub set_time_pullout : * mut sys :: godot_method_bind } impl AudioEffectStereoEnhanceMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : AudioEffectStereoEnhanceMethodTable = AudioEffectStereoEnhanceMethodTable { class_constructor : None , get_pan_pullout : 0 as * mut sys :: godot_method_bind , get_surround : 0 as * mut sys :: godot_method_bind , get_time_pullout : 0 as * mut sys :: godot_method_bind , set_pan_pullout : 0 as * mut sys :: godot_method_bind , set_surround : 0 as * mut sys :: godot_method_bind , set_time_pullout : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { AudioEffectStereoEnhanceMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "AudioEffectStereoEnhance\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_pan_pullout = (gd_api . godot_method_bind_get_method) (class_name , "get_pan_pullout\0" . as_ptr () as * const c_char) ; table . get_surround = (gd_api . godot_method_bind_get_method) (class_name , "get_surround\0" . as_ptr () as * const c_char) ; table . get_time_pullout = (gd_api . godot_method_bind_get_method) (class_name , "get_time_pullout\0" . as_ptr () as * const c_char) ; table . set_pan_pullout = (gd_api . godot_method_bind_get_method) (class_name , "set_pan_pullout\0" . as_ptr () as * const c_char) ; table . set_surround = (gd_api . godot_method_bind_get_method) (class_name , "set_surround\0" . as_ptr () as * const c_char) ; table . set_time_pullout = (gd_api . godot_method_bind_get_method) (class_name , "set_time_pullout\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:100:7531 [INFO] [stdout] | [INFO] [stdout] 100 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 100 | # [doc = "`core class MainLoop` inherits `Object` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_mainloop.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`MainLoop` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nMainLoop inherits methods from:\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct MainLoop { this : RawObject < Self > , } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl MainLoop { pub const NOTIFICATION_APP_PAUSED : i64 = 1015i64 ; pub const NOTIFICATION_APP_RESUMED : i64 = 1014i64 ; pub const NOTIFICATION_CRASH : i64 = 1012i64 ; pub const NOTIFICATION_OS_IME_UPDATE : i64 = 1013i64 ; pub const NOTIFICATION_OS_MEMORY_WARNING : i64 = 1009i64 ; pub const NOTIFICATION_TRANSLATION_CHANGED : i64 = 1010i64 ; pub const NOTIFICATION_WM_ABOUT : i64 = 1011i64 ; pub const NOTIFICATION_WM_FOCUS_IN : i64 = 1004i64 ; pub const NOTIFICATION_WM_FOCUS_OUT : i64 = 1005i64 ; pub const NOTIFICATION_WM_GO_BACK_REQUEST : i64 = 1007i64 ; pub const NOTIFICATION_WM_MOUSE_ENTER : i64 = 1002i64 ; pub const NOTIFICATION_WM_MOUSE_EXIT : i64 = 1003i64 ; pub const NOTIFICATION_WM_QUIT_REQUEST : i64 = 1006i64 ; pub const NOTIFICATION_WM_UNFOCUS_REQUEST : i64 = 1008i64 ; } impl MainLoop { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = MainLoopMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Should not be called manually, override [method _finalize] instead. Will be removed in Godot 4.0."] # [doc = ""] # [inline] pub fn finish (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MainLoopMethodTable :: get (get_api ()) . finish ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Should not be called manually, override [method _idle] instead. Will be removed in Godot 4.0."] # [doc = ""] # [inline] pub fn idle (& self , delta : f64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = MainLoopMethodTable :: get (get_api ()) . idle ; let ret = crate :: icalls :: icallptr_bool_f64 (method_bind , self . this . sys () . as_ptr () , delta) ; ret as _ } } # [doc = "Should not be called manually, override [method _initialize] instead. Will be removed in Godot 4.0."] # [doc = ""] # [inline] pub fn init (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MainLoopMethodTable :: get (get_api ()) . init ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Should not be called manually, override [method _input_event] instead. Will be removed in Godot 4.0."] # [doc = ""] # [inline] pub fn input_event (& self , event : impl AsArg < crate :: generated :: input_event :: InputEvent >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MainLoopMethodTable :: get (get_api ()) . input_event ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , event . as_arg_ptr ()) ; } } # [doc = "Should not be called manually, override [method _input_text] instead. Will be removed in Godot 4.0."] # [doc = ""] # [inline] pub fn input_text (& self , text : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MainLoopMethodTable :: get (get_api ()) . input_text ; let ret = crate :: icalls :: icallptr_void_str (method_bind , self . this . sys () . as_ptr () , text . into ()) ; } } # [doc = "Should not be called manually, override [method _iteration] instead. Will be removed in Godot 4.0."] # [doc = ""] # [inline] pub fn iteration (& self , delta : f64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = MainLoopMethodTable :: get (get_api ()) . iteration ; let ret = crate :: icalls :: icallptr_bool_f64 (method_bind , self . this . sys () . as_ptr () , delta) ; ret as _ } } } impl gdnative_core :: private :: godot_object :: Sealed for MainLoop { } unsafe impl GodotObject for MainLoop { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "MainLoop" } } impl std :: ops :: Deref for MainLoop { type Target = crate :: generated :: object :: Object ; # [inline] fn deref (& self) -> & crate :: generated :: object :: Object { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for MainLoop { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: object :: Object { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: object :: Object > for MainLoop { } impl Instanciable for MainLoop { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { MainLoop :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct MainLoopMethodTable { pub class_constructor : sys :: godot_class_constructor , pub finish : * mut sys :: godot_method_bind , pub idle : * mut sys :: godot_method_bind , pub init : * mut sys :: godot_method_bind , pub input_event : * mut sys :: godot_method_bind , pub input_text : * mut sys :: godot_method_bind , pub iteration : * mut sys :: godot_method_bind } impl MainLoopMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : MainLoopMethodTable = MainLoopMethodTable { class_constructor : None , finish : 0 as * mut sys :: godot_method_bind , idle : 0 as * mut sys :: godot_method_bind , init : 0 as * mut sys :: godot_method_bind , input_event : 0 as * mut sys :: godot_method_bind , input_text : 0 as * mut sys :: godot_method_bind , iteration : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { MainLoopMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "MainLoop\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . finish = (gd_api . godot_method_bind_get_method) (class_name , "finish\0" . as_ptr () as * const c_char) ; table . idle = (gd_api . godot_method_bind_get_method) (class_name , "idle\0" . as_ptr () as * const c_char) ; table . init = (gd_api . godot_method_bind_get_method) (class_name , "init\0" . as_ptr () as * const c_char) ; table . input_event = (gd_api . godot_method_bind_get_method) (class_name , "input_event\0" . as_ptr () as * const c_char) ; table . input_text = (gd_api . godot_method_bind_get_method) (class_name , "input_text\0" . as_ptr () as * const c_char) ; table . iteration = (gd_api . godot_method_bind_get_method) (class_name , "iteration\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:106:12623 [INFO] [stdout] | [INFO] [stdout] 106 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 106 | # [doc = "`core class Physics2DShapeQueryParameters` inherits `Reference` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_physics2dshapequeryparameters.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nPhysics2DShapeQueryParameters inherits methods from:\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct Physics2DShapeQueryParameters { this : RawObject < Self > , } impl Physics2DShapeQueryParameters { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = Physics2DShapeQueryParametersMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "The physics layer(s) the query will take into account (as a bitmask). See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information."] # [doc = ""] # [inline] pub fn collision_layer (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . get_collision_layer ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The list of objects or object [RID]s that will be excluded from collisions."] # [doc = ""] # [inline] pub fn exclude (& self) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . get_exclude ; let ret = crate :: icalls :: icallvar_ (method_bind , self . this . sys () . as_ptr ()) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = "The collision margin for the shape."] # [doc = ""] # [inline] pub fn margin (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . get_margin ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The motion of the shape being queried for."] # [doc = ""] # [inline] pub fn motion (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . get_motion ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "The queried shape's [RID]. See also [method set_shape]."] # [doc = ""] # [inline] pub fn shape_rid (& self) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . get_shape_rid ; let ret = crate :: icalls :: icallptr_rid (method_bind , self . this . sys () . as_ptr ()) ; Rid :: from_sys (ret) } } # [doc = "The queried shape's transform matrix."] # [doc = ""] # [inline] pub fn transform (& self) -> Transform2D { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . get_transform ; let ret = crate :: icalls :: icallptr_trans2D (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "If `true`, the query will take [Area2D]s into account."] # [doc = ""] # [inline] pub fn is_collide_with_areas_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . is_collide_with_areas_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, the query will take [PhysicsBody2D]s into account."] # [doc = ""] # [inline] pub fn is_collide_with_bodies_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . is_collide_with_bodies_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, the query will take [Area2D]s into account."] # [doc = ""] # [inline] pub fn set_collide_with_areas (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . set_collide_with_areas ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "If `true`, the query will take [PhysicsBody2D]s into account."] # [doc = ""] # [inline] pub fn set_collide_with_bodies (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . set_collide_with_bodies ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "The physics layer(s) the query will take into account (as a bitmask). See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information."] # [doc = ""] # [inline] pub fn set_collision_layer (& self , collision_layer : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . set_collision_layer ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , collision_layer) ; } } # [doc = "The list of objects or object [RID]s that will be excluded from collisions."] # [doc = ""] # [inline] pub fn set_exclude (& self , exclude : VariantArray) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . set_exclude ; let ret = crate :: icalls :: icallptr_void_arr (method_bind , self . this . sys () . as_ptr () , exclude) ; } } # [doc = "The collision margin for the shape."] # [doc = ""] # [inline] pub fn set_margin (& self , margin : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . set_margin ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , margin) ; } } # [doc = "The motion of the shape being queried for."] # [doc = ""] # [inline] pub fn set_motion (& self , motion : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . set_motion ; let ret = crate :: icalls :: icallptr_void_vec2 (method_bind , self . this . sys () . as_ptr () , motion) ; } } # [doc = "Sets the [Shape2D] that will be used for collision/intersection queries."] # [doc = ""] # [inline] pub fn set_shape (& self , shape : impl AsArg < crate :: generated :: resource :: Resource >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . set_shape ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , shape . as_arg_ptr ()) ; } } # [doc = "The queried shape's [RID]. See also [method set_shape]."] # [doc = ""] # [inline] pub fn set_shape_rid (& self , shape : Rid) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . set_shape_rid ; let ret = crate :: icalls :: icallptr_void_rid (method_bind , self . this . sys () . as_ptr () , shape) ; } } # [doc = "The queried shape's transform matrix."] # [doc = ""] # [inline] pub fn set_transform (& self , transform : Transform2D) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DShapeQueryParametersMethodTable :: get (get_api ()) . set_transform ; let ret = crate :: icalls :: icallptr_void_trans2D (method_bind , self . this . sys () . as_ptr () , transform) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for Physics2DShapeQueryParameters { } unsafe impl GodotObject for Physics2DShapeQueryParameters { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "Physics2DShapeQueryParameters" } } impl std :: ops :: Deref for Physics2DShapeQueryParameters { type Target = crate :: generated :: reference :: Reference ; # [inline] fn deref (& self) -> & crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for Physics2DShapeQueryParameters { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: reference :: Reference > for Physics2DShapeQueryParameters { } unsafe impl SubClass < crate :: generated :: object :: Object > for Physics2DShapeQueryParameters { } impl Instanciable for Physics2DShapeQueryParameters { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { Physics2DShapeQueryParameters :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct Physics2DShapeQueryParametersMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_collision_layer : * mut sys :: godot_method_bind , pub get_exclude : * mut sys :: godot_method_bind , pub get_margin : * mut sys :: godot_method_bind , pub get_motion : * mut sys :: godot_method_bind , pub get_shape_rid : * mut sys :: godot_method_bind , pub get_transform : * mut sys :: godot_method_bind , pub is_collide_with_areas_enabled : * mut sys :: godot_method_bind , pub is_collide_with_bodies_enabled : * mut sys :: godot_method_bind , pub set_collide_with_areas : * mut sys :: godot_method_bind , pub set_collide_with_bodies : * mut sys :: godot_method_bind , pub set_collision_layer : * mut sys :: godot_method_bind , pub set_exclude : * mut sys :: godot_method_bind , pub set_margin : * mut sys :: godot_method_bind , pub set_motion : * mut sys :: godot_method_bind , pub set_shape : * mut sys :: godot_method_bind , pub set_shape_rid : * mut sys :: godot_method_bind , pub set_transform : * mut sys :: godot_method_bind } impl Physics2DShapeQueryParametersMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : Physics2DShapeQueryParametersMethodTable = Physics2DShapeQueryParametersMethodTable { class_constructor : None , get_collision_layer : 0 as * mut sys :: godot_method_bind , get_exclude : 0 as * mut sys :: godot_method_bind , get_margin : 0 as * mut sys :: godot_method_bind , get_motion : 0 as * mut sys :: godot_method_bind , get_shape_rid : 0 as * mut sys :: godot_method_bind , get_transform : 0 as * mut sys :: godot_method_bind , is_collide_with_areas_enabled : 0 as * mut sys :: godot_method_bind , is_collide_with_bodies_enabled : 0 as * mut sys :: godot_method_bind , set_collide_with_areas : 0 as * mut sys :: godot_method_bind , set_collide_with_bodies : 0 as * mut sys :: godot_method_bind , set_collision_layer : 0 as * mut sys :: godot_method_bind , set_exclude : 0 as * mut sys :: godot_method_bind , set_margin : 0 as * mut sys :: godot_method_bind , set_motion : 0 as * mut sys :: godot_method_bind , set_shape : 0 as * mut sys :: godot_method_bind , set_shape_rid : 0 as * mut sys :: godot_method_bind , set_transform : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { Physics2DShapeQueryParametersMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "Physics2DShapeQueryParameters\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_collision_layer = (gd_api . godot_method_bind_get_method) (class_name , "get_collision_layer\0" . as_ptr () as * const c_char) ; table . get_exclude = (gd_api . godot_method_bind_get_method) (class_name , "get_exclude\0" . as_ptr () as * const c_char) ; table . get_margin = (gd_api . godot_method_bind_get_method) (class_name , "get_margin\0" . as_ptr () as * const c_char) ; table . get_motion = (gd_api . godot_method_bind_get_method) (class_name , "get_motion\0" . as_ptr () as * const c_char) ; table . get_shape_rid = (gd_api . godot_method_bind_get_method) (class_name , "get_shape_rid\0" . as_ptr () as * const c_char) ; table . get_transform = (gd_api . godot_method_bind_get_method) (class_name , "get_transform\0" . as_ptr () as * const c_char) ; table . is_collide_with_areas_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_collide_with_areas_enabled\0" . as_ptr () as * const c_char) ; table . is_collide_with_bodies_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_collide_with_bodies_enabled\0" . as_ptr () as * const c_char) ; table . set_collide_with_areas = (gd_api . godot_method_bind_get_method) (class_name , "set_collide_with_areas\0" . as_ptr () as * const c_char) ; table . set_collide_with_bodies = (gd_api . godot_method_bind_get_method) (class_name , "set_collide_with_bodies\0" . as_ptr () as * const c_char) ; table . set_collision_layer = (gd_api . godot_method_bind_get_method) (class_name , "set_collision_layer\0" . as_ptr () as * const c_char) ; table . set_exclude = (gd_api . godot_method_bind_get_method) (class_name , "set_exclude\0" . as_ptr () as * const c_char) ; table . set_margin = (gd_api . godot_method_bind_get_method) (class_name , "set_margin\0" . as_ptr () as * const c_char) ; table . set_motion = (gd_api . godot_method_bind_get_method) (class_name , "set_motion\0" . as_ptr () as * const c_char) ; table . set_shape = (gd_api . godot_method_bind_get_method) (class_name , "set_shape\0" . as_ptr () as * const c_char) ; table . set_shape_rid = (gd_api . godot_method_bind_get_method) (class_name , "set_shape_rid\0" . as_ptr () as * const c_char) ; table . set_transform = (gd_api . godot_method_bind_get_method) (class_name , "set_transform\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:112:4483 [INFO] [stdout] | [INFO] [stdout] 112 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 112 | # [doc = "`core class RectangleShape2D` inherits `Shape2D` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_rectangleshape2d.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nRectangleShape2D inherits methods from:\n - [Shape2D](struct.Shape2D.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct RectangleShape2D { this : RawObject < Self > , } impl RectangleShape2D { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = RectangleShape2DMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "The rectangle's half extents. The width and height of this shape is twice the half extents."] # [doc = ""] # [inline] pub fn extents (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = RectangleShape2DMethodTable :: get (get_api ()) . get_extents ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "The rectangle's half extents. The width and height of this shape is twice the half extents."] # [doc = ""] # [inline] pub fn set_extents (& self , extents : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RectangleShape2DMethodTable :: get (get_api ()) . set_extents ; let ret = crate :: icalls :: icallptr_void_vec2 (method_bind , self . this . sys () . as_ptr () , extents) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for RectangleShape2D { } unsafe impl GodotObject for RectangleShape2D { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "RectangleShape2D" } } impl std :: ops :: Deref for RectangleShape2D { type Target = crate :: generated :: shape_2d :: Shape2D ; # [inline] fn deref (& self) -> & crate :: generated :: shape_2d :: Shape2D { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for RectangleShape2D { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: shape_2d :: Shape2D { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: shape_2d :: Shape2D > for RectangleShape2D { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for RectangleShape2D { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for RectangleShape2D { } unsafe impl SubClass < crate :: generated :: object :: Object > for RectangleShape2D { } impl Instanciable for RectangleShape2D { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { RectangleShape2D :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct RectangleShape2DMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_extents : * mut sys :: godot_method_bind , pub set_extents : * mut sys :: godot_method_bind } impl RectangleShape2DMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : RectangleShape2DMethodTable = RectangleShape2DMethodTable { class_constructor : None , get_extents : 0 as * mut sys :: godot_method_bind , set_extents : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { RectangleShape2DMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "RectangleShape2D\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_extents = (gd_api . godot_method_bind_get_method) (class_name , "get_extents\0" . as_ptr () as * const c_char) ; table . set_extents = (gd_api . godot_method_bind_get_method) (class_name , "set_extents\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:118:5500 [INFO] [stdout] | [INFO] [stdout] 118 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 118 | # [doc = "`core class VisualScriptConstant` inherits `VisualScriptNode` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_visualscriptconstant.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nVisualScriptConstant inherits methods from:\n - [VisualScriptNode](struct.VisualScriptNode.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct VisualScriptConstant { this : RawObject < Self > , } impl VisualScriptConstant { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = VisualScriptConstantMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = ""] # [doc = ""] # [inline] pub fn constant_type (& self) -> VariantType { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualScriptConstantMethodTable :: get (get_api ()) . get_constant_type ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; VariantType :: from_sys (ret as _) } } # [doc = ""] # [doc = ""] # [inline] pub fn constant_value (& self) -> Variant { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualScriptConstantMethodTable :: get (get_api ()) . get_constant_value ; let ret = crate :: icalls :: icallptr_var (method_bind , self . this . sys () . as_ptr ()) ; Variant :: from_sys (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn set_constant_type (& self , _type : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualScriptConstantMethodTable :: get (get_api ()) . set_constant_type ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , _type) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_constant_value (& self , value : impl OwnedToVariant) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualScriptConstantMethodTable :: get (get_api ()) . set_constant_value ; let ret = crate :: icalls :: icallptr_void_var (method_bind , self . this . sys () . as_ptr () , value . owned_to_variant ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for VisualScriptConstant { } unsafe impl GodotObject for VisualScriptConstant { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "VisualScriptConstant" } } impl std :: ops :: Deref for VisualScriptConstant { type Target = crate :: generated :: visual_script_node :: VisualScriptNode ; # [inline] fn deref (& self) -> & crate :: generated :: visual_script_node :: VisualScriptNode { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for VisualScriptConstant { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: visual_script_node :: VisualScriptNode { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: visual_script_node :: VisualScriptNode > for VisualScriptConstant { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for VisualScriptConstant { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for VisualScriptConstant { } unsafe impl SubClass < crate :: generated :: object :: Object > for VisualScriptConstant { } impl Instanciable for VisualScriptConstant { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { VisualScriptConstant :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct VisualScriptConstantMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_constant_type : * mut sys :: godot_method_bind , pub get_constant_value : * mut sys :: godot_method_bind , pub set_constant_type : * mut sys :: godot_method_bind , pub set_constant_value : * mut sys :: godot_method_bind } impl VisualScriptConstantMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : VisualScriptConstantMethodTable = VisualScriptConstantMethodTable { class_constructor : None , get_constant_type : 0 as * mut sys :: godot_method_bind , get_constant_value : 0 as * mut sys :: godot_method_bind , set_constant_type : 0 as * mut sys :: godot_method_bind , set_constant_value : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { VisualScriptConstantMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "VisualScriptConstant\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_constant_type = (gd_api . godot_method_bind_get_method) (class_name , "get_constant_type\0" . as_ptr () as * const c_char) ; table . get_constant_value = (gd_api . godot_method_bind_get_method) (class_name , "get_constant_value\0" . as_ptr () as * const c_char) ; table . set_constant_type = (gd_api . godot_method_bind_get_method) (class_name , "set_constant_type\0" . as_ptr () as * const c_char) ; table . set_constant_value = (gd_api . godot_method_bind_get_method) (class_name , "set_constant_value\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:124:9007 [INFO] [stdout] | [INFO] [stdout] 124 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 124 | # [doc = "`core class MultiMeshInstance2D` inherits `Node2D` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_multimeshinstance2d.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`MultiMeshInstance2D` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nMultiMeshInstance2D inherits methods from:\n - [Node2D](struct.Node2D.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct MultiMeshInstance2D { this : RawObject < Self > , } impl MultiMeshInstance2D { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = MultiMeshInstance2DMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "The [MultiMesh] that will be drawn by the [MultiMeshInstance2D]."] # [doc = ""] # [inline] pub fn multimesh (& self) -> Option < Ref < crate :: generated :: multi_mesh :: MultiMesh , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiMeshInstance2DMethodTable :: get (get_api ()) . get_multimesh ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: multi_mesh :: MultiMesh , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "The normal map that will be used if using the default [CanvasItemMaterial].\n**Note:** Godot expects the normal map to use X+, Y-, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines."] # [doc = ""] # [inline] pub fn normal_map (& self) -> Option < Ref < crate :: generated :: texture :: Texture , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiMeshInstance2DMethodTable :: get (get_api ()) . get_normal_map ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: texture :: Texture , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "The [Texture] that will be used if using the default [CanvasItemMaterial]. Can be accessed as `TEXTURE` in CanvasItem shader."] # [doc = ""] # [inline] pub fn texture (& self) -> Option < Ref < crate :: generated :: texture :: Texture , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiMeshInstance2DMethodTable :: get (get_api ()) . get_texture ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: texture :: Texture , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "The [MultiMesh] that will be drawn by the [MultiMeshInstance2D]."] # [doc = ""] # [inline] pub fn set_multimesh (& self , multimesh : impl AsArg < crate :: generated :: multi_mesh :: MultiMesh >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiMeshInstance2DMethodTable :: get (get_api ()) . set_multimesh ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , multimesh . as_arg_ptr ()) ; } } # [doc = "The normal map that will be used if using the default [CanvasItemMaterial].\n**Note:** Godot expects the normal map to use X+, Y-, and Z+ coordinates. See [url=http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Common_Swizzle_Coordinates]this page[/url] for a comparison of normal map coordinates expected by popular engines."] # [doc = ""] # [inline] pub fn set_normal_map (& self , normal_map : impl AsArg < crate :: generated :: texture :: Texture >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiMeshInstance2DMethodTable :: get (get_api ()) . set_normal_map ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , normal_map . as_arg_ptr ()) ; } } # [doc = "The [Texture] that will be used if using the default [CanvasItemMaterial]. Can be accessed as `TEXTURE` in CanvasItem shader."] # [doc = ""] # [inline] pub fn set_texture (& self , texture : impl AsArg < crate :: generated :: texture :: Texture >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiMeshInstance2DMethodTable :: get (get_api ()) . set_texture ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , texture . as_arg_ptr ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for MultiMeshInstance2D { } unsafe impl GodotObject for MultiMeshInstance2D { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "MultiMeshInstance2D" } } impl QueueFree for MultiMeshInstance2D { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for MultiMeshInstance2D { type Target = crate :: generated :: node_2d :: Node2D ; # [inline] fn deref (& self) -> & crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for MultiMeshInstance2D { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: node_2d :: Node2D > for MultiMeshInstance2D { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for MultiMeshInstance2D { } unsafe impl SubClass < crate :: generated :: node :: Node > for MultiMeshInstance2D { } unsafe impl SubClass < crate :: generated :: object :: Object > for MultiMeshInstance2D { } impl Instanciable for MultiMeshInstance2D { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { MultiMeshInstance2D :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct MultiMeshInstance2DMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_multimesh : * mut sys :: godot_method_bind , pub get_normal_map : * mut sys :: godot_method_bind , pub get_texture : * mut sys :: godot_method_bind , pub set_multimesh : * mut sys :: godot_method_bind , pub set_normal_map : * mut sys :: godot_method_bind , pub set_texture : * mut sys :: godot_method_bind } impl MultiMeshInstance2DMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : MultiMeshInstance2DMethodTable = MultiMeshInstance2DMethodTable { class_constructor : None , get_multimesh : 0 as * mut sys :: godot_method_bind , get_normal_map : 0 as * mut sys :: godot_method_bind , get_texture : 0 as * mut sys :: godot_method_bind , set_multimesh : 0 as * mut sys :: godot_method_bind , set_normal_map : 0 as * mut sys :: godot_method_bind , set_texture : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { MultiMeshInstance2DMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "MultiMeshInstance2D\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_multimesh = (gd_api . godot_method_bind_get_method) (class_name , "get_multimesh\0" . as_ptr () as * const c_char) ; table . get_normal_map = (gd_api . godot_method_bind_get_method) (class_name , "get_normal_map\0" . as_ptr () as * const c_char) ; table . get_texture = (gd_api . godot_method_bind_get_method) (class_name , "get_texture\0" . as_ptr () as * const c_char) ; table . set_multimesh = (gd_api . godot_method_bind_get_method) (class_name , "set_multimesh\0" . as_ptr () as * const c_char) ; table . set_normal_map = (gd_api . godot_method_bind_get_method) (class_name , "set_normal_map\0" . as_ptr () as * const c_char) ; table . set_texture = (gd_api . godot_method_bind_get_method) (class_name , "set_texture\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:130:18262 [INFO] [stdout] | [INFO] [stdout] 130 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 130 | # [doc = "`core class RayCast2D` inherits `Node2D` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_raycast2d.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`RayCast2D` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nRayCast2D inherits methods from:\n - [Node2D](struct.Node2D.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct RayCast2D { this : RawObject < Self > , } impl RayCast2D { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = RayCast2DMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Adds a collision exception so the ray does not report collisions with the specified node."] # [doc = ""] # [inline] pub fn add_exception (& self , node : impl AsArg < crate :: generated :: object :: Object >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . add_exception ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , node . as_arg_ptr ()) ; } } # [doc = "Adds a collision exception so the ray does not report collisions with the specified [RID]."] # [doc = ""] # [inline] pub fn add_exception_rid (& self , rid : Rid) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . add_exception_rid ; let ret = crate :: icalls :: icallptr_void_rid (method_bind , self . this . sys () . as_ptr () , rid) ; } } # [doc = "Removes all collision exceptions for this ray."] # [doc = ""] # [inline] pub fn clear_exceptions (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . clear_exceptions ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Updates the collision information for the ray. Use this method to update the collision information immediately instead of waiting for the next `_physics_process` call, for example if the ray or its parent has changed state.\n**Note:** `enabled` is not required for this to work."] # [doc = ""] # [inline] pub fn force_raycast_update (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . force_raycast_update ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "The ray's destination point, relative to the RayCast's `position`."] # [doc = ""] # [inline] pub fn cast_to (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . get_cast_to ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Returns the first object that the ray intersects, or `null` if no object is intersecting the ray (i.e. [method is_colliding] returns `false`)."] # [doc = ""] # [inline] pub fn get_collider (& self) -> Option < Ref < crate :: generated :: object :: Object , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . get_collider ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: object :: Object , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the shape ID of the first object that the ray intersects, or `0` if no object is intersecting the ray (i.e. [method is_colliding] returns `false`)."] # [doc = ""] # [inline] pub fn get_collider_shape (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . get_collider_shape ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information."] # [doc = ""] # [inline] pub fn collision_mask (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . get_collision_mask ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns an individual bit on the collision mask."] # [doc = ""] # [inline] pub fn get_collision_mask_bit (& self , bit : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . get_collision_mask_bit ; let ret = crate :: icalls :: icallptr_bool_i64 (method_bind , self . this . sys () . as_ptr () , bit) ; ret as _ } } # [doc = "Returns the normal of the intersecting object's shape at the collision point."] # [doc = ""] # [inline] pub fn get_collision_normal (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . get_collision_normal ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Returns the collision point at which the ray intersects the closest object.\n**Note:** this point is in the **global** coordinate system."] # [doc = ""] # [inline] pub fn get_collision_point (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . get_collision_point ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "If `true`, the parent node will be excluded from collision detection."] # [doc = ""] # [inline] pub fn exclude_parent_body (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . get_exclude_parent_body ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, collision with [Area2D]s will be reported."] # [doc = ""] # [inline] pub fn is_collide_with_areas_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . is_collide_with_areas_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, collision with [PhysicsBody2D]s will be reported."] # [doc = ""] # [inline] pub fn is_collide_with_bodies_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . is_collide_with_bodies_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns whether any object is intersecting with the ray's vector (considering the vector length)."] # [doc = ""] # [inline] pub fn is_colliding (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . is_colliding ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, collisions will be reported."] # [doc = ""] # [inline] pub fn is_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . is_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Removes a collision exception so the ray does report collisions with the specified node."] # [doc = ""] # [inline] pub fn remove_exception (& self , node : impl AsArg < crate :: generated :: object :: Object >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . remove_exception ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , node . as_arg_ptr ()) ; } } # [doc = "Removes a collision exception so the ray does report collisions with the specified [RID]."] # [doc = ""] # [inline] pub fn remove_exception_rid (& self , rid : Rid) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . remove_exception_rid ; let ret = crate :: icalls :: icallptr_void_rid (method_bind , self . this . sys () . as_ptr () , rid) ; } } # [doc = "The ray's destination point, relative to the RayCast's `position`."] # [doc = ""] # [inline] pub fn set_cast_to (& self , local_point : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . set_cast_to ; let ret = crate :: icalls :: icallptr_void_vec2 (method_bind , self . this . sys () . as_ptr () , local_point) ; } } # [doc = "If `true`, collision with [Area2D]s will be reported."] # [doc = ""] # [inline] pub fn set_collide_with_areas (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . set_collide_with_areas ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "If `true`, collision with [PhysicsBody2D]s will be reported."] # [doc = ""] # [inline] pub fn set_collide_with_bodies (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . set_collide_with_bodies ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information."] # [doc = ""] # [inline] pub fn set_collision_mask (& self , mask : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . set_collision_mask ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , mask) ; } } # [doc = "Sets or clears individual bits on the collision mask. This makes selecting the areas scanned easier."] # [doc = ""] # [inline] pub fn set_collision_mask_bit (& self , bit : i64 , value : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . set_collision_mask_bit ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , bit , value) ; } } # [doc = "If `true`, collisions will be reported."] # [doc = ""] # [inline] pub fn set_enabled (& self , enabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . set_enabled ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enabled) ; } } # [doc = "If `true`, the parent node will be excluded from collision detection."] # [doc = ""] # [inline] pub fn set_exclude_parent_body (& self , mask : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RayCast2DMethodTable :: get (get_api ()) . set_exclude_parent_body ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , mask) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for RayCast2D { } unsafe impl GodotObject for RayCast2D { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "RayCast2D" } } impl QueueFree for RayCast2D { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for RayCast2D { type Target = crate :: generated :: node_2d :: Node2D ; # [inline] fn deref (& self) -> & crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for RayCast2D { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: node_2d :: Node2D > for RayCast2D { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for RayCast2D { } unsafe impl SubClass < crate :: generated :: node :: Node > for RayCast2D { } unsafe impl SubClass < crate :: generated :: object :: Object > for RayCast2D { } impl Instanciable for RayCast2D { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { RayCast2D :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct RayCast2DMethodTable { pub class_constructor : sys :: godot_class_constructor , pub add_exception : * mut sys :: godot_method_bind , pub add_exception_rid : * mut sys :: godot_method_bind , pub clear_exceptions : * mut sys :: godot_method_bind , pub force_raycast_update : * mut sys :: godot_method_bind , pub get_cast_to : * mut sys :: godot_method_bind , pub get_collider : * mut sys :: godot_method_bind , pub get_collider_shape : * mut sys :: godot_method_bind , pub get_collision_mask : * mut sys :: godot_method_bind , pub get_collision_mask_bit : * mut sys :: godot_method_bind , pub get_collision_normal : * mut sys :: godot_method_bind , pub get_collision_point : * mut sys :: godot_method_bind , pub get_exclude_parent_body : * mut sys :: godot_method_bind , pub is_collide_with_areas_enabled : * mut sys :: godot_method_bind , pub is_collide_with_bodies_enabled : * mut sys :: godot_method_bind , pub is_colliding : * mut sys :: godot_method_bind , pub is_enabled : * mut sys :: godot_method_bind , pub remove_exception : * mut sys :: godot_method_bind , pub remove_exception_rid : * mut sys :: godot_method_bind , pub set_cast_to : * mut sys :: godot_method_bind , pub set_collide_with_areas : * mut sys :: godot_method_bind , pub set_collide_with_bodies : * mut sys :: godot_method_bind , pub set_collision_mask : * mut sys :: godot_method_bind , pub set_collision_mask_bit : * mut sys :: godot_method_bind , pub set_enabled : * mut sys :: godot_method_bind , pub set_exclude_parent_body : * mut sys :: godot_method_bind } impl RayCast2DMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : RayCast2DMethodTable = RayCast2DMethodTable { class_constructor : None , add_exception : 0 as * mut sys :: godot_method_bind , add_exception_rid : 0 as * mut sys :: godot_method_bind , clear_exceptions : 0 as * mut sys :: godot_method_bind , force_raycast_update : 0 as * mut sys :: godot_method_bind , get_cast_to : 0 as * mut sys :: godot_method_bind , get_collider : 0 as * mut sys :: godot_method_bind , get_collider_shape : 0 as * mut sys :: godot_method_bind , get_collision_mask : 0 as * mut sys :: godot_method_bind , get_collision_mask_bit : 0 as * mut sys :: godot_method_bind , get_collision_normal : 0 as * mut sys :: godot_method_bind , get_collision_point : 0 as * mut sys :: godot_method_bind , get_exclude_parent_body : 0 as * mut sys :: godot_method_bind , is_collide_with_areas_enabled : 0 as * mut sys :: godot_method_bind , is_collide_with_bodies_enabled : 0 as * mut sys :: godot_method_bind , is_colliding : 0 as * mut sys :: godot_method_bind , is_enabled : 0 as * mut sys :: godot_method_bind , remove_exception : 0 as * mut sys :: godot_method_bind , remove_exception_rid : 0 as * mut sys :: godot_method_bind , set_cast_to : 0 as * mut sys :: godot_method_bind , set_collide_with_areas : 0 as * mut sys :: godot_method_bind , set_collide_with_bodies : 0 as * mut sys :: godot_method_bind , set_collision_mask : 0 as * mut sys :: godot_method_bind , set_collision_mask_bit : 0 as * mut sys :: godot_method_bind , set_enabled : 0 as * mut sys :: godot_method_bind , set_exclude_parent_body : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { RayCast2DMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "RayCast2D\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . add_exception = (gd_api . godot_method_bind_get_method) (class_name , "add_exception\0" . as_ptr () as * const c_char) ; table . add_exception_rid = (gd_api . godot_method_bind_get_method) (class_name , "add_exception_rid\0" . as_ptr () as * const c_char) ; table . clear_exceptions = (gd_api . godot_method_bind_get_method) (class_name , "clear_exceptions\0" . as_ptr () as * const c_char) ; table . force_raycast_update = (gd_api . godot_method_bind_get_method) (class_name , "force_raycast_update\0" . as_ptr () as * const c_char) ; table . get_cast_to = (gd_api . godot_method_bind_get_method) (class_name , "get_cast_to\0" . as_ptr () as * const c_char) ; table . get_collider = (gd_api . godot_method_bind_get_method) (class_name , "get_collider\0" . as_ptr () as * const c_char) ; table . get_collider_shape = (gd_api . godot_method_bind_get_method) (class_name , "get_collider_shape\0" . as_ptr () as * const c_char) ; table . get_collision_mask = (gd_api . godot_method_bind_get_method) (class_name , "get_collision_mask\0" . as_ptr () as * const c_char) ; table . get_collision_mask_bit = (gd_api . godot_method_bind_get_method) (class_name , "get_collision_mask_bit\0" . as_ptr () as * const c_char) ; table . get_collision_normal = (gd_api . godot_method_bind_get_method) (class_name , "get_collision_normal\0" . as_ptr () as * const c_char) ; table . get_collision_point = (gd_api . godot_method_bind_get_method) (class_name , "get_collision_point\0" . as_ptr () as * const c_char) ; table . get_exclude_parent_body = (gd_api . godot_method_bind_get_method) (class_name , "get_exclude_parent_body\0" . as_ptr () as * const c_char) ; table . is_collide_with_areas_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_collide_with_areas_enabled\0" . as_ptr () as * const c_char) ; table . is_collide_with_bodies_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_collide_with_bodies_enabled\0" . as_ptr () as * const c_char) ; table . is_colliding = (gd_api . godot_method_bind_get_method) (class_name , "is_colliding\0" . as_ptr () as * const c_char) ; table . is_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_enabled\0" . as_ptr () as * const c_char) ; table . remove_exception = (gd_api . godot_method_bind_get_method) (class_name , "remove_exception\0" . as_ptr () as * const c_char) ; table . remove_exception_rid = (gd_api . godot_method_bind_get_method) (class_name , "remove_exception_rid\0" . as_ptr () as * const c_char) ; table . set_cast_to = (gd_api . godot_method_bind_get_method) (class_name , "set_cast_to\0" . as_ptr () as * const c_char) ; table . set_collide_with_areas = (gd_api . godot_method_bind_get_method) (class_name , "set_collide_with_areas\0" . as_ptr () as * const c_char) ; table . set_collide_with_bodies = (gd_api . godot_method_bind_get_method) (class_name , "set_collide_with_bodies\0" . as_ptr () as * const c_char) ; table . set_collision_mask = (gd_api . godot_method_bind_get_method) (class_name , "set_collision_mask\0" . as_ptr () as * const c_char) ; table . set_collision_mask_bit = (gd_api . godot_method_bind_get_method) (class_name , "set_collision_mask_bit\0" . as_ptr () as * const c_char) ; table . set_enabled = (gd_api . godot_method_bind_get_method) (class_name , "set_enabled\0" . as_ptr () as * const c_char) ; table . set_exclude_parent_body = (gd_api . godot_method_bind_get_method) (class_name , "set_exclude_parent_body\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:136:33429 [INFO] [stdout] | [INFO] [stdout] 136 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 136 | # [doc = "`core class RigidBody` inherits `PhysicsBody` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_rigidbody.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`RigidBody` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nRigidBody inherits methods from:\n - [PhysicsBody](struct.PhysicsBody.html)\n - [CollisionObject](struct.CollisionObject.html)\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct RigidBody { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct Mode (pub i64) ; impl Mode { pub const RIGID : Mode = Mode (0i64) ; pub const STATIC : Mode = Mode (1i64) ; pub const CHARACTER : Mode = Mode (2i64) ; pub const KINEMATIC : Mode = Mode (3i64) ; } impl From < i64 > for Mode { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < Mode > for i64 { # [inline] fn from (v : Mode) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl RigidBody { pub const MODE_CHARACTER : i64 = 2i64 ; pub const MODE_KINEMATIC : i64 = 3i64 ; pub const MODE_RIGID : i64 = 0i64 ; pub const MODE_STATIC : i64 = 1i64 ; } impl RigidBody { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = RigidBodyMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Adds a constant directional force (i.e. acceleration) without affecting rotation.\nThis is equivalent to `add_force(force, Vector3(0,0,0))`."] # [doc = ""] # [inline] pub fn add_central_force (& self , force : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . add_central_force ; let ret = crate :: icalls :: icallptr_void_vec3 (method_bind , self . this . sys () . as_ptr () , force) ; } } # [doc = "Adds a constant directional force (i.e. acceleration).\nThe position uses the rotation of the global coordinate system, but is centered at the object's origin."] # [doc = ""] # [inline] pub fn add_force (& self , force : Vector3 , position : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . add_force ; let ret = crate :: icalls :: icallptr_void_vec3_vec3 (method_bind , self . this . sys () . as_ptr () , force , position) ; } } # [doc = "Adds a constant rotational force (i.e. a motor) without affecting position."] # [doc = ""] # [inline] pub fn add_torque (& self , torque : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . add_torque ; let ret = crate :: icalls :: icallptr_void_vec3 (method_bind , self . this . sys () . as_ptr () , torque) ; } } # [doc = "Applies a directional impulse without affecting rotation.\nThis is equivalent to `apply_impulse(Vector3(0,0,0), impulse)`."] # [doc = ""] # [inline] pub fn apply_central_impulse (& self , impulse : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . apply_central_impulse ; let ret = crate :: icalls :: icallptr_void_vec3 (method_bind , self . this . sys () . as_ptr () , impulse) ; } } # [doc = "Applies a positioned impulse to the body. An impulse is time independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason it should only be used when simulating one-time impacts. The position uses the rotation of the global coordinate system, but is centered at the object's origin."] # [doc = ""] # [inline] pub fn apply_impulse (& self , position : Vector3 , impulse : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . apply_impulse ; let ret = crate :: icalls :: icallptr_void_vec3_vec3 (method_bind , self . this . sys () . as_ptr () , position , impulse) ; } } # [doc = "Applies a torque impulse which will be affected by the body mass and shape. This will rotate the body around the `impulse` vector passed."] # [doc = ""] # [inline] pub fn apply_torque_impulse (& self , impulse : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . apply_torque_impulse ; let ret = crate :: icalls :: icallptr_void_vec3 (method_bind , self . this . sys () . as_ptr () , impulse) ; } } # [doc = "Damps RigidBody's rotational forces."] # [doc = ""] # [inline] pub fn angular_damp (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . get_angular_damp ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "RigidBody's rotational velocity."] # [doc = ""] # [inline] pub fn angular_velocity (& self) -> Vector3 { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . get_angular_velocity ; let ret = crate :: icalls :: icallptr_vec3 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Lock the body's movement in the Z axis."] # [doc = ""] # [inline] pub fn axis_lock (& self , axis : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . get_axis_lock ; let ret = crate :: icalls :: icallptr_bool_i64 (method_bind , self . this . sys () . as_ptr () , axis) ; ret as _ } } # [doc = "The body's bounciness. Values range from `0` (no bounce) to `1` (full bounciness).\nDeprecated, use [member PhysicsMaterial.bounce] instead via [member physics_material_override]."] # [doc = ""] # [inline] pub fn bounce (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . get_bounce ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns a list of the bodies colliding with this one. Requires [member contact_monitor] to be set to `true` and [member contacts_reported] to be set high enough to detect all the collisions.\n**Note:** The result of this test is not immediate after moving objects. For performance, list of collisions is updated once per frame and before the physics step. Consider using signals instead."] # [doc = ""] # [inline] pub fn get_colliding_bodies (& self) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . get_colliding_bodies ; let ret = crate :: icalls :: icallvar_ (method_bind , self . this . sys () . as_ptr ()) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = "The body's friction, from 0 (frictionless) to 1 (max friction).\nDeprecated, use [member PhysicsMaterial.friction] instead via [member physics_material_override]."] # [doc = ""] # [inline] pub fn friction (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . get_friction ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "This is multiplied by the global 3D gravity setting found in **Project > Project Settings > Physics > 3d** to produce RigidBody's gravity. For example, a value of 1 will be normal gravity, 2 will apply double gravity, and 0.5 will apply half gravity to this object."] # [doc = ""] # [inline] pub fn gravity_scale (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . get_gravity_scale ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the inverse inertia tensor basis. This is used to calculate the angular acceleration resulting from a torque applied to the RigidBody."] # [doc = ""] # [inline] pub fn get_inverse_inertia_tensor (& self) -> Basis { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . get_inverse_inertia_tensor ; let ret = crate :: icalls :: icallptr_basis (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "The body's linear damp. Cannot be less than -1.0. If this value is different from -1.0, any linear damp derived from the world or areas will be overridden."] # [doc = ""] # [inline] pub fn linear_damp (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . get_linear_damp ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The body's linear velocity. Can be used sporadically, but **don't set this every frame**, because physics may run in another thread and runs at a different granularity. Use [method _integrate_forces] as your process loop for precise control of the body state."] # [doc = ""] # [inline] pub fn linear_velocity (& self) -> Vector3 { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . get_linear_velocity ; let ret = crate :: icalls :: icallptr_vec3 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "The body's mass."] # [doc = ""] # [inline] pub fn mass (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . get_mass ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The maximum number of contacts that will be recorded. Requires [member contact_monitor] to be set to `true`.\n**Note:** The number of contacts is different from the number of collisions. Collisions between parallel edges will result in two contacts (one at each end), and collisions between parallel faces will result in four contacts (one at each corner)."] # [doc = ""] # [inline] pub fn max_contacts_reported (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . get_max_contacts_reported ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The body mode. See [enum Mode] for possible values."] # [doc = ""] # [inline] pub fn mode (& self) -> crate :: generated :: rigid_body :: Mode { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . get_mode ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: rigid_body :: Mode (ret) } } # [doc = "The physics material override for the body.\nIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one."] # [doc = ""] # [inline] pub fn physics_material_override (& self) -> Option < Ref < crate :: generated :: physics_material :: PhysicsMaterial , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . get_physics_material_override ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: physics_material :: PhysicsMaterial , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "The body's weight based on its mass and the global 3D gravity. Global values are set in **Project > Project Settings > Physics > 3d**."] # [doc = ""] # [inline] pub fn weight (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . get_weight ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, the body can enter sleep mode when there is no movement. See [member sleeping].\n**Note:** A RigidBody3D will never enter sleep mode automatically if its [member mode] is [constant MODE_CHARACTER]. It can still be put to sleep manually by setting its [member sleeping] property to `true`."] # [doc = ""] # [inline] pub fn is_able_to_sleep (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . is_able_to_sleep ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, the RigidBody will emit signals when it collides with another RigidBody. See also [member contacts_reported]."] # [doc = ""] # [inline] pub fn is_contact_monitor_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . is_contact_monitor_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the [method apply_impulse] or [method add_force] methods."] # [doc = ""] # [inline] pub fn is_sleeping (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . is_sleeping ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, continuous collision detection is used.\nContinuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. Continuous collision detection is more precise, and misses fewer impacts by small, fast-moving objects. Not using continuous collision detection is faster to compute, but can miss small, fast-moving objects."] # [doc = ""] # [inline] pub fn is_using_continuous_collision_detection (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . is_using_continuous_collision_detection ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, internal force integration will be disabled (like gravity or air friction) for this body. Other than collision response, the body will only move as determined by the [method _integrate_forces] function, if defined."] # [doc = ""] # [inline] pub fn is_using_custom_integrator (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . is_using_custom_integrator ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Damps RigidBody's rotational forces."] # [doc = ""] # [inline] pub fn set_angular_damp (& self , angular_damp : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_angular_damp ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , angular_damp) ; } } # [doc = "RigidBody's rotational velocity."] # [doc = ""] # [inline] pub fn set_angular_velocity (& self , angular_velocity : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_angular_velocity ; let ret = crate :: icalls :: icallptr_void_vec3 (method_bind , self . this . sys () . as_ptr () , angular_velocity) ; } } # [doc = "Lock the body's movement in the Z axis."] # [doc = ""] # [inline] pub fn set_axis_lock (& self , axis : i64 , lock : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_axis_lock ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , axis , lock) ; } } # [doc = "Sets an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior."] # [doc = ""] # [inline] pub fn set_axis_velocity (& self , axis_velocity : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_axis_velocity ; let ret = crate :: icalls :: icallptr_void_vec3 (method_bind , self . this . sys () . as_ptr () , axis_velocity) ; } } # [doc = "The body's bounciness. Values range from `0` (no bounce) to `1` (full bounciness).\nDeprecated, use [member PhysicsMaterial.bounce] instead via [member physics_material_override]."] # [doc = ""] # [inline] pub fn set_bounce (& self , bounce : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_bounce ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , bounce) ; } } # [doc = "If `true`, the body can enter sleep mode when there is no movement. See [member sleeping].\n**Note:** A RigidBody3D will never enter sleep mode automatically if its [member mode] is [constant MODE_CHARACTER]. It can still be put to sleep manually by setting its [member sleeping] property to `true`."] # [doc = ""] # [inline] pub fn set_can_sleep (& self , able_to_sleep : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_can_sleep ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , able_to_sleep) ; } } # [doc = "If `true`, the RigidBody will emit signals when it collides with another RigidBody. See also [member contacts_reported]."] # [doc = ""] # [inline] pub fn set_contact_monitor (& self , enabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_contact_monitor ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enabled) ; } } # [doc = "The body's friction, from 0 (frictionless) to 1 (max friction).\nDeprecated, use [member PhysicsMaterial.friction] instead via [member physics_material_override]."] # [doc = ""] # [inline] pub fn set_friction (& self , friction : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_friction ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , friction) ; } } # [doc = "This is multiplied by the global 3D gravity setting found in **Project > Project Settings > Physics > 3d** to produce RigidBody's gravity. For example, a value of 1 will be normal gravity, 2 will apply double gravity, and 0.5 will apply half gravity to this object."] # [doc = ""] # [inline] pub fn set_gravity_scale (& self , gravity_scale : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_gravity_scale ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , gravity_scale) ; } } # [doc = "The body's linear damp. Cannot be less than -1.0. If this value is different from -1.0, any linear damp derived from the world or areas will be overridden."] # [doc = ""] # [inline] pub fn set_linear_damp (& self , linear_damp : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_linear_damp ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , linear_damp) ; } } # [doc = "The body's linear velocity. Can be used sporadically, but **don't set this every frame**, because physics may run in another thread and runs at a different granularity. Use [method _integrate_forces] as your process loop for precise control of the body state."] # [doc = ""] # [inline] pub fn set_linear_velocity (& self , linear_velocity : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_linear_velocity ; let ret = crate :: icalls :: icallptr_void_vec3 (method_bind , self . this . sys () . as_ptr () , linear_velocity) ; } } # [doc = "The body's mass."] # [doc = ""] # [inline] pub fn set_mass (& self , mass : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_mass ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , mass) ; } } # [doc = "The maximum number of contacts that will be recorded. Requires [member contact_monitor] to be set to `true`.\n**Note:** The number of contacts is different from the number of collisions. Collisions between parallel edges will result in two contacts (one at each end), and collisions between parallel faces will result in four contacts (one at each corner)."] # [doc = ""] # [inline] pub fn set_max_contacts_reported (& self , amount : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_max_contacts_reported ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , amount) ; } } # [doc = "The body mode. See [enum Mode] for possible values."] # [doc = ""] # [inline] pub fn set_mode (& self , mode : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_mode ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , mode) ; } } # [doc = "The physics material override for the body.\nIf a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one."] # [doc = ""] # [inline] pub fn set_physics_material_override (& self , physics_material_override : impl AsArg < crate :: generated :: physics_material :: PhysicsMaterial >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_physics_material_override ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , physics_material_override . as_arg_ptr ()) ; } } # [doc = "If `true`, the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the [method apply_impulse] or [method add_force] methods."] # [doc = ""] # [inline] pub fn set_sleeping (& self , sleeping : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_sleeping ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , sleeping) ; } } # [doc = "If `true`, continuous collision detection is used.\nContinuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. Continuous collision detection is more precise, and misses fewer impacts by small, fast-moving objects. Not using continuous collision detection is faster to compute, but can miss small, fast-moving objects."] # [doc = ""] # [inline] pub fn set_use_continuous_collision_detection (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_use_continuous_collision_detection ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "If `true`, internal force integration will be disabled (like gravity or air friction) for this body. Other than collision response, the body will only move as determined by the [method _integrate_forces] function, if defined."] # [doc = ""] # [inline] pub fn set_use_custom_integrator (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_use_custom_integrator ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "The body's weight based on its mass and the global 3D gravity. Global values are set in **Project > Project Settings > Physics > 3d**."] # [doc = ""] # [inline] pub fn set_weight (& self , weight : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RigidBodyMethodTable :: get (get_api ()) . set_weight ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , weight) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for RigidBody { } unsafe impl GodotObject for RigidBody { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "RigidBody" } } impl QueueFree for RigidBody { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for RigidBody { type Target = crate :: generated :: physics_body :: PhysicsBody ; # [inline] fn deref (& self) -> & crate :: generated :: physics_body :: PhysicsBody { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for RigidBody { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: physics_body :: PhysicsBody { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: physics_body :: PhysicsBody > for RigidBody { } unsafe impl SubClass < crate :: generated :: collision_object :: CollisionObject > for RigidBody { } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for RigidBody { } unsafe impl SubClass < crate :: generated :: node :: Node > for RigidBody { } unsafe impl SubClass < crate :: generated :: object :: Object > for RigidBody { } impl Instanciable for RigidBody { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { RigidBody :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct RigidBodyMethodTable { pub class_constructor : sys :: godot_class_constructor , pub add_central_force : * mut sys :: godot_method_bind , pub add_force : * mut sys :: godot_method_bind , pub add_torque : * mut sys :: godot_method_bind , pub apply_central_impulse : * mut sys :: godot_method_bind , pub apply_impulse : * mut sys :: godot_method_bind , pub apply_torque_impulse : * mut sys :: godot_method_bind , pub get_angular_damp : * mut sys :: godot_method_bind , pub get_angular_velocity : * mut sys :: godot_method_bind , pub get_axis_lock : * mut sys :: godot_method_bind , pub get_bounce : * mut sys :: godot_method_bind , pub get_colliding_bodies : * mut sys :: godot_method_bind , pub get_friction : * mut sys :: godot_method_bind , pub get_gravity_scale : * mut sys :: godot_method_bind , pub get_inverse_inertia_tensor : * mut sys :: godot_method_bind , pub get_linear_damp : * mut sys :: godot_method_bind , pub get_linear_velocity : * mut sys :: godot_method_bind , pub get_mass : * mut sys :: godot_method_bind , pub get_max_contacts_reported : * mut sys :: godot_method_bind , pub get_mode : * mut sys :: godot_method_bind , pub get_physics_material_override : * mut sys :: godot_method_bind , pub get_weight : * mut sys :: godot_method_bind , pub is_able_to_sleep : * mut sys :: godot_method_bind , pub is_contact_monitor_enabled : * mut sys :: godot_method_bind , pub is_sleeping : * mut sys :: godot_method_bind , pub is_using_continuous_collision_detection : * mut sys :: godot_method_bind , pub is_using_custom_integrator : * mut sys :: godot_method_bind , pub set_angular_damp : * mut sys :: godot_method_bind , pub set_angular_velocity : * mut sys :: godot_method_bind , pub set_axis_lock : * mut sys :: godot_method_bind , pub set_axis_velocity : * mut sys :: godot_method_bind , pub set_bounce : * mut sys :: godot_method_bind , pub set_can_sleep : * mut sys :: godot_method_bind , pub set_contact_monitor : * mut sys :: godot_method_bind , pub set_friction : * mut sys :: godot_method_bind , pub set_gravity_scale : * mut sys :: godot_method_bind , pub set_linear_damp : * mut sys :: godot_method_bind , pub set_linear_velocity : * mut sys :: godot_method_bind , pub set_mass : * mut sys :: godot_method_bind , pub set_max_contacts_reported : * mut sys :: godot_method_bind , pub set_mode : * mut sys :: godot_method_bind , pub set_physics_material_override : * mut sys :: godot_method_bind , pub set_sleeping : * mut sys :: godot_method_bind , pub set_use_continuous_collision_detection : * mut sys :: godot_method_bind , pub set_use_custom_integrator : * mut sys :: godot_method_bind , pub set_weight : * mut sys :: godot_method_bind } impl RigidBodyMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : RigidBodyMethodTable = RigidBodyMethodTable { class_constructor : None , add_central_force : 0 as * mut sys :: godot_method_bind , add_force : 0 as * mut sys :: godot_method_bind , add_torque : 0 as * mut sys :: godot_method_bind , apply_central_impulse : 0 as * mut sys :: godot_method_bind , apply_impulse : 0 as * mut sys :: godot_method_bind , apply_torque_impulse : 0 as * mut sys :: godot_method_bind , get_angular_damp : 0 as * mut sys :: godot_method_bind , get_angular_velocity : 0 as * mut sys :: godot_method_bind , get_axis_lock : 0 as * mut sys :: godot_method_bind , get_bounce : 0 as * mut sys :: godot_method_bind , get_colliding_bodies : 0 as * mut sys :: godot_method_bind , get_friction : 0 as * mut sys :: godot_method_bind , get_gravity_scale : 0 as * mut sys :: godot_method_bind , get_inverse_inertia_tensor : 0 as * mut sys :: godot_method_bind , get_linear_damp : 0 as * mut sys :: godot_method_bind , get_linear_velocity : 0 as * mut sys :: godot_method_bind , get_mass : 0 as * mut sys :: godot_method_bind , get_max_contacts_reported : 0 as * mut sys :: godot_method_bind , get_mode : 0 as * mut sys :: godot_method_bind , get_physics_material_override : 0 as * mut sys :: godot_method_bind , get_weight : 0 as * mut sys :: godot_method_bind , is_able_to_sleep : 0 as * mut sys :: godot_method_bind , is_contact_monitor_enabled : 0 as * mut sys :: godot_method_bind , is_sleeping : 0 as * mut sys :: godot_method_bind , is_using_continuous_collision_detection : 0 as * mut sys :: godot_method_bind , is_using_custom_integrator : 0 as * mut sys :: godot_method_bind , set_angular_damp : 0 as * mut sys :: godot_method_bind , set_angular_velocity : 0 as * mut sys :: godot_method_bind , set_axis_lock : 0 as * mut sys :: godot_method_bind , set_axis_velocity : 0 as * mut sys :: godot_method_bind , set_bounce : 0 as * mut sys :: godot_method_bind , set_can_sleep : 0 as * mut sys :: godot_method_bind , set_contact_monitor : 0 as * mut sys :: godot_method_bind , set_friction : 0 as * mut sys :: godot_method_bind , set_gravity_scale : 0 as * mut sys :: godot_method_bind , set_linear_damp : 0 as * mut sys :: godot_method_bind , set_linear_velocity : 0 as * mut sys :: godot_method_bind , set_mass : 0 as * mut sys :: godot_method_bind , set_max_contacts_reported : 0 as * mut sys :: godot_method_bind , set_mode : 0 as * mut sys :: godot_method_bind , set_physics_material_override : 0 as * mut sys :: godot_method_bind , set_sleeping : 0 as * mut sys :: godot_method_bind , set_use_continuous_collision_detection : 0 as * mut sys :: godot_method_bind , set_use_custom_integrator : 0 as * mut sys :: godot_method_bind , set_weight : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { RigidBodyMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "RigidBody\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . add_central_force = (gd_api . godot_method_bind_get_method) (class_name , "add_central_force\0" . as_ptr () as * const c_char) ; table . add_force = (gd_api . godot_method_bind_get_method) (class_name , "add_force\0" . as_ptr () as * const c_char) ; table . add_torque = (gd_api . godot_method_bind_get_method) (class_name , "add_torque\0" . as_ptr () as * const c_char) ; table . apply_central_impulse = (gd_api . godot_method_bind_get_method) (class_name , "apply_central_impulse\0" . as_ptr () as * const c_char) ; table . apply_impulse = (gd_api . godot_method_bind_get_method) (class_name , "apply_impulse\0" . as_ptr () as * const c_char) ; table . apply_torque_impulse = (gd_api . godot_method_bind_get_method) (class_name , "apply_torque_impulse\0" . as_ptr () as * const c_char) ; table . get_angular_damp = (gd_api . godot_method_bind_get_method) (class_name , "get_angular_damp\0" . as_ptr () as * const c_char) ; table . get_angular_velocity = (gd_api . godot_method_bind_get_method) (class_name , "get_angular_velocity\0" . as_ptr () as * const c_char) ; table . get_axis_lock = (gd_api . godot_method_bind_get_method) (class_name , "get_axis_lock\0" . as_ptr () as * const c_char) ; table . get_bounce = (gd_api . godot_method_bind_get_method) (class_name , "get_bounce\0" . as_ptr () as * const c_char) ; table . get_colliding_bodies = (gd_api . godot_method_bind_get_method) (class_name , "get_colliding_bodies\0" . as_ptr () as * const c_char) ; table . get_friction = (gd_api . godot_method_bind_get_method) (class_name , "get_friction\0" . as_ptr () as * const c_char) ; table . get_gravity_scale = (gd_api . godot_method_bind_get_method) (class_name , "get_gravity_scale\0" . as_ptr () as * const c_char) ; table . get_inverse_inertia_tensor = (gd_api . godot_method_bind_get_method) (class_name , "get_inverse_inertia_tensor\0" . as_ptr () as * const c_char) ; table . get_linear_damp = (gd_api . godot_method_bind_get_method) (class_name , "get_linear_damp\0" . as_ptr () as * const c_char) ; table . get_linear_velocity = (gd_api . godot_method_bind_get_method) (class_name , "get_linear_velocity\0" . as_ptr () as * const c_char) ; table . get_mass = (gd_api . godot_method_bind_get_method) (class_name , "get_mass\0" . as_ptr () as * const c_char) ; table . get_max_contacts_reported = (gd_api . godot_method_bind_get_method) (class_name , "get_max_contacts_reported\0" . as_ptr () as * const c_char) ; table . get_mode = (gd_api . godot_method_bind_get_method) (class_name , "get_mode\0" . as_ptr () as * const c_char) ; table . get_physics_material_override = (gd_api . godot_method_bind_get_method) (class_name , "get_physics_material_override\0" . as_ptr () as * const c_char) ; table . get_weight = (gd_api . godot_method_bind_get_method) (class_name , "get_weight\0" . as_ptr () as * const c_char) ; table . is_able_to_sleep = (gd_api . godot_method_bind_get_method) (class_name , "is_able_to_sleep\0" . as_ptr () as * const c_char) ; table . is_contact_monitor_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_contact_monitor_enabled\0" . as_ptr () as * const c_char) ; table . is_sleeping = (gd_api . godot_method_bind_get_method) (class_name , "is_sleeping\0" . as_ptr () as * const c_char) ; table . is_using_continuous_collision_detection = (gd_api . godot_method_bind_get_method) (class_name , "is_using_continuous_collision_detection\0" . as_ptr () as * const c_char) ; table . is_using_custom_integrator = (gd_api . godot_method_bind_get_method) (class_name , "is_using_custom_integrator\0" . as_ptr () as * const c_char) ; table . set_angular_damp = (gd_api . godot_method_bind_get_method) (class_name , "set_angular_damp\0" . as_ptr () as * const c_char) ; table . set_angular_velocity = (gd_api . godot_method_bind_get_method) (class_name , "set_angular_velocity\0" . as_ptr () as * const c_char) ; table . set_axis_lock = (gd_api . godot_method_bind_get_method) (class_name , "set_axis_lock\0" . as_ptr () as * const c_char) ; table . set_axis_velocity = (gd_api . godot_method_bind_get_method) (class_name , "set_axis_velocity\0" . as_ptr () as * const c_char) ; table . set_bounce = (gd_api . godot_method_bind_get_method) (class_name , "set_bounce\0" . as_ptr () as * const c_char) ; table . set_can_sleep = (gd_api . godot_method_bind_get_method) (class_name , "set_can_sleep\0" . as_ptr () as * const c_char) ; table . set_contact_monitor = (gd_api . godot_method_bind_get_method) (class_name , "set_contact_monitor\0" . as_ptr () as * const c_char) ; table . set_friction = (gd_api . godot_method_bind_get_method) (class_name , "set_friction\0" . as_ptr () as * const c_char) ; table . set_gravity_scale = (gd_api . godot_method_bind_get_method) (class_name , "set_gravity_scale\0" . as_ptr () as * const c_char) ; table . set_linear_damp = (gd_api . godot_method_bind_get_method) (class_name , "set_linear_damp\0" . as_ptr () as * const c_char) ; table . set_linear_velocity = (gd_api . godot_method_bind_get_method) (class_name , "set_linear_velocity\0" . as_ptr () as * const c_char) ; table . set_mass = (gd_api . godot_method_bind_get_method) (class_name , "set_mass\0" . as_ptr () as * const c_char) ; table . set_max_contacts_reported = (gd_api . godot_method_bind_get_method) (class_name , "set_max_contacts_reported\0" . as_ptr () as * const c_char) ; table . set_mode = (gd_api . godot_method_bind_get_method) (class_name , "set_mode\0" . as_ptr () as * const c_char) ; table . set_physics_material_override = (gd_api . godot_method_bind_get_method) (class_name , "set_physics_material_override\0" . as_ptr () as * const c_char) ; table . set_sleeping = (gd_api . godot_method_bind_get_method) (class_name , "set_sleeping\0" . as_ptr () as * const c_char) ; table . set_use_continuous_collision_detection = (gd_api . godot_method_bind_get_method) (class_name , "set_use_continuous_collision_detection\0" . as_ptr () as * const c_char) ; table . set_use_custom_integrator = (gd_api . godot_method_bind_get_method) (class_name , "set_use_custom_integrator\0" . as_ptr () as * const c_char) ; table . set_weight = (gd_api . godot_method_bind_get_method) (class_name , "set_weight\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:142:4658 [INFO] [stdout] | [INFO] [stdout] 142 | ...thodTable { class_constructor : None , } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 142 | # [doc = "`core class VisualScriptCustomNode` inherits `VisualScriptNode` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_visualscriptcustomnode.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nVisualScriptCustomNode inherits methods from:\n - [VisualScriptNode](struct.VisualScriptNode.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct VisualScriptCustomNode { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct StartMode (pub i64) ; impl StartMode { pub const BEGIN_SEQUENCE : StartMode = StartMode (0i64) ; pub const CONTINUE_SEQUENCE : StartMode = StartMode (1i64) ; pub const RESUME_YIELD : StartMode = StartMode (2i64) ; } impl From < i64 > for StartMode { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < StartMode > for i64 { # [inline] fn from (v : StartMode) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl VisualScriptCustomNode { pub const START_MODE_BEGIN_SEQUENCE : i64 = 0i64 ; pub const START_MODE_CONTINUE_SEQUENCE : i64 = 1i64 ; pub const START_MODE_RESUME_YIELD : i64 = 2i64 ; pub const STEP_EXIT_FUNCTION_BIT : i64 = 134217728i64 ; pub const STEP_GO_BACK_BIT : i64 = 33554432i64 ; pub const STEP_NO_ADVANCE_BIT : i64 = 67108864i64 ; pub const STEP_PUSH_STACK_BIT : i64 = 16777216i64 ; pub const STEP_YIELD_BIT : i64 = 268435456i64 ; } impl VisualScriptCustomNode { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = VisualScriptCustomNodeMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } } impl gdnative_core :: private :: godot_object :: Sealed for VisualScriptCustomNode { } unsafe impl GodotObject for VisualScriptCustomNode { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "VisualScriptCustomNode" } } impl std :: ops :: Deref for VisualScriptCustomNode { type Target = crate :: generated :: visual_script_node :: VisualScriptNode ; # [inline] fn deref (& self) -> & crate :: generated :: visual_script_node :: VisualScriptNode { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for VisualScriptCustomNode { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: visual_script_node :: VisualScriptNode { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: visual_script_node :: VisualScriptNode > for VisualScriptCustomNode { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for VisualScriptCustomNode { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for VisualScriptCustomNode { } unsafe impl SubClass < crate :: generated :: object :: Object > for VisualScriptCustomNode { } impl Instanciable for VisualScriptCustomNode { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { VisualScriptCustomNode :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct VisualScriptCustomNodeMethodTable { pub class_constructor : sys :: godot_class_constructor , } impl VisualScriptCustomNodeMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : VisualScriptCustomNodeMethodTable = VisualScriptCustomNodeMethodTable { class_constructor : None , } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { VisualScriptCustomNodeMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "VisualScriptCustomNode\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:148:90357 [INFO] [stdout] | [INFO] [stdout] 148 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 148 | # [doc = "`core singleton class PhysicsServer` inherits `Object` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_physicsserver.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = ""] # [doc = "\n## Class hierarchy\n\nPhysicsServer inherits methods from:\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct PhysicsServer { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct AreaBodyStatus (pub i64) ; impl AreaBodyStatus { pub const ADDED : AreaBodyStatus = AreaBodyStatus (0i64) ; pub const REMOVED : AreaBodyStatus = AreaBodyStatus (1i64) ; } impl From < i64 > for AreaBodyStatus { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < AreaBodyStatus > for i64 { # [inline] fn from (v : AreaBodyStatus) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct AreaParameter (pub i64) ; impl AreaParameter { pub const GRAVITY : AreaParameter = AreaParameter (0i64) ; pub const GRAVITY_VECTOR : AreaParameter = AreaParameter (1i64) ; pub const GRAVITY_IS_POINT : AreaParameter = AreaParameter (2i64) ; pub const GRAVITY_DISTANCE_SCALE : AreaParameter = AreaParameter (3i64) ; pub const GRAVITY_POINT_ATTENUATION : AreaParameter = AreaParameter (4i64) ; pub const LINEAR_DAMP : AreaParameter = AreaParameter (5i64) ; pub const ANGULAR_DAMP : AreaParameter = AreaParameter (6i64) ; pub const PRIORITY : AreaParameter = AreaParameter (7i64) ; } impl From < i64 > for AreaParameter { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < AreaParameter > for i64 { # [inline] fn from (v : AreaParameter) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct AreaSpaceOverrideMode (pub i64) ; impl AreaSpaceOverrideMode { pub const DISABLED : AreaSpaceOverrideMode = AreaSpaceOverrideMode (0i64) ; pub const COMBINE : AreaSpaceOverrideMode = AreaSpaceOverrideMode (1i64) ; pub const COMBINE_REPLACE : AreaSpaceOverrideMode = AreaSpaceOverrideMode (2i64) ; pub const REPLACE : AreaSpaceOverrideMode = AreaSpaceOverrideMode (3i64) ; pub const REPLACE_COMBINE : AreaSpaceOverrideMode = AreaSpaceOverrideMode (4i64) ; } impl From < i64 > for AreaSpaceOverrideMode { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < AreaSpaceOverrideMode > for i64 { # [inline] fn from (v : AreaSpaceOverrideMode) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct BodyAxis (pub i64) ; impl BodyAxis { pub const LINEAR_X : BodyAxis = BodyAxis (1i64) ; pub const LINEAR_Y : BodyAxis = BodyAxis (2i64) ; pub const LINEAR_Z : BodyAxis = BodyAxis (4i64) ; pub const ANGULAR_X : BodyAxis = BodyAxis (8i64) ; pub const ANGULAR_Y : BodyAxis = BodyAxis (16i64) ; pub const ANGULAR_Z : BodyAxis = BodyAxis (32i64) ; } impl From < i64 > for BodyAxis { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < BodyAxis > for i64 { # [inline] fn from (v : BodyAxis) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct BodyMode (pub i64) ; impl BodyMode { pub const STATIC : BodyMode = BodyMode (0i64) ; pub const KINEMATIC : BodyMode = BodyMode (1i64) ; pub const RIGID : BodyMode = BodyMode (2i64) ; pub const CHARACTER : BodyMode = BodyMode (3i64) ; } impl From < i64 > for BodyMode { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < BodyMode > for i64 { # [inline] fn from (v : BodyMode) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct BodyParameter (pub i64) ; impl BodyParameter { pub const BOUNCE : BodyParameter = BodyParameter (0i64) ; pub const FRICTION : BodyParameter = BodyParameter (1i64) ; pub const MASS : BodyParameter = BodyParameter (2i64) ; pub const GRAVITY_SCALE : BodyParameter = BodyParameter (3i64) ; pub const LINEAR_DAMP : BodyParameter = BodyParameter (4i64) ; pub const ANGULAR_DAMP : BodyParameter = BodyParameter (5i64) ; pub const MAX : BodyParameter = BodyParameter (6i64) ; } impl From < i64 > for BodyParameter { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < BodyParameter > for i64 { # [inline] fn from (v : BodyParameter) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct BodyState (pub i64) ; impl BodyState { pub const TRANSFORM : BodyState = BodyState (0i64) ; pub const LINEAR_VELOCITY : BodyState = BodyState (1i64) ; pub const ANGULAR_VELOCITY : BodyState = BodyState (2i64) ; pub const SLEEPING : BodyState = BodyState (3i64) ; pub const CAN_SLEEP : BodyState = BodyState (4i64) ; } impl From < i64 > for BodyState { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < BodyState > for i64 { # [inline] fn from (v : BodyState) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct ConeTwistJointParam (pub i64) ; impl ConeTwistJointParam { pub const SWING_SPAN : ConeTwistJointParam = ConeTwistJointParam (0i64) ; pub const TWIST_SPAN : ConeTwistJointParam = ConeTwistJointParam (1i64) ; pub const BIAS : ConeTwistJointParam = ConeTwistJointParam (2i64) ; pub const SOFTNESS : ConeTwistJointParam = ConeTwistJointParam (3i64) ; pub const RELAXATION : ConeTwistJointParam = ConeTwistJointParam (4i64) ; } impl From < i64 > for ConeTwistJointParam { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < ConeTwistJointParam > for i64 { # [inline] fn from (v : ConeTwistJointParam) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct G6dofJointAxisFlag (pub i64) ; impl G6dofJointAxisFlag { pub const LINEAR_LIMIT : G6dofJointAxisFlag = G6dofJointAxisFlag (0i64) ; pub const ANGULAR_LIMIT : G6dofJointAxisFlag = G6dofJointAxisFlag (1i64) ; pub const MOTOR : G6dofJointAxisFlag = G6dofJointAxisFlag (4i64) ; pub const LINEAR_MOTOR : G6dofJointAxisFlag = G6dofJointAxisFlag (5i64) ; } impl From < i64 > for G6dofJointAxisFlag { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < G6dofJointAxisFlag > for i64 { # [inline] fn from (v : G6dofJointAxisFlag) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct G6dofJointAxisParam (pub i64) ; impl G6dofJointAxisParam { pub const LINEAR_LOWER_LIMIT : G6dofJointAxisParam = G6dofJointAxisParam (0i64) ; pub const LINEAR_UPPER_LIMIT : G6dofJointAxisParam = G6dofJointAxisParam (1i64) ; pub const LINEAR_LIMIT_SOFTNESS : G6dofJointAxisParam = G6dofJointAxisParam (2i64) ; pub const LINEAR_RESTITUTION : G6dofJointAxisParam = G6dofJointAxisParam (3i64) ; pub const LINEAR_DAMPING : G6dofJointAxisParam = G6dofJointAxisParam (4i64) ; pub const LINEAR_MOTOR_TARGET_VELOCITY : G6dofJointAxisParam = G6dofJointAxisParam (5i64) ; pub const LINEAR_MOTOR_FORCE_LIMIT : G6dofJointAxisParam = G6dofJointAxisParam (6i64) ; pub const ANGULAR_LOWER_LIMIT : G6dofJointAxisParam = G6dofJointAxisParam (10i64) ; pub const ANGULAR_UPPER_LIMIT : G6dofJointAxisParam = G6dofJointAxisParam (11i64) ; pub const ANGULAR_LIMIT_SOFTNESS : G6dofJointAxisParam = G6dofJointAxisParam (12i64) ; pub const ANGULAR_DAMPING : G6dofJointAxisParam = G6dofJointAxisParam (13i64) ; pub const ANGULAR_RESTITUTION : G6dofJointAxisParam = G6dofJointAxisParam (14i64) ; pub const ANGULAR_FORCE_LIMIT : G6dofJointAxisParam = G6dofJointAxisParam (15i64) ; pub const ANGULAR_ERP : G6dofJointAxisParam = G6dofJointAxisParam (16i64) ; pub const ANGULAR_MOTOR_TARGET_VELOCITY : G6dofJointAxisParam = G6dofJointAxisParam (17i64) ; pub const ANGULAR_MOTOR_FORCE_LIMIT : G6dofJointAxisParam = G6dofJointAxisParam (18i64) ; } impl From < i64 > for G6dofJointAxisParam { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < G6dofJointAxisParam > for i64 { # [inline] fn from (v : G6dofJointAxisParam) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct HingeJointFlag (pub i64) ; impl HingeJointFlag { pub const USE_LIMIT : HingeJointFlag = HingeJointFlag (0i64) ; pub const ENABLE_MOTOR : HingeJointFlag = HingeJointFlag (1i64) ; } impl From < i64 > for HingeJointFlag { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < HingeJointFlag > for i64 { # [inline] fn from (v : HingeJointFlag) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct HingeJointParam (pub i64) ; impl HingeJointParam { pub const BIAS : HingeJointParam = HingeJointParam (0i64) ; pub const LIMIT_UPPER : HingeJointParam = HingeJointParam (1i64) ; pub const LIMIT_LOWER : HingeJointParam = HingeJointParam (2i64) ; pub const LIMIT_BIAS : HingeJointParam = HingeJointParam (3i64) ; pub const LIMIT_SOFTNESS : HingeJointParam = HingeJointParam (4i64) ; pub const LIMIT_RELAXATION : HingeJointParam = HingeJointParam (5i64) ; pub const MOTOR_TARGET_VELOCITY : HingeJointParam = HingeJointParam (6i64) ; pub const MOTOR_MAX_IMPULSE : HingeJointParam = HingeJointParam (7i64) ; } impl From < i64 > for HingeJointParam { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < HingeJointParam > for i64 { # [inline] fn from (v : HingeJointParam) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct JointType (pub i64) ; impl JointType { pub const PIN : JointType = JointType (0i64) ; pub const HINGE : JointType = JointType (1i64) ; pub const SLIDER : JointType = JointType (2i64) ; pub const CONE_TWIST : JointType = JointType (3i64) ; pub const _6DOF : JointType = JointType (4i64) ; } impl From < i64 > for JointType { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < JointType > for i64 { # [inline] fn from (v : JointType) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct PinJointParam (pub i64) ; impl PinJointParam { pub const BIAS : PinJointParam = PinJointParam (0i64) ; pub const DAMPING : PinJointParam = PinJointParam (1i64) ; pub const IMPULSE_CLAMP : PinJointParam = PinJointParam (2i64) ; } impl From < i64 > for PinJointParam { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < PinJointParam > for i64 { # [inline] fn from (v : PinJointParam) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct ProcessInfo (pub i64) ; impl ProcessInfo { pub const ACTIVE_OBJECTS : ProcessInfo = ProcessInfo (0i64) ; pub const COLLISION_PAIRS : ProcessInfo = ProcessInfo (1i64) ; pub const ISLAND_COUNT : ProcessInfo = ProcessInfo (2i64) ; } impl From < i64 > for ProcessInfo { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < ProcessInfo > for i64 { # [inline] fn from (v : ProcessInfo) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct ShapeType (pub i64) ; impl ShapeType { pub const PLANE : ShapeType = ShapeType (0i64) ; pub const RAY : ShapeType = ShapeType (1i64) ; pub const SPHERE : ShapeType = ShapeType (2i64) ; pub const BOX : ShapeType = ShapeType (3i64) ; pub const CAPSULE : ShapeType = ShapeType (4i64) ; pub const CYLINDER : ShapeType = ShapeType (5i64) ; pub const CONVEX_POLYGON : ShapeType = ShapeType (6i64) ; pub const CONCAVE_POLYGON : ShapeType = ShapeType (7i64) ; pub const HEIGHTMAP : ShapeType = ShapeType (8i64) ; pub const CUSTOM : ShapeType = ShapeType (9i64) ; } impl From < i64 > for ShapeType { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < ShapeType > for i64 { # [inline] fn from (v : ShapeType) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct SliderJointParam (pub i64) ; impl SliderJointParam { pub const LINEAR_LIMIT_UPPER : SliderJointParam = SliderJointParam (0i64) ; pub const LINEAR_LIMIT_LOWER : SliderJointParam = SliderJointParam (1i64) ; pub const LINEAR_LIMIT_SOFTNESS : SliderJointParam = SliderJointParam (2i64) ; pub const LINEAR_LIMIT_RESTITUTION : SliderJointParam = SliderJointParam (3i64) ; pub const LINEAR_LIMIT_DAMPING : SliderJointParam = SliderJointParam (4i64) ; pub const LINEAR_MOTION_SOFTNESS : SliderJointParam = SliderJointParam (5i64) ; pub const LINEAR_MOTION_RESTITUTION : SliderJointParam = SliderJointParam (6i64) ; pub const LINEAR_MOTION_DAMPING : SliderJointParam = SliderJointParam (7i64) ; pub const LINEAR_ORTHOGONAL_SOFTNESS : SliderJointParam = SliderJointParam (8i64) ; pub const LINEAR_ORTHOGONAL_RESTITUTION : SliderJointParam = SliderJointParam (9i64) ; pub const LINEAR_ORTHOGONAL_DAMPING : SliderJointParam = SliderJointParam (10i64) ; pub const ANGULAR_LIMIT_UPPER : SliderJointParam = SliderJointParam (11i64) ; pub const ANGULAR_LIMIT_LOWER : SliderJointParam = SliderJointParam (12i64) ; pub const ANGULAR_LIMIT_SOFTNESS : SliderJointParam = SliderJointParam (13i64) ; pub const ANGULAR_LIMIT_RESTITUTION : SliderJointParam = SliderJointParam (14i64) ; pub const ANGULAR_LIMIT_DAMPING : SliderJointParam = SliderJointParam (15i64) ; pub const ANGULAR_MOTION_SOFTNESS : SliderJointParam = SliderJointParam (16i64) ; pub const ANGULAR_MOTION_RESTITUTION : SliderJointParam = SliderJointParam (17i64) ; pub const ANGULAR_MOTION_DAMPING : SliderJointParam = SliderJointParam (18i64) ; pub const ANGULAR_ORTHOGONAL_SOFTNESS : SliderJointParam = SliderJointParam (19i64) ; pub const ANGULAR_ORTHOGONAL_RESTITUTION : SliderJointParam = SliderJointParam (20i64) ; pub const ANGULAR_ORTHOGONAL_DAMPING : SliderJointParam = SliderJointParam (21i64) ; pub const MAX : SliderJointParam = SliderJointParam (22i64) ; } impl From < i64 > for SliderJointParam { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < SliderJointParam > for i64 { # [inline] fn from (v : SliderJointParam) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct SpaceParameter (pub i64) ; impl SpaceParameter { pub const CONTACT_RECYCLE_RADIUS : SpaceParameter = SpaceParameter (0i64) ; pub const CONTACT_MAX_SEPARATION : SpaceParameter = SpaceParameter (1i64) ; pub const BODY_MAX_ALLOWED_PENETRATION : SpaceParameter = SpaceParameter (2i64) ; pub const BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD : SpaceParameter = SpaceParameter (3i64) ; pub const BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD : SpaceParameter = SpaceParameter (4i64) ; pub const BODY_TIME_TO_SLEEP : SpaceParameter = SpaceParameter (5i64) ; pub const BODY_ANGULAR_VELOCITY_DAMP_RATIO : SpaceParameter = SpaceParameter (6i64) ; pub const CONSTRAINT_DEFAULT_BIAS : SpaceParameter = SpaceParameter (7i64) ; pub const TEST_MOTION_MIN_CONTACT_DEPTH : SpaceParameter = SpaceParameter (8i64) ; } impl From < i64 > for SpaceParameter { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < SpaceParameter > for i64 { # [inline] fn from (v : SpaceParameter) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl PhysicsServer { pub const AREA_BODY_ADDED : i64 = 0i64 ; pub const AREA_BODY_REMOVED : i64 = 1i64 ; pub const AREA_PARAM_ANGULAR_DAMP : i64 = 6i64 ; pub const AREA_PARAM_GRAVITY : i64 = 0i64 ; pub const AREA_PARAM_GRAVITY_DISTANCE_SCALE : i64 = 3i64 ; pub const AREA_PARAM_GRAVITY_IS_POINT : i64 = 2i64 ; pub const AREA_PARAM_GRAVITY_POINT_ATTENUATION : i64 = 4i64 ; pub const AREA_PARAM_GRAVITY_VECTOR : i64 = 1i64 ; pub const AREA_PARAM_LINEAR_DAMP : i64 = 5i64 ; pub const AREA_PARAM_PRIORITY : i64 = 7i64 ; pub const AREA_SPACE_OVERRIDE_COMBINE : i64 = 1i64 ; pub const AREA_SPACE_OVERRIDE_COMBINE_REPLACE : i64 = 2i64 ; pub const AREA_SPACE_OVERRIDE_DISABLED : i64 = 0i64 ; pub const AREA_SPACE_OVERRIDE_REPLACE : i64 = 3i64 ; pub const AREA_SPACE_OVERRIDE_REPLACE_COMBINE : i64 = 4i64 ; pub const BODY_AXIS_ANGULAR_X : i64 = 8i64 ; pub const BODY_AXIS_ANGULAR_Y : i64 = 16i64 ; pub const BODY_AXIS_ANGULAR_Z : i64 = 32i64 ; pub const BODY_AXIS_LINEAR_X : i64 = 1i64 ; pub const BODY_AXIS_LINEAR_Y : i64 = 2i64 ; pub const BODY_AXIS_LINEAR_Z : i64 = 4i64 ; pub const BODY_MODE_CHARACTER : i64 = 3i64 ; pub const BODY_MODE_KINEMATIC : i64 = 1i64 ; pub const BODY_MODE_RIGID : i64 = 2i64 ; pub const BODY_MODE_STATIC : i64 = 0i64 ; pub const BODY_PARAM_ANGULAR_DAMP : i64 = 5i64 ; pub const BODY_PARAM_BOUNCE : i64 = 0i64 ; pub const BODY_PARAM_FRICTION : i64 = 1i64 ; pub const BODY_PARAM_GRAVITY_SCALE : i64 = 3i64 ; pub const BODY_PARAM_LINEAR_DAMP : i64 = 4i64 ; pub const BODY_PARAM_MASS : i64 = 2i64 ; pub const BODY_PARAM_MAX : i64 = 6i64 ; pub const BODY_STATE_ANGULAR_VELOCITY : i64 = 2i64 ; pub const BODY_STATE_CAN_SLEEP : i64 = 4i64 ; pub const BODY_STATE_LINEAR_VELOCITY : i64 = 1i64 ; pub const BODY_STATE_SLEEPING : i64 = 3i64 ; pub const BODY_STATE_TRANSFORM : i64 = 0i64 ; pub const CONE_TWIST_JOINT_BIAS : i64 = 2i64 ; pub const CONE_TWIST_JOINT_RELAXATION : i64 = 4i64 ; pub const CONE_TWIST_JOINT_SOFTNESS : i64 = 3i64 ; pub const CONE_TWIST_JOINT_SWING_SPAN : i64 = 0i64 ; pub const CONE_TWIST_JOINT_TWIST_SPAN : i64 = 1i64 ; pub const G6DOF_JOINT_ANGULAR_DAMPING : i64 = 13i64 ; pub const G6DOF_JOINT_ANGULAR_ERP : i64 = 16i64 ; pub const G6DOF_JOINT_ANGULAR_FORCE_LIMIT : i64 = 15i64 ; pub const G6DOF_JOINT_ANGULAR_LIMIT_SOFTNESS : i64 = 12i64 ; pub const G6DOF_JOINT_ANGULAR_LOWER_LIMIT : i64 = 10i64 ; pub const G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT : i64 = 18i64 ; pub const G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY : i64 = 17i64 ; pub const G6DOF_JOINT_ANGULAR_RESTITUTION : i64 = 14i64 ; pub const G6DOF_JOINT_ANGULAR_UPPER_LIMIT : i64 = 11i64 ; pub const G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT : i64 = 1i64 ; pub const G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT : i64 = 0i64 ; pub const G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR : i64 = 5i64 ; pub const G6DOF_JOINT_FLAG_ENABLE_MOTOR : i64 = 4i64 ; pub const G6DOF_JOINT_LINEAR_DAMPING : i64 = 4i64 ; pub const G6DOF_JOINT_LINEAR_LIMIT_SOFTNESS : i64 = 2i64 ; pub const G6DOF_JOINT_LINEAR_LOWER_LIMIT : i64 = 0i64 ; pub const G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT : i64 = 6i64 ; pub const G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY : i64 = 5i64 ; pub const G6DOF_JOINT_LINEAR_RESTITUTION : i64 = 3i64 ; pub const G6DOF_JOINT_LINEAR_UPPER_LIMIT : i64 = 1i64 ; pub const HINGE_JOINT_BIAS : i64 = 0i64 ; pub const HINGE_JOINT_FLAG_ENABLE_MOTOR : i64 = 1i64 ; pub const HINGE_JOINT_FLAG_USE_LIMIT : i64 = 0i64 ; pub const HINGE_JOINT_LIMIT_BIAS : i64 = 3i64 ; pub const HINGE_JOINT_LIMIT_LOWER : i64 = 2i64 ; pub const HINGE_JOINT_LIMIT_RELAXATION : i64 = 5i64 ; pub const HINGE_JOINT_LIMIT_SOFTNESS : i64 = 4i64 ; pub const HINGE_JOINT_LIMIT_UPPER : i64 = 1i64 ; pub const HINGE_JOINT_MOTOR_MAX_IMPULSE : i64 = 7i64 ; pub const HINGE_JOINT_MOTOR_TARGET_VELOCITY : i64 = 6i64 ; pub const INFO_ACTIVE_OBJECTS : i64 = 0i64 ; pub const INFO_COLLISION_PAIRS : i64 = 1i64 ; pub const INFO_ISLAND_COUNT : i64 = 2i64 ; pub const JOINT_6DOF : i64 = 4i64 ; pub const JOINT_CONE_TWIST : i64 = 3i64 ; pub const JOINT_HINGE : i64 = 1i64 ; pub const JOINT_PIN : i64 = 0i64 ; pub const JOINT_SLIDER : i64 = 2i64 ; pub const PIN_JOINT_BIAS : i64 = 0i64 ; pub const PIN_JOINT_DAMPING : i64 = 1i64 ; pub const PIN_JOINT_IMPULSE_CLAMP : i64 = 2i64 ; pub const SHAPE_BOX : i64 = 3i64 ; pub const SHAPE_CAPSULE : i64 = 4i64 ; pub const SHAPE_CONCAVE_POLYGON : i64 = 7i64 ; pub const SHAPE_CONVEX_POLYGON : i64 = 6i64 ; pub const SHAPE_CUSTOM : i64 = 9i64 ; pub const SHAPE_CYLINDER : i64 = 5i64 ; pub const SHAPE_HEIGHTMAP : i64 = 8i64 ; pub const SHAPE_PLANE : i64 = 0i64 ; pub const SHAPE_RAY : i64 = 1i64 ; pub const SHAPE_SPHERE : i64 = 2i64 ; pub const SLIDER_JOINT_ANGULAR_LIMIT_DAMPING : i64 = 15i64 ; pub const SLIDER_JOINT_ANGULAR_LIMIT_LOWER : i64 = 12i64 ; pub const SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION : i64 = 14i64 ; pub const SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS : i64 = 13i64 ; pub const SLIDER_JOINT_ANGULAR_LIMIT_UPPER : i64 = 11i64 ; pub const SLIDER_JOINT_ANGULAR_MOTION_DAMPING : i64 = 18i64 ; pub const SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION : i64 = 17i64 ; pub const SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS : i64 = 16i64 ; pub const SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING : i64 = 21i64 ; pub const SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION : i64 = 20i64 ; pub const SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS : i64 = 19i64 ; pub const SLIDER_JOINT_LINEAR_LIMIT_DAMPING : i64 = 4i64 ; pub const SLIDER_JOINT_LINEAR_LIMIT_LOWER : i64 = 1i64 ; pub const SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION : i64 = 3i64 ; pub const SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS : i64 = 2i64 ; pub const SLIDER_JOINT_LINEAR_LIMIT_UPPER : i64 = 0i64 ; pub const SLIDER_JOINT_LINEAR_MOTION_DAMPING : i64 = 7i64 ; pub const SLIDER_JOINT_LINEAR_MOTION_RESTITUTION : i64 = 6i64 ; pub const SLIDER_JOINT_LINEAR_MOTION_SOFTNESS : i64 = 5i64 ; pub const SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING : i64 = 10i64 ; pub const SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION : i64 = 9i64 ; pub const SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS : i64 = 8i64 ; pub const SLIDER_JOINT_MAX : i64 = 22i64 ; pub const SPACE_PARAM_BODY_ANGULAR_VELOCITY_DAMP_RATIO : i64 = 6i64 ; pub const SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD : i64 = 4i64 ; pub const SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD : i64 = 3i64 ; pub const SPACE_PARAM_BODY_MAX_ALLOWED_PENETRATION : i64 = 2i64 ; pub const SPACE_PARAM_BODY_TIME_TO_SLEEP : i64 = 5i64 ; pub const SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS : i64 = 7i64 ; pub const SPACE_PARAM_CONTACT_MAX_SEPARATION : i64 = 1i64 ; pub const SPACE_PARAM_CONTACT_RECYCLE_RADIUS : i64 = 0i64 ; pub const SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH : i64 = 8i64 ; } impl PhysicsServer { # [doc = "Returns a reference to the singleton instance.\n\n# Safety\n\nThis singleton server is only safe to access from outside the main thread if thread-safe\noperations are enabled in the project settings. See the official\n[thread-safety guidelines][thread-safety] for more information.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [inline] pub unsafe fn godot_singleton () -> & 'static Self { unsafe { let this = (get_api () . godot_global_get_singleton) ("PhysicsServer\0" . as_ptr () as * mut _) ; let this = ptr :: NonNull :: new (this) . expect ("singleton should not be null") ; let this = RawObject :: from_sys_ref_unchecked :: < 'static > (this) ; Self :: cast_ref (this) } } # [doc = "Adds a shape to the area, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.\n# Default Arguments\n* `transform` - `Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )`\n* `disabled` - `false`"] # [doc = ""] # [inline] pub fn area_add_shape (& self , area : Rid , shape : Rid , transform : Transform , disabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_add_shape ; let ret = crate :: icalls :: icallptr_void_rid_rid_trans_bool (method_bind , self . this . sys () . as_ptr () , area , shape , transform , disabled) ; } } # [doc = "Assigns the area to a descendant of [Object], so it can exist in the node tree."] # [doc = ""] # [inline] pub fn area_attach_object_instance_id (& self , area : Rid , id : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_attach_object_instance_id ; let ret = crate :: icalls :: icallptr_void_rid_i64 (method_bind , self . this . sys () . as_ptr () , area , id) ; } } # [doc = "Removes all shapes from an area. It does not delete the shapes, so they can be reassigned later."] # [doc = ""] # [inline] pub fn area_clear_shapes (& self , area : Rid) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_clear_shapes ; let ret = crate :: icalls :: icallptr_void_rid (method_bind , self . this . sys () . as_ptr () , area) ; } } # [doc = "Creates an [Area]."] # [doc = ""] # [inline] pub fn area_create (& self) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_create ; let ret = crate :: icalls :: icallptr_rid (method_bind , self . this . sys () . as_ptr ()) ; Rid :: from_sys (ret) } } # [doc = "Gets the instance ID of the object the area is assigned to."] # [doc = ""] # [inline] pub fn area_get_object_instance_id (& self , area : Rid) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_get_object_instance_id ; let ret = crate :: icalls :: icallptr_i64_rid (method_bind , self . this . sys () . as_ptr () , area) ; ret as _ } } # [doc = "Returns an area parameter value. A list of available parameters is on the [enum AreaParameter] constants."] # [doc = ""] # [inline] pub fn area_get_param (& self , area : Rid , param : i64) -> Variant { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_get_param ; let ret = crate :: icalls :: icallptr_var_rid_i64 (method_bind , self . this . sys () . as_ptr () , area , param) ; Variant :: from_sys (ret) } } # [doc = "Returns the [RID] of the nth shape of an area."] # [doc = ""] # [inline] pub fn area_get_shape (& self , area : Rid , shape_idx : i64) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_get_shape ; let ret = crate :: icalls :: icallptr_rid_rid_i64 (method_bind , self . this . sys () . as_ptr () , area , shape_idx) ; Rid :: from_sys (ret) } } # [doc = "Returns the number of shapes assigned to an area."] # [doc = ""] # [inline] pub fn area_get_shape_count (& self , area : Rid) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_get_shape_count ; let ret = crate :: icalls :: icallptr_i64_rid (method_bind , self . this . sys () . as_ptr () , area) ; ret as _ } } # [doc = "Returns the transform matrix of a shape within an area."] # [doc = ""] # [inline] pub fn area_get_shape_transform (& self , area : Rid , shape_idx : i64) -> Transform { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_get_shape_transform ; let ret = crate :: icalls :: icallptr_trans_rid_i64 (method_bind , self . this . sys () . as_ptr () , area , shape_idx) ; mem :: transmute (ret) } } # [doc = "Returns the space assigned to the area."] # [doc = ""] # [inline] pub fn area_get_space (& self , area : Rid) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_get_space ; let ret = crate :: icalls :: icallptr_rid_rid (method_bind , self . this . sys () . as_ptr () , area) ; Rid :: from_sys (ret) } } # [doc = "Returns the space override mode for the area."] # [doc = ""] # [inline] pub fn area_get_space_override_mode (& self , area : Rid) -> crate :: generated :: physics_server :: AreaSpaceOverrideMode { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_get_space_override_mode ; let ret = crate :: icalls :: icallptr_i64_rid (method_bind , self . this . sys () . as_ptr () , area) ; crate :: generated :: physics_server :: AreaSpaceOverrideMode (ret) } } # [doc = "Returns the transform matrix for an area."] # [doc = ""] # [inline] pub fn area_get_transform (& self , area : Rid) -> Transform { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_get_transform ; let ret = crate :: icalls :: icallptr_trans_rid (method_bind , self . this . sys () . as_ptr () , area) ; mem :: transmute (ret) } } # [doc = "If `true`, area collides with rays."] # [doc = ""] # [inline] pub fn area_is_ray_pickable (& self , area : Rid) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_is_ray_pickable ; let ret = crate :: icalls :: icallptr_bool_rid (method_bind , self . this . sys () . as_ptr () , area) ; ret as _ } } # [doc = "Removes a shape from an area. It does not delete the shape, so it can be reassigned later."] # [doc = ""] # [inline] pub fn area_remove_shape (& self , area : Rid , shape_idx : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_remove_shape ; let ret = crate :: icalls :: icallptr_void_rid_i64 (method_bind , self . this . sys () . as_ptr () , area , shape_idx) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn area_set_area_monitor_callback (& self , area : Rid , receiver : impl AsArg < crate :: generated :: object :: Object > , method : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_set_area_monitor_callback ; let ret = crate :: icalls :: icallptr_void_rid_obj_str (method_bind , self . this . sys () . as_ptr () , area , receiver . as_arg_ptr () , method . into ()) ; } } # [doc = "Assigns the area to one or many physics layers."] # [doc = ""] # [inline] pub fn area_set_collision_layer (& self , area : Rid , layer : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_set_collision_layer ; let ret = crate :: icalls :: icallptr_void_rid_i64 (method_bind , self . this . sys () . as_ptr () , area , layer) ; } } # [doc = "Sets which physics layers the area will monitor."] # [doc = ""] # [inline] pub fn area_set_collision_mask (& self , area : Rid , mask : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_set_collision_mask ; let ret = crate :: icalls :: icallptr_void_rid_i64 (method_bind , self . this . sys () . as_ptr () , area , mask) ; } } # [doc = "Sets the function to call when any body/area enters or exits the area. This callback will be called for any object interacting with the area, and takes five parameters:\n1: [constant AREA_BODY_ADDED] or [constant AREA_BODY_REMOVED], depending on whether the object entered or exited the area.\n2: [RID] of the object that entered/exited the area.\n3: Instance ID of the object that entered/exited the area.\n4: The shape index of the object that entered/exited the area.\n5: The shape index of the area where the object entered/exited."] # [doc = ""] # [inline] pub fn area_set_monitor_callback (& self , area : Rid , receiver : impl AsArg < crate :: generated :: object :: Object > , method : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_set_monitor_callback ; let ret = crate :: icalls :: icallptr_void_rid_obj_str (method_bind , self . this . sys () . as_ptr () , area , receiver . as_arg_ptr () , method . into ()) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn area_set_monitorable (& self , area : Rid , monitorable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_set_monitorable ; let ret = crate :: icalls :: icallptr_void_rid_bool (method_bind , self . this . sys () . as_ptr () , area , monitorable) ; } } # [doc = "Sets the value for an area parameter. A list of available parameters is on the [enum AreaParameter] constants."] # [doc = ""] # [inline] pub fn area_set_param (& self , area : Rid , param : i64 , value : impl OwnedToVariant) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_set_param ; let ret = crate :: icalls :: icallptr_void_rid_i64_var (method_bind , self . this . sys () . as_ptr () , area , param , value . owned_to_variant ()) ; } } # [doc = "Sets object pickable with rays."] # [doc = ""] # [inline] pub fn area_set_ray_pickable (& self , area : Rid , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_set_ray_pickable ; let ret = crate :: icalls :: icallptr_void_rid_bool (method_bind , self . this . sys () . as_ptr () , area , enable) ; } } # [doc = "Substitutes a given area shape by another. The old shape is selected by its index, the new one by its [RID]."] # [doc = ""] # [inline] pub fn area_set_shape (& self , area : Rid , shape_idx : i64 , shape : Rid) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_set_shape ; let ret = crate :: icalls :: icallptr_void_rid_i64_rid (method_bind , self . this . sys () . as_ptr () , area , shape_idx , shape) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn area_set_shape_disabled (& self , area : Rid , shape_idx : i64 , disabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_set_shape_disabled ; let ret = crate :: icalls :: icallptr_void_rid_i64_bool (method_bind , self . this . sys () . as_ptr () , area , shape_idx , disabled) ; } } # [doc = "Sets the transform matrix for an area shape."] # [doc = ""] # [inline] pub fn area_set_shape_transform (& self , area : Rid , shape_idx : i64 , transform : Transform) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_set_shape_transform ; let ret = crate :: icalls :: icallptr_void_rid_i64_trans (method_bind , self . this . sys () . as_ptr () , area , shape_idx , transform) ; } } # [doc = "Assigns a space to the area."] # [doc = ""] # [inline] pub fn area_set_space (& self , area : Rid , space : Rid) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_set_space ; let ret = crate :: icalls :: icallptr_void_rid_rid (method_bind , self . this . sys () . as_ptr () , area , space) ; } } # [doc = "Sets the space override mode for the area. The modes are described in the [enum AreaSpaceOverrideMode] constants."] # [doc = ""] # [inline] pub fn area_set_space_override_mode (& self , area : Rid , mode : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_set_space_override_mode ; let ret = crate :: icalls :: icallptr_void_rid_i64 (method_bind , self . this . sys () . as_ptr () , area , mode) ; } } # [doc = "Sets the transform matrix for an area."] # [doc = ""] # [inline] pub fn area_set_transform (& self , area : Rid , transform : Transform) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . area_set_transform ; let ret = crate :: icalls :: icallptr_void_rid_trans (method_bind , self . this . sys () . as_ptr () , area , transform) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn body_add_central_force (& self , body : Rid , force : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_add_central_force ; let ret = crate :: icalls :: icallptr_void_rid_vec3 (method_bind , self . this . sys () . as_ptr () , body , force) ; } } # [doc = "Adds a body to the list of bodies exempt from collisions."] # [doc = ""] # [inline] pub fn body_add_collision_exception (& self , body : Rid , excepted_body : Rid) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_add_collision_exception ; let ret = crate :: icalls :: icallptr_void_rid_rid (method_bind , self . this . sys () . as_ptr () , body , excepted_body) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn body_add_force (& self , body : Rid , force : Vector3 , position : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_add_force ; let ret = crate :: icalls :: icallptr_void_rid_vec3_vec3 (method_bind , self . this . sys () . as_ptr () , body , force , position) ; } } # [doc = "Adds a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.\n# Default Arguments\n* `transform` - `Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )`\n* `disabled` - `false`"] # [doc = ""] # [inline] pub fn body_add_shape (& self , body : Rid , shape : Rid , transform : Transform , disabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_add_shape ; let ret = crate :: icalls :: icallptr_void_rid_rid_trans_bool (method_bind , self . this . sys () . as_ptr () , body , shape , transform , disabled) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn body_add_torque (& self , body : Rid , torque : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_add_torque ; let ret = crate :: icalls :: icallptr_void_rid_vec3 (method_bind , self . this . sys () . as_ptr () , body , torque) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn body_apply_central_impulse (& self , body : Rid , impulse : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_apply_central_impulse ; let ret = crate :: icalls :: icallptr_void_rid_vec3 (method_bind , self . this . sys () . as_ptr () , body , impulse) ; } } # [doc = "Gives the body a push at a `position` in the direction of the `impulse`."] # [doc = ""] # [inline] pub fn body_apply_impulse (& self , body : Rid , position : Vector3 , impulse : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_apply_impulse ; let ret = crate :: icalls :: icallptr_void_rid_vec3_vec3 (method_bind , self . this . sys () . as_ptr () , body , position , impulse) ; } } # [doc = "Gives the body a push to rotate it."] # [doc = ""] # [inline] pub fn body_apply_torque_impulse (& self , body : Rid , impulse : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_apply_torque_impulse ; let ret = crate :: icalls :: icallptr_void_rid_vec3 (method_bind , self . this . sys () . as_ptr () , body , impulse) ; } } # [doc = "Assigns the area to a descendant of [Object], so it can exist in the node tree."] # [doc = ""] # [inline] pub fn body_attach_object_instance_id (& self , body : Rid , id : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_attach_object_instance_id ; let ret = crate :: icalls :: icallptr_void_rid_i64 (method_bind , self . this . sys () . as_ptr () , body , id) ; } } # [doc = "Removes all shapes from a body."] # [doc = ""] # [inline] pub fn body_clear_shapes (& self , body : Rid) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_clear_shapes ; let ret = crate :: icalls :: icallptr_void_rid (method_bind , self . this . sys () . as_ptr () , body) ; } } # [doc = "Creates a physics body. The first parameter can be any value from [enum BodyMode] constants, for the type of body created. Additionally, the body can be created in sleeping state to save processing time.\n# Default Arguments\n* `mode` - `2`\n* `init_sleeping` - `false`"] # [doc = ""] # [inline] pub fn body_create (& self , mode : i64 , init_sleeping : bool) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_create ; let ret = crate :: icalls :: icallptr_rid_i64_bool (method_bind , self . this . sys () . as_ptr () , mode , init_sleeping) ; Rid :: from_sys (ret) } } # [doc = "Returns the physics layer or layers a body belongs to."] # [doc = ""] # [inline] pub fn body_get_collision_layer (& self , body : Rid) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_get_collision_layer ; let ret = crate :: icalls :: icallptr_i64_rid (method_bind , self . this . sys () . as_ptr () , body) ; ret as _ } } # [doc = "Returns the physics layer or layers a body can collide with.\n-"] # [doc = ""] # [inline] pub fn body_get_collision_mask (& self , body : Rid) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_get_collision_mask ; let ret = crate :: icalls :: icallptr_i64_rid (method_bind , self . this . sys () . as_ptr () , body) ; ret as _ } } # [doc = "Returns the [PhysicsDirectBodyState] of the body."] # [doc = ""] # [inline] pub fn body_get_direct_state (& self , body : Rid) -> Option < Ref < crate :: generated :: physics_direct_body_state :: PhysicsDirectBodyState , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_get_direct_state ; let ret = crate :: icalls :: icallptr_obj_rid (method_bind , self . this . sys () . as_ptr () , body) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: physics_direct_body_state :: PhysicsDirectBodyState , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = ""] # [doc = ""] # [inline] pub fn body_get_kinematic_safe_margin (& self , body : Rid) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_get_kinematic_safe_margin ; let ret = crate :: icalls :: icallptr_f64_rid (method_bind , self . this . sys () . as_ptr () , body) ; ret as _ } } # [doc = "Returns the maximum contacts that can be reported. See [method body_set_max_contacts_reported]."] # [doc = ""] # [inline] pub fn body_get_max_contacts_reported (& self , body : Rid) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_get_max_contacts_reported ; let ret = crate :: icalls :: icallptr_i64_rid (method_bind , self . this . sys () . as_ptr () , body) ; ret as _ } } # [doc = "Returns the body mode."] # [doc = ""] # [inline] pub fn body_get_mode (& self , body : Rid) -> crate :: generated :: physics_server :: BodyMode { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_get_mode ; let ret = crate :: icalls :: icallptr_i64_rid (method_bind , self . this . sys () . as_ptr () , body) ; crate :: generated :: physics_server :: BodyMode (ret) } } # [doc = "Gets the instance ID of the object the area is assigned to."] # [doc = ""] # [inline] pub fn body_get_object_instance_id (& self , body : Rid) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_get_object_instance_id ; let ret = crate :: icalls :: icallptr_i64_rid (method_bind , self . this . sys () . as_ptr () , body) ; ret as _ } } # [doc = "Returns the value of a body parameter. A list of available parameters is on the [enum BodyParameter] constants."] # [doc = ""] # [inline] pub fn body_get_param (& self , body : Rid , param : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_get_param ; let ret = crate :: icalls :: icallptr_f64_rid_i64 (method_bind , self . this . sys () . as_ptr () , body , param) ; ret as _ } } # [doc = "Returns the [RID] of the nth shape of a body."] # [doc = ""] # [inline] pub fn body_get_shape (& self , body : Rid , shape_idx : i64) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_get_shape ; let ret = crate :: icalls :: icallptr_rid_rid_i64 (method_bind , self . this . sys () . as_ptr () , body , shape_idx) ; Rid :: from_sys (ret) } } # [doc = "Returns the number of shapes assigned to a body."] # [doc = ""] # [inline] pub fn body_get_shape_count (& self , body : Rid) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_get_shape_count ; let ret = crate :: icalls :: icallptr_i64_rid (method_bind , self . this . sys () . as_ptr () , body) ; ret as _ } } # [doc = "Returns the transform matrix of a body shape."] # [doc = ""] # [inline] pub fn body_get_shape_transform (& self , body : Rid , shape_idx : i64) -> Transform { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_get_shape_transform ; let ret = crate :: icalls :: icallptr_trans_rid_i64 (method_bind , self . this . sys () . as_ptr () , body , shape_idx) ; mem :: transmute (ret) } } # [doc = "Returns the [RID] of the space assigned to a body."] # [doc = ""] # [inline] pub fn body_get_space (& self , body : Rid) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_get_space ; let ret = crate :: icalls :: icallptr_rid_rid (method_bind , self . this . sys () . as_ptr () , body) ; Rid :: from_sys (ret) } } # [doc = "Returns a body state."] # [doc = ""] # [inline] pub fn body_get_state (& self , body : Rid , state : i64) -> Variant { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_get_state ; let ret = crate :: icalls :: icallptr_var_rid_i64 (method_bind , self . this . sys () . as_ptr () , body , state) ; Variant :: from_sys (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn body_is_axis_locked (& self , body : Rid , axis : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_is_axis_locked ; let ret = crate :: icalls :: icallptr_bool_rid_i64 (method_bind , self . this . sys () . as_ptr () , body , axis) ; ret as _ } } # [doc = "If `true`, the continuous collision detection mode is enabled."] # [doc = ""] # [inline] pub fn body_is_continuous_collision_detection_enabled (& self , body : Rid) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_is_continuous_collision_detection_enabled ; let ret = crate :: icalls :: icallptr_bool_rid (method_bind , self . this . sys () . as_ptr () , body) ; ret as _ } } # [doc = "Returns whether a body uses a callback function to calculate its own physics (see [method body_set_force_integration_callback])."] # [doc = ""] # [inline] pub fn body_is_omitting_force_integration (& self , body : Rid) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_is_omitting_force_integration ; let ret = crate :: icalls :: icallptr_bool_rid (method_bind , self . this . sys () . as_ptr () , body) ; ret as _ } } # [doc = "If `true`, the body can be detected by rays."] # [doc = ""] # [inline] pub fn body_is_ray_pickable (& self , body : Rid) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_is_ray_pickable ; let ret = crate :: icalls :: icallptr_bool_rid (method_bind , self . this . sys () . as_ptr () , body) ; ret as _ } } # [doc = "Removes a body from the list of bodies exempt from collisions.\nContinuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided."] # [doc = ""] # [inline] pub fn body_remove_collision_exception (& self , body : Rid , excepted_body : Rid) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_remove_collision_exception ; let ret = crate :: icalls :: icallptr_void_rid_rid (method_bind , self . this . sys () . as_ptr () , body , excepted_body) ; } } # [doc = "Removes a shape from a body. The shape is not deleted, so it can be reused afterwards."] # [doc = ""] # [inline] pub fn body_remove_shape (& self , body : Rid , shape_idx : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_remove_shape ; let ret = crate :: icalls :: icallptr_void_rid_i64 (method_bind , self . this . sys () . as_ptr () , body , shape_idx) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn body_set_axis_lock (& self , body : Rid , axis : i64 , lock : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_axis_lock ; let ret = crate :: icalls :: icallptr_void_rid_i64_bool (method_bind , self . this . sys () . as_ptr () , body , axis , lock) ; } } # [doc = "Sets an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior."] # [doc = ""] # [inline] pub fn body_set_axis_velocity (& self , body : Rid , axis_velocity : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_axis_velocity ; let ret = crate :: icalls :: icallptr_void_rid_vec3 (method_bind , self . this . sys () . as_ptr () , body , axis_velocity) ; } } # [doc = "Sets the physics layer or layers a body belongs to."] # [doc = ""] # [inline] pub fn body_set_collision_layer (& self , body : Rid , layer : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_collision_layer ; let ret = crate :: icalls :: icallptr_void_rid_i64 (method_bind , self . this . sys () . as_ptr () , body , layer) ; } } # [doc = "Sets the physics layer or layers a body can collide with."] # [doc = ""] # [inline] pub fn body_set_collision_mask (& self , body : Rid , mask : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_collision_mask ; let ret = crate :: icalls :: icallptr_void_rid_i64 (method_bind , self . this . sys () . as_ptr () , body , mask) ; } } # [doc = "If `true`, the continuous collision detection mode is enabled.\nContinuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided."] # [doc = ""] # [inline] pub fn body_set_enable_continuous_collision_detection (& self , body : Rid , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_enable_continuous_collision_detection ; let ret = crate :: icalls :: icallptr_void_rid_bool (method_bind , self . this . sys () . as_ptr () , body , enable) ; } } # [doc = "Sets the function used to calculate physics for an object, if that object allows it (see [method body_set_omit_force_integration]).\n# Default Arguments\n* `userdata` - `null`"] # [doc = ""] # [inline] pub fn body_set_force_integration_callback (& self , body : Rid , receiver : impl AsArg < crate :: generated :: object :: Object > , method : impl Into < GodotString > , userdata : impl OwnedToVariant) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_force_integration_callback ; let ret = crate :: icalls :: icallptr_void_rid_obj_str_var (method_bind , self . this . sys () . as_ptr () , body , receiver . as_arg_ptr () , method . into () , userdata . owned_to_variant ()) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn body_set_kinematic_safe_margin (& self , body : Rid , margin : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_kinematic_safe_margin ; let ret = crate :: icalls :: icallptr_void_rid_f64 (method_bind , self . this . sys () . as_ptr () , body , margin) ; } } # [doc = "Sets the maximum contacts to report. Bodies can keep a log of the contacts with other bodies, this is enabled by setting the maximum amount of contacts reported to a number greater than 0."] # [doc = ""] # [inline] pub fn body_set_max_contacts_reported (& self , body : Rid , amount : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_max_contacts_reported ; let ret = crate :: icalls :: icallptr_void_rid_i64 (method_bind , self . this . sys () . as_ptr () , body , amount) ; } } # [doc = "Sets the body mode, from one of the [enum BodyMode] constants."] # [doc = ""] # [inline] pub fn body_set_mode (& self , body : Rid , mode : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_mode ; let ret = crate :: icalls :: icallptr_void_rid_i64 (method_bind , self . this . sys () . as_ptr () , body , mode) ; } } # [doc = "Sets whether a body uses a callback function to calculate its own physics (see [method body_set_force_integration_callback])."] # [doc = ""] # [inline] pub fn body_set_omit_force_integration (& self , body : Rid , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_omit_force_integration ; let ret = crate :: icalls :: icallptr_void_rid_bool (method_bind , self . this . sys () . as_ptr () , body , enable) ; } } # [doc = "Sets a body parameter. A list of available parameters is on the [enum BodyParameter] constants."] # [doc = ""] # [inline] pub fn body_set_param (& self , body : Rid , param : i64 , value : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_param ; let ret = crate :: icalls :: icallptr_void_rid_i64_f64 (method_bind , self . this . sys () . as_ptr () , body , param , value) ; } } # [doc = "Sets the body pickable with rays if `enabled` is set."] # [doc = ""] # [inline] pub fn body_set_ray_pickable (& self , body : Rid , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_ray_pickable ; let ret = crate :: icalls :: icallptr_void_rid_bool (method_bind , self . this . sys () . as_ptr () , body , enable) ; } } # [doc = "Substitutes a given body shape by another. The old shape is selected by its index, the new one by its [RID]."] # [doc = ""] # [inline] pub fn body_set_shape (& self , body : Rid , shape_idx : i64 , shape : Rid) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_shape ; let ret = crate :: icalls :: icallptr_void_rid_i64_rid (method_bind , self . this . sys () . as_ptr () , body , shape_idx , shape) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn body_set_shape_disabled (& self , body : Rid , shape_idx : i64 , disabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_shape_disabled ; let ret = crate :: icalls :: icallptr_void_rid_i64_bool (method_bind , self . this . sys () . as_ptr () , body , shape_idx , disabled) ; } } # [doc = "Sets the transform matrix for a body shape."] # [doc = ""] # [inline] pub fn body_set_shape_transform (& self , body : Rid , shape_idx : i64 , transform : Transform) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_shape_transform ; let ret = crate :: icalls :: icallptr_void_rid_i64_trans (method_bind , self . this . sys () . as_ptr () , body , shape_idx , transform) ; } } # [doc = "Assigns a space to the body (see [method space_create])."] # [doc = ""] # [inline] pub fn body_set_space (& self , body : Rid , space : Rid) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_space ; let ret = crate :: icalls :: icallptr_void_rid_rid (method_bind , self . this . sys () . as_ptr () , body , space) ; } } # [doc = "Sets a body state (see [enum BodyState] constants)."] # [doc = ""] # [inline] pub fn body_set_state (& self , body : Rid , state : i64 , value : impl OwnedToVariant) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . body_set_state ; let ret = crate :: icalls :: icallptr_void_rid_i64_var (method_bind , self . this . sys () . as_ptr () , body , state , value . owned_to_variant ()) ; } } # [doc = "Gets a cone_twist_joint parameter (see [enum ConeTwistJointParam] constants)."] # [doc = ""] # [inline] pub fn cone_twist_joint_get_param (& self , joint : Rid , param : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . cone_twist_joint_get_param ; let ret = crate :: icalls :: icallptr_f64_rid_i64 (method_bind , self . this . sys () . as_ptr () , joint , param) ; ret as _ } } # [doc = "Sets a cone_twist_joint parameter (see [enum ConeTwistJointParam] constants)."] # [doc = ""] # [inline] pub fn cone_twist_joint_set_param (& self , joint : Rid , param : i64 , value : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . cone_twist_joint_set_param ; let ret = crate :: icalls :: icallptr_void_rid_i64_f64 (method_bind , self . this . sys () . as_ptr () , joint , param , value) ; } } # [doc = "Destroys any of the objects created by PhysicsServer. If the [RID] passed is not one of the objects that can be created by PhysicsServer, an error will be sent to the console."] # [doc = ""] # [inline] pub fn free_rid (& self , rid : Rid) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . free_rid ; let ret = crate :: icalls :: icallptr_void_rid (method_bind , self . this . sys () . as_ptr () , rid) ; } } # [doc = "Gets a generic_6_DOF_joint flag (see [enum G6DOFJointAxisFlag] constants)."] # [doc = ""] # [inline] pub fn generic_6dof_joint_get_flag (& self , joint : Rid , axis : i64 , flag : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . generic_6dof_joint_get_flag ; let ret = crate :: icalls :: icallptr_bool_rid_i64_i64 (method_bind , self . this . sys () . as_ptr () , joint , axis , flag) ; ret as _ } } # [doc = "Gets a generic_6_DOF_joint parameter (see [enum G6DOFJointAxisParam] constants)."] # [doc = ""] # [inline] pub fn generic_6dof_joint_get_param (& self , joint : Rid , axis : i64 , param : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . generic_6dof_joint_get_param ; let ret = crate :: icalls :: icallptr_f64_rid_i64_i64 (method_bind , self . this . sys () . as_ptr () , joint , axis , param) ; ret as _ } } # [doc = "Sets a generic_6_DOF_joint flag (see [enum G6DOFJointAxisFlag] constants)."] # [doc = ""] # [inline] pub fn generic_6dof_joint_set_flag (& self , joint : Rid , axis : i64 , flag : i64 , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . generic_6dof_joint_set_flag ; let ret = crate :: icalls :: icallptr_void_rid_i64_i64_bool (method_bind , self . this . sys () . as_ptr () , joint , axis , flag , enable) ; } } # [doc = "Sets a generic_6_DOF_joint parameter (see [enum G6DOFJointAxisParam] constants)."] # [doc = ""] # [inline] pub fn generic_6dof_joint_set_param (& self , joint : Rid , axis : i64 , param : i64 , value : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . generic_6dof_joint_set_param ; let ret = crate :: icalls :: icallptr_void_rid_i64_i64_f64 (method_bind , self . this . sys () . as_ptr () , joint , axis , param , value) ; } } # [doc = "Returns an Info defined by the [enum ProcessInfo] input given."] # [doc = ""] # [inline] pub fn get_process_info (& self , process_info : i64) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . get_process_info ; let ret = crate :: icalls :: icallptr_i64_i64 (method_bind , self . this . sys () . as_ptr () , process_info) ; ret as _ } } # [doc = "Gets a hinge_joint flag (see [enum HingeJointFlag] constants)."] # [doc = ""] # [inline] pub fn hinge_joint_get_flag (& self , joint : Rid , flag : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . hinge_joint_get_flag ; let ret = crate :: icalls :: icallptr_bool_rid_i64 (method_bind , self . this . sys () . as_ptr () , joint , flag) ; ret as _ } } # [doc = "Gets a hinge_joint parameter (see [enum HingeJointParam])."] # [doc = ""] # [inline] pub fn hinge_joint_get_param (& self , joint : Rid , param : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . hinge_joint_get_param ; let ret = crate :: icalls :: icallptr_f64_rid_i64 (method_bind , self . this . sys () . as_ptr () , joint , param) ; ret as _ } } # [doc = "Sets a hinge_joint flag (see [enum HingeJointFlag] constants)."] # [doc = ""] # [inline] pub fn hinge_joint_set_flag (& self , joint : Rid , flag : i64 , enabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . hinge_joint_set_flag ; let ret = crate :: icalls :: icallptr_void_rid_i64_bool (method_bind , self . this . sys () . as_ptr () , joint , flag , enabled) ; } } # [doc = "Sets a hinge_joint parameter (see [enum HingeJointParam] constants)."] # [doc = ""] # [inline] pub fn hinge_joint_set_param (& self , joint : Rid , param : i64 , value : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . hinge_joint_set_param ; let ret = crate :: icalls :: icallptr_void_rid_i64_f64 (method_bind , self . this . sys () . as_ptr () , joint , param , value) ; } } # [doc = "Creates a [ConeTwistJoint]."] # [doc = ""] # [inline] pub fn joint_create_cone_twist (& self , body_A : Rid , local_ref_A : Transform , body_B : Rid , local_ref_B : Transform) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . joint_create_cone_twist ; let ret = crate :: icalls :: icallptr_rid_rid_trans_rid_trans (method_bind , self . this . sys () . as_ptr () , body_A , local_ref_A , body_B , local_ref_B) ; Rid :: from_sys (ret) } } # [doc = "Creates a [Generic6DOFJoint]."] # [doc = ""] # [inline] pub fn joint_create_generic_6dof (& self , body_A : Rid , local_ref_A : Transform , body_B : Rid , local_ref_B : Transform) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . joint_create_generic_6dof ; let ret = crate :: icalls :: icallptr_rid_rid_trans_rid_trans (method_bind , self . this . sys () . as_ptr () , body_A , local_ref_A , body_B , local_ref_B) ; Rid :: from_sys (ret) } } # [doc = "Creates a [HingeJoint]."] # [doc = ""] # [inline] pub fn joint_create_hinge (& self , body_A : Rid , hinge_A : Transform , body_B : Rid , hinge_B : Transform) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . joint_create_hinge ; let ret = crate :: icalls :: icallptr_rid_rid_trans_rid_trans (method_bind , self . this . sys () . as_ptr () , body_A , hinge_A , body_B , hinge_B) ; Rid :: from_sys (ret) } } # [doc = "Creates a [PinJoint]."] # [doc = ""] # [inline] pub fn joint_create_pin (& self , body_A : Rid , local_A : Vector3 , body_B : Rid , local_B : Vector3) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . joint_create_pin ; let ret = crate :: icalls :: icallptr_rid_rid_vec3_rid_vec3 (method_bind , self . this . sys () . as_ptr () , body_A , local_A , body_B , local_B) ; Rid :: from_sys (ret) } } # [doc = "Creates a [SliderJoint]."] # [doc = ""] # [inline] pub fn joint_create_slider (& self , body_A : Rid , local_ref_A : Transform , body_B : Rid , local_ref_B : Transform) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . joint_create_slider ; let ret = crate :: icalls :: icallptr_rid_rid_trans_rid_trans (method_bind , self . this . sys () . as_ptr () , body_A , local_ref_A , body_B , local_ref_B) ; Rid :: from_sys (ret) } } # [doc = "Gets the priority value of the Joint."] # [doc = ""] # [inline] pub fn joint_get_solver_priority (& self , joint : Rid) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . joint_get_solver_priority ; let ret = crate :: icalls :: icallptr_i64_rid (method_bind , self . this . sys () . as_ptr () , joint) ; ret as _ } } # [doc = "Returns the type of the Joint."] # [doc = ""] # [inline] pub fn joint_get_type (& self , joint : Rid) -> crate :: generated :: physics_server :: JointType { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . joint_get_type ; let ret = crate :: icalls :: icallptr_i64_rid (method_bind , self . this . sys () . as_ptr () , joint) ; crate :: generated :: physics_server :: JointType (ret) } } # [doc = "Sets the priority value of the Joint."] # [doc = ""] # [inline] pub fn joint_set_solver_priority (& self , joint : Rid , priority : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . joint_set_solver_priority ; let ret = crate :: icalls :: icallptr_void_rid_i64 (method_bind , self . this . sys () . as_ptr () , joint , priority) ; } } # [doc = "Returns position of the joint in the local space of body a of the joint."] # [doc = ""] # [inline] pub fn pin_joint_get_local_a (& self , joint : Rid) -> Vector3 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . pin_joint_get_local_a ; let ret = crate :: icalls :: icallptr_vec3_rid (method_bind , self . this . sys () . as_ptr () , joint) ; mem :: transmute (ret) } } # [doc = "Returns position of the joint in the local space of body b of the joint."] # [doc = ""] # [inline] pub fn pin_joint_get_local_b (& self , joint : Rid) -> Vector3 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . pin_joint_get_local_b ; let ret = crate :: icalls :: icallptr_vec3_rid (method_bind , self . this . sys () . as_ptr () , joint) ; mem :: transmute (ret) } } # [doc = "Gets a pin_joint parameter (see [enum PinJointParam] constants)."] # [doc = ""] # [inline] pub fn pin_joint_get_param (& self , joint : Rid , param : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . pin_joint_get_param ; let ret = crate :: icalls :: icallptr_f64_rid_i64 (method_bind , self . this . sys () . as_ptr () , joint , param) ; ret as _ } } # [doc = "Sets position of the joint in the local space of body a of the joint."] # [doc = ""] # [inline] pub fn pin_joint_set_local_a (& self , joint : Rid , local_A : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . pin_joint_set_local_a ; let ret = crate :: icalls :: icallptr_void_rid_vec3 (method_bind , self . this . sys () . as_ptr () , joint , local_A) ; } } # [doc = "Sets position of the joint in the local space of body b of the joint."] # [doc = ""] # [inline] pub fn pin_joint_set_local_b (& self , joint : Rid , local_B : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . pin_joint_set_local_b ; let ret = crate :: icalls :: icallptr_void_rid_vec3 (method_bind , self . this . sys () . as_ptr () , joint , local_B) ; } } # [doc = "Sets a pin_joint parameter (see [enum PinJointParam] constants)."] # [doc = ""] # [inline] pub fn pin_joint_set_param (& self , joint : Rid , param : i64 , value : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . pin_joint_set_param ; let ret = crate :: icalls :: icallptr_void_rid_i64_f64 (method_bind , self . this . sys () . as_ptr () , joint , param , value) ; } } # [doc = "Activates or deactivates the 3D physics engine."] # [doc = ""] # [inline] pub fn set_active (& self , active : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . set_active ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , active) ; } } # [doc = "Creates a shape of a type from [enum ShapeType]. Does not assign it to a body or an area. To do so, you must use [method area_set_shape] or [method body_set_shape]."] # [doc = ""] # [inline] pub fn shape_create (& self , _type : i64) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . shape_create ; let ret = crate :: icalls :: icallptr_rid_i64 (method_bind , self . this . sys () . as_ptr () , _type) ; Rid :: from_sys (ret) } } # [doc = "Returns the shape data."] # [doc = ""] # [inline] pub fn shape_get_data (& self , shape : Rid) -> Variant { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . shape_get_data ; let ret = crate :: icalls :: icallptr_var_rid (method_bind , self . this . sys () . as_ptr () , shape) ; Variant :: from_sys (ret) } } # [doc = "Returns the type of shape (see [enum ShapeType] constants)."] # [doc = ""] # [inline] pub fn shape_get_type (& self , shape : Rid) -> crate :: generated :: physics_server :: ShapeType { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . shape_get_type ; let ret = crate :: icalls :: icallptr_i64_rid (method_bind , self . this . sys () . as_ptr () , shape) ; crate :: generated :: physics_server :: ShapeType (ret) } } # [doc = "Sets the shape data that defines its shape and size. The data to be passed depends on the kind of shape created [method shape_get_type]."] # [doc = ""] # [inline] pub fn shape_set_data (& self , shape : Rid , data : impl OwnedToVariant) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . shape_set_data ; let ret = crate :: icalls :: icallptr_void_rid_var (method_bind , self . this . sys () . as_ptr () , shape , data . owned_to_variant ()) ; } } # [doc = "Gets a slider_joint parameter (see [enum SliderJointParam] constants)."] # [doc = ""] # [inline] pub fn slider_joint_get_param (& self , joint : Rid , param : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . slider_joint_get_param ; let ret = crate :: icalls :: icallptr_f64_rid_i64 (method_bind , self . this . sys () . as_ptr () , joint , param) ; ret as _ } } # [doc = "Gets a slider_joint parameter (see [enum SliderJointParam] constants)."] # [doc = ""] # [inline] pub fn slider_joint_set_param (& self , joint : Rid , param : i64 , value : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . slider_joint_set_param ; let ret = crate :: icalls :: icallptr_void_rid_i64_f64 (method_bind , self . this . sys () . as_ptr () , joint , param , value) ; } } # [doc = "Creates a space. A space is a collection of parameters for the physics engine that can be assigned to an area or a body. It can be assigned to an area with [method area_set_space], or to a body with [method body_set_space]."] # [doc = ""] # [inline] pub fn space_create (& self) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . space_create ; let ret = crate :: icalls :: icallptr_rid (method_bind , self . this . sys () . as_ptr ()) ; Rid :: from_sys (ret) } } # [doc = "Returns the state of a space, a [PhysicsDirectSpaceState]. This object can be used to make collision/intersection queries."] # [doc = ""] # [inline] pub fn space_get_direct_state (& self , space : Rid) -> Option < Ref < crate :: generated :: physics_direct_space_state :: PhysicsDirectSpaceState , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . space_get_direct_state ; let ret = crate :: icalls :: icallptr_obj_rid (method_bind , self . this . sys () . as_ptr () , space) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: physics_direct_space_state :: PhysicsDirectSpaceState , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the value of a space parameter."] # [doc = ""] # [inline] pub fn space_get_param (& self , space : Rid , param : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . space_get_param ; let ret = crate :: icalls :: icallptr_f64_rid_i64 (method_bind , self . this . sys () . as_ptr () , space , param) ; ret as _ } } # [doc = "Returns whether the space is active."] # [doc = ""] # [inline] pub fn space_is_active (& self , space : Rid) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . space_is_active ; let ret = crate :: icalls :: icallptr_bool_rid (method_bind , self . this . sys () . as_ptr () , space) ; ret as _ } } # [doc = "Marks a space as active. It will not have an effect, unless it is assigned to an area or body."] # [doc = ""] # [inline] pub fn space_set_active (& self , space : Rid , active : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . space_set_active ; let ret = crate :: icalls :: icallptr_void_rid_bool (method_bind , self . this . sys () . as_ptr () , space , active) ; } } # [doc = "Sets the value for a space parameter. A list of available parameters is on the [enum SpaceParameter] constants."] # [doc = ""] # [inline] pub fn space_set_param (& self , space : Rid , param : i64 , value : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PhysicsServerMethodTable :: get (get_api ()) . space_set_param ; let ret = crate :: icalls :: icallptr_void_rid_i64_f64 (method_bind , self . this . sys () . as_ptr () , space , param , value) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for PhysicsServer { } unsafe impl GodotObject for PhysicsServer { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "PhysicsServer" } } impl std :: ops :: Deref for PhysicsServer { type Target = crate :: generated :: object :: Object ; # [inline] fn deref (& self) -> & crate :: generated :: object :: Object { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for PhysicsServer { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: object :: Object { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: object :: Object > for PhysicsServer { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct PhysicsServerMethodTable { pub class_constructor : sys :: godot_class_constructor , pub area_add_shape : * mut sys :: godot_method_bind , pub area_attach_object_instance_id : * mut sys :: godot_method_bind , pub area_clear_shapes : * mut sys :: godot_method_bind , pub area_create : * mut sys :: godot_method_bind , pub area_get_object_instance_id : * mut sys :: godot_method_bind , pub area_get_param : * mut sys :: godot_method_bind , pub area_get_shape : * mut sys :: godot_method_bind , pub area_get_shape_count : * mut sys :: godot_method_bind , pub area_get_shape_transform : * mut sys :: godot_method_bind , pub area_get_space : * mut sys :: godot_method_bind , pub area_get_space_override_mode : * mut sys :: godot_method_bind , pub area_get_transform : * mut sys :: godot_method_bind , pub area_is_ray_pickable : * mut sys :: godot_method_bind , pub area_remove_shape : * mut sys :: godot_method_bind , pub area_set_area_monitor_callback : * mut sys :: godot_method_bind , pub area_set_collision_layer : * mut sys :: godot_method_bind , pub area_set_collision_mask : * mut sys :: godot_method_bind , pub area_set_monitor_callback : * mut sys :: godot_method_bind , pub area_set_monitorable : * mut sys :: godot_method_bind , pub area_set_param : * mut sys :: godot_method_bind , pub area_set_ray_pickable : * mut sys :: godot_method_bind , pub area_set_shape : * mut sys :: godot_method_bind , pub area_set_shape_disabled : * mut sys :: godot_method_bind , pub area_set_shape_transform : * mut sys :: godot_method_bind , pub area_set_space : * mut sys :: godot_method_bind , pub area_set_space_override_mode : * mut sys :: godot_method_bind , pub area_set_transform : * mut sys :: godot_method_bind , pub body_add_central_force : * mut sys :: godot_method_bind , pub body_add_collision_exception : * mut sys :: godot_method_bind , pub body_add_force : * mut sys :: godot_method_bind , pub body_add_shape : * mut sys :: godot_method_bind , pub body_add_torque : * mut sys :: godot_method_bind , pub body_apply_central_impulse : * mut sys :: godot_method_bind , pub body_apply_impulse : * mut sys :: godot_method_bind , pub body_apply_torque_impulse : * mut sys :: godot_method_bind , pub body_attach_object_instance_id : * mut sys :: godot_method_bind , pub body_clear_shapes : * mut sys :: godot_method_bind , pub body_create : * mut sys :: godot_method_bind , pub body_get_collision_layer : * mut sys :: godot_method_bind , pub body_get_collision_mask : * mut sys :: godot_method_bind , pub body_get_direct_state : * mut sys :: godot_method_bind , pub body_get_kinematic_safe_margin : * mut sys :: godot_method_bind , pub body_get_max_contacts_reported : * mut sys :: godot_method_bind , pub body_get_mode : * mut sys :: godot_method_bind , pub body_get_object_instance_id : * mut sys :: godot_method_bind , pub body_get_param : * mut sys :: godot_method_bind , pub body_get_shape : * mut sys :: godot_method_bind , pub body_get_shape_count : * mut sys :: godot_method_bind , pub body_get_shape_transform : * mut sys :: godot_method_bind , pub body_get_space : * mut sys :: godot_method_bind , pub body_get_state : * mut sys :: godot_method_bind , pub body_is_axis_locked : * mut sys :: godot_method_bind , pub body_is_continuous_collision_detection_enabled : * mut sys :: godot_method_bind , pub body_is_omitting_force_integration : * mut sys :: godot_method_bind , pub body_is_ray_pickable : * mut sys :: godot_method_bind , pub body_remove_collision_exception : * mut sys :: godot_method_bind , pub body_remove_shape : * mut sys :: godot_method_bind , pub body_set_axis_lock : * mut sys :: godot_method_bind , pub body_set_axis_velocity : * mut sys :: godot_method_bind , pub body_set_collision_layer : * mut sys :: godot_method_bind , pub body_set_collision_mask : * mut sys :: godot_method_bind , pub body_set_enable_continuous_collision_detection : * mut sys :: godot_method_bind , pub body_set_force_integration_callback : * mut sys :: godot_method_bind , pub body_set_kinematic_safe_margin : * mut sys :: godot_method_bind , pub body_set_max_contacts_reported : * mut sys :: godot_method_bind , pub body_set_mode : * mut sys :: godot_method_bind , pub body_set_omit_force_integration : * mut sys :: godot_method_bind , pub body_set_param : * mut sys :: godot_method_bind , pub body_set_ray_pickable : * mut sys :: godot_method_bind , pub body_set_shape : * mut sys :: godot_method_bind , pub body_set_shape_disabled : * mut sys :: godot_method_bind , pub body_set_shape_transform : * mut sys :: godot_method_bind , pub body_set_space : * mut sys :: godot_method_bind , pub body_set_state : * mut sys :: godot_method_bind , pub cone_twist_joint_get_param : * mut sys :: godot_method_bind , pub cone_twist_joint_set_param : * mut sys :: godot_method_bind , pub free_rid : * mut sys :: godot_method_bind , pub generic_6dof_joint_get_flag : * mut sys :: godot_method_bind , pub generic_6dof_joint_get_param : * mut sys :: godot_method_bind , pub generic_6dof_joint_set_flag : * mut sys :: godot_method_bind , pub generic_6dof_joint_set_param : * mut sys :: godot_method_bind , pub get_process_info : * mut sys :: godot_method_bind , pub hinge_joint_get_flag : * mut sys :: godot_method_bind , pub hinge_joint_get_param : * mut sys :: godot_method_bind , pub hinge_joint_set_flag : * mut sys :: godot_method_bind , pub hinge_joint_set_param : * mut sys :: godot_method_bind , pub joint_create_cone_twist : * mut sys :: godot_method_bind , pub joint_create_generic_6dof : * mut sys :: godot_method_bind , pub joint_create_hinge : * mut sys :: godot_method_bind , pub joint_create_pin : * mut sys :: godot_method_bind , pub joint_create_slider : * mut sys :: godot_method_bind , pub joint_get_solver_priority : * mut sys :: godot_method_bind , pub joint_get_type : * mut sys :: godot_method_bind , pub joint_set_solver_priority : * mut sys :: godot_method_bind , pub pin_joint_get_local_a : * mut sys :: godot_method_bind , pub pin_joint_get_local_b : * mut sys :: godot_method_bind , pub pin_joint_get_param : * mut sys :: godot_method_bind , pub pin_joint_set_local_a : * mut sys :: godot_method_bind , pub pin_joint_set_local_b : * mut sys :: godot_method_bind , pub pin_joint_set_param : * mut sys :: godot_method_bind , pub set_active : * mut sys :: godot_method_bind , pub shape_create : * mut sys :: godot_method_bind , pub shape_get_data : * mut sys :: godot_method_bind , pub shape_get_type : * mut sys :: godot_method_bind , pub shape_set_data : * mut sys :: godot_method_bind , pub slider_joint_get_param : * mut sys :: godot_method_bind , pub slider_joint_set_param : * mut sys :: godot_method_bind , pub space_create : * mut sys :: godot_method_bind , pub space_get_direct_state : * mut sys :: godot_method_bind , pub space_get_param : * mut sys :: godot_method_bind , pub space_is_active : * mut sys :: godot_method_bind , pub space_set_active : * mut sys :: godot_method_bind , pub space_set_param : * mut sys :: godot_method_bind } impl PhysicsServerMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : PhysicsServerMethodTable = PhysicsServerMethodTable { class_constructor : None , area_add_shape : 0 as * mut sys :: godot_method_bind , area_attach_object_instance_id : 0 as * mut sys :: godot_method_bind , area_clear_shapes : 0 as * mut sys :: godot_method_bind , area_create : 0 as * mut sys :: godot_method_bind , area_get_object_instance_id : 0 as * mut sys :: godot_method_bind , area_get_param : 0 as * mut sys :: godot_method_bind , area_get_shape : 0 as * mut sys :: godot_method_bind , area_get_shape_count : 0 as * mut sys :: godot_method_bind , area_get_shape_transform : 0 as * mut sys :: godot_method_bind , area_get_space : 0 as * mut sys :: godot_method_bind , area_get_space_override_mode : 0 as * mut sys :: godot_method_bind , area_get_transform : 0 as * mut sys :: godot_method_bind , area_is_ray_pickable : 0 as * mut sys :: godot_method_bind , area_remove_shape : 0 as * mut sys :: godot_method_bind , area_set_area_monitor_callback : 0 as * mut sys :: godot_method_bind , area_set_collision_layer : 0 as * mut sys :: godot_method_bind , area_set_collision_mask : 0 as * mut sys :: godot_method_bind , area_set_monitor_callback : 0 as * mut sys :: godot_method_bind , area_set_monitorable : 0 as * mut sys :: godot_method_bind , area_set_param : 0 as * mut sys :: godot_method_bind , area_set_ray_pickable : 0 as * mut sys :: godot_method_bind , area_set_shape : 0 as * mut sys :: godot_method_bind , area_set_shape_disabled : 0 as * mut sys :: godot_method_bind , area_set_shape_transform : 0 as * mut sys :: godot_method_bind , area_set_space : 0 as * mut sys :: godot_method_bind , area_set_space_override_mode : 0 as * mut sys :: godot_method_bind , area_set_transform : 0 as * mut sys :: godot_method_bind , body_add_central_force : 0 as * mut sys :: godot_method_bind , body_add_collision_exception : 0 as * mut sys :: godot_method_bind , body_add_force : 0 as * mut sys :: godot_method_bind , body_add_shape : 0 as * mut sys :: godot_method_bind , body_add_torque : 0 as * mut sys :: godot_method_bind , body_apply_central_impulse : 0 as * mut sys :: godot_method_bind , body_apply_impulse : 0 as * mut sys :: godot_method_bind , body_apply_torque_impulse : 0 as * mut sys :: godot_method_bind , body_attach_object_instance_id : 0 as * mut sys :: godot_method_bind , body_clear_shapes : 0 as * mut sys :: godot_method_bind , body_create : 0 as * mut sys :: godot_method_bind , body_get_collision_layer : 0 as * mut sys :: godot_method_bind , body_get_collision_mask : 0 as * mut sys :: godot_method_bind , body_get_direct_state : 0 as * mut sys :: godot_method_bind , body_get_kinematic_safe_margin : 0 as * mut sys :: godot_method_bind , body_get_max_contacts_reported : 0 as * mut sys :: godot_method_bind , body_get_mode : 0 as * mut sys :: godot_method_bind , body_get_object_instance_id : 0 as * mut sys :: godot_method_bind , body_get_param : 0 as * mut sys :: godot_method_bind , body_get_shape : 0 as * mut sys :: godot_method_bind , body_get_shape_count : 0 as * mut sys :: godot_method_bind , body_get_shape_transform : 0 as * mut sys :: godot_method_bind , body_get_space : 0 as * mut sys :: godot_method_bind , body_get_state : 0 as * mut sys :: godot_method_bind , body_is_axis_locked : 0 as * mut sys :: godot_method_bind , body_is_continuous_collision_detection_enabled : 0 as * mut sys :: godot_method_bind , body_is_omitting_force_integration : 0 as * mut sys :: godot_method_bind , body_is_ray_pickable : 0 as * mut sys :: godot_method_bind , body_remove_collision_exception : 0 as * mut sys :: godot_method_bind , body_remove_shape : 0 as * mut sys :: godot_method_bind , body_set_axis_lock : 0 as * mut sys :: godot_method_bind , body_set_axis_velocity : 0 as * mut sys :: godot_method_bind , body_set_collision_layer : 0 as * mut sys :: godot_method_bind , body_set_collision_mask : 0 as * mut sys :: godot_method_bind , body_set_enable_continuous_collision_detection : 0 as * mut sys :: godot_method_bind , body_set_force_integration_callback : 0 as * mut sys :: godot_method_bind , body_set_kinematic_safe_margin : 0 as * mut sys :: godot_method_bind , body_set_max_contacts_reported : 0 as * mut sys :: godot_method_bind , body_set_mode : 0 as * mut sys :: godot_method_bind , body_set_omit_force_integration : 0 as * mut sys :: godot_method_bind , body_set_param : 0 as * mut sys :: godot_method_bind , body_set_ray_pickable : 0 as * mut sys :: godot_method_bind , body_set_shape : 0 as * mut sys :: godot_method_bind , body_set_shape_disabled : 0 as * mut sys :: godot_method_bind , body_set_shape_transform : 0 as * mut sys :: godot_method_bind , body_set_space : 0 as * mut sys :: godot_method_bind , body_set_state : 0 as * mut sys :: godot_method_bind , cone_twist_joint_get_param : 0 as * mut sys :: godot_method_bind , cone_twist_joint_set_param : 0 as * mut sys :: godot_method_bind , free_rid : 0 as * mut sys :: godot_method_bind , generic_6dof_joint_get_flag : 0 as * mut sys :: godot_method_bind , generic_6dof_joint_get_param : 0 as * mut sys :: godot_method_bind , generic_6dof_joint_set_flag : 0 as * mut sys :: godot_method_bind , generic_6dof_joint_set_param : 0 as * mut sys :: godot_method_bind , get_process_info : 0 as * mut sys :: godot_method_bind , hinge_joint_get_flag : 0 as * mut sys :: godot_method_bind , hinge_joint_get_param : 0 as * mut sys :: godot_method_bind , hinge_joint_set_flag : 0 as * mut sys :: godot_method_bind , hinge_joint_set_param : 0 as * mut sys :: godot_method_bind , joint_create_cone_twist : 0 as * mut sys :: godot_method_bind , joint_create_generic_6dof : 0 as * mut sys :: godot_method_bind , joint_create_hinge : 0 as * mut sys :: godot_method_bind , joint_create_pin : 0 as * mut sys :: godot_method_bind , joint_create_slider : 0 as * mut sys :: godot_method_bind , joint_get_solver_priority : 0 as * mut sys :: godot_method_bind , joint_get_type : 0 as * mut sys :: godot_method_bind , joint_set_solver_priority : 0 as * mut sys :: godot_method_bind , pin_joint_get_local_a : 0 as * mut sys :: godot_method_bind , pin_joint_get_local_b : 0 as * mut sys :: godot_method_bind , pin_joint_get_param : 0 as * mut sys :: godot_method_bind , pin_joint_set_local_a : 0 as * mut sys :: godot_method_bind , pin_joint_set_local_b : 0 as * mut sys :: godot_method_bind , pin_joint_set_param : 0 as * mut sys :: godot_method_bind , set_active : 0 as * mut sys :: godot_method_bind , shape_create : 0 as * mut sys :: godot_method_bind , shape_get_data : 0 as * mut sys :: godot_method_bind , shape_get_type : 0 as * mut sys :: godot_method_bind , shape_set_data : 0 as * mut sys :: godot_method_bind , slider_joint_get_param : 0 as * mut sys :: godot_method_bind , slider_joint_set_param : 0 as * mut sys :: godot_method_bind , space_create : 0 as * mut sys :: godot_method_bind , space_get_direct_state : 0 as * mut sys :: godot_method_bind , space_get_param : 0 as * mut sys :: godot_method_bind , space_is_active : 0 as * mut sys :: godot_method_bind , space_set_active : 0 as * mut sys :: godot_method_bind , space_set_param : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { PhysicsServerMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "PhysicsServer\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . area_add_shape = (gd_api . godot_method_bind_get_method) (class_name , "area_add_shape\0" . as_ptr () as * const c_char) ; table . area_attach_object_instance_id = (gd_api . godot_method_bind_get_method) (class_name , "area_attach_object_instance_id\0" . as_ptr () as * const c_char) ; table . area_clear_shapes = (gd_api . godot_method_bind_get_method) (class_name , "area_clear_shapes\0" . as_ptr () as * const c_char) ; table . area_create = (gd_api . godot_method_bind_get_method) (class_name , "area_create\0" . as_ptr () as * const c_char) ; table . area_get_object_instance_id = (gd_api . godot_method_bind_get_method) (class_name , "area_get_object_instance_id\0" . as_ptr () as * const c_char) ; table . area_get_param = (gd_api . godot_method_bind_get_method) (class_name , "area_get_param\0" . as_ptr () as * const c_char) ; table . area_get_shape = (gd_api . godot_method_bind_get_method) (class_name , "area_get_shape\0" . as_ptr () as * const c_char) ; table . area_get_shape_count = (gd_api . godot_method_bind_get_method) (class_name , "area_get_shape_count\0" . as_ptr () as * const c_char) ; table . area_get_shape_transform = (gd_api . godot_method_bind_get_method) (class_name , "area_get_shape_transform\0" . as_ptr () as * const c_char) ; table . area_get_space = (gd_api . godot_method_bind_get_method) (class_name , "area_get_space\0" . as_ptr () as * const c_char) ; table . area_get_space_override_mode = (gd_api . godot_method_bind_get_method) (class_name , "area_get_space_override_mode\0" . as_ptr () as * const c_char) ; table . area_get_transform = (gd_api . godot_method_bind_get_method) (class_name , "area_get_transform\0" . as_ptr () as * const c_char) ; table . area_is_ray_pickable = (gd_api . godot_method_bind_get_method) (class_name , "area_is_ray_pickable\0" . as_ptr () as * const c_char) ; table . area_remove_shape = (gd_api . godot_method_bind_get_method) (class_name , "area_remove_shape\0" . as_ptr () as * const c_char) ; table . area_set_area_monitor_callback = (gd_api . godot_method_bind_get_method) (class_name , "area_set_area_monitor_callback\0" . as_ptr () as * const c_char) ; table . area_set_collision_layer = (gd_api . godot_method_bind_get_method) (class_name , "area_set_collision_layer\0" . as_ptr () as * const c_char) ; table . area_set_collision_mask = (gd_api . godot_method_bind_get_method) (class_name , "area_set_collision_mask\0" . as_ptr () as * const c_char) ; table . area_set_monitor_callback = (gd_api . godot_method_bind_get_method) (class_name , "area_set_monitor_callback\0" . as_ptr () as * const c_char) ; table . area_set_monitorable = (gd_api . godot_method_bind_get_method) (class_name , "area_set_monitorable\0" . as_ptr () as * const c_char) ; table . area_set_param = (gd_api . godot_method_bind_get_method) (class_name , "area_set_param\0" . as_ptr () as * const c_char) ; table . area_set_ray_pickable = (gd_api . godot_method_bind_get_method) (class_name , "area_set_ray_pickable\0" . as_ptr () as * const c_char) ; table . area_set_shape = (gd_api . godot_method_bind_get_method) (class_name , "area_set_shape\0" . as_ptr () as * const c_char) ; table . area_set_shape_disabled = (gd_api . godot_method_bind_get_method) (class_name , "area_set_shape_disabled\0" . as_ptr () as * const c_char) ; table . area_set_shape_transform = (gd_api . godot_method_bind_get_method) (class_name , "area_set_shape_transform\0" . as_ptr () as * const c_char) ; table . area_set_space = (gd_api . godot_method_bind_get_method) (class_name , "area_set_space\0" . as_ptr () as * const c_char) ; table . area_set_space_override_mode = (gd_api . godot_method_bind_get_method) (class_name , "area_set_space_override_mode\0" . as_ptr () as * const c_char) ; table . area_set_transform = (gd_api . godot_method_bind_get_method) (class_name , "area_set_transform\0" . as_ptr () as * const c_char) ; table . body_add_central_force = (gd_api . godot_method_bind_get_method) (class_name , "body_add_central_force\0" . as_ptr () as * const c_char) ; table . body_add_collision_exception = (gd_api . godot_method_bind_get_method) (class_name , "body_add_collision_exception\0" . as_ptr () as * const c_char) ; table . body_add_force = (gd_api . godot_method_bind_get_method) (class_name , "body_add_force\0" . as_ptr () as * const c_char) ; table . body_add_shape = (gd_api . godot_method_bind_get_method) (class_name , "body_add_shape\0" . as_ptr () as * const c_char) ; table . body_add_torque = (gd_api . godot_method_bind_get_method) (class_name , "body_add_torque\0" . as_ptr () as * const c_char) ; table . body_apply_central_impulse = (gd_api . godot_method_bind_get_method) (class_name , "body_apply_central_impulse\0" . as_ptr () as * const c_char) ; table . body_apply_impulse = (gd_api . godot_method_bind_get_method) (class_name , "body_apply_impulse\0" . as_ptr () as * const c_char) ; table . body_apply_torque_impulse = (gd_api . godot_method_bind_get_method) (class_name , "body_apply_torque_impulse\0" . as_ptr () as * const c_char) ; table . body_attach_object_instance_id = (gd_api . godot_method_bind_get_method) (class_name , "body_attach_object_instance_id\0" . as_ptr () as * const c_char) ; table . body_clear_shapes = (gd_api . godot_method_bind_get_method) (class_name , "body_clear_shapes\0" . as_ptr () as * const c_char) ; table . body_create = (gd_api . godot_method_bind_get_method) (class_name , "body_create\0" . as_ptr () as * const c_char) ; table . body_get_collision_layer = (gd_api . godot_method_bind_get_method) (class_name , "body_get_collision_layer\0" . as_ptr () as * const c_char) ; table . body_get_collision_mask = (gd_api . godot_method_bind_get_method) (class_name , "body_get_collision_mask\0" . as_ptr () as * const c_char) ; table . body_get_direct_state = (gd_api . godot_method_bind_get_method) (class_name , "body_get_direct_state\0" . as_ptr () as * const c_char) ; table . body_get_kinematic_safe_margin = (gd_api . godot_method_bind_get_method) (class_name , "body_get_kinematic_safe_margin\0" . as_ptr () as * const c_char) ; table . body_get_max_contacts_reported = (gd_api . godot_method_bind_get_method) (class_name , "body_get_max_contacts_reported\0" . as_ptr () as * const c_char) ; table . body_get_mode = (gd_api . godot_method_bind_get_method) (class_name , "body_get_mode\0" . as_ptr () as * const c_char) ; table . body_get_object_instance_id = (gd_api . godot_method_bind_get_method) (class_name , "body_get_object_instance_id\0" . as_ptr () as * const c_char) ; table . body_get_param = (gd_api . godot_method_bind_get_method) (class_name , "body_get_param\0" . as_ptr () as * const c_char) ; table . body_get_shape = (gd_api . godot_method_bind_get_method) (class_name , "body_get_shape\0" . as_ptr () as * const c_char) ; table . body_get_shape_count = (gd_api . godot_method_bind_get_method) (class_name , "body_get_shape_count\0" . as_ptr () as * const c_char) ; table . body_get_shape_transform = (gd_api . godot_method_bind_get_method) (class_name , "body_get_shape_transform\0" . as_ptr () as * const c_char) ; table . body_get_space = (gd_api . godot_method_bind_get_method) (class_name , "body_get_space\0" . as_ptr () as * const c_char) ; table . body_get_state = (gd_api . godot_method_bind_get_method) (class_name , "body_get_state\0" . as_ptr () as * const c_char) ; table . body_is_axis_locked = (gd_api . godot_method_bind_get_method) (class_name , "body_is_axis_locked\0" . as_ptr () as * const c_char) ; table . body_is_continuous_collision_detection_enabled = (gd_api . godot_method_bind_get_method) (class_name , "body_is_continuous_collision_detection_enabled\0" . as_ptr () as * const c_char) ; table . body_is_omitting_force_integration = (gd_api . godot_method_bind_get_method) (class_name , "body_is_omitting_force_integration\0" . as_ptr () as * const c_char) ; table . body_is_ray_pickable = (gd_api . godot_method_bind_get_method) (class_name , "body_is_ray_pickable\0" . as_ptr () as * const c_char) ; table . body_remove_collision_exception = (gd_api . godot_method_bind_get_method) (class_name , "body_remove_collision_exception\0" . as_ptr () as * const c_char) ; table . body_remove_shape = (gd_api . godot_method_bind_get_method) (class_name , "body_remove_shape\0" . as_ptr () as * const c_char) ; table . body_set_axis_lock = (gd_api . godot_method_bind_get_method) (class_name , "body_set_axis_lock\0" . as_ptr () as * const c_char) ; table . body_set_axis_velocity = (gd_api . godot_method_bind_get_method) (class_name , "body_set_axis_velocity\0" . as_ptr () as * const c_char) ; table . body_set_collision_layer = (gd_api . godot_method_bind_get_method) (class_name , "body_set_collision_layer\0" . as_ptr () as * const c_char) ; table . body_set_collision_mask = (gd_api . godot_method_bind_get_method) (class_name , "body_set_collision_mask\0" . as_ptr () as * const c_char) ; table . body_set_enable_continuous_collision_detection = (gd_api . godot_method_bind_get_method) (class_name , "body_set_enable_continuous_collision_detection\0" . as_ptr () as * const c_char) ; table . body_set_force_integration_callback = (gd_api . godot_method_bind_get_method) (class_name , "body_set_force_integration_callback\0" . as_ptr () as * const c_char) ; table . body_set_kinematic_safe_margin = (gd_api . godot_method_bind_get_method) (class_name , "body_set_kinematic_safe_margin\0" . as_ptr () as * const c_char) ; table . body_set_max_contacts_reported = (gd_api . godot_method_bind_get_method) (class_name , "body_set_max_contacts_reported\0" . as_ptr () as * const c_char) ; table . body_set_mode = (gd_api . godot_method_bind_get_method) (class_name , "body_set_mode\0" . as_ptr () as * const c_char) ; table . body_set_omit_force_integration = (gd_api . godot_method_bind_get_method) (class_name , "body_set_omit_force_integration\0" . as_ptr () as * const c_char) ; table . body_set_param = (gd_api . godot_method_bind_get_method) (class_name , "body_set_param\0" . as_ptr () as * const c_char) ; table . body_set_ray_pickable = (gd_api . godot_method_bind_get_method) (class_name , "body_set_ray_pickable\0" . as_ptr () as * const c_char) ; table . body_set_shape = (gd_api . godot_method_bind_get_method) (class_name , "body_set_shape\0" . as_ptr () as * const c_char) ; table . body_set_shape_disabled = (gd_api . godot_method_bind_get_method) (class_name , "body_set_shape_disabled\0" . as_ptr () as * const c_char) ; table . body_set_shape_transform = (gd_api . godot_method_bind_get_method) (class_name , "body_set_shape_transform\0" . as_ptr () as * const c_char) ; table . body_set_space = (gd_api . godot_method_bind_get_method) (class_name , "body_set_space\0" . as_ptr () as * const c_char) ; table . body_set_state = (gd_api . godot_method_bind_get_method) (class_name , "body_set_state\0" . as_ptr () as * const c_char) ; table . cone_twist_joint_get_param = (gd_api . godot_method_bind_get_method) (class_name , "cone_twist_joint_get_param\0" . as_ptr () as * const c_char) ; table . cone_twist_joint_set_param = (gd_api . godot_method_bind_get_method) (class_name , "cone_twist_joint_set_param\0" . as_ptr () as * const c_char) ; table . free_rid = (gd_api . godot_method_bind_get_method) (class_name , "free_rid\0" . as_ptr () as * const c_char) ; table . generic_6dof_joint_get_flag = (gd_api . godot_method_bind_get_method) (class_name , "generic_6dof_joint_get_flag\0" . as_ptr () as * const c_char) ; table . generic_6dof_joint_get_param = (gd_api . godot_method_bind_get_method) (class_name , "generic_6dof_joint_get_param\0" . as_ptr () as * const c_char) ; table . generic_6dof_joint_set_flag = (gd_api . godot_method_bind_get_method) (class_name , "generic_6dof_joint_set_flag\0" . as_ptr () as * const c_char) ; table . generic_6dof_joint_set_param = (gd_api . godot_method_bind_get_method) (class_name , "generic_6dof_joint_set_param\0" . as_ptr () as * const c_char) ; table . get_process_info = (gd_api . godot_method_bind_get_method) (class_name , "get_process_info\0" . as_ptr () as * const c_char) ; table . hinge_joint_get_flag = (gd_api . godot_method_bind_get_method) (class_name , "hinge_joint_get_flag\0" . as_ptr () as * const c_char) ; table . hinge_joint_get_param = (gd_api . godot_method_bind_get_method) (class_name , "hinge_joint_get_param\0" . as_ptr () as * const c_char) ; table . hinge_joint_set_flag = (gd_api . godot_method_bind_get_method) (class_name , "hinge_joint_set_flag\0" . as_ptr () as * const c_char) ; table . hinge_joint_set_param = (gd_api . godot_method_bind_get_method) (class_name , "hinge_joint_set_param\0" . as_ptr () as * const c_char) ; table . joint_create_cone_twist = (gd_api . godot_method_bind_get_method) (class_name , "joint_create_cone_twist\0" . as_ptr () as * const c_char) ; table . joint_create_generic_6dof = (gd_api . godot_method_bind_get_method) (class_name , "joint_create_generic_6dof\0" . as_ptr () as * const c_char) ; table . joint_create_hinge = (gd_api . godot_method_bind_get_method) (class_name , "joint_create_hinge\0" . as_ptr () as * const c_char) ; table . joint_create_pin = (gd_api . godot_method_bind_get_method) (class_name , "joint_create_pin\0" . as_ptr () as * const c_char) ; table . joint_create_slider = (gd_api . godot_method_bind_get_method) (class_name , "joint_create_slider\0" . as_ptr () as * const c_char) ; table . joint_get_solver_priority = (gd_api . godot_method_bind_get_method) (class_name , "joint_get_solver_priority\0" . as_ptr () as * const c_char) ; table . joint_get_type = (gd_api . godot_method_bind_get_method) (class_name , "joint_get_type\0" . as_ptr () as * const c_char) ; table . joint_set_solver_priority = (gd_api . godot_method_bind_get_method) (class_name , "joint_set_solver_priority\0" . as_ptr () as * const c_char) ; table . pin_joint_get_local_a = (gd_api . godot_method_bind_get_method) (class_name , "pin_joint_get_local_a\0" . as_ptr () as * const c_char) ; table . pin_joint_get_local_b = (gd_api . godot_method_bind_get_method) (class_name , "pin_joint_get_local_b\0" . as_ptr () as * const c_char) ; table . pin_joint_get_param = (gd_api . godot_method_bind_get_method) (class_name , "pin_joint_get_param\0" . as_ptr () as * const c_char) ; table . pin_joint_set_local_a = (gd_api . godot_method_bind_get_method) (class_name , "pin_joint_set_local_a\0" . as_ptr () as * const c_char) ; table . pin_joint_set_local_b = (gd_api . godot_method_bind_get_method) (class_name , "pin_joint_set_local_b\0" . as_ptr () as * const c_char) ; table . pin_joint_set_param = (gd_api . godot_method_bind_get_method) (class_name , "pin_joint_set_param\0" . as_ptr () as * const c_char) ; table . set_active = (gd_api . godot_method_bind_get_method) (class_name , "set_active\0" . as_ptr () as * const c_char) ; table . shape_create = (gd_api . godot_method_bind_get_method) (class_name , "shape_create\0" . as_ptr () as * const c_char) ; table . shape_get_data = (gd_api . godot_method_bind_get_method) (class_name , "shape_get_data\0" . as_ptr () as * const c_char) ; table . shape_get_type = (gd_api . godot_method_bind_get_method) (class_name , "shape_get_type\0" . as_ptr () as * const c_char) ; table . shape_set_data = (gd_api . godot_method_bind_get_method) (class_name , "shape_set_data\0" . as_ptr () as * const c_char) ; table . slider_joint_get_param = (gd_api . godot_method_bind_get_method) (class_name , "slider_joint_get_param\0" . as_ptr () as * const c_char) ; table . slider_joint_set_param = (gd_api . godot_method_bind_get_method) (class_name , "slider_joint_set_param\0" . as_ptr () as * const c_char) ; table . space_create = (gd_api . godot_method_bind_get_method) (class_name , "space_create\0" . as_ptr () as * const c_char) ; table . space_get_direct_state = (gd_api . godot_method_bind_get_method) (class_name , "space_get_direct_state\0" . as_ptr () as * const c_char) ; table . space_get_param = (gd_api . godot_method_bind_get_method) (class_name , "space_get_param\0" . as_ptr () as * const c_char) ; table . space_is_active = (gd_api . godot_method_bind_get_method) (class_name , "space_is_active\0" . as_ptr () as * const c_char) ; table . space_set_active = (gd_api . godot_method_bind_get_method) (class_name , "space_set_active\0" . as_ptr () as * const c_char) ; table . space_set_param = (gd_api . godot_method_bind_get_method) (class_name , "space_set_param\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:154:4604 [INFO] [stdout] | [INFO] [stdout] 154 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 154 | # [doc = "`core class VisualScriptVariableGet` inherits `VisualScriptNode` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_visualscriptvariableget.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nVisualScriptVariableGet inherits methods from:\n - [VisualScriptNode](struct.VisualScriptNode.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct VisualScriptVariableGet { this : RawObject < Self > , } impl VisualScriptVariableGet { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = VisualScriptVariableGetMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = ""] # [doc = ""] # [inline] pub fn variable (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualScriptVariableGetMethodTable :: get (get_api ()) . get_variable ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn set_variable (& self , name : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualScriptVariableGetMethodTable :: get (get_api ()) . set_variable ; let ret = crate :: icalls :: icallptr_void_str (method_bind , self . this . sys () . as_ptr () , name . into ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for VisualScriptVariableGet { } unsafe impl GodotObject for VisualScriptVariableGet { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "VisualScriptVariableGet" } } impl std :: ops :: Deref for VisualScriptVariableGet { type Target = crate :: generated :: visual_script_node :: VisualScriptNode ; # [inline] fn deref (& self) -> & crate :: generated :: visual_script_node :: VisualScriptNode { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for VisualScriptVariableGet { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: visual_script_node :: VisualScriptNode { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: visual_script_node :: VisualScriptNode > for VisualScriptVariableGet { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for VisualScriptVariableGet { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for VisualScriptVariableGet { } unsafe impl SubClass < crate :: generated :: object :: Object > for VisualScriptVariableGet { } impl Instanciable for VisualScriptVariableGet { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { VisualScriptVariableGet :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct VisualScriptVariableGetMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_variable : * mut sys :: godot_method_bind , pub set_variable : * mut sys :: godot_method_bind } impl VisualScriptVariableGetMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : VisualScriptVariableGetMethodTable = VisualScriptVariableGetMethodTable { class_constructor : None , get_variable : 0 as * mut sys :: godot_method_bind , set_variable : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { VisualScriptVariableGetMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "VisualScriptVariableGet\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_variable = (gd_api . godot_method_bind_get_method) (class_name , "get_variable\0" . as_ptr () as * const c_char) ; table . set_variable = (gd_api . godot_method_bind_get_method) (class_name , "set_variable\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:160:6340 [INFO] [stdout] | [INFO] [stdout] 160 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 160 | # [doc = "`core class Thread` inherits `Reference` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_thread.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nThread inherits methods from:\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct Thread { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct Priority (pub i64) ; impl Priority { pub const LOW : Priority = Priority (0i64) ; pub const NORMAL : Priority = Priority (1i64) ; pub const HIGH : Priority = Priority (2i64) ; } impl From < i64 > for Priority { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < Priority > for i64 { # [inline] fn from (v : Priority) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl Thread { pub const PRIORITY_HIGH : i64 = 2i64 ; pub const PRIORITY_LOW : i64 = 0i64 ; pub const PRIORITY_NORMAL : i64 = 1i64 ; } impl Thread { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = ThreadMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Returns the current [Thread]'s ID, uniquely identifying it among all threads. If the [Thread] is not running this returns an empty string."] # [doc = ""] # [inline] pub fn get_id (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = ThreadMethodTable :: get (get_api ()) . get_id ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = "Returns `true` if this [Thread] is currently active. An active [Thread] cannot start work on a new method but can be joined with [method wait_to_finish]."] # [doc = ""] # [inline] pub fn is_active (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = ThreadMethodTable :: get (get_api ()) . is_active ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Starts a new [Thread] that runs `method` on object `instance` with `userdata` passed as an argument. Even if no userdata is passed, `method` must accept one argument and it will be null. The `priority` of the [Thread] can be changed by passing a value from the [enum Priority] enum.\nReturns [constant OK] on success, or [constant ERR_CANT_CREATE] on failure.\n# Default Arguments\n* `userdata` - `null`\n* `priority` - `1`"] # [doc = ""] # [inline] pub fn start (& self , instance : impl AsArg < crate :: generated :: object :: Object > , method : impl Into < GodotString > , userdata : impl OwnedToVariant , priority : i64) -> GodotResult { unsafe { let method_bind : * mut sys :: godot_method_bind = ThreadMethodTable :: get (get_api ()) . start ; let ret = crate :: icalls :: icallptr_i64_obj_str_var_i64 (method_bind , self . this . sys () . as_ptr () , instance . as_arg_ptr () , method . into () , userdata . owned_to_variant () , priority) ; GodotError :: result_from_sys (ret as _) } } # [doc = "Joins the [Thread] and waits for it to finish. Returns what the method called returned."] # [doc = ""] # [inline] pub fn wait_to_finish (& self) -> Variant { unsafe { let method_bind : * mut sys :: godot_method_bind = ThreadMethodTable :: get (get_api ()) . wait_to_finish ; let ret = crate :: icalls :: icallptr_var (method_bind , self . this . sys () . as_ptr ()) ; Variant :: from_sys (ret) } } } impl gdnative_core :: private :: godot_object :: Sealed for Thread { } unsafe impl GodotObject for Thread { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "Thread" } } impl std :: ops :: Deref for Thread { type Target = crate :: generated :: reference :: Reference ; # [inline] fn deref (& self) -> & crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for Thread { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: reference :: Reference > for Thread { } unsafe impl SubClass < crate :: generated :: object :: Object > for Thread { } impl Instanciable for Thread { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { Thread :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct ThreadMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_id : * mut sys :: godot_method_bind , pub is_active : * mut sys :: godot_method_bind , pub start : * mut sys :: godot_method_bind , pub wait_to_finish : * mut sys :: godot_method_bind } impl ThreadMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : ThreadMethodTable = ThreadMethodTable { class_constructor : None , get_id : 0 as * mut sys :: godot_method_bind , is_active : 0 as * mut sys :: godot_method_bind , start : 0 as * mut sys :: godot_method_bind , wait_to_finish : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { ThreadMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "_Thread\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_id = (gd_api . godot_method_bind_get_method) (class_name , "get_id\0" . as_ptr () as * const c_char) ; table . is_active = (gd_api . godot_method_bind_get_method) (class_name , "is_active\0" . as_ptr () as * const c_char) ; table . start = (gd_api . godot_method_bind_get_method) (class_name , "start\0" . as_ptr () as * const c_char) ; table . wait_to_finish = (gd_api . godot_method_bind_get_method) (class_name , "wait_to_finish\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:166:69283 [INFO] [stdout] | [INFO] [stdout] 166 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 166 | # [doc = "`core class Node` inherits `Object` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_node.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`Node` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nNode inherits methods from:\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct Node { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct DuplicateFlags (pub i64) ; impl DuplicateFlags { pub const SIGNALS : DuplicateFlags = DuplicateFlags (1i64) ; pub const GROUPS : DuplicateFlags = DuplicateFlags (2i64) ; pub const SCRIPTS : DuplicateFlags = DuplicateFlags (4i64) ; pub const USE_INSTANCING : DuplicateFlags = DuplicateFlags (8i64) ; } impl From < i64 > for DuplicateFlags { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < DuplicateFlags > for i64 { # [inline] fn from (v : DuplicateFlags) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct PauseMode (pub i64) ; impl PauseMode { pub const INHERIT : PauseMode = PauseMode (0i64) ; pub const STOP : PauseMode = PauseMode (1i64) ; pub const PROCESS : PauseMode = PauseMode (2i64) ; } impl From < i64 > for PauseMode { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < PauseMode > for i64 { # [inline] fn from (v : PauseMode) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl Node { pub const DUPLICATE_GROUPS : i64 = 2i64 ; pub const DUPLICATE_SCRIPTS : i64 = 4i64 ; pub const DUPLICATE_SIGNALS : i64 = 1i64 ; pub const DUPLICATE_USE_INSTANCING : i64 = 8i64 ; pub const NOTIFICATION_APP_PAUSED : i64 = 1015i64 ; pub const NOTIFICATION_APP_RESUMED : i64 = 1014i64 ; pub const NOTIFICATION_CRASH : i64 = 1012i64 ; pub const NOTIFICATION_DRAG_BEGIN : i64 = 21i64 ; pub const NOTIFICATION_DRAG_END : i64 = 22i64 ; pub const NOTIFICATION_ENTER_TREE : i64 = 10i64 ; pub const NOTIFICATION_EXIT_TREE : i64 = 11i64 ; pub const NOTIFICATION_INSTANCED : i64 = 20i64 ; pub const NOTIFICATION_INTERNAL_PHYSICS_PROCESS : i64 = 26i64 ; pub const NOTIFICATION_INTERNAL_PROCESS : i64 = 25i64 ; pub const NOTIFICATION_MOVED_IN_PARENT : i64 = 12i64 ; pub const NOTIFICATION_OS_IME_UPDATE : i64 = 1013i64 ; pub const NOTIFICATION_OS_MEMORY_WARNING : i64 = 1009i64 ; pub const NOTIFICATION_PARENTED : i64 = 18i64 ; pub const NOTIFICATION_PATH_CHANGED : i64 = 23i64 ; pub const NOTIFICATION_PAUSED : i64 = 14i64 ; pub const NOTIFICATION_PHYSICS_PROCESS : i64 = 16i64 ; pub const NOTIFICATION_POST_ENTER_TREE : i64 = 27i64 ; pub const NOTIFICATION_PROCESS : i64 = 17i64 ; pub const NOTIFICATION_READY : i64 = 13i64 ; pub const NOTIFICATION_TRANSLATION_CHANGED : i64 = 1010i64 ; pub const NOTIFICATION_UNPARENTED : i64 = 19i64 ; pub const NOTIFICATION_UNPAUSED : i64 = 15i64 ; pub const NOTIFICATION_WM_ABOUT : i64 = 1011i64 ; pub const NOTIFICATION_WM_FOCUS_IN : i64 = 1004i64 ; pub const NOTIFICATION_WM_FOCUS_OUT : i64 = 1005i64 ; pub const NOTIFICATION_WM_GO_BACK_REQUEST : i64 = 1007i64 ; pub const NOTIFICATION_WM_MOUSE_ENTER : i64 = 1002i64 ; pub const NOTIFICATION_WM_MOUSE_EXIT : i64 = 1003i64 ; pub const NOTIFICATION_WM_QUIT_REQUEST : i64 = 1006i64 ; pub const NOTIFICATION_WM_UNFOCUS_REQUEST : i64 = 1008i64 ; pub const PAUSE_MODE_INHERIT : i64 = 0i64 ; pub const PAUSE_MODE_PROCESS : i64 = 2i64 ; pub const PAUSE_MODE_STOP : i64 = 1i64 ; } impl Node { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = NodeMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "_Sample code is GDScript unless otherwise noted._\n\nAdds a child node. Nodes can have any number of children, but every child must have a unique name. Child nodes are automatically deleted when the parent node is deleted, so an entire scene can be removed by deleting its topmost node.\nIf `legible_unique_name` is `true`, the child node will have an human-readable name based on the name of the node being instanced instead of its type.\n**Note:** If the child node already has a parent, the function will fail. Use [method remove_child] first to remove the node from its current parent. For example:\n```gdscript\nif child_node.get_parent():\n child_node.get_parent().remove_child(child_node)\nadd_child(child_node)\n```\n**Note:** If you want a child to be persisted to a [PackedScene], you must set [member owner] in addition to calling [method add_child]. This is typically relevant for [url=https://godot.readthedocs.io/en/latest/tutorials/misc/running_code_in_the_editor.html]tool scripts[/url] and [url=https://godot.readthedocs.io/en/latest/tutorials/plugins/editor/index.html]editor plugins[/url]. If [method add_child] is called without setting [member owner], the newly added [Node] will not be visible in the scene tree, though it will be visible in the 2D/3D view.\n# Default Arguments\n* `legible_unique_name` - `false`"] # [doc = ""] # [inline] pub fn add_child (& self , node : impl AsArg < crate :: generated :: node :: Node > , legible_unique_name : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . add_child ; let ret = crate :: icalls :: icallptr_void_obj_bool (method_bind , self . this . sys () . as_ptr () , node . as_arg_ptr () , legible_unique_name) ; } } # [doc = "Adds `child_node` as a child. The child is placed below the given `node` in the list of children.\nIf `legible_unique_name` is `true`, the child node will have an human-readable name based on the name of the node being instanced instead of its type.\n# Default Arguments\n* `legible_unique_name` - `false`"] # [doc = ""] # [inline] pub fn add_child_below_node (& self , node : impl AsArg < crate :: generated :: node :: Node > , child_node : impl AsArg < crate :: generated :: node :: Node > , legible_unique_name : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . add_child_below_node ; let ret = crate :: icalls :: icallptr_void_obj_obj_bool (method_bind , self . this . sys () . as_ptr () , node . as_arg_ptr () , child_node . as_arg_ptr () , legible_unique_name) ; } } # [doc = "Adds the node to a group. Groups are helpers to name and organize a subset of nodes, for example \"enemies\" or \"collectables\". A node can be in any number of groups. Nodes can be assigned a group at any time, but will not be added until they are inside the scene tree (see [method is_inside_tree]). See notes in the description, and the group methods in [SceneTree].\nThe `persistent` option is used when packing node to [PackedScene] and saving to file. Non-persistent groups aren't stored.\n# Default Arguments\n* `persistent` - `false`"] # [doc = ""] # [inline] pub fn add_to_group (& self , group : impl Into < GodotString > , persistent : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . add_to_group ; let ret = crate :: icalls :: icallptr_void_str_bool (method_bind , self . this . sys () . as_ptr () , group . into () , persistent) ; } } # [doc = "Returns `true` if the node can process while the scene tree is paused (see [member pause_mode]). Always returns `true` if the scene tree is not paused, and `false` if the node is not in the tree."] # [doc = ""] # [inline] pub fn can_process (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . can_process ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Duplicates the node, returning a new node.\nYou can fine-tune the behavior using the `flags` (see [enum DuplicateFlags]).\n**Note:** It will not work properly if the node contains a script with constructor arguments (i.e. needs to supply arguments to [method Object._init] method). In that case, the node will be duplicated without a script.\n# Default Arguments\n* `flags` - `15`"] # [doc = ""] # [inline] pub fn duplicate (& self , flags : i64) -> Option < Ref < crate :: generated :: node :: Node , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . duplicate ; let ret = crate :: icalls :: icallptr_obj_i64 (method_bind , self . this . sys () . as_ptr () , flags) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: node :: Node , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Finds a descendant of this node whose name matches `mask` as in [method String.match] (i.e. case-sensitive, but `\"*\"` matches zero or more characters and `\"?\"` matches any single character except `\".\"`).\n**Note:** It does not match against the full path, just against individual node names.\nIf `owned` is `true`, this method only finds nodes whose owner is this node. This is especially important for scenes instantiated through a script, because those scenes don't have an owner.\n**Note:** As this method walks through all the descendants of the node, it is the slowest way to get a reference to another node. Whenever possible, consider using [method get_node] instead. To avoid using [method find_node] too often, consider caching the node reference into a variable.\n# Default Arguments\n* `recursive` - `true`\n* `owned` - `true`"] # [doc = ""] # [inline] pub fn find_node (& self , mask : impl Into < GodotString > , recursive : bool , owned : bool) -> Option < Ref < crate :: generated :: node :: Node , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . find_node ; let ret = crate :: icalls :: icallptr_obj_str_bool_bool (method_bind , self . this . sys () . as_ptr () , mask . into () , recursive , owned) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: node :: Node , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Finds the first parent of the current node whose name matches `mask` as in [method String.match] (i.e. case-sensitive, but `\"*\"` matches zero or more characters and `\"?\"` matches any single character except `\".\"`).\n**Note:** It does not match against the full path, just against individual node names.\n**Note:** As this method walks upwards in the scene tree, it can be slow in large, deeply nested scene trees. Whenever possible, consider using [method get_node] instead. To avoid using [method find_parent] too often, consider caching the node reference into a variable."] # [doc = ""] # [inline] pub fn find_parent (& self , mask : impl Into < GodotString >) -> Option < Ref < crate :: generated :: node :: Node , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . find_parent ; let ret = crate :: icalls :: icallptr_obj_str (method_bind , self . this . sys () . as_ptr () , mask . into ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: node :: Node , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns a child node by its index (see [method get_child_count]). This method is often used for iterating all children of a node.\nTo access a child node via its name, use [method get_node]."] # [doc = ""] # [inline] pub fn get_child (& self , idx : i64) -> Option < Ref < crate :: generated :: node :: Node , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_child ; let ret = crate :: icalls :: icallptr_obj_i64 (method_bind , self . this . sys () . as_ptr () , idx) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: node :: Node , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the number of child nodes."] # [doc = ""] # [inline] pub fn get_child_count (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_child_count ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns an array of references to node's children."] # [doc = ""] # [inline] pub fn get_children (& self) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_children ; let ret = crate :: icalls :: icallvar_ (method_bind , self . this . sys () . as_ptr ()) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = "The override to the default [MultiplayerAPI]. Set to `null` to use the default [SceneTree] one."] # [doc = ""] # [inline] pub fn custom_multiplayer (& self) -> Option < Ref < crate :: generated :: multiplayer_api :: MultiplayerAPI , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_custom_multiplayer ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: multiplayer_api :: MultiplayerAPI , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "When a scene is instanced from a file, its topmost node contains the filename from which it was loaded."] # [doc = ""] # [inline] pub fn filename (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_filename ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = "Returns an array listing the groups that the node is a member of."] # [doc = ""] # [inline] pub fn get_groups (& self) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_groups ; let ret = crate :: icalls :: icallvar_ (method_bind , self . this . sys () . as_ptr ()) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = "Returns the node's index, i.e. its position among the siblings of its parent."] # [doc = ""] # [inline] pub fn get_index (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_index ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The [MultiplayerAPI] instance associated with this node. Either the [member custom_multiplayer], or the default SceneTree one (if inside tree)."] # [doc = ""] # [inline] pub fn multiplayer (& self) -> Option < Ref < crate :: generated :: multiplayer_api :: MultiplayerAPI , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_multiplayer ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: multiplayer_api :: MultiplayerAPI , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "The name of the node. This name is unique among the siblings (other child nodes from the same parent). When set to an existing name, the node will be automatically renamed."] # [doc = ""] # [inline] pub fn name (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_name ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = "Returns the peer ID of the network master for this node. See [method set_network_master]."] # [doc = ""] # [inline] pub fn get_network_master (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_network_master ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "_Sample code is GDScript unless otherwise noted._\n\nFetches a node. The [NodePath] can be either a relative path (from the current node) or an absolute path (in the scene tree) to a node. If the path does not exist, a `null instance` is returned and an error is logged. Attempts to access methods on the return value will result in an \"Attempt to call on a null instance.\" error.\n**Note:** Fetching absolute paths only works when the node is inside the scene tree (see [method is_inside_tree]).\n**Example:** Assume your current node is Character and the following tree:\n```gdscript\n/root\n/root/Character\n/root/Character/Sword\n/root/Character/Backpack/Dagger\n/root/MyGame\n/root/Swamp/Alligator\n/root/Swamp/Mosquito\n/root/Swamp/Goblin\n```\nPossible paths are:\n```gdscript\nget_node(\"Sword\")\nget_node(\"Backpack/Dagger\")\nget_node(\"../Swamp/Alligator\")\nget_node(\"/root/MyGame\")\n```"] # [doc = ""] # [inline] pub fn get_node (& self , path : impl Into < NodePath >) -> Option < Ref < crate :: generated :: node :: Node , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_node ; let ret = crate :: icalls :: icallptr_obj_nodepath (method_bind , self . this . sys () . as_ptr () , path . into ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: node :: Node , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "_Sample code is GDScript unless otherwise noted._\n\nFetches a node and one of its resources as specified by the [NodePath]'s subname (e.g. `Area2D/CollisionShape2D:shape`). If several nested resources are specified in the [NodePath], the last one will be fetched.\nThe return value is an array of size 3: the first index points to the [Node] (or `null` if not found), the second index points to the [Resource] (or `null` if not found), and the third index is the remaining [NodePath], if any.\nFor example, assuming that `Area2D/CollisionShape2D` is a valid node and that its `shape` property has been assigned a [RectangleShape2D] resource, one could have this kind of output:\n```gdscript\nprint(get_node_and_resource(\"Area2D/CollisionShape2D\")) # [[CollisionShape2D:1161], Null, ]\nprint(get_node_and_resource(\"Area2D/CollisionShape2D:shape\")) # [[CollisionShape2D:1161], [RectangleShape2D:1156], ]\nprint(get_node_and_resource(\"Area2D/CollisionShape2D:shape:extents\")) # [[CollisionShape2D:1161], [RectangleShape2D:1156], :extents]\n```"] # [doc = ""] # [inline] pub fn get_node_and_resource (& self , path : impl Into < NodePath >) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_node_and_resource ; let ret = crate :: icalls :: icallvar__nodepath (method_bind , self . this . sys () . as_ptr () , path . into ()) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = "Similar to [method get_node], but does not log an error if `path` does not point to a valid [Node]."] # [doc = ""] # [inline] pub fn get_node_or_null (& self , path : impl Into < NodePath >) -> Option < Ref < crate :: generated :: node :: Node , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_node_or_null ; let ret = crate :: icalls :: icallptr_obj_nodepath (method_bind , self . this . sys () . as_ptr () , path . into ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: node :: Node , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "The node owner. A node can have any other node as owner (as long as it is a valid parent, grandparent, etc. ascending in the tree). When saving a node (using [PackedScene]), all the nodes it owns will be saved with it. This allows for the creation of complex [SceneTree]s, with instancing and subinstancing."] # [doc = ""] # [inline] pub fn owner (& self) -> Option < Ref < crate :: generated :: node :: Node , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_owner ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: node :: Node , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the parent node of the current node, or a `null instance` if the node lacks a parent."] # [doc = ""] # [inline] pub fn get_parent (& self) -> Option < Ref < crate :: generated :: node :: Node , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_parent ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: node :: Node , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the absolute path of the current node. This only works if the current node is inside the scene tree (see [method is_inside_tree])."] # [doc = ""] # [inline] pub fn get_path (& self) -> NodePath { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_path ; let ret = crate :: icalls :: icallptr_nodepath (method_bind , self . this . sys () . as_ptr ()) ; NodePath :: from_sys (ret) } } # [doc = "Returns the relative [NodePath] from this node to the specified `node`. Both nodes must be in the same scene or the function will fail."] # [doc = ""] # [inline] pub fn get_path_to (& self , node : impl AsArg < crate :: generated :: node :: Node >) -> NodePath { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_path_to ; let ret = crate :: icalls :: icallptr_nodepath_obj (method_bind , self . this . sys () . as_ptr () , node . as_arg_ptr ()) ; NodePath :: from_sys (ret) } } # [doc = "Pause mode. How the node will behave if the [SceneTree] is paused."] # [doc = ""] # [inline] pub fn pause_mode (& self) -> crate :: generated :: node :: PauseMode { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_pause_mode ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: node :: PauseMode (ret) } } # [doc = "Returns the time elapsed since the last physics-bound frame (see [method _physics_process]). This is always a constant value in physics processing unless the frames per second is changed via [member Engine.iterations_per_second]."] # [doc = ""] # [inline] pub fn get_physics_process_delta_time (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_physics_process_delta_time ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the node's order in the scene tree branch. For example, if called on the first child node the position is `0`."] # [doc = ""] # [inline] pub fn get_position_in_parent (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_position_in_parent ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the time elapsed (in seconds) since the last process callback. This value may vary from frame to frame."] # [doc = ""] # [inline] pub fn get_process_delta_time (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_process_delta_time ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The node's priority in the execution order of the enabled processing callbacks (i.e. [constant NOTIFICATION_PROCESS], [constant NOTIFICATION_PHYSICS_PROCESS] and their internal counterparts). Nodes whose process priority value is [i]lower[/i] will have their processing callbacks executed first."] # [doc = ""] # [inline] pub fn process_priority (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_process_priority ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if this is an instance load placeholder. See [InstancePlaceholder]."] # [doc = ""] # [inline] pub fn get_scene_instance_load_placeholder (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_scene_instance_load_placeholder ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the [SceneTree] that contains this node."] # [doc = ""] # [inline] pub fn get_tree (& self) -> Option < Ref < crate :: generated :: scene_tree :: SceneTree , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_tree ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: scene_tree :: SceneTree , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the node's [Viewport]."] # [doc = ""] # [inline] pub fn get_viewport (& self) -> Option < Ref < crate :: generated :: viewport :: Viewport , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . get_viewport ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: viewport :: Viewport , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns `true` if the node that the [NodePath] points to exists."] # [doc = ""] # [inline] pub fn has_node (& self , path : impl Into < NodePath >) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . has_node ; let ret = crate :: icalls :: icallptr_bool_nodepath (method_bind , self . this . sys () . as_ptr () , path . into ()) ; ret as _ } } # [doc = "Returns `true` if the [NodePath] points to a valid node and its subname points to a valid resource, e.g. `Area2D/CollisionShape2D:shape`. Properties with a non-[Resource] type (e.g. nodes or primitive math types) are not considered resources."] # [doc = ""] # [inline] pub fn has_node_and_resource (& self , path : impl Into < NodePath >) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . has_node_and_resource ; let ret = crate :: icalls :: icallptr_bool_nodepath (method_bind , self . this . sys () . as_ptr () , path . into ()) ; ret as _ } } # [doc = "Returns `true` if the given node is a direct or indirect child of the current node."] # [doc = ""] # [inline] pub fn is_a_parent_of (& self , node : impl AsArg < crate :: generated :: node :: Node >) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . is_a_parent_of ; let ret = crate :: icalls :: icallptr_bool_obj (method_bind , self . this . sys () . as_ptr () , node . as_arg_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the node is folded (collapsed) in the Scene dock."] # [doc = ""] # [inline] pub fn is_displayed_folded (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . is_displayed_folded ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the given node occurs later in the scene hierarchy than the current node."] # [doc = ""] # [inline] pub fn is_greater_than (& self , node : impl AsArg < crate :: generated :: node :: Node >) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . is_greater_than ; let ret = crate :: icalls :: icallptr_bool_obj (method_bind , self . this . sys () . as_ptr () , node . as_arg_ptr ()) ; ret as _ } } # [doc = "Returns `true` if this node is in the specified group. See notes in the description, and the group methods in [SceneTree]."] # [doc = ""] # [inline] pub fn is_in_group (& self , group : impl Into < GodotString >) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . is_in_group ; let ret = crate :: icalls :: icallptr_bool_str (method_bind , self . this . sys () . as_ptr () , group . into ()) ; ret as _ } } # [doc = "Returns `true` if this node is currently inside a [SceneTree]."] # [doc = ""] # [inline] pub fn is_inside_tree (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . is_inside_tree ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the local system is the master of this node."] # [doc = ""] # [inline] pub fn is_network_master (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . is_network_master ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if physics processing is enabled (see [method set_physics_process])."] # [doc = ""] # [inline] pub fn is_physics_processing (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . is_physics_processing ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if internal physics processing is enabled (see [method set_physics_process_internal])."] # [doc = ""] # [inline] pub fn is_physics_processing_internal (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . is_physics_processing_internal ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if processing is enabled (see [method set_process])."] # [doc = ""] # [inline] pub fn is_processing (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . is_processing ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the node is processing input (see [method set_process_input])."] # [doc = ""] # [inline] pub fn is_processing_input (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . is_processing_input ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if internal processing is enabled (see [method set_process_internal])."] # [doc = ""] # [inline] pub fn is_processing_internal (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . is_processing_internal ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the node is processing unhandled input (see [method set_process_unhandled_input])."] # [doc = ""] # [inline] pub fn is_processing_unhandled_input (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . is_processing_unhandled_input ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the node is processing unhandled key input (see [method set_process_unhandled_key_input])."] # [doc = ""] # [inline] pub fn is_processing_unhandled_key_input (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . is_processing_unhandled_key_input ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Moves a child node to a different position (order) among the other children. Since calls, signals, etc are performed by tree order, changing the order of children nodes may be useful."] # [doc = ""] # [inline] pub fn move_child (& self , child_node : impl AsArg < crate :: generated :: node :: Node > , to_position : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . move_child ; let ret = crate :: icalls :: icallptr_void_obj_i64 (method_bind , self . this . sys () . as_ptr () , child_node . as_arg_ptr () , to_position) ; } } # [doc = "Prints all stray nodes (nodes outside the [SceneTree]). Used for debugging. Works only in debug builds."] # [doc = ""] # [inline] pub fn print_stray_nodes (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . print_stray_nodes ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "_Sample code is GDScript unless otherwise noted._\n\nPrints the tree to stdout. Used mainly for debugging purposes. This version displays the path relative to the current node, and is good for copy/pasting into the [method get_node] function.\n**Example output:**\n```gdscript\nTheGame\nTheGame/Menu\nTheGame/Menu/Label\nTheGame/Menu/Camera2D\nTheGame/SplashScreen\nTheGame/SplashScreen/Camera2D\n```"] # [doc = ""] # [inline] pub fn print_tree (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . print_tree ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "_Sample code is GDScript unless otherwise noted._\n\nSimilar to [method print_tree], this prints the tree to stdout. This version displays a more graphical representation similar to what is displayed in the scene inspector. It is useful for inspecting larger trees.\n**Example output:**\n```gdscript\n ┖╴TheGame\n ┠╴Menu\n ┃ ┠╴Label\n ┃ ┖╴Camera2D\n ┖╴SplashScreen\n ┖╴Camera2D\n```"] # [doc = ""] # [inline] pub fn print_tree_pretty (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . print_tree_pretty ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Calls the given method (if present) with the arguments given in `args` on this node and recursively on all its children. If the `parent_first` argument is `true`, the method will be called on the current node first, then on all its children. If `parent_first` is `false`, the children will be called first.\n# Default Arguments\n* `args` - `[ ]`\n* `parent_first` - `false`"] # [doc = ""] # [inline] pub fn propagate_call (& self , method : impl Into < GodotString > , args : VariantArray , parent_first : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . propagate_call ; let ret = crate :: icalls :: icallptr_void_str_arr_bool (method_bind , self . this . sys () . as_ptr () , method . into () , args , parent_first) ; } } # [doc = "Notifies the current node and all its children recursively by calling [method Object.notification] on all of them."] # [doc = ""] # [inline] pub fn propagate_notification (& self , what : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . propagate_notification ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , what) ; } } # [doc = "Queues a node for deletion at the end of the current frame. When deleted, all of its child nodes will be deleted as well. This method ensures it's safe to delete the node, contrary to [method Object.free]. Use [method Object.is_queued_for_deletion] to check whether a node will be deleted at the end of the frame."] # [doc = ""] # [inline] pub fn queue_free (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . queue_free ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Moves this node to the bottom of parent node's children hierarchy. This is often useful in GUIs ([Control] nodes), because their order of drawing depends on their order in the tree, i.e. the further they are on the node list, the higher they are drawn. After using `raise`, a Control will be drawn on top of their siblings."] # [doc = ""] # [inline] pub fn raise (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . raise ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Removes a node and sets all its children as children of the parent node (if it exists). All event subscriptions that pass by the removed node will be unsubscribed."] # [doc = ""] # [inline] pub fn remove_and_skip (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . remove_and_skip ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Removes a child node. The node is NOT deleted and must be deleted manually."] # [doc = ""] # [inline] pub fn remove_child (& self , node : impl AsArg < crate :: generated :: node :: Node >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . remove_child ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , node . as_arg_ptr ()) ; } } # [doc = "Removes a node from a group. See notes in the description, and the group methods in [SceneTree]."] # [doc = ""] # [inline] pub fn remove_from_group (& self , group : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . remove_from_group ; let ret = crate :: icalls :: icallptr_void_str (method_bind , self . this . sys () . as_ptr () , group . into ()) ; } } # [doc = "Replaces a node in a scene by the given one. Subscriptions that pass through this node will be lost.\n# Default Arguments\n* `keep_data` - `false`"] # [doc = ""] # [inline] pub fn replace_by (& self , node : impl AsArg < crate :: generated :: node :: Node > , keep_data : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . replace_by ; let ret = crate :: icalls :: icallptr_void_obj_bool (method_bind , self . this . sys () . as_ptr () , node . as_arg_ptr () , keep_data) ; } } # [doc = "Requests that `_ready` be called again. Note that the method won't be called immediately, but is scheduled for when the node is added to the scene tree again (see [method _ready]). `_ready` is called only for the node which requested it, which means that you need to request ready for each child if you want them to call `_ready` too (in which case, `_ready` will be called in the same order as it would normally)."] # [doc = ""] # [inline] pub fn request_ready (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . request_ready ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Sends a remote procedure call request for the given `method` to peers on the network (and locally), optionally sending all additional arguments as arguments to the method called by the RPC. The call request will only be received by nodes with the same [NodePath], including the exact same node name. Behaviour depends on the RPC configuration for the given method, see [method rpc_config]. Methods are not exposed to RPCs by default. See also [method rset] and [method rset_config] for properties. Returns an empty [Variant].\n**Note:** You can only safely use RPCs on clients after you received the `connected_to_server` signal from the [SceneTree]. You also need to keep track of the connection state, either by the [SceneTree] signals like `server_disconnected` or by checking `SceneTree.network_peer.get_connection_status() == CONNECTION_CONNECTED`."] # [doc = ""] # [inline] pub fn rpc (& self , method : impl Into < GodotString > , varargs : & [Variant]) -> Variant { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . rpc ; let ret = crate :: icalls :: icallvarargs__str (method_bind , self . this . sys () . as_ptr () , method . into () , varargs) ; ret } } # [doc = "Changes the RPC mode for the given `method` to the given `mode`. See [enum MultiplayerAPI.RPCMode]. An alternative is annotating methods and properties with the corresponding keywords (`remote`, `master`, `puppet`, `remotesync`, `mastersync`, `puppetsync`). By default, methods are not exposed to networking (and RPCs). See also [method rset] and [method rset_config] for properties."] # [doc = ""] # [inline] pub fn rpc_config (& self , method : impl Into < GodotString > , mode : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . rpc_config ; let ret = crate :: icalls :: icallptr_void_str_i64 (method_bind , self . this . sys () . as_ptr () , method . into () , mode) ; } } # [doc = "Sends a [method rpc] to a specific peer identified by `peer_id` (see [method NetworkedMultiplayerPeer.set_target_peer]). Returns an empty [Variant]."] # [doc = ""] # [inline] pub fn rpc_id (& self , peer_id : i64 , method : impl Into < GodotString > , varargs : & [Variant]) -> Variant { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . rpc_id ; let ret = crate :: icalls :: icallvarargs__i64_str (method_bind , self . this . sys () . as_ptr () , peer_id , method . into () , varargs) ; ret } } # [doc = "Sends a [method rpc] using an unreliable protocol. Returns an empty [Variant]."] # [doc = ""] # [inline] pub fn rpc_unreliable (& self , method : impl Into < GodotString > , varargs : & [Variant]) -> Variant { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . rpc_unreliable ; let ret = crate :: icalls :: icallvarargs__str (method_bind , self . this . sys () . as_ptr () , method . into () , varargs) ; ret } } # [doc = "Sends a [method rpc] to a specific peer identified by `peer_id` using an unreliable protocol (see [method NetworkedMultiplayerPeer.set_target_peer]). Returns an empty [Variant]."] # [doc = ""] # [inline] pub fn rpc_unreliable_id (& self , peer_id : i64 , method : impl Into < GodotString > , varargs : & [Variant]) -> Variant { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . rpc_unreliable_id ; let ret = crate :: icalls :: icallvarargs__i64_str (method_bind , self . this . sys () . as_ptr () , peer_id , method . into () , varargs) ; ret } } # [doc = "Remotely changes a property's value on other peers (and locally). Behaviour depends on the RPC configuration for the given property, see [method rset_config]. See also [method rpc] for RPCs for methods, most information applies to this method as well."] # [doc = ""] # [inline] pub fn rset (& self , property : impl Into < GodotString > , value : impl OwnedToVariant) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . rset ; let ret = crate :: icalls :: icallptr_void_str_var (method_bind , self . this . sys () . as_ptr () , property . into () , value . owned_to_variant ()) ; } } # [doc = "Changes the RPC mode for the given `property` to the given `mode`. See [enum MultiplayerAPI.RPCMode]. An alternative is annotating methods and properties with the corresponding keywords (`remote`, `master`, `puppet`, `remotesync`, `mastersync`, `puppetsync`). By default, properties are not exposed to networking (and RPCs). See also [method rpc] and [method rpc_config] for methods."] # [doc = ""] # [inline] pub fn rset_config (& self , property : impl Into < GodotString > , mode : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . rset_config ; let ret = crate :: icalls :: icallptr_void_str_i64 (method_bind , self . this . sys () . as_ptr () , property . into () , mode) ; } } # [doc = "Remotely changes the property's value on a specific peer identified by `peer_id` (see [method NetworkedMultiplayerPeer.set_target_peer])."] # [doc = ""] # [inline] pub fn rset_id (& self , peer_id : i64 , property : impl Into < GodotString > , value : impl OwnedToVariant) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . rset_id ; let ret = crate :: icalls :: icallptr_void_i64_str_var (method_bind , self . this . sys () . as_ptr () , peer_id , property . into () , value . owned_to_variant ()) ; } } # [doc = "Remotely changes the property's value on other peers (and locally) using an unreliable protocol."] # [doc = ""] # [inline] pub fn rset_unreliable (& self , property : impl Into < GodotString > , value : impl OwnedToVariant) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . rset_unreliable ; let ret = crate :: icalls :: icallptr_void_str_var (method_bind , self . this . sys () . as_ptr () , property . into () , value . owned_to_variant ()) ; } } # [doc = "Remotely changes property's value on a specific peer identified by `peer_id` using an unreliable protocol (see [method NetworkedMultiplayerPeer.set_target_peer])."] # [doc = ""] # [inline] pub fn rset_unreliable_id (& self , peer_id : i64 , property : impl Into < GodotString > , value : impl OwnedToVariant) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . rset_unreliable_id ; let ret = crate :: icalls :: icallptr_void_i64_str_var (method_bind , self . this . sys () . as_ptr () , peer_id , property . into () , value . owned_to_variant ()) ; } } # [doc = "The override to the default [MultiplayerAPI]. Set to `null` to use the default [SceneTree] one."] # [doc = ""] # [inline] pub fn set_custom_multiplayer (& self , api : impl AsArg < crate :: generated :: multiplayer_api :: MultiplayerAPI >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_custom_multiplayer ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , api . as_arg_ptr ()) ; } } # [doc = "Sets the folded state of the node in the Scene dock."] # [doc = ""] # [inline] pub fn set_display_folded (& self , fold : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_display_folded ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , fold) ; } } # [doc = "When a scene is instanced from a file, its topmost node contains the filename from which it was loaded."] # [doc = ""] # [inline] pub fn set_filename (& self , filename : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_filename ; let ret = crate :: icalls :: icallptr_void_str (method_bind , self . this . sys () . as_ptr () , filename . into ()) ; } } # [doc = "The name of the node. This name is unique among the siblings (other child nodes from the same parent). When set to an existing name, the node will be automatically renamed."] # [doc = ""] # [inline] pub fn set_name (& self , name : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_name ; let ret = crate :: icalls :: icallptr_void_str (method_bind , self . this . sys () . as_ptr () , name . into ()) ; } } # [doc = "Sets the node's network master to the peer with the given peer ID. The network master is the peer that has authority over the node on the network. Useful in conjunction with the `master` and `puppet` keywords. Inherited from the parent node by default, which ultimately defaults to peer ID 1 (the server). If `recursive`, the given peer is recursively set as the master for all children of this node.\n# Default Arguments\n* `recursive` - `true`"] # [doc = ""] # [inline] pub fn set_network_master (& self , id : i64 , recursive : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_network_master ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , id , recursive) ; } } # [doc = "The node owner. A node can have any other node as owner (as long as it is a valid parent, grandparent, etc. ascending in the tree). When saving a node (using [PackedScene]), all the nodes it owns will be saved with it. This allows for the creation of complex [SceneTree]s, with instancing and subinstancing."] # [doc = ""] # [inline] pub fn set_owner (& self , owner : impl AsArg < crate :: generated :: node :: Node >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_owner ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , owner . as_arg_ptr ()) ; } } # [doc = "Pause mode. How the node will behave if the [SceneTree] is paused."] # [doc = ""] # [inline] pub fn set_pause_mode (& self , mode : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_pause_mode ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , mode) ; } } # [doc = "Enables or disables physics (i.e. fixed framerate) processing. When a node is being processed, it will receive a [constant NOTIFICATION_PHYSICS_PROCESS] at a fixed (usually 60 FPS, see [member Engine.iterations_per_second] to change) interval (and the [method _physics_process] callback will be called if exists). Enabled automatically if [method _physics_process] is overridden. Any calls to this before [method _ready] will be ignored."] # [doc = ""] # [inline] pub fn set_physics_process (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_physics_process ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "Enables or disables internal physics for this node. Internal physics processing happens in isolation from the normal [method _physics_process] calls and is used by some nodes internally to guarantee proper functioning even if the node is paused or physics processing is disabled for scripting ([method set_physics_process]). Only useful for advanced uses to manipulate built-in nodes' behaviour."] # [doc = ""] # [inline] pub fn set_physics_process_internal (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_physics_process_internal ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "Enables or disables processing. When a node is being processed, it will receive a [constant NOTIFICATION_PROCESS] on every drawn frame (and the [method _process] callback will be called if exists). Enabled automatically if [method _process] is overridden. Any calls to this before [method _ready] will be ignored."] # [doc = ""] # [inline] pub fn set_process (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_process ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "Enables or disables input processing. This is not required for GUI controls! Enabled automatically if [method _input] is overridden. Any calls to this before [method _ready] will be ignored."] # [doc = ""] # [inline] pub fn set_process_input (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_process_input ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "Enables or disabled internal processing for this node. Internal processing happens in isolation from the normal [method _process] calls and is used by some nodes internally to guarantee proper functioning even if the node is paused or processing is disabled for scripting ([method set_process]). Only useful for advanced uses to manipulate built-in nodes' behaviour."] # [doc = ""] # [inline] pub fn set_process_internal (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_process_internal ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "The node's priority in the execution order of the enabled processing callbacks (i.e. [constant NOTIFICATION_PROCESS], [constant NOTIFICATION_PHYSICS_PROCESS] and their internal counterparts). Nodes whose process priority value is [i]lower[/i] will have their processing callbacks executed first."] # [doc = ""] # [inline] pub fn set_process_priority (& self , priority : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_process_priority ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , priority) ; } } # [doc = "Enables unhandled input processing. This is not required for GUI controls! It enables the node to receive all input that was not previously handled (usually by a [Control]). Enabled automatically if [method _unhandled_input] is overridden. Any calls to this before [method _ready] will be ignored."] # [doc = ""] # [inline] pub fn set_process_unhandled_input (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_process_unhandled_input ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "Enables unhandled key input processing. Enabled automatically if [method _unhandled_key_input] is overridden. Any calls to this before [method _ready] will be ignored."] # [doc = ""] # [inline] pub fn set_process_unhandled_key_input (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_process_unhandled_key_input ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "Sets whether this is an instance load placeholder. See [InstancePlaceholder]."] # [doc = ""] # [inline] pub fn set_scene_instance_load_placeholder (& self , load_placeholder : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . set_scene_instance_load_placeholder ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , load_placeholder) ; } } # [doc = "Updates the warning displayed for this node in the Scene Dock.\nUse [method _get_configuration_warning] to setup the warning message to display."] # [doc = ""] # [inline] pub fn update_configuration_warning (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NodeMethodTable :: get (get_api ()) . update_configuration_warning ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for Node { } unsafe impl GodotObject for Node { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "Node" } } impl QueueFree for Node { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for Node { type Target = crate :: generated :: object :: Object ; # [inline] fn deref (& self) -> & crate :: generated :: object :: Object { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for Node { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: object :: Object { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: object :: Object > for Node { } impl Instanciable for Node { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { Node :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct NodeMethodTable { pub class_constructor : sys :: godot_class_constructor , pub add_child : * mut sys :: godot_method_bind , pub add_child_below_node : * mut sys :: godot_method_bind , pub add_to_group : * mut sys :: godot_method_bind , pub can_process : * mut sys :: godot_method_bind , pub duplicate : * mut sys :: godot_method_bind , pub find_node : * mut sys :: godot_method_bind , pub find_parent : * mut sys :: godot_method_bind , pub get_child : * mut sys :: godot_method_bind , pub get_child_count : * mut sys :: godot_method_bind , pub get_children : * mut sys :: godot_method_bind , pub get_custom_multiplayer : * mut sys :: godot_method_bind , pub get_filename : * mut sys :: godot_method_bind , pub get_groups : * mut sys :: godot_method_bind , pub get_index : * mut sys :: godot_method_bind , pub get_multiplayer : * mut sys :: godot_method_bind , pub get_name : * mut sys :: godot_method_bind , pub get_network_master : * mut sys :: godot_method_bind , pub get_node : * mut sys :: godot_method_bind , pub get_node_and_resource : * mut sys :: godot_method_bind , pub get_node_or_null : * mut sys :: godot_method_bind , pub get_owner : * mut sys :: godot_method_bind , pub get_parent : * mut sys :: godot_method_bind , pub get_path : * mut sys :: godot_method_bind , pub get_path_to : * mut sys :: godot_method_bind , pub get_pause_mode : * mut sys :: godot_method_bind , pub get_physics_process_delta_time : * mut sys :: godot_method_bind , pub get_position_in_parent : * mut sys :: godot_method_bind , pub get_process_delta_time : * mut sys :: godot_method_bind , pub get_process_priority : * mut sys :: godot_method_bind , pub get_scene_instance_load_placeholder : * mut sys :: godot_method_bind , pub get_tree : * mut sys :: godot_method_bind , pub get_viewport : * mut sys :: godot_method_bind , pub has_node : * mut sys :: godot_method_bind , pub has_node_and_resource : * mut sys :: godot_method_bind , pub is_a_parent_of : * mut sys :: godot_method_bind , pub is_displayed_folded : * mut sys :: godot_method_bind , pub is_greater_than : * mut sys :: godot_method_bind , pub is_in_group : * mut sys :: godot_method_bind , pub is_inside_tree : * mut sys :: godot_method_bind , pub is_network_master : * mut sys :: godot_method_bind , pub is_physics_processing : * mut sys :: godot_method_bind , pub is_physics_processing_internal : * mut sys :: godot_method_bind , pub is_processing : * mut sys :: godot_method_bind , pub is_processing_input : * mut sys :: godot_method_bind , pub is_processing_internal : * mut sys :: godot_method_bind , pub is_processing_unhandled_input : * mut sys :: godot_method_bind , pub is_processing_unhandled_key_input : * mut sys :: godot_method_bind , pub move_child : * mut sys :: godot_method_bind , pub print_stray_nodes : * mut sys :: godot_method_bind , pub print_tree : * mut sys :: godot_method_bind , pub print_tree_pretty : * mut sys :: godot_method_bind , pub propagate_call : * mut sys :: godot_method_bind , pub propagate_notification : * mut sys :: godot_method_bind , pub queue_free : * mut sys :: godot_method_bind , pub raise : * mut sys :: godot_method_bind , pub remove_and_skip : * mut sys :: godot_method_bind , pub remove_child : * mut sys :: godot_method_bind , pub remove_from_group : * mut sys :: godot_method_bind , pub replace_by : * mut sys :: godot_method_bind , pub request_ready : * mut sys :: godot_method_bind , pub rpc : * mut sys :: godot_method_bind , pub rpc_config : * mut sys :: godot_method_bind , pub rpc_id : * mut sys :: godot_method_bind , pub rpc_unreliable : * mut sys :: godot_method_bind , pub rpc_unreliable_id : * mut sys :: godot_method_bind , pub rset : * mut sys :: godot_method_bind , pub rset_config : * mut sys :: godot_method_bind , pub rset_id : * mut sys :: godot_method_bind , pub rset_unreliable : * mut sys :: godot_method_bind , pub rset_unreliable_id : * mut sys :: godot_method_bind , pub set_custom_multiplayer : * mut sys :: godot_method_bind , pub set_display_folded : * mut sys :: godot_method_bind , pub set_filename : * mut sys :: godot_method_bind , pub set_name : * mut sys :: godot_method_bind , pub set_network_master : * mut sys :: godot_method_bind , pub set_owner : * mut sys :: godot_method_bind , pub set_pause_mode : * mut sys :: godot_method_bind , pub set_physics_process : * mut sys :: godot_method_bind , pub set_physics_process_internal : * mut sys :: godot_method_bind , pub set_process : * mut sys :: godot_method_bind , pub set_process_input : * mut sys :: godot_method_bind , pub set_process_internal : * mut sys :: godot_method_bind , pub set_process_priority : * mut sys :: godot_method_bind , pub set_process_unhandled_input : * mut sys :: godot_method_bind , pub set_process_unhandled_key_input : * mut sys :: godot_method_bind , pub set_scene_instance_load_placeholder : * mut sys :: godot_method_bind , pub update_configuration_warning : * mut sys :: godot_method_bind } impl NodeMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : NodeMethodTable = NodeMethodTable { class_constructor : None , add_child : 0 as * mut sys :: godot_method_bind , add_child_below_node : 0 as * mut sys :: godot_method_bind , add_to_group : 0 as * mut sys :: godot_method_bind , can_process : 0 as * mut sys :: godot_method_bind , duplicate : 0 as * mut sys :: godot_method_bind , find_node : 0 as * mut sys :: godot_method_bind , find_parent : 0 as * mut sys :: godot_method_bind , get_child : 0 as * mut sys :: godot_method_bind , get_child_count : 0 as * mut sys :: godot_method_bind , get_children : 0 as * mut sys :: godot_method_bind , get_custom_multiplayer : 0 as * mut sys :: godot_method_bind , get_filename : 0 as * mut sys :: godot_method_bind , get_groups : 0 as * mut sys :: godot_method_bind , get_index : 0 as * mut sys :: godot_method_bind , get_multiplayer : 0 as * mut sys :: godot_method_bind , get_name : 0 as * mut sys :: godot_method_bind , get_network_master : 0 as * mut sys :: godot_method_bind , get_node : 0 as * mut sys :: godot_method_bind , get_node_and_resource : 0 as * mut sys :: godot_method_bind , get_node_or_null : 0 as * mut sys :: godot_method_bind , get_owner : 0 as * mut sys :: godot_method_bind , get_parent : 0 as * mut sys :: godot_method_bind , get_path : 0 as * mut sys :: godot_method_bind , get_path_to : 0 as * mut sys :: godot_method_bind , get_pause_mode : 0 as * mut sys :: godot_method_bind , get_physics_process_delta_time : 0 as * mut sys :: godot_method_bind , get_position_in_parent : 0 as * mut sys :: godot_method_bind , get_process_delta_time : 0 as * mut sys :: godot_method_bind , get_process_priority : 0 as * mut sys :: godot_method_bind , get_scene_instance_load_placeholder : 0 as * mut sys :: godot_method_bind , get_tree : 0 as * mut sys :: godot_method_bind , get_viewport : 0 as * mut sys :: godot_method_bind , has_node : 0 as * mut sys :: godot_method_bind , has_node_and_resource : 0 as * mut sys :: godot_method_bind , is_a_parent_of : 0 as * mut sys :: godot_method_bind , is_displayed_folded : 0 as * mut sys :: godot_method_bind , is_greater_than : 0 as * mut sys :: godot_method_bind , is_in_group : 0 as * mut sys :: godot_method_bind , is_inside_tree : 0 as * mut sys :: godot_method_bind , is_network_master : 0 as * mut sys :: godot_method_bind , is_physics_processing : 0 as * mut sys :: godot_method_bind , is_physics_processing_internal : 0 as * mut sys :: godot_method_bind , is_processing : 0 as * mut sys :: godot_method_bind , is_processing_input : 0 as * mut sys :: godot_method_bind , is_processing_internal : 0 as * mut sys :: godot_method_bind , is_processing_unhandled_input : 0 as * mut sys :: godot_method_bind , is_processing_unhandled_key_input : 0 as * mut sys :: godot_method_bind , move_child : 0 as * mut sys :: godot_method_bind , print_stray_nodes : 0 as * mut sys :: godot_method_bind , print_tree : 0 as * mut sys :: godot_method_bind , print_tree_pretty : 0 as * mut sys :: godot_method_bind , propagate_call : 0 as * mut sys :: godot_method_bind , propagate_notification : 0 as * mut sys :: godot_method_bind , queue_free : 0 as * mut sys :: godot_method_bind , raise : 0 as * mut sys :: godot_method_bind , remove_and_skip : 0 as * mut sys :: godot_method_bind , remove_child : 0 as * mut sys :: godot_method_bind , remove_from_group : 0 as * mut sys :: godot_method_bind , replace_by : 0 as * mut sys :: godot_method_bind , request_ready : 0 as * mut sys :: godot_method_bind , rpc : 0 as * mut sys :: godot_method_bind , rpc_config : 0 as * mut sys :: godot_method_bind , rpc_id : 0 as * mut sys :: godot_method_bind , rpc_unreliable : 0 as * mut sys :: godot_method_bind , rpc_unreliable_id : 0 as * mut sys :: godot_method_bind , rset : 0 as * mut sys :: godot_method_bind , rset_config : 0 as * mut sys :: godot_method_bind , rset_id : 0 as * mut sys :: godot_method_bind , rset_unreliable : 0 as * mut sys :: godot_method_bind , rset_unreliable_id : 0 as * mut sys :: godot_method_bind , set_custom_multiplayer : 0 as * mut sys :: godot_method_bind , set_display_folded : 0 as * mut sys :: godot_method_bind , set_filename : 0 as * mut sys :: godot_method_bind , set_name : 0 as * mut sys :: godot_method_bind , set_network_master : 0 as * mut sys :: godot_method_bind , set_owner : 0 as * mut sys :: godot_method_bind , set_pause_mode : 0 as * mut sys :: godot_method_bind , set_physics_process : 0 as * mut sys :: godot_method_bind , set_physics_process_internal : 0 as * mut sys :: godot_method_bind , set_process : 0 as * mut sys :: godot_method_bind , set_process_input : 0 as * mut sys :: godot_method_bind , set_process_internal : 0 as * mut sys :: godot_method_bind , set_process_priority : 0 as * mut sys :: godot_method_bind , set_process_unhandled_input : 0 as * mut sys :: godot_method_bind , set_process_unhandled_key_input : 0 as * mut sys :: godot_method_bind , set_scene_instance_load_placeholder : 0 as * mut sys :: godot_method_bind , update_configuration_warning : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { NodeMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "Node\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . add_child = (gd_api . godot_method_bind_get_method) (class_name , "add_child\0" . as_ptr () as * const c_char) ; table . add_child_below_node = (gd_api . godot_method_bind_get_method) (class_name , "add_child_below_node\0" . as_ptr () as * const c_char) ; table . add_to_group = (gd_api . godot_method_bind_get_method) (class_name , "add_to_group\0" . as_ptr () as * const c_char) ; table . can_process = (gd_api . godot_method_bind_get_method) (class_name , "can_process\0" . as_ptr () as * const c_char) ; table . duplicate = (gd_api . godot_method_bind_get_method) (class_name , "duplicate\0" . as_ptr () as * const c_char) ; table . find_node = (gd_api . godot_method_bind_get_method) (class_name , "find_node\0" . as_ptr () as * const c_char) ; table . find_parent = (gd_api . godot_method_bind_get_method) (class_name , "find_parent\0" . as_ptr () as * const c_char) ; table . get_child = (gd_api . godot_method_bind_get_method) (class_name , "get_child\0" . as_ptr () as * const c_char) ; table . get_child_count = (gd_api . godot_method_bind_get_method) (class_name , "get_child_count\0" . as_ptr () as * const c_char) ; table . get_children = (gd_api . godot_method_bind_get_method) (class_name , "get_children\0" . as_ptr () as * const c_char) ; table . get_custom_multiplayer = (gd_api . godot_method_bind_get_method) (class_name , "get_custom_multiplayer\0" . as_ptr () as * const c_char) ; table . get_filename = (gd_api . godot_method_bind_get_method) (class_name , "get_filename\0" . as_ptr () as * const c_char) ; table . get_groups = (gd_api . godot_method_bind_get_method) (class_name , "get_groups\0" . as_ptr () as * const c_char) ; table . get_index = (gd_api . godot_method_bind_get_method) (class_name , "get_index\0" . as_ptr () as * const c_char) ; table . get_multiplayer = (gd_api . godot_method_bind_get_method) (class_name , "get_multiplayer\0" . as_ptr () as * const c_char) ; table . get_name = (gd_api . godot_method_bind_get_method) (class_name , "get_name\0" . as_ptr () as * const c_char) ; table . get_network_master = (gd_api . godot_method_bind_get_method) (class_name , "get_network_master\0" . as_ptr () as * const c_char) ; table . get_node = (gd_api . godot_method_bind_get_method) (class_name , "get_node\0" . as_ptr () as * const c_char) ; table . get_node_and_resource = (gd_api . godot_method_bind_get_method) (class_name , "get_node_and_resource\0" . as_ptr () as * const c_char) ; table . get_node_or_null = (gd_api . godot_method_bind_get_method) (class_name , "get_node_or_null\0" . as_ptr () as * const c_char) ; table . get_owner = (gd_api . godot_method_bind_get_method) (class_name , "get_owner\0" . as_ptr () as * const c_char) ; table . get_parent = (gd_api . godot_method_bind_get_method) (class_name , "get_parent\0" . as_ptr () as * const c_char) ; table . get_path = (gd_api . godot_method_bind_get_method) (class_name , "get_path\0" . as_ptr () as * const c_char) ; table . get_path_to = (gd_api . godot_method_bind_get_method) (class_name , "get_path_to\0" . as_ptr () as * const c_char) ; table . get_pause_mode = (gd_api . godot_method_bind_get_method) (class_name , "get_pause_mode\0" . as_ptr () as * const c_char) ; table . get_physics_process_delta_time = (gd_api . godot_method_bind_get_method) (class_name , "get_physics_process_delta_time\0" . as_ptr () as * const c_char) ; table . get_position_in_parent = (gd_api . godot_method_bind_get_method) (class_name , "get_position_in_parent\0" . as_ptr () as * const c_char) ; table . get_process_delta_time = (gd_api . godot_method_bind_get_method) (class_name , "get_process_delta_time\0" . as_ptr () as * const c_char) ; table . get_process_priority = (gd_api . godot_method_bind_get_method) (class_name , "get_process_priority\0" . as_ptr () as * const c_char) ; table . get_scene_instance_load_placeholder = (gd_api . godot_method_bind_get_method) (class_name , "get_scene_instance_load_placeholder\0" . as_ptr () as * const c_char) ; table . get_tree = (gd_api . godot_method_bind_get_method) (class_name , "get_tree\0" . as_ptr () as * const c_char) ; table . get_viewport = (gd_api . godot_method_bind_get_method) (class_name , "get_viewport\0" . as_ptr () as * const c_char) ; table . has_node = (gd_api . godot_method_bind_get_method) (class_name , "has_node\0" . as_ptr () as * const c_char) ; table . has_node_and_resource = (gd_api . godot_method_bind_get_method) (class_name , "has_node_and_resource\0" . as_ptr () as * const c_char) ; table . is_a_parent_of = (gd_api . godot_method_bind_get_method) (class_name , "is_a_parent_of\0" . as_ptr () as * const c_char) ; table . is_displayed_folded = (gd_api . godot_method_bind_get_method) (class_name , "is_displayed_folded\0" . as_ptr () as * const c_char) ; table . is_greater_than = (gd_api . godot_method_bind_get_method) (class_name , "is_greater_than\0" . as_ptr () as * const c_char) ; table . is_in_group = (gd_api . godot_method_bind_get_method) (class_name , "is_in_group\0" . as_ptr () as * const c_char) ; table . is_inside_tree = (gd_api . godot_method_bind_get_method) (class_name , "is_inside_tree\0" . as_ptr () as * const c_char) ; table . is_network_master = (gd_api . godot_method_bind_get_method) (class_name , "is_network_master\0" . as_ptr () as * const c_char) ; table . is_physics_processing = (gd_api . godot_method_bind_get_method) (class_name , "is_physics_processing\0" . as_ptr () as * const c_char) ; table . is_physics_processing_internal = (gd_api . godot_method_bind_get_method) (class_name , "is_physics_processing_internal\0" . as_ptr () as * const c_char) ; table . is_processing = (gd_api . godot_method_bind_get_method) (class_name , "is_processing\0" . as_ptr () as * const c_char) ; table . is_processing_input = (gd_api . godot_method_bind_get_method) (class_name , "is_processing_input\0" . as_ptr () as * const c_char) ; table . is_processing_internal = (gd_api . godot_method_bind_get_method) (class_name , "is_processing_internal\0" . as_ptr () as * const c_char) ; table . is_processing_unhandled_input = (gd_api . godot_method_bind_get_method) (class_name , "is_processing_unhandled_input\0" . as_ptr () as * const c_char) ; table . is_processing_unhandled_key_input = (gd_api . godot_method_bind_get_method) (class_name , "is_processing_unhandled_key_input\0" . as_ptr () as * const c_char) ; table . move_child = (gd_api . godot_method_bind_get_method) (class_name , "move_child\0" . as_ptr () as * const c_char) ; table . print_stray_nodes = (gd_api . godot_method_bind_get_method) (class_name , "print_stray_nodes\0" . as_ptr () as * const c_char) ; table . print_tree = (gd_api . godot_method_bind_get_method) (class_name , "print_tree\0" . as_ptr () as * const c_char) ; table . print_tree_pretty = (gd_api . godot_method_bind_get_method) (class_name , "print_tree_pretty\0" . as_ptr () as * const c_char) ; table . propagate_call = (gd_api . godot_method_bind_get_method) (class_name , "propagate_call\0" . as_ptr () as * const c_char) ; table . propagate_notification = (gd_api . godot_method_bind_get_method) (class_name , "propagate_notification\0" . as_ptr () as * const c_char) ; table . queue_free = (gd_api . godot_method_bind_get_method) (class_name , "queue_free\0" . as_ptr () as * const c_char) ; table . raise = (gd_api . godot_method_bind_get_method) (class_name , "raise\0" . as_ptr () as * const c_char) ; table . remove_and_skip = (gd_api . godot_method_bind_get_method) (class_name , "remove_and_skip\0" . as_ptr () as * const c_char) ; table . remove_child = (gd_api . godot_method_bind_get_method) (class_name , "remove_child\0" . as_ptr () as * const c_char) ; table . remove_from_group = (gd_api . godot_method_bind_get_method) (class_name , "remove_from_group\0" . as_ptr () as * const c_char) ; table . replace_by = (gd_api . godot_method_bind_get_method) (class_name , "replace_by\0" . as_ptr () as * const c_char) ; table . request_ready = (gd_api . godot_method_bind_get_method) (class_name , "request_ready\0" . as_ptr () as * const c_char) ; table . rpc = (gd_api . godot_method_bind_get_method) (class_name , "rpc\0" . as_ptr () as * const c_char) ; table . rpc_config = (gd_api . godot_method_bind_get_method) (class_name , "rpc_config\0" . as_ptr () as * const c_char) ; table . rpc_id = (gd_api . godot_method_bind_get_method) (class_name , "rpc_id\0" . as_ptr () as * const c_char) ; table . rpc_unreliable = (gd_api . godot_method_bind_get_method) (class_name , "rpc_unreliable\0" . as_ptr () as * const c_char) ; table . rpc_unreliable_id = (gd_api . godot_method_bind_get_method) (class_name , "rpc_unreliable_id\0" . as_ptr () as * const c_char) ; table . rset = (gd_api . godot_method_bind_get_method) (class_name , "rset\0" . as_ptr () as * const c_char) ; table . rset_config = (gd_api . godot_method_bind_get_method) (class_name , "rset_config\0" . as_ptr () as * const c_char) ; table . rset_id = (gd_api . godot_method_bind_get_method) (class_name , "rset_id\0" . as_ptr () as * const c_char) ; table . rset_unreliable = (gd_api . godot_method_bind_get_method) (class_name , "rset_unreliable\0" . as_ptr () as * const c_char) ; table . rset_unreliable_id = (gd_api . godot_method_bind_get_method) (class_name , "rset_unreliable_id\0" . as_ptr () as * const c_char) ; table . set_custom_multiplayer = (gd_api . godot_method_bind_get_method) (class_name , "set_custom_multiplayer\0" . as_ptr () as * const c_char) ; table . set_display_folded = (gd_api . godot_method_bind_get_method) (class_name , "set_display_folded\0" . as_ptr () as * const c_char) ; table . set_filename = (gd_api . godot_method_bind_get_method) (class_name , "set_filename\0" . as_ptr () as * const c_char) ; table . set_name = (gd_api . godot_method_bind_get_method) (class_name , "set_name\0" . as_ptr () as * const c_char) ; table . set_network_master = (gd_api . godot_method_bind_get_method) (class_name , "set_network_master\0" . as_ptr () as * const c_char) ; table . set_owner = (gd_api . godot_method_bind_get_method) (class_name , "set_owner\0" . as_ptr () as * const c_char) ; table . set_pause_mode = (gd_api . godot_method_bind_get_method) (class_name , "set_pause_mode\0" . as_ptr () as * const c_char) ; table . set_physics_process = (gd_api . godot_method_bind_get_method) (class_name , "set_physics_process\0" . as_ptr () as * const c_char) ; table . set_physics_process_internal = (gd_api . godot_method_bind_get_method) (class_name , "set_physics_process_internal\0" . as_ptr () as * const c_char) ; table . set_process = (gd_api . godot_method_bind_get_method) (class_name , "set_process\0" . as_ptr () as * const c_char) ; table . set_process_input = (gd_api . godot_method_bind_get_method) (class_name , "set_process_input\0" . as_ptr () as * const c_char) ; table . set_process_internal = (gd_api . godot_method_bind_get_method) (class_name , "set_process_internal\0" . as_ptr () as * const c_char) ; table . set_process_priority = (gd_api . godot_method_bind_get_method) (class_name , "set_process_priority\0" . as_ptr () as * const c_char) ; table . set_process_unhandled_input = (gd_api . godot_method_bind_get_method) (class_name , "set_process_unhandled_input\0" . as_ptr () as * const c_char) ; table . set_process_unhandled_key_input = (gd_api . godot_method_bind_get_method) (class_name , "set_process_unhandled_key_input\0" . as_ptr () as * const c_char) ; table . set_scene_instance_load_placeholder = (gd_api . godot_method_bind_get_method) (class_name , "set_scene_instance_load_placeholder\0" . as_ptr () as * const c_char) ; table . update_configuration_warning = (gd_api . godot_method_bind_get_method) (class_name , "update_configuration_warning\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:172:4726 [INFO] [stdout] | [INFO] [stdout] 172 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 172 | # [doc = "`core class AnimationNodeBlend3` inherits `AnimationNode` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_animationnodeblend3.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nAnimationNodeBlend3 inherits methods from:\n - [AnimationNode](struct.AnimationNode.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct AnimationNodeBlend3 { this : RawObject < Self > , } impl AnimationNodeBlend3 { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = AnimationNodeBlend3MethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "If `true`, sets the `optimization` to `false` when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame."] # [doc = ""] # [inline] pub fn is_using_sync (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = AnimationNodeBlend3MethodTable :: get (get_api ()) . is_using_sync ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, sets the `optimization` to `false` when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame."] # [doc = ""] # [inline] pub fn set_use_sync (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AnimationNodeBlend3MethodTable :: get (get_api ()) . set_use_sync ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for AnimationNodeBlend3 { } unsafe impl GodotObject for AnimationNodeBlend3 { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "AnimationNodeBlend3" } } impl std :: ops :: Deref for AnimationNodeBlend3 { type Target = crate :: generated :: animation_node :: AnimationNode ; # [inline] fn deref (& self) -> & crate :: generated :: animation_node :: AnimationNode { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for AnimationNodeBlend3 { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: animation_node :: AnimationNode { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: animation_node :: AnimationNode > for AnimationNodeBlend3 { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for AnimationNodeBlend3 { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for AnimationNodeBlend3 { } unsafe impl SubClass < crate :: generated :: object :: Object > for AnimationNodeBlend3 { } impl Instanciable for AnimationNodeBlend3 { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { AnimationNodeBlend3 :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct AnimationNodeBlend3MethodTable { pub class_constructor : sys :: godot_class_constructor , pub is_using_sync : * mut sys :: godot_method_bind , pub set_use_sync : * mut sys :: godot_method_bind } impl AnimationNodeBlend3MethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : AnimationNodeBlend3MethodTable = AnimationNodeBlend3MethodTable { class_constructor : None , is_using_sync : 0 as * mut sys :: godot_method_bind , set_use_sync : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { AnimationNodeBlend3MethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "AnimationNodeBlend3\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . is_using_sync = (gd_api . godot_method_bind_get_method) (class_name , "is_using_sync\0" . as_ptr () as * const c_char) ; table . set_use_sync = (gd_api . godot_method_bind_get_method) (class_name , "set_use_sync\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:178:6880 [INFO] [stdout] | [INFO] [stdout] 178 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 178 | # [doc = "`core class CSGMesh` inherits `CSGPrimitive` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_csgmesh.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`CSGMesh` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nCSGMesh inherits methods from:\n - [CSGPrimitive](struct.CSGPrimitive.html)\n - [CSGShape](struct.CSGShape.html)\n - [GeometryInstance](struct.GeometryInstance.html)\n - [VisualInstance](struct.VisualInstance.html)\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct CSGMesh { this : RawObject < Self > , } impl CSGMesh { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = CSGMeshMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = ""] # [doc = ""] # [inline] pub fn material (& self) -> Option < Ref < crate :: generated :: material :: Material , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = CSGMeshMethodTable :: get (get_api ()) . get_material ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: material :: Material , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = ""] # [doc = ""] # [inline] pub fn mesh (& self) -> Option < Ref < crate :: generated :: mesh :: Mesh , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = CSGMeshMethodTable :: get (get_api ()) . get_mesh ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: mesh :: Mesh , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = ""] # [doc = ""] # [inline] pub fn set_material (& self , material : impl AsArg < crate :: generated :: material :: Material >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CSGMeshMethodTable :: get (get_api ()) . set_material ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , material . as_arg_ptr ()) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_mesh (& self , mesh : impl AsArg < crate :: generated :: mesh :: Mesh >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CSGMeshMethodTable :: get (get_api ()) . set_mesh ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , mesh . as_arg_ptr ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for CSGMesh { } unsafe impl GodotObject for CSGMesh { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "CSGMesh" } } impl QueueFree for CSGMesh { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for CSGMesh { type Target = crate :: generated :: csg_primitive :: CSGPrimitive ; # [inline] fn deref (& self) -> & crate :: generated :: csg_primitive :: CSGPrimitive { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for CSGMesh { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: csg_primitive :: CSGPrimitive { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: csg_primitive :: CSGPrimitive > for CSGMesh { } unsafe impl SubClass < crate :: generated :: csg_shape :: CSGShape > for CSGMesh { } unsafe impl SubClass < crate :: generated :: geometry_instance :: GeometryInstance > for CSGMesh { } unsafe impl SubClass < crate :: generated :: visual_instance :: VisualInstance > for CSGMesh { } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for CSGMesh { } unsafe impl SubClass < crate :: generated :: node :: Node > for CSGMesh { } unsafe impl SubClass < crate :: generated :: object :: Object > for CSGMesh { } impl Instanciable for CSGMesh { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { CSGMesh :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct CSGMeshMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_material : * mut sys :: godot_method_bind , pub get_mesh : * mut sys :: godot_method_bind , pub set_material : * mut sys :: godot_method_bind , pub set_mesh : * mut sys :: godot_method_bind } impl CSGMeshMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : CSGMeshMethodTable = CSGMeshMethodTable { class_constructor : None , get_material : 0 as * mut sys :: godot_method_bind , get_mesh : 0 as * mut sys :: godot_method_bind , set_material : 0 as * mut sys :: godot_method_bind , set_mesh : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { CSGMeshMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "CSGMesh\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_material = (gd_api . godot_method_bind_get_method) (class_name , "get_material\0" . as_ptr () as * const c_char) ; table . get_mesh = (gd_api . godot_method_bind_get_method) (class_name , "get_mesh\0" . as_ptr () as * const c_char) ; table . set_material = (gd_api . godot_method_bind_get_method) (class_name , "set_material\0" . as_ptr () as * const c_char) ; table . set_mesh = (gd_api . godot_method_bind_get_method) (class_name , "set_mesh\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:184:4643 [INFO] [stdout] | [INFO] [stdout] 184 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 184 | # [doc = "`core class VisualScriptDeconstruct` inherits `VisualScriptNode` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_visualscriptdeconstruct.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nVisualScriptDeconstruct inherits methods from:\n - [VisualScriptNode](struct.VisualScriptNode.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct VisualScriptDeconstruct { this : RawObject < Self > , } impl VisualScriptDeconstruct { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = VisualScriptDeconstructMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = ""] # [doc = ""] # [inline] pub fn deconstruct_type (& self) -> VariantType { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualScriptDeconstructMethodTable :: get (get_api ()) . get_deconstruct_type ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; VariantType :: from_sys (ret as _) } } # [doc = ""] # [doc = ""] # [inline] pub fn set_deconstruct_type (& self , _type : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualScriptDeconstructMethodTable :: get (get_api ()) . set_deconstruct_type ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , _type) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for VisualScriptDeconstruct { } unsafe impl GodotObject for VisualScriptDeconstruct { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "VisualScriptDeconstruct" } } impl std :: ops :: Deref for VisualScriptDeconstruct { type Target = crate :: generated :: visual_script_node :: VisualScriptNode ; # [inline] fn deref (& self) -> & crate :: generated :: visual_script_node :: VisualScriptNode { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for VisualScriptDeconstruct { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: visual_script_node :: VisualScriptNode { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: visual_script_node :: VisualScriptNode > for VisualScriptDeconstruct { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for VisualScriptDeconstruct { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for VisualScriptDeconstruct { } unsafe impl SubClass < crate :: generated :: object :: Object > for VisualScriptDeconstruct { } impl Instanciable for VisualScriptDeconstruct { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { VisualScriptDeconstruct :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct VisualScriptDeconstructMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_deconstruct_type : * mut sys :: godot_method_bind , pub set_deconstruct_type : * mut sys :: godot_method_bind } impl VisualScriptDeconstructMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : VisualScriptDeconstructMethodTable = VisualScriptDeconstructMethodTable { class_constructor : None , get_deconstruct_type : 0 as * mut sys :: godot_method_bind , set_deconstruct_type : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { VisualScriptDeconstructMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "VisualScriptDeconstruct\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_deconstruct_type = (gd_api . godot_method_bind_get_method) (class_name , "get_deconstruct_type\0" . as_ptr () as * const c_char) ; table . set_deconstruct_type = (gd_api . godot_method_bind_get_method) (class_name , "set_deconstruct_type\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:190:19948 [INFO] [stdout] | [INFO] [stdout] 190 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 190 | # [doc = "`core singleton class Engine` inherits `Object` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_engine.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = ""] # [doc = "\n## Class hierarchy\n\nEngine inherits methods from:\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct Engine { this : RawObject < Self > , } impl Engine { # [doc = "Returns a reference to the singleton instance."] # [inline] pub fn godot_singleton () -> & 'static Self { unsafe { let this = (get_api () . godot_global_get_singleton) ("Engine\0" . as_ptr () as * mut _) ; let this = ptr :: NonNull :: new (this) . expect ("singleton should not be null") ; let this = RawObject :: from_sys_ref_unchecked :: < 'static > (this) ; Self :: cast_ref (this) } } # [doc = "Returns engine author information in a Dictionary.\n`lead_developers` - Array of Strings, lead developer names\n`founders` - Array of Strings, founder names\n`project_managers` - Array of Strings, project manager names\n`developers` - Array of Strings, developer names"] # [doc = ""] # [inline] pub fn get_author_info (& self) -> Dictionary { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_author_info ; let ret = crate :: icalls :: icallptr_dict (method_bind , self . this . sys () . as_ptr ()) ; Dictionary :: from_sys (ret) } } # [doc = "Returns an Array of copyright information Dictionaries.\n`name` - String, component name\n`parts` - Array of Dictionaries {`files`, `copyright`, `license`} describing subsections of the component"] # [doc = ""] # [inline] pub fn get_copyright_info (& self) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_copyright_info ; let ret = crate :: icalls :: icallvar_ (method_bind , self . this . sys () . as_ptr ()) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = "Returns a Dictionary of Arrays of donor names.\n{`platinum_sponsors`, `gold_sponsors`, `silver_sponsors`, `bronze_sponsors`, `mini_sponsors`, `gold_donors`, `silver_donors`, `bronze_donors`}"] # [doc = ""] # [inline] pub fn get_donor_info (& self) -> Dictionary { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_donor_info ; let ret = crate :: icalls :: icallptr_dict (method_bind , self . this . sys () . as_ptr ()) ; Dictionary :: from_sys (ret) } } # [doc = "Returns the total number of frames drawn. If the render loop is disabled with `--disable-render-loop` via command line, this returns `0`. See also [method get_idle_frames]."] # [doc = ""] # [inline] pub fn get_frames_drawn (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_frames_drawn ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the frames per second of the running game."] # [doc = ""] # [inline] pub fn get_frames_per_second (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_frames_per_second ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the total number of frames passed since engine initialization which is advanced on each **idle frame**, regardless of whether the render loop is enabled. See also [method get_frames_drawn]."] # [doc = ""] # [inline] pub fn get_idle_frames (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_idle_frames ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The number of fixed iterations per second. This controls how often physics simulation and [method Node._physics_process] methods are run. This value should generally always be set to `60` or above, as Godot doesn't interpolate the physics step. As a result, values lower than `60` will look stuttery. This value can be increased to make input more reactive or work around tunneling issues, but keep in mind doing so will increase CPU usage."] # [doc = ""] # [inline] pub fn iterations_per_second (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_iterations_per_second ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns Dictionary of licenses used by Godot and included third party components."] # [doc = ""] # [inline] pub fn get_license_info (& self) -> Dictionary { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_license_info ; let ret = crate :: icalls :: icallptr_dict (method_bind , self . this . sys () . as_ptr ()) ; Dictionary :: from_sys (ret) } } # [doc = "Returns Godot license text."] # [doc = ""] # [inline] pub fn get_license_text (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_license_text ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = "Returns the main loop object (see [MainLoop] and [SceneTree])."] # [doc = ""] # [inline] pub fn get_main_loop (& self) -> Option < Ref < crate :: generated :: main_loop :: MainLoop , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_main_loop ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: main_loop :: MainLoop , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the total number of frames passed since engine initialization which is advanced on each **physics frame**."] # [doc = ""] # [inline] pub fn get_physics_frames (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_physics_frames ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the fraction through the current physics tick we are at the time of rendering the frame. This can be used to implement fixed timestep interpolation."] # [doc = ""] # [inline] pub fn get_physics_interpolation_fraction (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_physics_interpolation_fraction ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Controls how much physics ticks are synchronized with real time. For 0 or less, the ticks are synchronized. Such values are recommended for network games, where clock synchronization matters. Higher values cause higher deviation of in-game clock and real clock, but allows to smooth out framerate jitters. The default value of 0.5 should be fine for most; values above 2 could cause the game to react to dropped frames with a noticeable delay and are not recommended."] # [doc = ""] # [inline] pub fn physics_jitter_fix (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_physics_jitter_fix ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns a global singleton with given `name`. Often used for plugins, e.g. `GodotPayment` on Android."] # [doc = ""] # [inline] pub fn get_singleton (& self , name : impl Into < GodotString >) -> Option < Ref < crate :: generated :: object :: Object , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_singleton ; let ret = crate :: icalls :: icallptr_obj_str (method_bind , self . this . sys () . as_ptr () , name . into ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: object :: Object , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "The desired frames per second. If the hardware cannot keep up, this setting may not be respected. A value of 0 means no limit."] # [doc = ""] # [inline] pub fn target_fps (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_target_fps ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Controls how fast or slow the in-game clock ticks versus the real life one. It defaults to 1.0. A value of 2.0 means the game moves twice as fast as real life, whilst a value of 0.5 means the game moves at half the regular speed."] # [doc = ""] # [inline] pub fn time_scale (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_time_scale ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "_Sample code is GDScript unless otherwise noted._\n\nReturns the current engine version information in a Dictionary.\n`major` - Holds the major version number as an int\n`minor` - Holds the minor version number as an int\n`patch` - Holds the patch version number as an int\n`hex` - Holds the full version number encoded as a hexadecimal int with one byte (2 places) per number (see example below)\n`status` - Holds the status (e.g. \"beta\", \"rc1\", \"rc2\", ... \"stable\") as a String\n`build` - Holds the build name (e.g. \"custom_build\") as a String\n`hash` - Holds the full Git commit hash as a String\n`year` - Holds the year the version was released in as an int\n`string` - `major` + `minor` + `patch` + `status` + `build` in a single String\nThe `hex` value is encoded as follows, from left to right: one byte for the major, one byte for the minor, one byte for the patch version. For example, \"3.1.12\" would be `0x03010C`. **Note:** It's still an int internally, and printing it will give you its decimal representation, which is not particularly meaningful. Use hexadecimal literals for easy version comparisons from code:\n```gdscript\nif Engine.get_version_info().hex >= 0x030200:\n # Do things specific to version 3.2 or later\nelse:\n # Do things specific to versions before 3.2\n```"] # [doc = ""] # [inline] pub fn get_version_info (& self) -> Dictionary { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . get_version_info ; let ret = crate :: icalls :: icallptr_dict (method_bind , self . this . sys () . as_ptr ()) ; Dictionary :: from_sys (ret) } } # [doc = "Returns `true` if a singleton with given `name` exists in global scope."] # [doc = ""] # [inline] pub fn has_singleton (& self , name : impl Into < GodotString >) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . has_singleton ; let ret = crate :: icalls :: icallptr_bool_str (method_bind , self . this . sys () . as_ptr () , name . into ()) ; ret as _ } } # [doc = "If `true`, it is running inside the editor. Useful for tool scripts."] # [doc = ""] # [inline] pub fn is_editor_hint (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . is_editor_hint ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the game is inside the fixed process and physics phase of the game loop."] # [doc = ""] # [inline] pub fn is_in_physics_frame (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . is_in_physics_frame ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, it is running inside the editor. Useful for tool scripts."] # [doc = ""] # [inline] pub fn set_editor_hint (& self , enabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . set_editor_hint ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enabled) ; } } # [doc = "The number of fixed iterations per second. This controls how often physics simulation and [method Node._physics_process] methods are run. This value should generally always be set to `60` or above, as Godot doesn't interpolate the physics step. As a result, values lower than `60` will look stuttery. This value can be increased to make input more reactive or work around tunneling issues, but keep in mind doing so will increase CPU usage."] # [doc = ""] # [inline] pub fn set_iterations_per_second (& self , iterations_per_second : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . set_iterations_per_second ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , iterations_per_second) ; } } # [doc = "Controls how much physics ticks are synchronized with real time. For 0 or less, the ticks are synchronized. Such values are recommended for network games, where clock synchronization matters. Higher values cause higher deviation of in-game clock and real clock, but allows to smooth out framerate jitters. The default value of 0.5 should be fine for most; values above 2 could cause the game to react to dropped frames with a noticeable delay and are not recommended."] # [doc = ""] # [inline] pub fn set_physics_jitter_fix (& self , physics_jitter_fix : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . set_physics_jitter_fix ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , physics_jitter_fix) ; } } # [doc = "The desired frames per second. If the hardware cannot keep up, this setting may not be respected. A value of 0 means no limit."] # [doc = ""] # [inline] pub fn set_target_fps (& self , target_fps : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . set_target_fps ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , target_fps) ; } } # [doc = "Controls how fast or slow the in-game clock ticks versus the real life one. It defaults to 1.0. A value of 2.0 means the game moves twice as fast as real life, whilst a value of 0.5 means the game moves at half the regular speed."] # [doc = ""] # [inline] pub fn set_time_scale (& self , time_scale : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EngineMethodTable :: get (get_api ()) . set_time_scale ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , time_scale) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for Engine { } unsafe impl GodotObject for Engine { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "Engine" } } impl std :: ops :: Deref for Engine { type Target = crate :: generated :: object :: Object ; # [inline] fn deref (& self) -> & crate :: generated :: object :: Object { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for Engine { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: object :: Object { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: object :: Object > for Engine { } unsafe impl Send for Engine { } unsafe impl Sync for Engine { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct EngineMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_author_info : * mut sys :: godot_method_bind , pub get_copyright_info : * mut sys :: godot_method_bind , pub get_donor_info : * mut sys :: godot_method_bind , pub get_frames_drawn : * mut sys :: godot_method_bind , pub get_frames_per_second : * mut sys :: godot_method_bind , pub get_idle_frames : * mut sys :: godot_method_bind , pub get_iterations_per_second : * mut sys :: godot_method_bind , pub get_license_info : * mut sys :: godot_method_bind , pub get_license_text : * mut sys :: godot_method_bind , pub get_main_loop : * mut sys :: godot_method_bind , pub get_physics_frames : * mut sys :: godot_method_bind , pub get_physics_interpolation_fraction : * mut sys :: godot_method_bind , pub get_physics_jitter_fix : * mut sys :: godot_method_bind , pub get_singleton : * mut sys :: godot_method_bind , pub get_target_fps : * mut sys :: godot_method_bind , pub get_time_scale : * mut sys :: godot_method_bind , pub get_version_info : * mut sys :: godot_method_bind , pub has_singleton : * mut sys :: godot_method_bind , pub is_editor_hint : * mut sys :: godot_method_bind , pub is_in_physics_frame : * mut sys :: godot_method_bind , pub set_editor_hint : * mut sys :: godot_method_bind , pub set_iterations_per_second : * mut sys :: godot_method_bind , pub set_physics_jitter_fix : * mut sys :: godot_method_bind , pub set_target_fps : * mut sys :: godot_method_bind , pub set_time_scale : * mut sys :: godot_method_bind } impl EngineMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : EngineMethodTable = EngineMethodTable { class_constructor : None , get_author_info : 0 as * mut sys :: godot_method_bind , get_copyright_info : 0 as * mut sys :: godot_method_bind , get_donor_info : 0 as * mut sys :: godot_method_bind , get_frames_drawn : 0 as * mut sys :: godot_method_bind , get_frames_per_second : 0 as * mut sys :: godot_method_bind , get_idle_frames : 0 as * mut sys :: godot_method_bind , get_iterations_per_second : 0 as * mut sys :: godot_method_bind , get_license_info : 0 as * mut sys :: godot_method_bind , get_license_text : 0 as * mut sys :: godot_method_bind , get_main_loop : 0 as * mut sys :: godot_method_bind , get_physics_frames : 0 as * mut sys :: godot_method_bind , get_physics_interpolation_fraction : 0 as * mut sys :: godot_method_bind , get_physics_jitter_fix : 0 as * mut sys :: godot_method_bind , get_singleton : 0 as * mut sys :: godot_method_bind , get_target_fps : 0 as * mut sys :: godot_method_bind , get_time_scale : 0 as * mut sys :: godot_method_bind , get_version_info : 0 as * mut sys :: godot_method_bind , has_singleton : 0 as * mut sys :: godot_method_bind , is_editor_hint : 0 as * mut sys :: godot_method_bind , is_in_physics_frame : 0 as * mut sys :: godot_method_bind , set_editor_hint : 0 as * mut sys :: godot_method_bind , set_iterations_per_second : 0 as * mut sys :: godot_method_bind , set_physics_jitter_fix : 0 as * mut sys :: godot_method_bind , set_target_fps : 0 as * mut sys :: godot_method_bind , set_time_scale : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { EngineMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "_Engine\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_author_info = (gd_api . godot_method_bind_get_method) (class_name , "get_author_info\0" . as_ptr () as * const c_char) ; table . get_copyright_info = (gd_api . godot_method_bind_get_method) (class_name , "get_copyright_info\0" . as_ptr () as * const c_char) ; table . get_donor_info = (gd_api . godot_method_bind_get_method) (class_name , "get_donor_info\0" . as_ptr () as * const c_char) ; table . get_frames_drawn = (gd_api . godot_method_bind_get_method) (class_name , "get_frames_drawn\0" . as_ptr () as * const c_char) ; table . get_frames_per_second = (gd_api . godot_method_bind_get_method) (class_name , "get_frames_per_second\0" . as_ptr () as * const c_char) ; table . get_idle_frames = (gd_api . godot_method_bind_get_method) (class_name , "get_idle_frames\0" . as_ptr () as * const c_char) ; table . get_iterations_per_second = (gd_api . godot_method_bind_get_method) (class_name , "get_iterations_per_second\0" . as_ptr () as * const c_char) ; table . get_license_info = (gd_api . godot_method_bind_get_method) (class_name , "get_license_info\0" . as_ptr () as * const c_char) ; table . get_license_text = (gd_api . godot_method_bind_get_method) (class_name , "get_license_text\0" . as_ptr () as * const c_char) ; table . get_main_loop = (gd_api . godot_method_bind_get_method) (class_name , "get_main_loop\0" . as_ptr () as * const c_char) ; table . get_physics_frames = (gd_api . godot_method_bind_get_method) (class_name , "get_physics_frames\0" . as_ptr () as * const c_char) ; table . get_physics_interpolation_fraction = (gd_api . godot_method_bind_get_method) (class_name , "get_physics_interpolation_fraction\0" . as_ptr () as * const c_char) ; table . get_physics_jitter_fix = (gd_api . godot_method_bind_get_method) (class_name , "get_physics_jitter_fix\0" . as_ptr () as * const c_char) ; table . get_singleton = (gd_api . godot_method_bind_get_method) (class_name , "get_singleton\0" . as_ptr () as * const c_char) ; table . get_target_fps = (gd_api . godot_method_bind_get_method) (class_name , "get_target_fps\0" . as_ptr () as * const c_char) ; table . get_time_scale = (gd_api . godot_method_bind_get_method) (class_name , "get_time_scale\0" . as_ptr () as * const c_char) ; table . get_version_info = (gd_api . godot_method_bind_get_method) (class_name , "get_version_info\0" . as_ptr () as * const c_char) ; table . has_singleton = (gd_api . godot_method_bind_get_method) (class_name , "has_singleton\0" . as_ptr () as * const c_char) ; table . is_editor_hint = (gd_api . godot_method_bind_get_method) (class_name , "is_editor_hint\0" . as_ptr () as * const c_char) ; table . is_in_physics_frame = (gd_api . godot_method_bind_get_method) (class_name , "is_in_physics_frame\0" . as_ptr () as * const c_char) ; table . set_editor_hint = (gd_api . godot_method_bind_get_method) (class_name , "set_editor_hint\0" . as_ptr () as * const c_char) ; table . set_iterations_per_second = (gd_api . godot_method_bind_get_method) (class_name , "set_iterations_per_second\0" . as_ptr () as * const c_char) ; table . set_physics_jitter_fix = (gd_api . godot_method_bind_get_method) (class_name , "set_physics_jitter_fix\0" . as_ptr () as * const c_char) ; table . set_target_fps = (gd_api . godot_method_bind_get_method) (class_name , "set_target_fps\0" . as_ptr () as * const c_char) ; table . set_time_scale = (gd_api . godot_method_bind_get_method) (class_name , "set_time_scale\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:196:5045 [INFO] [stdout] | [INFO] [stdout] 196 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 196 | # [doc = "`core class LineShape2D` inherits `Shape2D` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_lineshape2d.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nLineShape2D inherits methods from:\n - [Shape2D](struct.Shape2D.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct LineShape2D { this : RawObject < Self > , } impl LineShape2D { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = LineShape2DMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "The line's distance from the origin."] # [doc = ""] # [inline] pub fn d (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = LineShape2DMethodTable :: get (get_api ()) . get_d ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The line's normal."] # [doc = ""] # [inline] pub fn normal (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = LineShape2DMethodTable :: get (get_api ()) . get_normal ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "The line's distance from the origin."] # [doc = ""] # [inline] pub fn set_d (& self , d : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = LineShape2DMethodTable :: get (get_api ()) . set_d ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , d) ; } } # [doc = "The line's normal."] # [doc = ""] # [inline] pub fn set_normal (& self , normal : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = LineShape2DMethodTable :: get (get_api ()) . set_normal ; let ret = crate :: icalls :: icallptr_void_vec2 (method_bind , self . this . sys () . as_ptr () , normal) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for LineShape2D { } unsafe impl GodotObject for LineShape2D { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "LineShape2D" } } impl std :: ops :: Deref for LineShape2D { type Target = crate :: generated :: shape_2d :: Shape2D ; # [inline] fn deref (& self) -> & crate :: generated :: shape_2d :: Shape2D { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for LineShape2D { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: shape_2d :: Shape2D { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: shape_2d :: Shape2D > for LineShape2D { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for LineShape2D { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for LineShape2D { } unsafe impl SubClass < crate :: generated :: object :: Object > for LineShape2D { } impl Instanciable for LineShape2D { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { LineShape2D :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct LineShape2DMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_d : * mut sys :: godot_method_bind , pub get_normal : * mut sys :: godot_method_bind , pub set_d : * mut sys :: godot_method_bind , pub set_normal : * mut sys :: godot_method_bind } impl LineShape2DMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : LineShape2DMethodTable = LineShape2DMethodTable { class_constructor : None , get_d : 0 as * mut sys :: godot_method_bind , get_normal : 0 as * mut sys :: godot_method_bind , set_d : 0 as * mut sys :: godot_method_bind , set_normal : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { LineShape2DMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "LineShape2D\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_d = (gd_api . godot_method_bind_get_method) (class_name , "get_d\0" . as_ptr () as * const c_char) ; table . get_normal = (gd_api . godot_method_bind_get_method) (class_name , "get_normal\0" . as_ptr () as * const c_char) ; table . set_d = (gd_api . godot_method_bind_get_method) (class_name , "set_d\0" . as_ptr () as * const c_char) ; table . set_normal = (gd_api . godot_method_bind_get_method) (class_name , "set_normal\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:202:3637 [INFO] [stdout] | [INFO] [stdout] 202 | ...thodTable { class_constructor : None , } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 202 | # [doc = "`core class VisualScriptIndexSet` inherits `VisualScriptNode` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_visualscriptindexset.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nVisualScriptIndexSet inherits methods from:\n - [VisualScriptNode](struct.VisualScriptNode.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct VisualScriptIndexSet { this : RawObject < Self > , } impl VisualScriptIndexSet { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = VisualScriptIndexSetMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } } impl gdnative_core :: private :: godot_object :: Sealed for VisualScriptIndexSet { } unsafe impl GodotObject for VisualScriptIndexSet { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "VisualScriptIndexSet" } } impl std :: ops :: Deref for VisualScriptIndexSet { type Target = crate :: generated :: visual_script_node :: VisualScriptNode ; # [inline] fn deref (& self) -> & crate :: generated :: visual_script_node :: VisualScriptNode { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for VisualScriptIndexSet { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: visual_script_node :: VisualScriptNode { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: visual_script_node :: VisualScriptNode > for VisualScriptIndexSet { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for VisualScriptIndexSet { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for VisualScriptIndexSet { } unsafe impl SubClass < crate :: generated :: object :: Object > for VisualScriptIndexSet { } impl Instanciable for VisualScriptIndexSet { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { VisualScriptIndexSet :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct VisualScriptIndexSetMethodTable { pub class_constructor : sys :: godot_class_constructor , } impl VisualScriptIndexSetMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : VisualScriptIndexSetMethodTable = VisualScriptIndexSetMethodTable { class_constructor : None , } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { VisualScriptIndexSetMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "VisualScriptIndexSet\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:208:4726 [INFO] [stdout] | [INFO] [stdout] 208 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 208 | # [doc = "`core class AnimationNodeBlend2` inherits `AnimationNode` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_animationnodeblend2.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nAnimationNodeBlend2 inherits methods from:\n - [AnimationNode](struct.AnimationNode.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct AnimationNodeBlend2 { this : RawObject < Self > , } impl AnimationNodeBlend2 { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = AnimationNodeBlend2MethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "If `true`, sets the `optimization` to `false` when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame."] # [doc = ""] # [inline] pub fn is_using_sync (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = AnimationNodeBlend2MethodTable :: get (get_api ()) . is_using_sync ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, sets the `optimization` to `false` when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame."] # [doc = ""] # [inline] pub fn set_use_sync (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AnimationNodeBlend2MethodTable :: get (get_api ()) . set_use_sync ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for AnimationNodeBlend2 { } unsafe impl GodotObject for AnimationNodeBlend2 { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "AnimationNodeBlend2" } } impl std :: ops :: Deref for AnimationNodeBlend2 { type Target = crate :: generated :: animation_node :: AnimationNode ; # [inline] fn deref (& self) -> & crate :: generated :: animation_node :: AnimationNode { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for AnimationNodeBlend2 { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: animation_node :: AnimationNode { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: animation_node :: AnimationNode > for AnimationNodeBlend2 { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for AnimationNodeBlend2 { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for AnimationNodeBlend2 { } unsafe impl SubClass < crate :: generated :: object :: Object > for AnimationNodeBlend2 { } impl Instanciable for AnimationNodeBlend2 { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { AnimationNodeBlend2 :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct AnimationNodeBlend2MethodTable { pub class_constructor : sys :: godot_class_constructor , pub is_using_sync : * mut sys :: godot_method_bind , pub set_use_sync : * mut sys :: godot_method_bind } impl AnimationNodeBlend2MethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : AnimationNodeBlend2MethodTable = AnimationNodeBlend2MethodTable { class_constructor : None , is_using_sync : 0 as * mut sys :: godot_method_bind , set_use_sync : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { AnimationNodeBlend2MethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "AnimationNodeBlend2\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . is_using_sync = (gd_api . godot_method_bind_get_method) (class_name , "is_using_sync\0" . as_ptr () as * const c_char) ; table . set_use_sync = (gd_api . godot_method_bind_get_method) (class_name , "set_use_sync\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:214:3071 [INFO] [stdout] | [INFO] [stdout] 214 | ...thodTable { class_constructor : None , } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 214 | # [doc = "`core class JavaClass` inherits `Reference` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_javaclass.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nJavaClass inherits methods from:\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct JavaClass { this : RawObject < Self > , } impl JavaClass { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = JavaClassMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } } impl gdnative_core :: private :: godot_object :: Sealed for JavaClass { } unsafe impl GodotObject for JavaClass { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "JavaClass" } } impl std :: ops :: Deref for JavaClass { type Target = crate :: generated :: reference :: Reference ; # [inline] fn deref (& self) -> & crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for JavaClass { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: reference :: Reference > for JavaClass { } unsafe impl SubClass < crate :: generated :: object :: Object > for JavaClass { } impl Instanciable for JavaClass { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { JavaClass :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct JavaClassMethodTable { pub class_constructor : sys :: godot_class_constructor , } impl JavaClassMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : JavaClassMethodTable = JavaClassMethodTable { class_constructor : None , } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { JavaClassMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "JavaClass\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:220:4144 [INFO] [stdout] | [INFO] [stdout] 220 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 220 | # [doc = "`core class CSGPrimitive` inherits `CSGShape` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_csgprimitive.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = ""] # [doc = "\n## Class hierarchy\n\nCSGPrimitive inherits methods from:\n - [CSGShape](struct.CSGShape.html)\n - [GeometryInstance](struct.GeometryInstance.html)\n - [VisualInstance](struct.VisualInstance.html)\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct CSGPrimitive { this : RawObject < Self > , } impl CSGPrimitive { # [doc = ""] # [doc = ""] # [inline] pub fn is_inverting_faces (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CSGPrimitiveMethodTable :: get (get_api ()) . is_inverting_faces ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn set_invert_faces (& self , invert_faces : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CSGPrimitiveMethodTable :: get (get_api ()) . set_invert_faces ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , invert_faces) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for CSGPrimitive { } unsafe impl GodotObject for CSGPrimitive { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "CSGPrimitive" } } impl QueueFree for CSGPrimitive { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for CSGPrimitive { type Target = crate :: generated :: csg_shape :: CSGShape ; # [inline] fn deref (& self) -> & crate :: generated :: csg_shape :: CSGShape { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for CSGPrimitive { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: csg_shape :: CSGShape { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: csg_shape :: CSGShape > for CSGPrimitive { } unsafe impl SubClass < crate :: generated :: geometry_instance :: GeometryInstance > for CSGPrimitive { } unsafe impl SubClass < crate :: generated :: visual_instance :: VisualInstance > for CSGPrimitive { } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for CSGPrimitive { } unsafe impl SubClass < crate :: generated :: node :: Node > for CSGPrimitive { } unsafe impl SubClass < crate :: generated :: object :: Object > for CSGPrimitive { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct CSGPrimitiveMethodTable { pub class_constructor : sys :: godot_class_constructor , pub is_inverting_faces : * mut sys :: godot_method_bind , pub set_invert_faces : * mut sys :: godot_method_bind } impl CSGPrimitiveMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : CSGPrimitiveMethodTable = CSGPrimitiveMethodTable { class_constructor : None , is_inverting_faces : 0 as * mut sys :: godot_method_bind , set_invert_faces : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { CSGPrimitiveMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "CSGPrimitive\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . is_inverting_faces = (gd_api . godot_method_bind_get_method) (class_name , "is_inverting_faces\0" . as_ptr () as * const c_char) ; table . set_invert_faces = (gd_api . godot_method_bind_get_method) (class_name , "set_invert_faces\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:226:6160 [INFO] [stdout] | [INFO] [stdout] 226 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 226 | # [doc = "`core class Skeleton2D` inherits `Node2D` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_skeleton2d.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`Skeleton2D` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nSkeleton2D inherits methods from:\n - [Node2D](struct.Node2D.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct Skeleton2D { this : RawObject < Self > , } impl Skeleton2D { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = Skeleton2DMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Returns a [Bone2D] from the node hierarchy parented by Skeleton2D. The object to return is identified by the parameter `idx`. Bones are indexed by descending the node hierarchy from top to bottom, adding the children of each branch before moving to the next sibling."] # [doc = ""] # [inline] pub fn get_bone (& self , idx : i64) -> Option < Ref < crate :: generated :: bone_2d :: Bone2D , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = Skeleton2DMethodTable :: get (get_api ()) . get_bone ; let ret = crate :: icalls :: icallptr_obj_i64 (method_bind , self . this . sys () . as_ptr () , idx) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: bone_2d :: Bone2D , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the number of [Bone2D] nodes in the node hierarchy parented by Skeleton2D."] # [doc = ""] # [inline] pub fn get_bone_count (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = Skeleton2DMethodTable :: get (get_api ()) . get_bone_count ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the [RID] of a Skeleton2D instance."] # [doc = ""] # [inline] pub fn get_skeleton (& self) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = Skeleton2DMethodTable :: get (get_api ()) . get_skeleton ; let ret = crate :: icalls :: icallptr_rid (method_bind , self . this . sys () . as_ptr ()) ; Rid :: from_sys (ret) } } } impl gdnative_core :: private :: godot_object :: Sealed for Skeleton2D { } unsafe impl GodotObject for Skeleton2D { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "Skeleton2D" } } impl QueueFree for Skeleton2D { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for Skeleton2D { type Target = crate :: generated :: node_2d :: Node2D ; # [inline] fn deref (& self) -> & crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for Skeleton2D { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: node_2d :: Node2D > for Skeleton2D { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for Skeleton2D { } unsafe impl SubClass < crate :: generated :: node :: Node > for Skeleton2D { } unsafe impl SubClass < crate :: generated :: object :: Object > for Skeleton2D { } impl Instanciable for Skeleton2D { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { Skeleton2D :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct Skeleton2DMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_bone : * mut sys :: godot_method_bind , pub get_bone_count : * mut sys :: godot_method_bind , pub get_skeleton : * mut sys :: godot_method_bind } impl Skeleton2DMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : Skeleton2DMethodTable = Skeleton2DMethodTable { class_constructor : None , get_bone : 0 as * mut sys :: godot_method_bind , get_bone_count : 0 as * mut sys :: godot_method_bind , get_skeleton : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { Skeleton2DMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "Skeleton2D\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_bone = (gd_api . godot_method_bind_get_method) (class_name , "get_bone\0" . as_ptr () as * const c_char) ; table . get_bone_count = (gd_api . godot_method_bind_get_method) (class_name , "get_bone_count\0" . as_ptr () as * const c_char) ; table . get_skeleton = (gd_api . godot_method_bind_get_method) (class_name , "get_skeleton\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:232:3905 [INFO] [stdout] | [INFO] [stdout] 232 | ...thodTable { class_constructor : None , } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 232 | # [doc = "`core class AudioEffectLowShelfFilter` inherits `AudioEffectFilter` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_audioeffectlowshelffilter.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nAudioEffectLowShelfFilter inherits methods from:\n - [AudioEffectFilter](struct.AudioEffectFilter.html)\n - [AudioEffect](struct.AudioEffect.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct AudioEffectLowShelfFilter { this : RawObject < Self > , } impl AudioEffectLowShelfFilter { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = AudioEffectLowShelfFilterMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } } impl gdnative_core :: private :: godot_object :: Sealed for AudioEffectLowShelfFilter { } unsafe impl GodotObject for AudioEffectLowShelfFilter { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "AudioEffectLowShelfFilter" } } impl std :: ops :: Deref for AudioEffectLowShelfFilter { type Target = crate :: generated :: audio_effect_filter :: AudioEffectFilter ; # [inline] fn deref (& self) -> & crate :: generated :: audio_effect_filter :: AudioEffectFilter { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for AudioEffectLowShelfFilter { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: audio_effect_filter :: AudioEffectFilter { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: audio_effect_filter :: AudioEffectFilter > for AudioEffectLowShelfFilter { } unsafe impl SubClass < crate :: generated :: audio_effect :: AudioEffect > for AudioEffectLowShelfFilter { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for AudioEffectLowShelfFilter { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for AudioEffectLowShelfFilter { } unsafe impl SubClass < crate :: generated :: object :: Object > for AudioEffectLowShelfFilter { } impl Instanciable for AudioEffectLowShelfFilter { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { AudioEffectLowShelfFilter :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct AudioEffectLowShelfFilterMethodTable { pub class_constructor : sys :: godot_class_constructor , } impl AudioEffectLowShelfFilterMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : AudioEffectLowShelfFilterMethodTable = AudioEffectLowShelfFilterMethodTable { class_constructor : None , } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { AudioEffectLowShelfFilterMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "AudioEffectLowShelfFilter\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:238:3688 [INFO] [stdout] | [INFO] [stdout] 238 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 238 | # [doc = "`tools class EditorNavigationMeshGenerator` inherits `Object` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_editornavigationmeshgenerator.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = ""] # [doc = "\n## Class hierarchy\n\nEditorNavigationMeshGenerator inherits methods from:\n - [Object](struct.Object.html)\n"] # [doc = "\n## Tool\n\nThis class is used to interact with Godot's editor."] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct EditorNavigationMeshGenerator { this : RawObject < Self > , } impl EditorNavigationMeshGenerator { # [doc = ""] # [doc = ""] # [inline] pub fn bake (& self , nav_mesh : impl AsArg < crate :: generated :: navigation_mesh :: NavigationMesh > , root_node : impl AsArg < crate :: generated :: node :: Node >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorNavigationMeshGeneratorMethodTable :: get (get_api ()) . bake ; let ret = crate :: icalls :: icallptr_void_obj_obj (method_bind , self . this . sys () . as_ptr () , nav_mesh . as_arg_ptr () , root_node . as_arg_ptr ()) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn clear (& self , nav_mesh : impl AsArg < crate :: generated :: navigation_mesh :: NavigationMesh >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorNavigationMeshGeneratorMethodTable :: get (get_api ()) . clear ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , nav_mesh . as_arg_ptr ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for EditorNavigationMeshGenerator { } unsafe impl GodotObject for EditorNavigationMeshGenerator { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "EditorNavigationMeshGenerator" } } impl std :: ops :: Deref for EditorNavigationMeshGenerator { type Target = crate :: generated :: object :: Object ; # [inline] fn deref (& self) -> & crate :: generated :: object :: Object { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for EditorNavigationMeshGenerator { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: object :: Object { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: object :: Object > for EditorNavigationMeshGenerator { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct EditorNavigationMeshGeneratorMethodTable { pub class_constructor : sys :: godot_class_constructor , pub bake : * mut sys :: godot_method_bind , pub clear : * mut sys :: godot_method_bind } impl EditorNavigationMeshGeneratorMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : EditorNavigationMeshGeneratorMethodTable = EditorNavigationMeshGeneratorMethodTable { class_constructor : None , bake : 0 as * mut sys :: godot_method_bind , clear : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { EditorNavigationMeshGeneratorMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "EditorNavigationMeshGenerator\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . bake = (gd_api . godot_method_bind_get_method) (class_name , "bake\0" . as_ptr () as * const c_char) ; table . clear = (gd_api . godot_method_bind_get_method) (class_name , "clear\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:244:10366 [INFO] [stdout] | [INFO] [stdout] 244 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 244 | # [doc = "`core class RemoteTransform2D` inherits `Node2D` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_remotetransform2d.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`RemoteTransform2D` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nRemoteTransform2D inherits methods from:\n - [Node2D](struct.Node2D.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct RemoteTransform2D { this : RawObject < Self > , } impl RemoteTransform2D { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = RemoteTransform2DMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "[RemoteTransform2D] caches the remote node. It may not notice if the remote node disappears; [method force_update_cache] forces it to update the cache again."] # [doc = ""] # [inline] pub fn force_update_cache (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RemoteTransform2DMethodTable :: get (get_api ()) . force_update_cache ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "The [NodePath] to the remote node, relative to the RemoteTransform2D's position in the scene."] # [doc = ""] # [inline] pub fn remote_node (& self) -> NodePath { unsafe { let method_bind : * mut sys :: godot_method_bind = RemoteTransform2DMethodTable :: get (get_api ()) . get_remote_node ; let ret = crate :: icalls :: icallptr_nodepath (method_bind , self . this . sys () . as_ptr ()) ; NodePath :: from_sys (ret) } } # [doc = "If `true`, the remote node's position is updated."] # [doc = ""] # [inline] pub fn update_position (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RemoteTransform2DMethodTable :: get (get_api ()) . get_update_position ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, the remote node's rotation is updated."] # [doc = ""] # [inline] pub fn update_rotation (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RemoteTransform2DMethodTable :: get (get_api ()) . get_update_rotation ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, the remote node's scale is updated."] # [doc = ""] # [inline] pub fn update_scale (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RemoteTransform2DMethodTable :: get (get_api ()) . get_update_scale ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, global coordinates are used. If `false`, local coordinates are used."] # [doc = ""] # [inline] pub fn use_global_coordinates (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RemoteTransform2DMethodTable :: get (get_api ()) . get_use_global_coordinates ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The [NodePath] to the remote node, relative to the RemoteTransform2D's position in the scene."] # [doc = ""] # [inline] pub fn set_remote_node (& self , path : impl Into < NodePath >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RemoteTransform2DMethodTable :: get (get_api ()) . set_remote_node ; let ret = crate :: icalls :: icallptr_void_nodepath (method_bind , self . this . sys () . as_ptr () , path . into ()) ; } } # [doc = "If `true`, the remote node's position is updated."] # [doc = ""] # [inline] pub fn set_update_position (& self , update_remote_position : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RemoteTransform2DMethodTable :: get (get_api ()) . set_update_position ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , update_remote_position) ; } } # [doc = "If `true`, the remote node's rotation is updated."] # [doc = ""] # [inline] pub fn set_update_rotation (& self , update_remote_rotation : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RemoteTransform2DMethodTable :: get (get_api ()) . set_update_rotation ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , update_remote_rotation) ; } } # [doc = "If `true`, the remote node's scale is updated."] # [doc = ""] # [inline] pub fn set_update_scale (& self , update_remote_scale : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RemoteTransform2DMethodTable :: get (get_api ()) . set_update_scale ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , update_remote_scale) ; } } # [doc = "If `true`, global coordinates are used. If `false`, local coordinates are used."] # [doc = ""] # [inline] pub fn set_use_global_coordinates (& self , use_global_coordinates : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RemoteTransform2DMethodTable :: get (get_api ()) . set_use_global_coordinates ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , use_global_coordinates) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for RemoteTransform2D { } unsafe impl GodotObject for RemoteTransform2D { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "RemoteTransform2D" } } impl QueueFree for RemoteTransform2D { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for RemoteTransform2D { type Target = crate :: generated :: node_2d :: Node2D ; # [inline] fn deref (& self) -> & crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for RemoteTransform2D { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: node_2d :: Node2D > for RemoteTransform2D { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for RemoteTransform2D { } unsafe impl SubClass < crate :: generated :: node :: Node > for RemoteTransform2D { } unsafe impl SubClass < crate :: generated :: object :: Object > for RemoteTransform2D { } impl Instanciable for RemoteTransform2D { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { RemoteTransform2D :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct RemoteTransform2DMethodTable { pub class_constructor : sys :: godot_class_constructor , pub force_update_cache : * mut sys :: godot_method_bind , pub get_remote_node : * mut sys :: godot_method_bind , pub get_update_position : * mut sys :: godot_method_bind , pub get_update_rotation : * mut sys :: godot_method_bind , pub get_update_scale : * mut sys :: godot_method_bind , pub get_use_global_coordinates : * mut sys :: godot_method_bind , pub set_remote_node : * mut sys :: godot_method_bind , pub set_update_position : * mut sys :: godot_method_bind , pub set_update_rotation : * mut sys :: godot_method_bind , pub set_update_scale : * mut sys :: godot_method_bind , pub set_use_global_coordinates : * mut sys :: godot_method_bind } impl RemoteTransform2DMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : RemoteTransform2DMethodTable = RemoteTransform2DMethodTable { class_constructor : None , force_update_cache : 0 as * mut sys :: godot_method_bind , get_remote_node : 0 as * mut sys :: godot_method_bind , get_update_position : 0 as * mut sys :: godot_method_bind , get_update_rotation : 0 as * mut sys :: godot_method_bind , get_update_scale : 0 as * mut sys :: godot_method_bind , get_use_global_coordinates : 0 as * mut sys :: godot_method_bind , set_remote_node : 0 as * mut sys :: godot_method_bind , set_update_position : 0 as * mut sys :: godot_method_bind , set_update_rotation : 0 as * mut sys :: godot_method_bind , set_update_scale : 0 as * mut sys :: godot_method_bind , set_use_global_coordinates : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { RemoteTransform2DMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "RemoteTransform2D\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . force_update_cache = (gd_api . godot_method_bind_get_method) (class_name , "force_update_cache\0" . as_ptr () as * const c_char) ; table . get_remote_node = (gd_api . godot_method_bind_get_method) (class_name , "get_remote_node\0" . as_ptr () as * const c_char) ; table . get_update_position = (gd_api . godot_method_bind_get_method) (class_name , "get_update_position\0" . as_ptr () as * const c_char) ; table . get_update_rotation = (gd_api . godot_method_bind_get_method) (class_name , "get_update_rotation\0" . as_ptr () as * const c_char) ; table . get_update_scale = (gd_api . godot_method_bind_get_method) (class_name , "get_update_scale\0" . as_ptr () as * const c_char) ; table . get_use_global_coordinates = (gd_api . godot_method_bind_get_method) (class_name , "get_use_global_coordinates\0" . as_ptr () as * const c_char) ; table . set_remote_node = (gd_api . godot_method_bind_get_method) (class_name , "set_remote_node\0" . as_ptr () as * const c_char) ; table . set_update_position = (gd_api . godot_method_bind_get_method) (class_name , "set_update_position\0" . as_ptr () as * const c_char) ; table . set_update_rotation = (gd_api . godot_method_bind_get_method) (class_name , "set_update_rotation\0" . as_ptr () as * const c_char) ; table . set_update_scale = (gd_api . godot_method_bind_get_method) (class_name , "set_update_scale\0" . as_ptr () as * const c_char) ; table . set_use_global_coordinates = (gd_api . godot_method_bind_get_method) (class_name , "set_use_global_coordinates\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:250:8442 [INFO] [stdout] | [INFO] [stdout] 250 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 250 | # [doc = "`core class VisualShaderNodeCubeMap` inherits `VisualShaderNode` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_visualshadernodecubemap.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nVisualShaderNodeCubeMap inherits methods from:\n - [VisualShaderNode](struct.VisualShaderNode.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct VisualShaderNodeCubeMap { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct Source (pub i64) ; impl Source { pub const TEXTURE : Source = Source (0i64) ; pub const PORT : Source = Source (1i64) ; } impl From < i64 > for Source { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < Source > for i64 { # [inline] fn from (v : Source) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct TextureType (pub i64) ; impl TextureType { pub const DATA : TextureType = TextureType (0i64) ; pub const COLOR : TextureType = TextureType (1i64) ; pub const NORMALMAP : TextureType = TextureType (2i64) ; } impl From < i64 > for TextureType { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < TextureType > for i64 { # [inline] fn from (v : TextureType) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl VisualShaderNodeCubeMap { pub const SOURCE_PORT : i64 = 1i64 ; pub const SOURCE_TEXTURE : i64 = 0i64 ; pub const TYPE_COLOR : i64 = 1i64 ; pub const TYPE_DATA : i64 = 0i64 ; pub const TYPE_NORMALMAP : i64 = 2i64 ; } impl VisualShaderNodeCubeMap { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = VisualShaderNodeCubeMapMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "The [CubeMap] texture to sample when using [constant SOURCE_TEXTURE] as [member source]."] # [doc = ""] # [inline] pub fn cube_map (& self) -> Option < Ref < crate :: generated :: cube_map :: CubeMap , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualShaderNodeCubeMapMethodTable :: get (get_api ()) . get_cube_map ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: cube_map :: CubeMap , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Defines which source should be used for the sampling. See [enum Source] for options."] # [doc = ""] # [inline] pub fn source (& self) -> crate :: generated :: visual_shader_node_cube_map :: Source { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualShaderNodeCubeMapMethodTable :: get (get_api ()) . get_source ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: visual_shader_node_cube_map :: Source (ret) } } # [doc = "Defines the type of data provided by the source texture. See [enum TextureType] for options."] # [doc = ""] # [inline] pub fn texture_type (& self) -> crate :: generated :: visual_shader_node_cube_map :: TextureType { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualShaderNodeCubeMapMethodTable :: get (get_api ()) . get_texture_type ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: visual_shader_node_cube_map :: TextureType (ret) } } # [doc = "The [CubeMap] texture to sample when using [constant SOURCE_TEXTURE] as [member source]."] # [doc = ""] # [inline] pub fn set_cube_map (& self , value : impl AsArg < crate :: generated :: cube_map :: CubeMap >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualShaderNodeCubeMapMethodTable :: get (get_api ()) . set_cube_map ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , value . as_arg_ptr ()) ; } } # [doc = "Defines which source should be used for the sampling. See [enum Source] for options."] # [doc = ""] # [inline] pub fn set_source (& self , value : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualShaderNodeCubeMapMethodTable :: get (get_api ()) . set_source ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , value) ; } } # [doc = "Defines the type of data provided by the source texture. See [enum TextureType] for options."] # [doc = ""] # [inline] pub fn set_texture_type (& self , value : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualShaderNodeCubeMapMethodTable :: get (get_api ()) . set_texture_type ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , value) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for VisualShaderNodeCubeMap { } unsafe impl GodotObject for VisualShaderNodeCubeMap { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "VisualShaderNodeCubeMap" } } impl std :: ops :: Deref for VisualShaderNodeCubeMap { type Target = crate :: generated :: visual_shader_node :: VisualShaderNode ; # [inline] fn deref (& self) -> & crate :: generated :: visual_shader_node :: VisualShaderNode { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for VisualShaderNodeCubeMap { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: visual_shader_node :: VisualShaderNode { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: visual_shader_node :: VisualShaderNode > for VisualShaderNodeCubeMap { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for VisualShaderNodeCubeMap { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for VisualShaderNodeCubeMap { } unsafe impl SubClass < crate :: generated :: object :: Object > for VisualShaderNodeCubeMap { } impl Instanciable for VisualShaderNodeCubeMap { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { VisualShaderNodeCubeMap :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct VisualShaderNodeCubeMapMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_cube_map : * mut sys :: godot_method_bind , pub get_source : * mut sys :: godot_method_bind , pub get_texture_type : * mut sys :: godot_method_bind , pub set_cube_map : * mut sys :: godot_method_bind , pub set_source : * mut sys :: godot_method_bind , pub set_texture_type : * mut sys :: godot_method_bind } impl VisualShaderNodeCubeMapMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : VisualShaderNodeCubeMapMethodTable = VisualShaderNodeCubeMapMethodTable { class_constructor : None , get_cube_map : 0 as * mut sys :: godot_method_bind , get_source : 0 as * mut sys :: godot_method_bind , get_texture_type : 0 as * mut sys :: godot_method_bind , set_cube_map : 0 as * mut sys :: godot_method_bind , set_source : 0 as * mut sys :: godot_method_bind , set_texture_type : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { VisualShaderNodeCubeMapMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "VisualShaderNodeCubeMap\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_cube_map = (gd_api . godot_method_bind_get_method) (class_name , "get_cube_map\0" . as_ptr () as * const c_char) ; table . get_source = (gd_api . godot_method_bind_get_method) (class_name , "get_source\0" . as_ptr () as * const c_char) ; table . get_texture_type = (gd_api . godot_method_bind_get_method) (class_name , "get_texture_type\0" . as_ptr () as * const c_char) ; table . set_cube_map = (gd_api . godot_method_bind_get_method) (class_name , "set_cube_map\0" . as_ptr () as * const c_char) ; table . set_source = (gd_api . godot_method_bind_get_method) (class_name , "set_source\0" . as_ptr () as * const c_char) ; table . set_texture_type = (gd_api . godot_method_bind_get_method) (class_name , "set_texture_type\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:256:3784 [INFO] [stdout] | [INFO] [stdout] 256 | ...thodTable { class_constructor : None , } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 256 | # [doc = "`core class VisualShaderNodeFaceForward` inherits `VisualShaderNode` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_visualshadernodefaceforward.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nVisualShaderNodeFaceForward inherits methods from:\n - [VisualShaderNode](struct.VisualShaderNode.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct VisualShaderNodeFaceForward { this : RawObject < Self > , } impl VisualShaderNodeFaceForward { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = VisualShaderNodeFaceForwardMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } } impl gdnative_core :: private :: godot_object :: Sealed for VisualShaderNodeFaceForward { } unsafe impl GodotObject for VisualShaderNodeFaceForward { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "VisualShaderNodeFaceForward" } } impl std :: ops :: Deref for VisualShaderNodeFaceForward { type Target = crate :: generated :: visual_shader_node :: VisualShaderNode ; # [inline] fn deref (& self) -> & crate :: generated :: visual_shader_node :: VisualShaderNode { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for VisualShaderNodeFaceForward { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: visual_shader_node :: VisualShaderNode { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: visual_shader_node :: VisualShaderNode > for VisualShaderNodeFaceForward { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for VisualShaderNodeFaceForward { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for VisualShaderNodeFaceForward { } unsafe impl SubClass < crate :: generated :: object :: Object > for VisualShaderNodeFaceForward { } impl Instanciable for VisualShaderNodeFaceForward { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { VisualShaderNodeFaceForward :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct VisualShaderNodeFaceForwardMethodTable { pub class_constructor : sys :: godot_class_constructor , } impl VisualShaderNodeFaceForwardMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : VisualShaderNodeFaceForwardMethodTable = VisualShaderNodeFaceForwardMethodTable { class_constructor : None , } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { VisualShaderNodeFaceForwardMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "VisualShaderNodeFaceForward\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:262:12142 [INFO] [stdout] | [INFO] [stdout] 262 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 262 | # [doc = "`core class AudioEffectChorus` inherits `AudioEffect` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_audioeffectchorus.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nAudioEffectChorus inherits methods from:\n - [AudioEffect](struct.AudioEffect.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct AudioEffectChorus { this : RawObject < Self > , } impl AudioEffectChorus { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = AudioEffectChorusMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "The effect's raw signal."] # [doc = ""] # [inline] pub fn dry (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . get_dry ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The amount of voices in the effect."] # [doc = ""] # [inline] pub fn voice_count (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . get_voice_count ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The voice's cutoff frequency."] # [doc = ""] # [inline] pub fn voice_cutoff_hz (& self , voice_idx : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . get_voice_cutoff_hz ; let ret = crate :: icalls :: icallptr_f64_i64 (method_bind , self . this . sys () . as_ptr () , voice_idx) ; ret as _ } } # [doc = "The voice's signal delay."] # [doc = ""] # [inline] pub fn voice_delay_ms (& self , voice_idx : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . get_voice_delay_ms ; let ret = crate :: icalls :: icallptr_f64_i64 (method_bind , self . this . sys () . as_ptr () , voice_idx) ; ret as _ } } # [doc = "The voice filter's depth."] # [doc = ""] # [inline] pub fn voice_depth_ms (& self , voice_idx : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . get_voice_depth_ms ; let ret = crate :: icalls :: icallptr_f64_i64 (method_bind , self . this . sys () . as_ptr () , voice_idx) ; ret as _ } } # [doc = "The voice's volume."] # [doc = ""] # [inline] pub fn voice_level_db (& self , voice_idx : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . get_voice_level_db ; let ret = crate :: icalls :: icallptr_f64_i64 (method_bind , self . this . sys () . as_ptr () , voice_idx) ; ret as _ } } # [doc = "The voice's pan level."] # [doc = ""] # [inline] pub fn voice_pan (& self , voice_idx : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . get_voice_pan ; let ret = crate :: icalls :: icallptr_f64_i64 (method_bind , self . this . sys () . as_ptr () , voice_idx) ; ret as _ } } # [doc = "The voice's filter rate."] # [doc = ""] # [inline] pub fn voice_rate_hz (& self , voice_idx : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . get_voice_rate_hz ; let ret = crate :: icalls :: icallptr_f64_i64 (method_bind , self . this . sys () . as_ptr () , voice_idx) ; ret as _ } } # [doc = "The effect's processed signal."] # [doc = ""] # [inline] pub fn wet (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . get_wet ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The effect's raw signal."] # [doc = ""] # [inline] pub fn set_dry (& self , amount : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . set_dry ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , amount) ; } } # [doc = "The amount of voices in the effect."] # [doc = ""] # [inline] pub fn set_voice_count (& self , voices : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . set_voice_count ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , voices) ; } } # [doc = "The voice's cutoff frequency."] # [doc = ""] # [inline] pub fn set_voice_cutoff_hz (& self , voice_idx : i64 , cutoff_hz : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . set_voice_cutoff_hz ; let ret = crate :: icalls :: icallptr_void_i64_f64 (method_bind , self . this . sys () . as_ptr () , voice_idx , cutoff_hz) ; } } # [doc = "The voice's signal delay."] # [doc = ""] # [inline] pub fn set_voice_delay_ms (& self , voice_idx : i64 , delay_ms : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . set_voice_delay_ms ; let ret = crate :: icalls :: icallptr_void_i64_f64 (method_bind , self . this . sys () . as_ptr () , voice_idx , delay_ms) ; } } # [doc = "The voice filter's depth."] # [doc = ""] # [inline] pub fn set_voice_depth_ms (& self , voice_idx : i64 , depth_ms : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . set_voice_depth_ms ; let ret = crate :: icalls :: icallptr_void_i64_f64 (method_bind , self . this . sys () . as_ptr () , voice_idx , depth_ms) ; } } # [doc = "The voice's volume."] # [doc = ""] # [inline] pub fn set_voice_level_db (& self , voice_idx : i64 , level_db : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . set_voice_level_db ; let ret = crate :: icalls :: icallptr_void_i64_f64 (method_bind , self . this . sys () . as_ptr () , voice_idx , level_db) ; } } # [doc = "The voice's pan level."] # [doc = ""] # [inline] pub fn set_voice_pan (& self , voice_idx : i64 , pan : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . set_voice_pan ; let ret = crate :: icalls :: icallptr_void_i64_f64 (method_bind , self . this . sys () . as_ptr () , voice_idx , pan) ; } } # [doc = "The voice's filter rate."] # [doc = ""] # [inline] pub fn set_voice_rate_hz (& self , voice_idx : i64 , rate_hz : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . set_voice_rate_hz ; let ret = crate :: icalls :: icallptr_void_i64_f64 (method_bind , self . this . sys () . as_ptr () , voice_idx , rate_hz) ; } } # [doc = "The effect's processed signal."] # [doc = ""] # [inline] pub fn set_wet (& self , amount : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectChorusMethodTable :: get (get_api ()) . set_wet ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , amount) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for AudioEffectChorus { } unsafe impl GodotObject for AudioEffectChorus { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "AudioEffectChorus" } } impl std :: ops :: Deref for AudioEffectChorus { type Target = crate :: generated :: audio_effect :: AudioEffect ; # [inline] fn deref (& self) -> & crate :: generated :: audio_effect :: AudioEffect { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for AudioEffectChorus { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: audio_effect :: AudioEffect { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: audio_effect :: AudioEffect > for AudioEffectChorus { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for AudioEffectChorus { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for AudioEffectChorus { } unsafe impl SubClass < crate :: generated :: object :: Object > for AudioEffectChorus { } impl Instanciable for AudioEffectChorus { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { AudioEffectChorus :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct AudioEffectChorusMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_dry : * mut sys :: godot_method_bind , pub get_voice_count : * mut sys :: godot_method_bind , pub get_voice_cutoff_hz : * mut sys :: godot_method_bind , pub get_voice_delay_ms : * mut sys :: godot_method_bind , pub get_voice_depth_ms : * mut sys :: godot_method_bind , pub get_voice_level_db : * mut sys :: godot_method_bind , pub get_voice_pan : * mut sys :: godot_method_bind , pub get_voice_rate_hz : * mut sys :: godot_method_bind , pub get_wet : * mut sys :: godot_method_bind , pub set_dry : * mut sys :: godot_method_bind , pub set_voice_count : * mut sys :: godot_method_bind , pub set_voice_cutoff_hz : * mut sys :: godot_method_bind , pub set_voice_delay_ms : * mut sys :: godot_method_bind , pub set_voice_depth_ms : * mut sys :: godot_method_bind , pub set_voice_level_db : * mut sys :: godot_method_bind , pub set_voice_pan : * mut sys :: godot_method_bind , pub set_voice_rate_hz : * mut sys :: godot_method_bind , pub set_wet : * mut sys :: godot_method_bind } impl AudioEffectChorusMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : AudioEffectChorusMethodTable = AudioEffectChorusMethodTable { class_constructor : None , get_dry : 0 as * mut sys :: godot_method_bind , get_voice_count : 0 as * mut sys :: godot_method_bind , get_voice_cutoff_hz : 0 as * mut sys :: godot_method_bind , get_voice_delay_ms : 0 as * mut sys :: godot_method_bind , get_voice_depth_ms : 0 as * mut sys :: godot_method_bind , get_voice_level_db : 0 as * mut sys :: godot_method_bind , get_voice_pan : 0 as * mut sys :: godot_method_bind , get_voice_rate_hz : 0 as * mut sys :: godot_method_bind , get_wet : 0 as * mut sys :: godot_method_bind , set_dry : 0 as * mut sys :: godot_method_bind , set_voice_count : 0 as * mut sys :: godot_method_bind , set_voice_cutoff_hz : 0 as * mut sys :: godot_method_bind , set_voice_delay_ms : 0 as * mut sys :: godot_method_bind , set_voice_depth_ms : 0 as * mut sys :: godot_method_bind , set_voice_level_db : 0 as * mut sys :: godot_method_bind , set_voice_pan : 0 as * mut sys :: godot_method_bind , set_voice_rate_hz : 0 as * mut sys :: godot_method_bind , set_wet : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { AudioEffectChorusMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "AudioEffectChorus\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_dry = (gd_api . godot_method_bind_get_method) (class_name , "get_dry\0" . as_ptr () as * const c_char) ; table . get_voice_count = (gd_api . godot_method_bind_get_method) (class_name , "get_voice_count\0" . as_ptr () as * const c_char) ; table . get_voice_cutoff_hz = (gd_api . godot_method_bind_get_method) (class_name , "get_voice_cutoff_hz\0" . as_ptr () as * const c_char) ; table . get_voice_delay_ms = (gd_api . godot_method_bind_get_method) (class_name , "get_voice_delay_ms\0" . as_ptr () as * const c_char) ; table . get_voice_depth_ms = (gd_api . godot_method_bind_get_method) (class_name , "get_voice_depth_ms\0" . as_ptr () as * const c_char) ; table . get_voice_level_db = (gd_api . godot_method_bind_get_method) (class_name , "get_voice_level_db\0" . as_ptr () as * const c_char) ; table . get_voice_pan = (gd_api . godot_method_bind_get_method) (class_name , "get_voice_pan\0" . as_ptr () as * const c_char) ; table . get_voice_rate_hz = (gd_api . godot_method_bind_get_method) (class_name , "get_voice_rate_hz\0" . as_ptr () as * const c_char) ; table . get_wet = (gd_api . godot_method_bind_get_method) (class_name , "get_wet\0" . as_ptr () as * const c_char) ; table . set_dry = (gd_api . godot_method_bind_get_method) (class_name , "set_dry\0" . as_ptr () as * const c_char) ; table . set_voice_count = (gd_api . godot_method_bind_get_method) (class_name , "set_voice_count\0" . as_ptr () as * const c_char) ; table . set_voice_cutoff_hz = (gd_api . godot_method_bind_get_method) (class_name , "set_voice_cutoff_hz\0" . as_ptr () as * const c_char) ; table . set_voice_delay_ms = (gd_api . godot_method_bind_get_method) (class_name , "set_voice_delay_ms\0" . as_ptr () as * const c_char) ; table . set_voice_depth_ms = (gd_api . godot_method_bind_get_method) (class_name , "set_voice_depth_ms\0" . as_ptr () as * const c_char) ; table . set_voice_level_db = (gd_api . godot_method_bind_get_method) (class_name , "set_voice_level_db\0" . as_ptr () as * const c_char) ; table . set_voice_pan = (gd_api . godot_method_bind_get_method) (class_name , "set_voice_pan\0" . as_ptr () as * const c_char) ; table . set_voice_rate_hz = (gd_api . godot_method_bind_get_method) (class_name , "set_voice_rate_hz\0" . as_ptr () as * const c_char) ; table . set_wet = (gd_api . godot_method_bind_get_method) (class_name , "set_wet\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:268:13215 [INFO] [stdout] | [INFO] [stdout] 268 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 268 | # [doc = "`tools class EditorProperty` inherits `Container` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_editorproperty.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = ""] # [doc = "\n## Class hierarchy\n\nEditorProperty inherits methods from:\n - [Container](struct.Container.html)\n - [Control](struct.Control.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = "\n## Tool\n\nThis class is used to interact with Godot's editor."] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct EditorProperty { this : RawObject < Self > , } impl EditorProperty { # [doc = "If any of the controls added can gain keyboard focus, add it here. This ensures that focus will be restored if the inspector is refreshed."] # [doc = ""] # [inline] pub fn add_focusable (& self , control : impl AsArg < crate :: generated :: control :: Control >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . add_focusable ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , control . as_arg_ptr ()) ; } } # [doc = "If one or several properties have changed, this must be called. `field` is used in case your editor can modify fields separately (as an example, Vector3.x). The `changing` argument avoids the editor requesting this property to be refreshed (leave as `false` if unsure).\n# Default Arguments\n* `field` - `\"\"`\n* `changing` - `false`"] # [doc = ""] # [inline] pub fn emit_changed (& self , property : impl Into < GodotString > , value : impl OwnedToVariant , field : impl Into < GodotString > , changing : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . emit_changed ; let ret = crate :: icalls :: icallptr_void_str_var_str_bool (method_bind , self . this . sys () . as_ptr () , property . into () , value . owned_to_variant () , field . into () , changing) ; } } # [doc = "Gets the edited object."] # [doc = ""] # [inline] pub fn get_edited_object (& self) -> Option < Ref < crate :: generated :: object :: Object , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . get_edited_object ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: object :: Object , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Gets the edited property. If your editor is for a single property (added via [method EditorInspectorPlugin.parse_property]), then this will return the property."] # [doc = ""] # [inline] pub fn get_edited_property (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . get_edited_property ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = "Set this property to change the label (if you want to show one)."] # [doc = ""] # [inline] pub fn label (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . get_label ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = "Override if you want to allow a custom tooltip over your property."] # [doc = ""] # [inline] pub fn get_tooltip_text (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . get_tooltip_text ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = "Used by the inspector, set to `true` when the property is checkable."] # [doc = ""] # [inline] pub fn is_checkable (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . is_checkable ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Used by the inspector, set to `true` when the property is checked."] # [doc = ""] # [inline] pub fn is_checked (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . is_checked ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Used by the inspector, set to `true` when the property must draw with error color. This is used for editable children's properties."] # [doc = ""] # [inline] pub fn is_draw_red (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . is_draw_red ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Used by the inspector, set to `true` when the property can add keys for animation."] # [doc = ""] # [inline] pub fn is_keying (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . is_keying ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Used by the inspector, set to `true` when the property is read-only."] # [doc = ""] # [inline] pub fn is_read_only (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . is_read_only ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Adds controls with this function if you want them on the bottom (below the label)."] # [doc = ""] # [inline] pub fn set_bottom_editor (& self , editor : impl AsArg < crate :: generated :: control :: Control >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . set_bottom_editor ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , editor . as_arg_ptr ()) ; } } # [doc = "Used by the inspector, set to `true` when the property is checkable."] # [doc = ""] # [inline] pub fn set_checkable (& self , checkable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . set_checkable ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , checkable) ; } } # [doc = "Used by the inspector, set to `true` when the property is checked."] # [doc = ""] # [inline] pub fn set_checked (& self , checked : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . set_checked ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , checked) ; } } # [doc = "Used by the inspector, set to `true` when the property must draw with error color. This is used for editable children's properties."] # [doc = ""] # [inline] pub fn set_draw_red (& self , draw_red : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . set_draw_red ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , draw_red) ; } } # [doc = "Used by the inspector, set to `true` when the property can add keys for animation."] # [doc = ""] # [inline] pub fn set_keying (& self , keying : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . set_keying ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , keying) ; } } # [doc = "Set this property to change the label (if you want to show one)."] # [doc = ""] # [inline] pub fn set_label (& self , text : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . set_label ; let ret = crate :: icalls :: icallptr_void_str (method_bind , self . this . sys () . as_ptr () , text . into ()) ; } } # [doc = "Used by the inspector, set to `true` when the property is read-only."] # [doc = ""] # [inline] pub fn set_read_only (& self , read_only : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorPropertyMethodTable :: get (get_api ()) . set_read_only ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , read_only) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for EditorProperty { } unsafe impl GodotObject for EditorProperty { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "EditorProperty" } } impl QueueFree for EditorProperty { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for EditorProperty { type Target = crate :: generated :: container :: Container ; # [inline] fn deref (& self) -> & crate :: generated :: container :: Container { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for EditorProperty { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: container :: Container { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: container :: Container > for EditorProperty { } unsafe impl SubClass < crate :: generated :: control :: Control > for EditorProperty { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for EditorProperty { } unsafe impl SubClass < crate :: generated :: node :: Node > for EditorProperty { } unsafe impl SubClass < crate :: generated :: object :: Object > for EditorProperty { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct EditorPropertyMethodTable { pub class_constructor : sys :: godot_class_constructor , pub add_focusable : * mut sys :: godot_method_bind , pub emit_changed : * mut sys :: godot_method_bind , pub get_edited_object : * mut sys :: godot_method_bind , pub get_edited_property : * mut sys :: godot_method_bind , pub get_label : * mut sys :: godot_method_bind , pub get_tooltip_text : * mut sys :: godot_method_bind , pub is_checkable : * mut sys :: godot_method_bind , pub is_checked : * mut sys :: godot_method_bind , pub is_draw_red : * mut sys :: godot_method_bind , pub is_keying : * mut sys :: godot_method_bind , pub is_read_only : * mut sys :: godot_method_bind , pub set_bottom_editor : * mut sys :: godot_method_bind , pub set_checkable : * mut sys :: godot_method_bind , pub set_checked : * mut sys :: godot_method_bind , pub set_draw_red : * mut sys :: godot_method_bind , pub set_keying : * mut sys :: godot_method_bind , pub set_label : * mut sys :: godot_method_bind , pub set_read_only : * mut sys :: godot_method_bind } impl EditorPropertyMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : EditorPropertyMethodTable = EditorPropertyMethodTable { class_constructor : None , add_focusable : 0 as * mut sys :: godot_method_bind , emit_changed : 0 as * mut sys :: godot_method_bind , get_edited_object : 0 as * mut sys :: godot_method_bind , get_edited_property : 0 as * mut sys :: godot_method_bind , get_label : 0 as * mut sys :: godot_method_bind , get_tooltip_text : 0 as * mut sys :: godot_method_bind , is_checkable : 0 as * mut sys :: godot_method_bind , is_checked : 0 as * mut sys :: godot_method_bind , is_draw_red : 0 as * mut sys :: godot_method_bind , is_keying : 0 as * mut sys :: godot_method_bind , is_read_only : 0 as * mut sys :: godot_method_bind , set_bottom_editor : 0 as * mut sys :: godot_method_bind , set_checkable : 0 as * mut sys :: godot_method_bind , set_checked : 0 as * mut sys :: godot_method_bind , set_draw_red : 0 as * mut sys :: godot_method_bind , set_keying : 0 as * mut sys :: godot_method_bind , set_label : 0 as * mut sys :: godot_method_bind , set_read_only : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { EditorPropertyMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "EditorProperty\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . add_focusable = (gd_api . godot_method_bind_get_method) (class_name , "add_focusable\0" . as_ptr () as * const c_char) ; table . emit_changed = (gd_api . godot_method_bind_get_method) (class_name , "emit_changed\0" . as_ptr () as * const c_char) ; table . get_edited_object = (gd_api . godot_method_bind_get_method) (class_name , "get_edited_object\0" . as_ptr () as * const c_char) ; table . get_edited_property = (gd_api . godot_method_bind_get_method) (class_name , "get_edited_property\0" . as_ptr () as * const c_char) ; table . get_label = (gd_api . godot_method_bind_get_method) (class_name , "get_label\0" . as_ptr () as * const c_char) ; table . get_tooltip_text = (gd_api . godot_method_bind_get_method) (class_name , "get_tooltip_text\0" . as_ptr () as * const c_char) ; table . is_checkable = (gd_api . godot_method_bind_get_method) (class_name , "is_checkable\0" . as_ptr () as * const c_char) ; table . is_checked = (gd_api . godot_method_bind_get_method) (class_name , "is_checked\0" . as_ptr () as * const c_char) ; table . is_draw_red = (gd_api . godot_method_bind_get_method) (class_name , "is_draw_red\0" . as_ptr () as * const c_char) ; table . is_keying = (gd_api . godot_method_bind_get_method) (class_name , "is_keying\0" . as_ptr () as * const c_char) ; table . is_read_only = (gd_api . godot_method_bind_get_method) (class_name , "is_read_only\0" . as_ptr () as * const c_char) ; table . set_bottom_editor = (gd_api . godot_method_bind_get_method) (class_name , "set_bottom_editor\0" . as_ptr () as * const c_char) ; table . set_checkable = (gd_api . godot_method_bind_get_method) (class_name , "set_checkable\0" . as_ptr () as * const c_char) ; table . set_checked = (gd_api . godot_method_bind_get_method) (class_name , "set_checked\0" . as_ptr () as * const c_char) ; table . set_draw_red = (gd_api . godot_method_bind_get_method) (class_name , "set_draw_red\0" . as_ptr () as * const c_char) ; table . set_keying = (gd_api . godot_method_bind_get_method) (class_name , "set_keying\0" . as_ptr () as * const c_char) ; table . set_label = (gd_api . godot_method_bind_get_method) (class_name , "set_label\0" . as_ptr () as * const c_char) ; table . set_read_only = (gd_api . godot_method_bind_get_method) (class_name , "set_read_only\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:274:16373 [INFO] [stdout] | [INFO] [stdout] 274 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 274 | # [doc = "`core class CollisionObject2D` inherits `Node2D` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_collisionobject2d.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = ""] # [doc = "\n## Class hierarchy\n\nCollisionObject2D inherits methods from:\n - [Node2D](struct.Node2D.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct CollisionObject2D { this : RawObject < Self > , } impl CollisionObject2D { # [doc = "Creates a new shape owner for the given object. Returns `owner_id` of the new owner for future reference."] # [doc = ""] # [inline] pub fn create_shape_owner (& self , owner : impl AsArg < crate :: generated :: object :: Object >) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . create_shape_owner ; let ret = crate :: icalls :: icallptr_i64_obj (method_bind , self . this . sys () . as_ptr () , owner . as_arg_ptr ()) ; ret as _ } } # [doc = "Returns the object's [RID]."] # [doc = ""] # [inline] pub fn get_rid (& self) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . get_rid ; let ret = crate :: icalls :: icallptr_rid (method_bind , self . this . sys () . as_ptr ()) ; Rid :: from_sys (ret) } } # [doc = "Returns the `one_way_collision_margin` of the shape owner identified by given `owner_id`."] # [doc = ""] # [inline] pub fn get_shape_owner_one_way_collision_margin (& self , owner_id : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . get_shape_owner_one_way_collision_margin ; let ret = crate :: icalls :: icallptr_f64_i64 (method_bind , self . this . sys () . as_ptr () , owner_id) ; ret as _ } } # [doc = "Returns an [Array] of `owner_id` identifiers. You can use these ids in other methods that take `owner_id` as an argument."] # [doc = ""] # [inline] pub fn get_shape_owners (& self) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . get_shape_owners ; let ret = crate :: icalls :: icallvar_ (method_bind , self . this . sys () . as_ptr ()) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = "If `true`, this object is pickable. A pickable object can detect the mouse pointer entering/leaving, and if the mouse is inside it, report input events. Requires at least one `collision_layer` bit to be set."] # [doc = ""] # [inline] pub fn is_pickable (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . is_pickable ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, the shape owner and its shapes are disabled."] # [doc = ""] # [inline] pub fn is_shape_owner_disabled (& self , owner_id : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . is_shape_owner_disabled ; let ret = crate :: icalls :: icallptr_bool_i64 (method_bind , self . this . sys () . as_ptr () , owner_id) ; ret as _ } } # [doc = "Returns `true` if collisions for the shape owner originating from this [CollisionObject2D] will not be reported to collided with [CollisionObject2D]s."] # [doc = ""] # [inline] pub fn is_shape_owner_one_way_collision_enabled (& self , owner_id : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . is_shape_owner_one_way_collision_enabled ; let ret = crate :: icalls :: icallptr_bool_i64 (method_bind , self . this . sys () . as_ptr () , owner_id) ; ret as _ } } # [doc = "Removes the given shape owner."] # [doc = ""] # [inline] pub fn remove_shape_owner (& self , owner_id : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . remove_shape_owner ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , owner_id) ; } } # [doc = "If `true`, this object is pickable. A pickable object can detect the mouse pointer entering/leaving, and if the mouse is inside it, report input events. Requires at least one `collision_layer` bit to be set."] # [doc = ""] # [inline] pub fn set_pickable (& self , enabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . set_pickable ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enabled) ; } } # [doc = "Returns the `owner_id` of the given shape."] # [doc = ""] # [inline] pub fn shape_find_owner (& self , shape_index : i64) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . shape_find_owner ; let ret = crate :: icalls :: icallptr_i64_i64 (method_bind , self . this . sys () . as_ptr () , shape_index) ; ret as _ } } # [doc = "Adds a [Shape2D] to the shape owner."] # [doc = ""] # [inline] pub fn shape_owner_add_shape (& self , owner_id : i64 , shape : impl AsArg < crate :: generated :: shape_2d :: Shape2D >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . shape_owner_add_shape ; let ret = crate :: icalls :: icallptr_void_i64_obj (method_bind , self . this . sys () . as_ptr () , owner_id , shape . as_arg_ptr ()) ; } } # [doc = "Removes all shapes from the shape owner."] # [doc = ""] # [inline] pub fn shape_owner_clear_shapes (& self , owner_id : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . shape_owner_clear_shapes ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , owner_id) ; } } # [doc = "Returns the parent object of the given shape owner."] # [doc = ""] # [inline] pub fn shape_owner_get_owner (& self , owner_id : i64) -> Option < Ref < crate :: generated :: object :: Object , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . shape_owner_get_owner ; let ret = crate :: icalls :: icallptr_obj_i64 (method_bind , self . this . sys () . as_ptr () , owner_id) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: object :: Object , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the [Shape2D] with the given id from the given shape owner."] # [doc = ""] # [inline] pub fn shape_owner_get_shape (& self , owner_id : i64 , shape_id : i64) -> Option < Ref < crate :: generated :: shape_2d :: Shape2D , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . shape_owner_get_shape ; let ret = crate :: icalls :: icallptr_obj_i64_i64 (method_bind , self . this . sys () . as_ptr () , owner_id , shape_id) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: shape_2d :: Shape2D , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the number of shapes the given shape owner contains."] # [doc = ""] # [inline] pub fn shape_owner_get_shape_count (& self , owner_id : i64) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . shape_owner_get_shape_count ; let ret = crate :: icalls :: icallptr_i64_i64 (method_bind , self . this . sys () . as_ptr () , owner_id) ; ret as _ } } # [doc = "Returns the child index of the [Shape2D] with the given id from the given shape owner."] # [doc = ""] # [inline] pub fn shape_owner_get_shape_index (& self , owner_id : i64 , shape_id : i64) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . shape_owner_get_shape_index ; let ret = crate :: icalls :: icallptr_i64_i64_i64 (method_bind , self . this . sys () . as_ptr () , owner_id , shape_id) ; ret as _ } } # [doc = "Returns the shape owner's [Transform2D]."] # [doc = ""] # [inline] pub fn shape_owner_get_transform (& self , owner_id : i64) -> Transform2D { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . shape_owner_get_transform ; let ret = crate :: icalls :: icallptr_trans2D_i64 (method_bind , self . this . sys () . as_ptr () , owner_id) ; mem :: transmute (ret) } } # [doc = "Removes a shape from the given shape owner."] # [doc = ""] # [inline] pub fn shape_owner_remove_shape (& self , owner_id : i64 , shape_id : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . shape_owner_remove_shape ; let ret = crate :: icalls :: icallptr_void_i64_i64 (method_bind , self . this . sys () . as_ptr () , owner_id , shape_id) ; } } # [doc = "If `true`, disables the given shape owner."] # [doc = ""] # [inline] pub fn shape_owner_set_disabled (& self , owner_id : i64 , disabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . shape_owner_set_disabled ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , owner_id , disabled) ; } } # [doc = "If `enable` is `true`, collisions for the shape owner originating from this [CollisionObject2D] will not be reported to collided with [CollisionObject2D]s."] # [doc = ""] # [inline] pub fn shape_owner_set_one_way_collision (& self , owner_id : i64 , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . shape_owner_set_one_way_collision ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , owner_id , enable) ; } } # [doc = "Sets the `one_way_collision_margin` of the shape owner identified by given `owner_id` to `margin` pixels."] # [doc = ""] # [inline] pub fn shape_owner_set_one_way_collision_margin (& self , owner_id : i64 , margin : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . shape_owner_set_one_way_collision_margin ; let ret = crate :: icalls :: icallptr_void_i64_f64 (method_bind , self . this . sys () . as_ptr () , owner_id , margin) ; } } # [doc = "Sets the [Transform2D] of the given shape owner."] # [doc = ""] # [inline] pub fn shape_owner_set_transform (& self , owner_id : i64 , transform : Transform2D) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CollisionObject2DMethodTable :: get (get_api ()) . shape_owner_set_transform ; let ret = crate :: icalls :: icallptr_void_i64_trans2D (method_bind , self . this . sys () . as_ptr () , owner_id , transform) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for CollisionObject2D { } unsafe impl GodotObject for CollisionObject2D { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "CollisionObject2D" } } impl QueueFree for CollisionObject2D { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for CollisionObject2D { type Target = crate :: generated :: node_2d :: Node2D ; # [inline] fn deref (& self) -> & crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for CollisionObject2D { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: node_2d :: Node2D > for CollisionObject2D { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for CollisionObject2D { } unsafe impl SubClass < crate :: generated :: node :: Node > for CollisionObject2D { } unsafe impl SubClass < crate :: generated :: object :: Object > for CollisionObject2D { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct CollisionObject2DMethodTable { pub class_constructor : sys :: godot_class_constructor , pub create_shape_owner : * mut sys :: godot_method_bind , pub get_rid : * mut sys :: godot_method_bind , pub get_shape_owner_one_way_collision_margin : * mut sys :: godot_method_bind , pub get_shape_owners : * mut sys :: godot_method_bind , pub is_pickable : * mut sys :: godot_method_bind , pub is_shape_owner_disabled : * mut sys :: godot_method_bind , pub is_shape_owner_one_way_collision_enabled : * mut sys :: godot_method_bind , pub remove_shape_owner : * mut sys :: godot_method_bind , pub set_pickable : * mut sys :: godot_method_bind , pub shape_find_owner : * mut sys :: godot_method_bind , pub shape_owner_add_shape : * mut sys :: godot_method_bind , pub shape_owner_clear_shapes : * mut sys :: godot_method_bind , pub shape_owner_get_owner : * mut sys :: godot_method_bind , pub shape_owner_get_shape : * mut sys :: godot_method_bind , pub shape_owner_get_shape_count : * mut sys :: godot_method_bind , pub shape_owner_get_shape_index : * mut sys :: godot_method_bind , pub shape_owner_get_transform : * mut sys :: godot_method_bind , pub shape_owner_remove_shape : * mut sys :: godot_method_bind , pub shape_owner_set_disabled : * mut sys :: godot_method_bind , pub shape_owner_set_one_way_collision : * mut sys :: godot_method_bind , pub shape_owner_set_one_way_collision_margin : * mut sys :: godot_method_bind , pub shape_owner_set_transform : * mut sys :: godot_method_bind } impl CollisionObject2DMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : CollisionObject2DMethodTable = CollisionObject2DMethodTable { class_constructor : None , create_shape_owner : 0 as * mut sys :: godot_method_bind , get_rid : 0 as * mut sys :: godot_method_bind , get_shape_owner_one_way_collision_margin : 0 as * mut sys :: godot_method_bind , get_shape_owners : 0 as * mut sys :: godot_method_bind , is_pickable : 0 as * mut sys :: godot_method_bind , is_shape_owner_disabled : 0 as * mut sys :: godot_method_bind , is_shape_owner_one_way_collision_enabled : 0 as * mut sys :: godot_method_bind , remove_shape_owner : 0 as * mut sys :: godot_method_bind , set_pickable : 0 as * mut sys :: godot_method_bind , shape_find_owner : 0 as * mut sys :: godot_method_bind , shape_owner_add_shape : 0 as * mut sys :: godot_method_bind , shape_owner_clear_shapes : 0 as * mut sys :: godot_method_bind , shape_owner_get_owner : 0 as * mut sys :: godot_method_bind , shape_owner_get_shape : 0 as * mut sys :: godot_method_bind , shape_owner_get_shape_count : 0 as * mut sys :: godot_method_bind , shape_owner_get_shape_index : 0 as * mut sys :: godot_method_bind , shape_owner_get_transform : 0 as * mut sys :: godot_method_bind , shape_owner_remove_shape : 0 as * mut sys :: godot_method_bind , shape_owner_set_disabled : 0 as * mut sys :: godot_method_bind , shape_owner_set_one_way_collision : 0 as * mut sys :: godot_method_bind , shape_owner_set_one_way_collision_margin : 0 as * mut sys :: godot_method_bind , shape_owner_set_transform : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { CollisionObject2DMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "CollisionObject2D\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . create_shape_owner = (gd_api . godot_method_bind_get_method) (class_name , "create_shape_owner\0" . as_ptr () as * const c_char) ; table . get_rid = (gd_api . godot_method_bind_get_method) (class_name , "get_rid\0" . as_ptr () as * const c_char) ; table . get_shape_owner_one_way_collision_margin = (gd_api . godot_method_bind_get_method) (class_name , "get_shape_owner_one_way_collision_margin\0" . as_ptr () as * const c_char) ; table . get_shape_owners = (gd_api . godot_method_bind_get_method) (class_name , "get_shape_owners\0" . as_ptr () as * const c_char) ; table . is_pickable = (gd_api . godot_method_bind_get_method) (class_name , "is_pickable\0" . as_ptr () as * const c_char) ; table . is_shape_owner_disabled = (gd_api . godot_method_bind_get_method) (class_name , "is_shape_owner_disabled\0" . as_ptr () as * const c_char) ; table . is_shape_owner_one_way_collision_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_shape_owner_one_way_collision_enabled\0" . as_ptr () as * const c_char) ; table . remove_shape_owner = (gd_api . godot_method_bind_get_method) (class_name , "remove_shape_owner\0" . as_ptr () as * const c_char) ; table . set_pickable = (gd_api . godot_method_bind_get_method) (class_name , "set_pickable\0" . as_ptr () as * const c_char) ; table . shape_find_owner = (gd_api . godot_method_bind_get_method) (class_name , "shape_find_owner\0" . as_ptr () as * const c_char) ; table . shape_owner_add_shape = (gd_api . godot_method_bind_get_method) (class_name , "shape_owner_add_shape\0" . as_ptr () as * const c_char) ; table . shape_owner_clear_shapes = (gd_api . godot_method_bind_get_method) (class_name , "shape_owner_clear_shapes\0" . as_ptr () as * const c_char) ; table . shape_owner_get_owner = (gd_api . godot_method_bind_get_method) (class_name , "shape_owner_get_owner\0" . as_ptr () as * const c_char) ; table . shape_owner_get_shape = (gd_api . godot_method_bind_get_method) (class_name , "shape_owner_get_shape\0" . as_ptr () as * const c_char) ; table . shape_owner_get_shape_count = (gd_api . godot_method_bind_get_method) (class_name , "shape_owner_get_shape_count\0" . as_ptr () as * const c_char) ; table . shape_owner_get_shape_index = (gd_api . godot_method_bind_get_method) (class_name , "shape_owner_get_shape_index\0" . as_ptr () as * const c_char) ; table . shape_owner_get_transform = (gd_api . godot_method_bind_get_method) (class_name , "shape_owner_get_transform\0" . as_ptr () as * const c_char) ; table . shape_owner_remove_shape = (gd_api . godot_method_bind_get_method) (class_name , "shape_owner_remove_shape\0" . as_ptr () as * const c_char) ; table . shape_owner_set_disabled = (gd_api . godot_method_bind_get_method) (class_name , "shape_owner_set_disabled\0" . as_ptr () as * const c_char) ; table . shape_owner_set_one_way_collision = (gd_api . godot_method_bind_get_method) (class_name , "shape_owner_set_one_way_collision\0" . as_ptr () as * const c_char) ; table . shape_owner_set_one_way_collision_margin = (gd_api . godot_method_bind_get_method) (class_name , "shape_owner_set_one_way_collision_margin\0" . as_ptr () as * const c_char) ; table . shape_owner_set_transform = (gd_api . godot_method_bind_get_method) (class_name , "shape_owner_set_transform\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:280:4704 [INFO] [stdout] | [INFO] [stdout] 280 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 280 | # [doc = "`core class VisualScriptEngineSingleton` inherits `VisualScriptNode` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_visualscriptenginesingleton.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nVisualScriptEngineSingleton inherits methods from:\n - [VisualScriptNode](struct.VisualScriptNode.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct VisualScriptEngineSingleton { this : RawObject < Self > , } impl VisualScriptEngineSingleton { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = VisualScriptEngineSingletonMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = ""] # [doc = ""] # [inline] pub fn singleton (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualScriptEngineSingletonMethodTable :: get (get_api ()) . get_singleton ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn set_singleton (& self , name : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = VisualScriptEngineSingletonMethodTable :: get (get_api ()) . set_singleton ; let ret = crate :: icalls :: icallptr_void_str (method_bind , self . this . sys () . as_ptr () , name . into ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for VisualScriptEngineSingleton { } unsafe impl GodotObject for VisualScriptEngineSingleton { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "VisualScriptEngineSingleton" } } impl std :: ops :: Deref for VisualScriptEngineSingleton { type Target = crate :: generated :: visual_script_node :: VisualScriptNode ; # [inline] fn deref (& self) -> & crate :: generated :: visual_script_node :: VisualScriptNode { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for VisualScriptEngineSingleton { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: visual_script_node :: VisualScriptNode { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: visual_script_node :: VisualScriptNode > for VisualScriptEngineSingleton { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for VisualScriptEngineSingleton { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for VisualScriptEngineSingleton { } unsafe impl SubClass < crate :: generated :: object :: Object > for VisualScriptEngineSingleton { } impl Instanciable for VisualScriptEngineSingleton { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { VisualScriptEngineSingleton :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct VisualScriptEngineSingletonMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_singleton : * mut sys :: godot_method_bind , pub set_singleton : * mut sys :: godot_method_bind } impl VisualScriptEngineSingletonMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : VisualScriptEngineSingletonMethodTable = VisualScriptEngineSingletonMethodTable { class_constructor : None , get_singleton : 0 as * mut sys :: godot_method_bind , set_singleton : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { VisualScriptEngineSingletonMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "VisualScriptEngineSingleton\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_singleton = (gd_api . godot_method_bind_get_method) (class_name , "get_singleton\0" . as_ptr () as * const c_char) ; table . set_singleton = (gd_api . godot_method_bind_get_method) (class_name , "set_singleton\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:286:4083 [INFO] [stdout] | [INFO] [stdout] 286 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 286 | # [doc = "`tools class EditorInspector` inherits `ScrollContainer` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_editorinspector.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = ""] # [doc = "\n## Class hierarchy\n\nEditorInspector inherits methods from:\n - [ScrollContainer](struct.ScrollContainer.html)\n - [Container](struct.Container.html)\n - [Control](struct.Control.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = "\n## Tool\n\nThis class is used to interact with Godot's editor."] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct EditorInspector { this : RawObject < Self > , } impl EditorInspector { # [doc = "Refreshes the inspector.\n**Note:** To save on CPU resources, calling this method will do nothing if the time specified in `docks/property_editor/auto_refresh_interval` editor setting hasn't passed yet since this method was last called. (By default, this interval is set to 0.3 seconds.)"] # [doc = ""] # [inline] pub fn refresh (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = EditorInspectorMethodTable :: get (get_api ()) . refresh ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for EditorInspector { } unsafe impl GodotObject for EditorInspector { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "EditorInspector" } } impl QueueFree for EditorInspector { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for EditorInspector { type Target = crate :: generated :: scroll_container :: ScrollContainer ; # [inline] fn deref (& self) -> & crate :: generated :: scroll_container :: ScrollContainer { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for EditorInspector { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: scroll_container :: ScrollContainer { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: scroll_container :: ScrollContainer > for EditorInspector { } unsafe impl SubClass < crate :: generated :: container :: Container > for EditorInspector { } unsafe impl SubClass < crate :: generated :: control :: Control > for EditorInspector { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for EditorInspector { } unsafe impl SubClass < crate :: generated :: node :: Node > for EditorInspector { } unsafe impl SubClass < crate :: generated :: object :: Object > for EditorInspector { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct EditorInspectorMethodTable { pub class_constructor : sys :: godot_class_constructor , pub refresh : * mut sys :: godot_method_bind } impl EditorInspectorMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : EditorInspectorMethodTable = EditorInspectorMethodTable { class_constructor : None , refresh : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { EditorInspectorMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "EditorInspector\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . refresh = (gd_api . godot_method_bind_get_method) (class_name , "refresh\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:292:3486 [INFO] [stdout] | [INFO] [stdout] 292 | ...thodTable { class_constructor : None , } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 292 | # [doc = "`core class ARVRInterfaceGDNative` inherits `ARVRInterface` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_arvrinterfacegdnative.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nARVRInterfaceGDNative inherits methods from:\n - [ARVRInterface](struct.ARVRInterface.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct ARVRInterfaceGDNative { this : RawObject < Self > , } impl ARVRInterfaceGDNative { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = ARVRInterfaceGDNativeMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } } impl gdnative_core :: private :: godot_object :: Sealed for ARVRInterfaceGDNative { } unsafe impl GodotObject for ARVRInterfaceGDNative { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "ARVRInterfaceGDNative" } } impl std :: ops :: Deref for ARVRInterfaceGDNative { type Target = crate :: generated :: arvr_interface :: ARVRInterface ; # [inline] fn deref (& self) -> & crate :: generated :: arvr_interface :: ARVRInterface { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for ARVRInterfaceGDNative { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: arvr_interface :: ARVRInterface { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: arvr_interface :: ARVRInterface > for ARVRInterfaceGDNative { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for ARVRInterfaceGDNative { } unsafe impl SubClass < crate :: generated :: object :: Object > for ARVRInterfaceGDNative { } impl Instanciable for ARVRInterfaceGDNative { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { ARVRInterfaceGDNative :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct ARVRInterfaceGDNativeMethodTable { pub class_constructor : sys :: godot_class_constructor , } impl ARVRInterfaceGDNativeMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : ARVRInterfaceGDNativeMethodTable = ARVRInterfaceGDNativeMethodTable { class_constructor : None , } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { ARVRInterfaceGDNativeMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "ARVRInterfaceGDNative\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:304:41714 [INFO] [stdout] | [INFO] [stdout] 304 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 304 | # [doc = "`core class CPUParticles` inherits `GeometryInstance` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_cpuparticles.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`CPUParticles` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nCPUParticles inherits methods from:\n - [GeometryInstance](struct.GeometryInstance.html)\n - [VisualInstance](struct.VisualInstance.html)\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct CPUParticles { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct DrawOrder (pub i64) ; impl DrawOrder { pub const INDEX : DrawOrder = DrawOrder (0i64) ; pub const LIFETIME : DrawOrder = DrawOrder (1i64) ; pub const VIEW_DEPTH : DrawOrder = DrawOrder (2i64) ; } impl From < i64 > for DrawOrder { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < DrawOrder > for i64 { # [inline] fn from (v : DrawOrder) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct EmissionShape (pub i64) ; impl EmissionShape { pub const POINT : EmissionShape = EmissionShape (0i64) ; pub const SPHERE : EmissionShape = EmissionShape (1i64) ; pub const BOX : EmissionShape = EmissionShape (2i64) ; pub const POINTS : EmissionShape = EmissionShape (3i64) ; pub const DIRECTED_POINTS : EmissionShape = EmissionShape (4i64) ; pub const MAX : EmissionShape = EmissionShape (5i64) ; } impl From < i64 > for EmissionShape { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < EmissionShape > for i64 { # [inline] fn from (v : EmissionShape) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct Flags (pub i64) ; impl Flags { pub const ALIGN_Y_TO_VELOCITY : Flags = Flags (0i64) ; pub const ROTATE_Y : Flags = Flags (1i64) ; pub const DISABLE_Z : Flags = Flags (2i64) ; pub const MAX : Flags = Flags (3i64) ; } impl From < i64 > for Flags { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < Flags > for i64 { # [inline] fn from (v : Flags) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct Parameter (pub i64) ; impl Parameter { pub const INITIAL_LINEAR_VELOCITY : Parameter = Parameter (0i64) ; pub const ANGULAR_VELOCITY : Parameter = Parameter (1i64) ; pub const ORBIT_VELOCITY : Parameter = Parameter (2i64) ; pub const LINEAR_ACCEL : Parameter = Parameter (3i64) ; pub const RADIAL_ACCEL : Parameter = Parameter (4i64) ; pub const TANGENTIAL_ACCEL : Parameter = Parameter (5i64) ; pub const DAMPING : Parameter = Parameter (6i64) ; pub const ANGLE : Parameter = Parameter (7i64) ; pub const SCALE : Parameter = Parameter (8i64) ; pub const HUE_VARIATION : Parameter = Parameter (9i64) ; pub const ANIM_SPEED : Parameter = Parameter (10i64) ; pub const ANIM_OFFSET : Parameter = Parameter (11i64) ; pub const MAX : Parameter = Parameter (12i64) ; } impl From < i64 > for Parameter { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < Parameter > for i64 { # [inline] fn from (v : Parameter) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl CPUParticles { pub const DRAW_ORDER_INDEX : i64 = 0i64 ; pub const DRAW_ORDER_LIFETIME : i64 = 1i64 ; pub const DRAW_ORDER_VIEW_DEPTH : i64 = 2i64 ; pub const EMISSION_SHAPE_BOX : i64 = 2i64 ; pub const EMISSION_SHAPE_DIRECTED_POINTS : i64 = 4i64 ; pub const EMISSION_SHAPE_MAX : i64 = 5i64 ; pub const EMISSION_SHAPE_POINT : i64 = 0i64 ; pub const EMISSION_SHAPE_POINTS : i64 = 3i64 ; pub const EMISSION_SHAPE_SPHERE : i64 = 1i64 ; pub const FLAG_ALIGN_Y_TO_VELOCITY : i64 = 0i64 ; pub const FLAG_DISABLE_Z : i64 = 2i64 ; pub const FLAG_MAX : i64 = 3i64 ; pub const FLAG_ROTATE_Y : i64 = 1i64 ; pub const PARAM_ANGLE : i64 = 7i64 ; pub const PARAM_ANGULAR_VELOCITY : i64 = 1i64 ; pub const PARAM_ANIM_OFFSET : i64 = 11i64 ; pub const PARAM_ANIM_SPEED : i64 = 10i64 ; pub const PARAM_DAMPING : i64 = 6i64 ; pub const PARAM_HUE_VARIATION : i64 = 9i64 ; pub const PARAM_INITIAL_LINEAR_VELOCITY : i64 = 0i64 ; pub const PARAM_LINEAR_ACCEL : i64 = 3i64 ; pub const PARAM_MAX : i64 = 12i64 ; pub const PARAM_ORBIT_VELOCITY : i64 = 2i64 ; pub const PARAM_RADIAL_ACCEL : i64 = 4i64 ; pub const PARAM_SCALE : i64 = 8i64 ; pub const PARAM_TANGENTIAL_ACCEL : i64 = 5i64 ; } impl CPUParticles { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = CPUParticlesMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Sets this node's properties to match a given [Particles] node with an assigned [ParticlesMaterial]."] # [doc = ""] # [inline] pub fn convert_from_particles (& self , particles : impl AsArg < crate :: generated :: node :: Node >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . convert_from_particles ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , particles . as_arg_ptr ()) ; } } # [doc = "Number of particles emitted in one emission cycle."] # [doc = ""] # [inline] pub fn amount (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_amount ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Unused for 3D particles."] # [doc = ""] # [inline] pub fn color (& self) -> Color { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_color ; let ret = crate :: icalls :: icallptr_color (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Unused for 3D particles."] # [doc = ""] # [inline] pub fn color_ramp (& self) -> Option < Ref < crate :: generated :: gradient :: Gradient , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_color_ramp ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: gradient :: Gradient , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Unit vector specifying the particles' emission direction."] # [doc = ""] # [inline] pub fn direction (& self) -> Vector3 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_direction ; let ret = crate :: icalls :: icallptr_vec3 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Particle draw order. Uses [enum DrawOrder] values."] # [doc = ""] # [inline] pub fn draw_order (& self) -> crate :: generated :: cpu_particles :: DrawOrder { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_draw_order ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: cpu_particles :: DrawOrder (ret) } } # [doc = "The rectangle's extents if [member emission_shape] is set to [constant EMISSION_SHAPE_BOX]."] # [doc = ""] # [inline] pub fn emission_box_extents (& self) -> Vector3 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_emission_box_extents ; let ret = crate :: icalls :: icallptr_vec3 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Sets the [Color]s to modulate particles by when using [constant EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS]."] # [doc = ""] # [inline] pub fn emission_colors (& self) -> ColorArray { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_emission_colors ; let ret = crate :: icalls :: icallptr_colorarr (method_bind , self . this . sys () . as_ptr ()) ; ColorArray :: from_sys (ret) } } # [doc = "Sets the direction the particles will be emitted in when using [constant EMISSION_SHAPE_DIRECTED_POINTS]."] # [doc = ""] # [inline] pub fn emission_normals (& self) -> Vector3Array { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_emission_normals ; let ret = crate :: icalls :: icallptr_vec3arr (method_bind , self . this . sys () . as_ptr ()) ; Vector3Array :: from_sys (ret) } } # [doc = "Sets the initial positions to spawn particles when using [constant EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS]."] # [doc = ""] # [inline] pub fn emission_points (& self) -> Vector3Array { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_emission_points ; let ret = crate :: icalls :: icallptr_vec3arr (method_bind , self . this . sys () . as_ptr ()) ; Vector3Array :: from_sys (ret) } } # [doc = "Particles will be emitted inside this region. See [enum EmissionShape] for possible values."] # [doc = ""] # [inline] pub fn emission_shape (& self) -> crate :: generated :: cpu_particles :: EmissionShape { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_emission_shape ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: cpu_particles :: EmissionShape (ret) } } # [doc = "The sphere's radius if [enum EmissionShape] is set to [constant EMISSION_SHAPE_SPHERE]."] # [doc = ""] # [inline] pub fn emission_sphere_radius (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_emission_sphere_radius ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "How rapidly particles in an emission cycle are emitted. If greater than `0`, there will be a gap in emissions before the next cycle begins."] # [doc = ""] # [inline] pub fn explosiveness_ratio (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_explosiveness_ratio ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the particle system itself."] # [doc = ""] # [inline] pub fn fixed_fps (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_fixed_fps ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Amount of [member spread] in Y/Z plane. A value of `1` restricts particles to X/Z plane."] # [doc = ""] # [inline] pub fn flatness (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_flatness ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, results in fractional delta calculation which has a smoother particles display effect."] # [doc = ""] # [inline] pub fn fractional_delta (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_fractional_delta ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Gravity applied to every particle."] # [doc = ""] # [inline] pub fn gravity (& self) -> Vector3 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_gravity ; let ret = crate :: icalls :: icallptr_vec3 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Amount of time each particle will exist."] # [doc = ""] # [inline] pub fn lifetime (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_lifetime ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Particle lifetime randomness ratio."] # [doc = ""] # [inline] pub fn lifetime_randomness (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_lifetime_randomness ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The [Mesh] used for each particle. If `null`, particles will be spheres."] # [doc = ""] # [inline] pub fn mesh (& self) -> Option < Ref < crate :: generated :: mesh :: Mesh , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_mesh ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: mesh :: Mesh , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "If `true`, only one emission cycle occurs. If set `true` during a cycle, emission will stop at the cycle's end."] # [doc = ""] # [inline] pub fn one_shot (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_one_shot ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion."] # [doc = ""] # [inline] pub fn param (& self , param : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_param ; let ret = crate :: icalls :: icallptr_f64_i64 (method_bind , self . this . sys () . as_ptr () , param) ; ret as _ } } # [doc = "Each particle's tangential acceleration will vary along this [Curve]."] # [doc = ""] # [inline] pub fn param_curve (& self , param : i64) -> Option < Ref < crate :: generated :: curve :: Curve , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_param_curve ; let ret = crate :: icalls :: icallptr_obj_i64 (method_bind , self . this . sys () . as_ptr () , param) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: curve :: Curve , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Tangential acceleration randomness ratio."] # [doc = ""] # [inline] pub fn param_randomness (& self , param : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_param_randomness ; let ret = crate :: icalls :: icallptr_f64_i64 (method_bind , self . this . sys () . as_ptr () , param) ; ret as _ } } # [doc = "If `true`, particles rotate around Y axis by [member angle]."] # [doc = ""] # [inline] pub fn particle_flag (& self , flag : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_particle_flag ; let ret = crate :: icalls :: icallptr_bool_i64 (method_bind , self . this . sys () . as_ptr () , flag) ; ret as _ } } # [doc = "Particle system starts as if it had already run for this many seconds."] # [doc = ""] # [inline] pub fn pre_process_time (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_pre_process_time ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Emission lifetime randomness ratio."] # [doc = ""] # [inline] pub fn randomness_ratio (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_randomness_ratio ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Particle system's running speed scaling ratio. A value of `0` can be used to pause the particles."] # [doc = ""] # [inline] pub fn speed_scale (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_speed_scale ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Each particle's initial direction range from `+spread` to `-spread` degrees. Applied to X/Z plane and Y/Z planes."] # [doc = ""] # [inline] pub fn spread (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_spread ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, particles use the parent node's coordinate space. If `false`, they use global coordinates."] # [doc = ""] # [inline] pub fn use_local_coordinates (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . get_use_local_coordinates ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, particles are being emitted."] # [doc = ""] # [inline] pub fn is_emitting (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . is_emitting ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Restarts the particle emitter."] # [doc = ""] # [inline] pub fn restart (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . restart ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Number of particles emitted in one emission cycle."] # [doc = ""] # [inline] pub fn set_amount (& self , amount : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_amount ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , amount) ; } } # [doc = "Unused for 3D particles."] # [doc = ""] # [inline] pub fn set_color (& self , color : Color) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_color ; let ret = crate :: icalls :: icallptr_void_color (method_bind , self . this . sys () . as_ptr () , color) ; } } # [doc = "Unused for 3D particles."] # [doc = ""] # [inline] pub fn set_color_ramp (& self , ramp : impl AsArg < crate :: generated :: gradient :: Gradient >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_color_ramp ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , ramp . as_arg_ptr ()) ; } } # [doc = "Unit vector specifying the particles' emission direction."] # [doc = ""] # [inline] pub fn set_direction (& self , direction : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_direction ; let ret = crate :: icalls :: icallptr_void_vec3 (method_bind , self . this . sys () . as_ptr () , direction) ; } } # [doc = "Particle draw order. Uses [enum DrawOrder] values."] # [doc = ""] # [inline] pub fn set_draw_order (& self , order : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_draw_order ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , order) ; } } # [doc = "The rectangle's extents if [member emission_shape] is set to [constant EMISSION_SHAPE_BOX]."] # [doc = ""] # [inline] pub fn set_emission_box_extents (& self , extents : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_emission_box_extents ; let ret = crate :: icalls :: icallptr_void_vec3 (method_bind , self . this . sys () . as_ptr () , extents) ; } } # [doc = "Sets the [Color]s to modulate particles by when using [constant EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS]."] # [doc = ""] # [inline] pub fn set_emission_colors (& self , array : ColorArray) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_emission_colors ; let ret = crate :: icalls :: icallptr_void_colorarr (method_bind , self . this . sys () . as_ptr () , array) ; } } # [doc = "Sets the direction the particles will be emitted in when using [constant EMISSION_SHAPE_DIRECTED_POINTS]."] # [doc = ""] # [inline] pub fn set_emission_normals (& self , array : Vector3Array) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_emission_normals ; let ret = crate :: icalls :: icallptr_void_vec3arr (method_bind , self . this . sys () . as_ptr () , array) ; } } # [doc = "Sets the initial positions to spawn particles when using [constant EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS]."] # [doc = ""] # [inline] pub fn set_emission_points (& self , array : Vector3Array) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_emission_points ; let ret = crate :: icalls :: icallptr_void_vec3arr (method_bind , self . this . sys () . as_ptr () , array) ; } } # [doc = "Particles will be emitted inside this region. See [enum EmissionShape] for possible values."] # [doc = ""] # [inline] pub fn set_emission_shape (& self , shape : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_emission_shape ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , shape) ; } } # [doc = "The sphere's radius if [enum EmissionShape] is set to [constant EMISSION_SHAPE_SPHERE]."] # [doc = ""] # [inline] pub fn set_emission_sphere_radius (& self , radius : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_emission_sphere_radius ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , radius) ; } } # [doc = "If `true`, particles are being emitted."] # [doc = ""] # [inline] pub fn set_emitting (& self , emitting : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_emitting ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , emitting) ; } } # [doc = "How rapidly particles in an emission cycle are emitted. If greater than `0`, there will be a gap in emissions before the next cycle begins."] # [doc = ""] # [inline] pub fn set_explosiveness_ratio (& self , ratio : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_explosiveness_ratio ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , ratio) ; } } # [doc = "The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the particle system itself."] # [doc = ""] # [inline] pub fn set_fixed_fps (& self , fps : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_fixed_fps ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , fps) ; } } # [doc = "Amount of [member spread] in Y/Z plane. A value of `1` restricts particles to X/Z plane."] # [doc = ""] # [inline] pub fn set_flatness (& self , amount : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_flatness ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , amount) ; } } # [doc = "If `true`, results in fractional delta calculation which has a smoother particles display effect."] # [doc = ""] # [inline] pub fn set_fractional_delta (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_fractional_delta ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "Gravity applied to every particle."] # [doc = ""] # [inline] pub fn set_gravity (& self , accel_vec : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_gravity ; let ret = crate :: icalls :: icallptr_void_vec3 (method_bind , self . this . sys () . as_ptr () , accel_vec) ; } } # [doc = "Amount of time each particle will exist."] # [doc = ""] # [inline] pub fn set_lifetime (& self , secs : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_lifetime ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , secs) ; } } # [doc = "Particle lifetime randomness ratio."] # [doc = ""] # [inline] pub fn set_lifetime_randomness (& self , random : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_lifetime_randomness ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , random) ; } } # [doc = "The [Mesh] used for each particle. If `null`, particles will be spheres."] # [doc = ""] # [inline] pub fn set_mesh (& self , mesh : impl AsArg < crate :: generated :: mesh :: Mesh >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_mesh ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , mesh . as_arg_ptr ()) ; } } # [doc = "If `true`, only one emission cycle occurs. If set `true` during a cycle, emission will stop at the cycle's end."] # [doc = ""] # [inline] pub fn set_one_shot (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_one_shot ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "Tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion."] # [doc = ""] # [inline] pub fn set_param (& self , param : i64 , value : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_param ; let ret = crate :: icalls :: icallptr_void_i64_f64 (method_bind , self . this . sys () . as_ptr () , param , value) ; } } # [doc = "Each particle's tangential acceleration will vary along this [Curve]."] # [doc = ""] # [inline] pub fn set_param_curve (& self , param : i64 , curve : impl AsArg < crate :: generated :: curve :: Curve >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_param_curve ; let ret = crate :: icalls :: icallptr_void_i64_obj (method_bind , self . this . sys () . as_ptr () , param , curve . as_arg_ptr ()) ; } } # [doc = "Tangential acceleration randomness ratio."] # [doc = ""] # [inline] pub fn set_param_randomness (& self , param : i64 , randomness : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_param_randomness ; let ret = crate :: icalls :: icallptr_void_i64_f64 (method_bind , self . this . sys () . as_ptr () , param , randomness) ; } } # [doc = "If `true`, particles rotate around Y axis by [member angle]."] # [doc = ""] # [inline] pub fn set_particle_flag (& self , flag : i64 , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_particle_flag ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , flag , enable) ; } } # [doc = "Particle system starts as if it had already run for this many seconds."] # [doc = ""] # [inline] pub fn set_pre_process_time (& self , secs : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_pre_process_time ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , secs) ; } } # [doc = "Emission lifetime randomness ratio."] # [doc = ""] # [inline] pub fn set_randomness_ratio (& self , ratio : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_randomness_ratio ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , ratio) ; } } # [doc = "Particle system's running speed scaling ratio. A value of `0` can be used to pause the particles."] # [doc = ""] # [inline] pub fn set_speed_scale (& self , scale : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_speed_scale ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , scale) ; } } # [doc = "Each particle's initial direction range from `+spread` to `-spread` degrees. Applied to X/Z plane and Y/Z planes."] # [doc = ""] # [inline] pub fn set_spread (& self , degrees : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_spread ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , degrees) ; } } # [doc = "If `true`, particles use the parent node's coordinate space. If `false`, they use global coordinates."] # [doc = ""] # [inline] pub fn set_use_local_coordinates (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CPUParticlesMethodTable :: get (get_api ()) . set_use_local_coordinates ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for CPUParticles { } unsafe impl GodotObject for CPUParticles { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "CPUParticles" } } impl QueueFree for CPUParticles { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for CPUParticles { type Target = crate :: generated :: geometry_instance :: GeometryInstance ; # [inline] fn deref (& self) -> & crate :: generated :: geometry_instance :: GeometryInstance { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for CPUParticles { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: geometry_instance :: GeometryInstance { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: geometry_instance :: GeometryInstance > for CPUParticles { } unsafe impl SubClass < crate :: generated :: visual_instance :: VisualInstance > for CPUParticles { } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for CPUParticles { } unsafe impl SubClass < crate :: generated :: node :: Node > for CPUParticles { } unsafe impl SubClass < crate :: generated :: object :: Object > for CPUParticles { } impl Instanciable for CPUParticles { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { CPUParticles :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct CPUParticlesMethodTable { pub class_constructor : sys :: godot_class_constructor , pub convert_from_particles : * mut sys :: godot_method_bind , pub get_amount : * mut sys :: godot_method_bind , pub get_color : * mut sys :: godot_method_bind , pub get_color_ramp : * mut sys :: godot_method_bind , pub get_direction : * mut sys :: godot_method_bind , pub get_draw_order : * mut sys :: godot_method_bind , pub get_emission_box_extents : * mut sys :: godot_method_bind , pub get_emission_colors : * mut sys :: godot_method_bind , pub get_emission_normals : * mut sys :: godot_method_bind , pub get_emission_points : * mut sys :: godot_method_bind , pub get_emission_shape : * mut sys :: godot_method_bind , pub get_emission_sphere_radius : * mut sys :: godot_method_bind , pub get_explosiveness_ratio : * mut sys :: godot_method_bind , pub get_fixed_fps : * mut sys :: godot_method_bind , pub get_flatness : * mut sys :: godot_method_bind , pub get_fractional_delta : * mut sys :: godot_method_bind , pub get_gravity : * mut sys :: godot_method_bind , pub get_lifetime : * mut sys :: godot_method_bind , pub get_lifetime_randomness : * mut sys :: godot_method_bind , pub get_mesh : * mut sys :: godot_method_bind , pub get_one_shot : * mut sys :: godot_method_bind , pub get_param : * mut sys :: godot_method_bind , pub get_param_curve : * mut sys :: godot_method_bind , pub get_param_randomness : * mut sys :: godot_method_bind , pub get_particle_flag : * mut sys :: godot_method_bind , pub get_pre_process_time : * mut sys :: godot_method_bind , pub get_randomness_ratio : * mut sys :: godot_method_bind , pub get_speed_scale : * mut sys :: godot_method_bind , pub get_spread : * mut sys :: godot_method_bind , pub get_use_local_coordinates : * mut sys :: godot_method_bind , pub is_emitting : * mut sys :: godot_method_bind , pub restart : * mut sys :: godot_method_bind , pub set_amount : * mut sys :: godot_method_bind , pub set_color : * mut sys :: godot_method_bind , pub set_color_ramp : * mut sys :: godot_method_bind , pub set_direction : * mut sys :: godot_method_bind , pub set_draw_order : * mut sys :: godot_method_bind , pub set_emission_box_extents : * mut sys :: godot_method_bind , pub set_emission_colors : * mut sys :: godot_method_bind , pub set_emission_normals : * mut sys :: godot_method_bind , pub set_emission_points : * mut sys :: godot_method_bind , pub set_emission_shape : * mut sys :: godot_method_bind , pub set_emission_sphere_radius : * mut sys :: godot_method_bind , pub set_emitting : * mut sys :: godot_method_bind , pub set_explosiveness_ratio : * mut sys :: godot_method_bind , pub set_fixed_fps : * mut sys :: godot_method_bind , pub set_flatness : * mut sys :: godot_method_bind , pub set_fractional_delta : * mut sys :: godot_method_bind , pub set_gravity : * mut sys :: godot_method_bind , pub set_lifetime : * mut sys :: godot_method_bind , pub set_lifetime_randomness : * mut sys :: godot_method_bind , pub set_mesh : * mut sys :: godot_method_bind , pub set_one_shot : * mut sys :: godot_method_bind , pub set_param : * mut sys :: godot_method_bind , pub set_param_curve : * mut sys :: godot_method_bind , pub set_param_randomness : * mut sys :: godot_method_bind , pub set_particle_flag : * mut sys :: godot_method_bind , pub set_pre_process_time : * mut sys :: godot_method_bind , pub set_randomness_ratio : * mut sys :: godot_method_bind , pub set_speed_scale : * mut sys :: godot_method_bind , pub set_spread : * mut sys :: godot_method_bind , pub set_use_local_coordinates : * mut sys :: godot_method_bind } impl CPUParticlesMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : CPUParticlesMethodTable = CPUParticlesMethodTable { class_constructor : None , convert_from_particles : 0 as * mut sys :: godot_method_bind , get_amount : 0 as * mut sys :: godot_method_bind , get_color : 0 as * mut sys :: godot_method_bind , get_color_ramp : 0 as * mut sys :: godot_method_bind , get_direction : 0 as * mut sys :: godot_method_bind , get_draw_order : 0 as * mut sys :: godot_method_bind , get_emission_box_extents : 0 as * mut sys :: godot_method_bind , get_emission_colors : 0 as * mut sys :: godot_method_bind , get_emission_normals : 0 as * mut sys :: godot_method_bind , get_emission_points : 0 as * mut sys :: godot_method_bind , get_emission_shape : 0 as * mut sys :: godot_method_bind , get_emission_sphere_radius : 0 as * mut sys :: godot_method_bind , get_explosiveness_ratio : 0 as * mut sys :: godot_method_bind , get_fixed_fps : 0 as * mut sys :: godot_method_bind , get_flatness : 0 as * mut sys :: godot_method_bind , get_fractional_delta : 0 as * mut sys :: godot_method_bind , get_gravity : 0 as * mut sys :: godot_method_bind , get_lifetime : 0 as * mut sys :: godot_method_bind , get_lifetime_randomness : 0 as * mut sys :: godot_method_bind , get_mesh : 0 as * mut sys :: godot_method_bind , get_one_shot : 0 as * mut sys :: godot_method_bind , get_param : 0 as * mut sys :: godot_method_bind , get_param_curve : 0 as * mut sys :: godot_method_bind , get_param_randomness : 0 as * mut sys :: godot_method_bind , get_particle_flag : 0 as * mut sys :: godot_method_bind , get_pre_process_time : 0 as * mut sys :: godot_method_bind , get_randomness_ratio : 0 as * mut sys :: godot_method_bind , get_speed_scale : 0 as * mut sys :: godot_method_bind , get_spread : 0 as * mut sys :: godot_method_bind , get_use_local_coordinates : 0 as * mut sys :: godot_method_bind , is_emitting : 0 as * mut sys :: godot_method_bind , restart : 0 as * mut sys :: godot_method_bind , set_amount : 0 as * mut sys :: godot_method_bind , set_color : 0 as * mut sys :: godot_method_bind , set_color_ramp : 0 as * mut sys :: godot_method_bind , set_direction : 0 as * mut sys :: godot_method_bind , set_draw_order : 0 as * mut sys :: godot_method_bind , set_emission_box_extents : 0 as * mut sys :: godot_method_bind , set_emission_colors : 0 as * mut sys :: godot_method_bind , set_emission_normals : 0 as * mut sys :: godot_method_bind , set_emission_points : 0 as * mut sys :: godot_method_bind , set_emission_shape : 0 as * mut sys :: godot_method_bind , set_emission_sphere_radius : 0 as * mut sys :: godot_method_bind , set_emitting : 0 as * mut sys :: godot_method_bind , set_explosiveness_ratio : 0 as * mut sys :: godot_method_bind , set_fixed_fps : 0 as * mut sys :: godot_method_bind , set_flatness : 0 as * mut sys :: godot_method_bind , set_fractional_delta : 0 as * mut sys :: godot_method_bind , set_gravity : 0 as * mut sys :: godot_method_bind , set_lifetime : 0 as * mut sys :: godot_method_bind , set_lifetime_randomness : 0 as * mut sys :: godot_method_bind , set_mesh : 0 as * mut sys :: godot_method_bind , set_one_shot : 0 as * mut sys :: godot_method_bind , set_param : 0 as * mut sys :: godot_method_bind , set_param_curve : 0 as * mut sys :: godot_method_bind , set_param_randomness : 0 as * mut sys :: godot_method_bind , set_particle_flag : 0 as * mut sys :: godot_method_bind , set_pre_process_time : 0 as * mut sys :: godot_method_bind , set_randomness_ratio : 0 as * mut sys :: godot_method_bind , set_speed_scale : 0 as * mut sys :: godot_method_bind , set_spread : 0 as * mut sys :: godot_method_bind , set_use_local_coordinates : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { CPUParticlesMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "CPUParticles\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . convert_from_particles = (gd_api . godot_method_bind_get_method) (class_name , "convert_from_particles\0" . as_ptr () as * const c_char) ; table . get_amount = (gd_api . godot_method_bind_get_method) (class_name , "get_amount\0" . as_ptr () as * const c_char) ; table . get_color = (gd_api . godot_method_bind_get_method) (class_name , "get_color\0" . as_ptr () as * const c_char) ; table . get_color_ramp = (gd_api . godot_method_bind_get_method) (class_name , "get_color_ramp\0" . as_ptr () as * const c_char) ; table . get_direction = (gd_api . godot_method_bind_get_method) (class_name , "get_direction\0" . as_ptr () as * const c_char) ; table . get_draw_order = (gd_api . godot_method_bind_get_method) (class_name , "get_draw_order\0" . as_ptr () as * const c_char) ; table . get_emission_box_extents = (gd_api . godot_method_bind_get_method) (class_name , "get_emission_box_extents\0" . as_ptr () as * const c_char) ; table . get_emission_colors = (gd_api . godot_method_bind_get_method) (class_name , "get_emission_colors\0" . as_ptr () as * const c_char) ; table . get_emission_normals = (gd_api . godot_method_bind_get_method) (class_name , "get_emission_normals\0" . as_ptr () as * const c_char) ; table . get_emission_points = (gd_api . godot_method_bind_get_method) (class_name , "get_emission_points\0" . as_ptr () as * const c_char) ; table . get_emission_shape = (gd_api . godot_method_bind_get_method) (class_name , "get_emission_shape\0" . as_ptr () as * const c_char) ; table . get_emission_sphere_radius = (gd_api . godot_method_bind_get_method) (class_name , "get_emission_sphere_radius\0" . as_ptr () as * const c_char) ; table . get_explosiveness_ratio = (gd_api . godot_method_bind_get_method) (class_name , "get_explosiveness_ratio\0" . as_ptr () as * const c_char) ; table . get_fixed_fps = (gd_api . godot_method_bind_get_method) (class_name , "get_fixed_fps\0" . as_ptr () as * const c_char) ; table . get_flatness = (gd_api . godot_method_bind_get_method) (class_name , "get_flatness\0" . as_ptr () as * const c_char) ; table . get_fractional_delta = (gd_api . godot_method_bind_get_method) (class_name , "get_fractional_delta\0" . as_ptr () as * const c_char) ; table . get_gravity = (gd_api . godot_method_bind_get_method) (class_name , "get_gravity\0" . as_ptr () as * const c_char) ; table . get_lifetime = (gd_api . godot_method_bind_get_method) (class_name , "get_lifetime\0" . as_ptr () as * const c_char) ; table . get_lifetime_randomness = (gd_api . godot_method_bind_get_method) (class_name , "get_lifetime_randomness\0" . as_ptr () as * const c_char) ; table . get_mesh = (gd_api . godot_method_bind_get_method) (class_name , "get_mesh\0" . as_ptr () as * const c_char) ; table . get_one_shot = (gd_api . godot_method_bind_get_method) (class_name , "get_one_shot\0" . as_ptr () as * const c_char) ; table . get_param = (gd_api . godot_method_bind_get_method) (class_name , "get_param\0" . as_ptr () as * const c_char) ; table . get_param_curve = (gd_api . godot_method_bind_get_method) (class_name , "get_param_curve\0" . as_ptr () as * const c_char) ; table . get_param_randomness = (gd_api . godot_method_bind_get_method) (class_name , "get_param_randomness\0" . as_ptr () as * const c_char) ; table . get_particle_flag = (gd_api . godot_method_bind_get_method) (class_name , "get_particle_flag\0" . as_ptr () as * const c_char) ; table . get_pre_process_time = (gd_api . godot_method_bind_get_method) (class_name , "get_pre_process_time\0" . as_ptr () as * const c_char) ; table . get_randomness_ratio = (gd_api . godot_method_bind_get_method) (class_name , "get_randomness_ratio\0" . as_ptr () as * const c_char) ; table . get_speed_scale = (gd_api . godot_method_bind_get_method) (class_name , "get_speed_scale\0" . as_ptr () as * const c_char) ; table . get_spread = (gd_api . godot_method_bind_get_method) (class_name , "get_spread\0" . as_ptr () as * const c_char) ; table . get_use_local_coordinates = (gd_api . godot_method_bind_get_method) (class_name , "get_use_local_coordinates\0" . as_ptr () as * const c_char) ; table . is_emitting = (gd_api . godot_method_bind_get_method) (class_name , "is_emitting\0" . as_ptr () as * const c_char) ; table . restart = (gd_api . godot_method_bind_get_method) (class_name , "restart\0" . as_ptr () as * const c_char) ; table . set_amount = (gd_api . godot_method_bind_get_method) (class_name , "set_amount\0" . as_ptr () as * const c_char) ; table . set_color = (gd_api . godot_method_bind_get_method) (class_name , "set_color\0" . as_ptr () as * const c_char) ; table . set_color_ramp = (gd_api . godot_method_bind_get_method) (class_name , "set_color_ramp\0" . as_ptr () as * const c_char) ; table . set_direction = (gd_api . godot_method_bind_get_method) (class_name , "set_direction\0" . as_ptr () as * const c_char) ; table . set_draw_order = (gd_api . godot_method_bind_get_method) (class_name , "set_draw_order\0" . as_ptr () as * const c_char) ; table . set_emission_box_extents = (gd_api . godot_method_bind_get_method) (class_name , "set_emission_box_extents\0" . as_ptr () as * const c_char) ; table . set_emission_colors = (gd_api . godot_method_bind_get_method) (class_name , "set_emission_colors\0" . as_ptr () as * const c_char) ; table . set_emission_normals = (gd_api . godot_method_bind_get_method) (class_name , "set_emission_normals\0" . as_ptr () as * const c_char) ; table . set_emission_points = (gd_api . godot_method_bind_get_method) (class_name , "set_emission_points\0" . as_ptr () as * const c_char) ; table . set_emission_shape = (gd_api . godot_method_bind_get_method) (class_name , "set_emission_shape\0" . as_ptr () as * const c_char) ; table . set_emission_sphere_radius = (gd_api . godot_method_bind_get_method) (class_name , "set_emission_sphere_radius\0" . as_ptr () as * const c_char) ; table . set_emitting = (gd_api . godot_method_bind_get_method) (class_name , "set_emitting\0" . as_ptr () as * const c_char) ; table . set_explosiveness_ratio = (gd_api . godot_method_bind_get_method) (class_name , "set_explosiveness_ratio\0" . as_ptr () as * const c_char) ; table . set_fixed_fps = (gd_api . godot_method_bind_get_method) (class_name , "set_fixed_fps\0" . as_ptr () as * const c_char) ; table . set_flatness = (gd_api . godot_method_bind_get_method) (class_name , "set_flatness\0" . as_ptr () as * const c_char) ; table . set_fractional_delta = (gd_api . godot_method_bind_get_method) (class_name , "set_fractional_delta\0" . as_ptr () as * const c_char) ; table . set_gravity = (gd_api . godot_method_bind_get_method) (class_name , "set_gravity\0" . as_ptr () as * const c_char) ; table . set_lifetime = (gd_api . godot_method_bind_get_method) (class_name , "set_lifetime\0" . as_ptr () as * const c_char) ; table . set_lifetime_randomness = (gd_api . godot_method_bind_get_method) (class_name , "set_lifetime_randomness\0" . as_ptr () as * const c_char) ; table . set_mesh = (gd_api . godot_method_bind_get_method) (class_name , "set_mesh\0" . as_ptr () as * const c_char) ; table . set_one_shot = (gd_api . godot_method_bind_get_method) (class_name , "set_one_shot\0" . as_ptr () as * const c_char) ; table . set_param = (gd_api . godot_method_bind_get_method) (class_name , "set_param\0" . as_ptr () as * const c_char) ; table . set_param_curve = (gd_api . godot_method_bind_get_method) (class_name , "set_param_curve\0" . as_ptr () as * const c_char) ; table . set_param_randomness = (gd_api . godot_method_bind_get_method) (class_name , "set_param_randomness\0" . as_ptr () as * const c_char) ; table . set_particle_flag = (gd_api . godot_method_bind_get_method) (class_name , "set_particle_flag\0" . as_ptr () as * const c_char) ; table . set_pre_process_time = (gd_api . godot_method_bind_get_method) (class_name , "set_pre_process_time\0" . as_ptr () as * const c_char) ; table . set_randomness_ratio = (gd_api . godot_method_bind_get_method) (class_name , "set_randomness_ratio\0" . as_ptr () as * const c_char) ; table . set_speed_scale = (gd_api . godot_method_bind_get_method) (class_name , "set_speed_scale\0" . as_ptr () as * const c_char) ; table . set_spread = (gd_api . godot_method_bind_get_method) (class_name , "set_spread\0" . as_ptr () as * const c_char) ; table . set_use_local_coordinates = (gd_api . godot_method_bind_get_method) (class_name , "set_use_local_coordinates\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:310:9738 [INFO] [stdout] | [INFO] [stdout] 310 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 310 | # [doc = "`core class ImmediateGeometry` inherits `GeometryInstance` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_immediategeometry.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`ImmediateGeometry` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nImmediateGeometry inherits methods from:\n - [GeometryInstance](struct.GeometryInstance.html)\n - [VisualInstance](struct.VisualInstance.html)\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct ImmediateGeometry { this : RawObject < Self > , } impl ImmediateGeometry { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = ImmediateGeometryMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Simple helper to draw an UV sphere with given latitude, longitude and radius.\n# Default Arguments\n* `add_uv` - `true`"] # [doc = ""] # [inline] pub fn add_sphere (& self , lats : i64 , lons : i64 , radius : f64 , add_uv : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ImmediateGeometryMethodTable :: get (get_api ()) . add_sphere ; let ret = crate :: icalls :: icallptr_void_i64_i64_f64_bool (method_bind , self . this . sys () . as_ptr () , lats , lons , radius , add_uv) ; } } # [doc = "Adds a vertex in local coordinate space with the currently set color/uv/etc."] # [doc = ""] # [inline] pub fn add_vertex (& self , position : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ImmediateGeometryMethodTable :: get (get_api ()) . add_vertex ; let ret = crate :: icalls :: icallptr_void_vec3 (method_bind , self . this . sys () . as_ptr () , position) ; } } # [doc = "Begin drawing (and optionally pass a texture override). When done call [method end]. For more information on how this works, search for `glBegin()` and `glEnd()` references.\nFor the type of primitive, see the [enum Mesh.PrimitiveType] enum.\n# Default Arguments\n* `texture` - `null`"] # [doc = ""] # [inline] pub fn begin (& self , primitive : i64 , texture : impl AsArg < crate :: generated :: texture :: Texture >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ImmediateGeometryMethodTable :: get (get_api ()) . begin ; let ret = crate :: icalls :: icallptr_void_i64_obj (method_bind , self . this . sys () . as_ptr () , primitive , texture . as_arg_ptr ()) ; } } # [doc = "Clears everything that was drawn using begin/end."] # [doc = ""] # [inline] pub fn clear (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ImmediateGeometryMethodTable :: get (get_api ()) . clear ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Ends a drawing context and displays the results."] # [doc = ""] # [inline] pub fn end (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ImmediateGeometryMethodTable :: get (get_api ()) . end ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "The current drawing color."] # [doc = ""] # [inline] pub fn set_color (& self , color : Color) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ImmediateGeometryMethodTable :: get (get_api ()) . set_color ; let ret = crate :: icalls :: icallptr_void_color (method_bind , self . this . sys () . as_ptr () , color) ; } } # [doc = "The next vertex's normal."] # [doc = ""] # [inline] pub fn set_normal (& self , normal : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ImmediateGeometryMethodTable :: get (get_api ()) . set_normal ; let ret = crate :: icalls :: icallptr_void_vec3 (method_bind , self . this . sys () . as_ptr () , normal) ; } } # [doc = "The next vertex's tangent (and binormal facing)."] # [doc = ""] # [inline] pub fn set_tangent (& self , tangent : Plane) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ImmediateGeometryMethodTable :: get (get_api ()) . set_tangent ; let ret = crate :: icalls :: icallptr_void_plane (method_bind , self . this . sys () . as_ptr () , tangent) ; } } # [doc = "The next vertex's UV."] # [doc = ""] # [inline] pub fn set_uv (& self , uv : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ImmediateGeometryMethodTable :: get (get_api ()) . set_uv ; let ret = crate :: icalls :: icallptr_void_vec2 (method_bind , self . this . sys () . as_ptr () , uv) ; } } # [doc = "The next vertex's second layer UV."] # [doc = ""] # [inline] pub fn set_uv2 (& self , uv : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ImmediateGeometryMethodTable :: get (get_api ()) . set_uv2 ; let ret = crate :: icalls :: icallptr_void_vec2 (method_bind , self . this . sys () . as_ptr () , uv) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for ImmediateGeometry { } unsafe impl GodotObject for ImmediateGeometry { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "ImmediateGeometry" } } impl QueueFree for ImmediateGeometry { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for ImmediateGeometry { type Target = crate :: generated :: geometry_instance :: GeometryInstance ; # [inline] fn deref (& self) -> & crate :: generated :: geometry_instance :: GeometryInstance { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for ImmediateGeometry { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: geometry_instance :: GeometryInstance { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: geometry_instance :: GeometryInstance > for ImmediateGeometry { } unsafe impl SubClass < crate :: generated :: visual_instance :: VisualInstance > for ImmediateGeometry { } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for ImmediateGeometry { } unsafe impl SubClass < crate :: generated :: node :: Node > for ImmediateGeometry { } unsafe impl SubClass < crate :: generated :: object :: Object > for ImmediateGeometry { } impl Instanciable for ImmediateGeometry { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { ImmediateGeometry :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct ImmediateGeometryMethodTable { pub class_constructor : sys :: godot_class_constructor , pub add_sphere : * mut sys :: godot_method_bind , pub add_vertex : * mut sys :: godot_method_bind , pub begin : * mut sys :: godot_method_bind , pub clear : * mut sys :: godot_method_bind , pub end : * mut sys :: godot_method_bind , pub set_color : * mut sys :: godot_method_bind , pub set_normal : * mut sys :: godot_method_bind , pub set_tangent : * mut sys :: godot_method_bind , pub set_uv : * mut sys :: godot_method_bind , pub set_uv2 : * mut sys :: godot_method_bind } impl ImmediateGeometryMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : ImmediateGeometryMethodTable = ImmediateGeometryMethodTable { class_constructor : None , add_sphere : 0 as * mut sys :: godot_method_bind , add_vertex : 0 as * mut sys :: godot_method_bind , begin : 0 as * mut sys :: godot_method_bind , clear : 0 as * mut sys :: godot_method_bind , end : 0 as * mut sys :: godot_method_bind , set_color : 0 as * mut sys :: godot_method_bind , set_normal : 0 as * mut sys :: godot_method_bind , set_tangent : 0 as * mut sys :: godot_method_bind , set_uv : 0 as * mut sys :: godot_method_bind , set_uv2 : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { ImmediateGeometryMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "ImmediateGeometry\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . add_sphere = (gd_api . godot_method_bind_get_method) (class_name , "add_sphere\0" . as_ptr () as * const c_char) ; table . add_vertex = (gd_api . godot_method_bind_get_method) (class_name , "add_vertex\0" . as_ptr () as * const c_char) ; table . begin = (gd_api . godot_method_bind_get_method) (class_name , "begin\0" . as_ptr () as * const c_char) ; table . clear = (gd_api . godot_method_bind_get_method) (class_name , "clear\0" . as_ptr () as * const c_char) ; table . end = (gd_api . godot_method_bind_get_method) (class_name , "end\0" . as_ptr () as * const c_char) ; table . set_color = (gd_api . godot_method_bind_get_method) (class_name , "set_color\0" . as_ptr () as * const c_char) ; table . set_normal = (gd_api . godot_method_bind_get_method) (class_name , "set_normal\0" . as_ptr () as * const c_char) ; table . set_tangent = (gd_api . godot_method_bind_get_method) (class_name , "set_tangent\0" . as_ptr () as * const c_char) ; table . set_uv = (gd_api . godot_method_bind_get_method) (class_name , "set_uv\0" . as_ptr () as * const c_char) ; table . set_uv2 = (gd_api . godot_method_bind_get_method) (class_name , "set_uv2\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:316:10056 [INFO] [stdout] | [INFO] [stdout] 316 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 316 | # [doc = "`core class AspectRatioContainer` inherits `Container` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_aspectratiocontainer.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`AspectRatioContainer` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nAspectRatioContainer inherits methods from:\n - [Container](struct.Container.html)\n - [Control](struct.Control.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct AspectRatioContainer { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct AlignMode (pub i64) ; impl AlignMode { pub const BEGIN : AlignMode = AlignMode (0i64) ; pub const CENTER : AlignMode = AlignMode (1i64) ; pub const END : AlignMode = AlignMode (2i64) ; } impl From < i64 > for AlignMode { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < AlignMode > for i64 { # [inline] fn from (v : AlignMode) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct StretchMode (pub i64) ; impl StretchMode { pub const WIDTH_CONTROLS_HEIGHT : StretchMode = StretchMode (0i64) ; pub const HEIGHT_CONTROLS_WIDTH : StretchMode = StretchMode (1i64) ; pub const FIT : StretchMode = StretchMode (2i64) ; pub const COVER : StretchMode = StretchMode (3i64) ; } impl From < i64 > for StretchMode { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < StretchMode > for i64 { # [inline] fn from (v : StretchMode) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl AspectRatioContainer { pub const ALIGN_BEGIN : i64 = 0i64 ; pub const ALIGN_CENTER : i64 = 1i64 ; pub const ALIGN_END : i64 = 2i64 ; pub const STRETCH_COVER : i64 = 3i64 ; pub const STRETCH_FIT : i64 = 2i64 ; pub const STRETCH_HEIGHT_CONTROLS_WIDTH : i64 = 1i64 ; pub const STRETCH_WIDTH_CONTROLS_HEIGHT : i64 = 0i64 ; } impl AspectRatioContainer { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = AspectRatioContainerMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = ""] # [doc = ""] # [inline] pub fn alignment_horizontal (& self) -> crate :: generated :: aspect_ratio_container :: AlignMode { unsafe { let method_bind : * mut sys :: godot_method_bind = AspectRatioContainerMethodTable :: get (get_api ()) . get_alignment_horizontal ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: aspect_ratio_container :: AlignMode (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn alignment_vertical (& self) -> crate :: generated :: aspect_ratio_container :: AlignMode { unsafe { let method_bind : * mut sys :: godot_method_bind = AspectRatioContainerMethodTable :: get (get_api ()) . get_alignment_vertical ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: aspect_ratio_container :: AlignMode (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn ratio (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AspectRatioContainerMethodTable :: get (get_api ()) . get_ratio ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn stretch_mode (& self) -> crate :: generated :: aspect_ratio_container :: StretchMode { unsafe { let method_bind : * mut sys :: godot_method_bind = AspectRatioContainerMethodTable :: get (get_api ()) . get_stretch_mode ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: aspect_ratio_container :: StretchMode (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn set_alignment_horizontal (& self , alignment_horizontal : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AspectRatioContainerMethodTable :: get (get_api ()) . set_alignment_horizontal ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , alignment_horizontal) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_alignment_vertical (& self , alignment_vertical : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AspectRatioContainerMethodTable :: get (get_api ()) . set_alignment_vertical ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , alignment_vertical) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_ratio (& self , ratio : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AspectRatioContainerMethodTable :: get (get_api ()) . set_ratio ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , ratio) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_stretch_mode (& self , stretch_mode : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AspectRatioContainerMethodTable :: get (get_api ()) . set_stretch_mode ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , stretch_mode) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for AspectRatioContainer { } unsafe impl GodotObject for AspectRatioContainer { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "AspectRatioContainer" } } impl QueueFree for AspectRatioContainer { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for AspectRatioContainer { type Target = crate :: generated :: container :: Container ; # [inline] fn deref (& self) -> & crate :: generated :: container :: Container { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for AspectRatioContainer { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: container :: Container { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: container :: Container > for AspectRatioContainer { } unsafe impl SubClass < crate :: generated :: control :: Control > for AspectRatioContainer { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for AspectRatioContainer { } unsafe impl SubClass < crate :: generated :: node :: Node > for AspectRatioContainer { } unsafe impl SubClass < crate :: generated :: object :: Object > for AspectRatioContainer { } impl Instanciable for AspectRatioContainer { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { AspectRatioContainer :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct AspectRatioContainerMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_alignment_horizontal : * mut sys :: godot_method_bind , pub get_alignment_vertical : * mut sys :: godot_method_bind , pub get_ratio : * mut sys :: godot_method_bind , pub get_stretch_mode : * mut sys :: godot_method_bind , pub set_alignment_horizontal : * mut sys :: godot_method_bind , pub set_alignment_vertical : * mut sys :: godot_method_bind , pub set_ratio : * mut sys :: godot_method_bind , pub set_stretch_mode : * mut sys :: godot_method_bind } impl AspectRatioContainerMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : AspectRatioContainerMethodTable = AspectRatioContainerMethodTable { class_constructor : None , get_alignment_horizontal : 0 as * mut sys :: godot_method_bind , get_alignment_vertical : 0 as * mut sys :: godot_method_bind , get_ratio : 0 as * mut sys :: godot_method_bind , get_stretch_mode : 0 as * mut sys :: godot_method_bind , set_alignment_horizontal : 0 as * mut sys :: godot_method_bind , set_alignment_vertical : 0 as * mut sys :: godot_method_bind , set_ratio : 0 as * mut sys :: godot_method_bind , set_stretch_mode : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { AspectRatioContainerMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "AspectRatioContainer\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_alignment_horizontal = (gd_api . godot_method_bind_get_method) (class_name , "get_alignment_horizontal\0" . as_ptr () as * const c_char) ; table . get_alignment_vertical = (gd_api . godot_method_bind_get_method) (class_name , "get_alignment_vertical\0" . as_ptr () as * const c_char) ; table . get_ratio = (gd_api . godot_method_bind_get_method) (class_name , "get_ratio\0" . as_ptr () as * const c_char) ; table . get_stretch_mode = (gd_api . godot_method_bind_get_method) (class_name , "get_stretch_mode\0" . as_ptr () as * const c_char) ; table . set_alignment_horizontal = (gd_api . godot_method_bind_get_method) (class_name , "set_alignment_horizontal\0" . as_ptr () as * const c_char) ; table . set_alignment_vertical = (gd_api . godot_method_bind_get_method) (class_name , "set_alignment_vertical\0" . as_ptr () as * const c_char) ; table . set_ratio = (gd_api . godot_method_bind_get_method) (class_name , "set_ratio\0" . as_ptr () as * const c_char) ; table . set_stretch_mode = (gd_api . godot_method_bind_get_method) (class_name , "set_stretch_mode\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:322:19889 [INFO] [stdout] | [INFO] [stdout] 322 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 322 | # [doc = "`core class Skeleton` inherits `Spatial` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_skeleton.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`Skeleton` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nSkeleton inherits methods from:\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct Skeleton { this : RawObject < Self > , } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl Skeleton { pub const NOTIFICATION_UPDATE_SKELETON : i64 = 50i64 ; } impl Skeleton { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = SkeletonMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Adds a bone, with name `name`. [method get_bone_count] will become the bone index."] # [doc = ""] # [inline] pub fn add_bone (& self , name : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . add_bone ; let ret = crate :: icalls :: icallptr_void_str (method_bind , self . this . sys () . as_ptr () , name . into ()) ; } } # [doc = "[i]Deprecated soon.[/i]"] # [doc = ""] # [inline] pub fn bind_child_node_to_bone (& self , bone_idx : i64 , node : impl AsArg < crate :: generated :: node :: Node >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . bind_child_node_to_bone ; let ret = crate :: icalls :: icallptr_void_i64_obj (method_bind , self . this . sys () . as_ptr () , bone_idx , node . as_arg_ptr ()) ; } } # [doc = "Clear all the bones in this skeleton."] # [doc = ""] # [inline] pub fn clear_bones (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . clear_bones ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn clear_bones_global_pose_override (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . clear_bones_global_pose_override ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Returns the bone index that matches `name` as its name."] # [doc = ""] # [inline] pub fn find_bone (& self , name : impl Into < GodotString >) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . find_bone ; let ret = crate :: icalls :: icallptr_i64_str (method_bind , self . this . sys () . as_ptr () , name . into ()) ; ret as _ } } # [doc = "Returns the amount of bones in the skeleton."] # [doc = ""] # [inline] pub fn get_bone_count (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . get_bone_count ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the custom pose of the specified bone. Custom pose is applied on top of the rest pose."] # [doc = ""] # [inline] pub fn get_bone_custom_pose (& self , bone_idx : i64) -> Transform { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . get_bone_custom_pose ; let ret = crate :: icalls :: icallptr_trans_i64 (method_bind , self . this . sys () . as_ptr () , bone_idx) ; mem :: transmute (ret) } } # [doc = "Returns the overall transform of the specified bone, with respect to the skeleton. Being relative to the skeleton frame, this is not the actual \"global\" transform of the bone."] # [doc = ""] # [inline] pub fn get_bone_global_pose (& self , bone_idx : i64) -> Transform { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . get_bone_global_pose ; let ret = crate :: icalls :: icallptr_trans_i64 (method_bind , self . this . sys () . as_ptr () , bone_idx) ; mem :: transmute (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn get_bone_global_pose_no_override (& self , bone_idx : i64) -> Transform { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . get_bone_global_pose_no_override ; let ret = crate :: icalls :: icallptr_trans_i64 (method_bind , self . this . sys () . as_ptr () , bone_idx) ; mem :: transmute (ret) } } # [doc = "Returns the name of the bone at index `index`."] # [doc = ""] # [inline] pub fn get_bone_name (& self , bone_idx : i64) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . get_bone_name ; let ret = crate :: icalls :: icallptr_str_i64 (method_bind , self . this . sys () . as_ptr () , bone_idx) ; GodotString :: from_sys (ret) } } # [doc = "Returns the bone index which is the parent of the bone at `bone_idx`. If -1, then bone has no parent.\n**Note:** The parent bone returned will always be less than `bone_idx`."] # [doc = ""] # [inline] pub fn get_bone_parent (& self , bone_idx : i64) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . get_bone_parent ; let ret = crate :: icalls :: icallptr_i64_i64 (method_bind , self . this . sys () . as_ptr () , bone_idx) ; ret as _ } } # [doc = "Returns the pose transform of the specified bone. Pose is applied on top of the custom pose, which is applied on top the rest pose."] # [doc = ""] # [inline] pub fn get_bone_pose (& self , bone_idx : i64) -> Transform { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . get_bone_pose ; let ret = crate :: icalls :: icallptr_trans_i64 (method_bind , self . this . sys () . as_ptr () , bone_idx) ; mem :: transmute (ret) } } # [doc = "Returns the rest transform for a bone `bone_idx`."] # [doc = ""] # [inline] pub fn get_bone_rest (& self , bone_idx : i64) -> Transform { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . get_bone_rest ; let ret = crate :: icalls :: icallptr_trans_i64 (method_bind , self . this . sys () . as_ptr () , bone_idx) ; mem :: transmute (ret) } } # [doc = "[i]Deprecated soon.[/i]"] # [doc = ""] # [inline] pub fn get_bound_child_nodes_to_bone (& self , bone_idx : i64) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . get_bound_child_nodes_to_bone ; let ret = crate :: icalls :: icallvar__i64 (method_bind , self . this . sys () . as_ptr () , bone_idx) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = ""] # [doc = ""] # [inline] pub fn is_bone_rest_disabled (& self , bone_idx : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . is_bone_rest_disabled ; let ret = crate :: icalls :: icallptr_bool_i64 (method_bind , self . this . sys () . as_ptr () , bone_idx) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn localize_rests (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . localize_rests ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn physical_bones_add_collision_exception (& self , exception : Rid) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . physical_bones_add_collision_exception ; let ret = crate :: icalls :: icallptr_void_rid (method_bind , self . this . sys () . as_ptr () , exception) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn physical_bones_remove_collision_exception (& self , exception : Rid) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . physical_bones_remove_collision_exception ; let ret = crate :: icalls :: icallptr_void_rid (method_bind , self . this . sys () . as_ptr () , exception) ; } } # [doc = "\n# Default Arguments\n* `bones` - `[ ]`"] # [doc = ""] # [inline] pub fn physical_bones_start_simulation (& self , bones : VariantArray) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . physical_bones_start_simulation ; let ret = crate :: icalls :: icallptr_void_arr (method_bind , self . this . sys () . as_ptr () , bones) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn physical_bones_stop_simulation (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . physical_bones_stop_simulation ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn register_skin (& self , skin : impl AsArg < crate :: generated :: skin :: Skin >) -> Option < Ref < crate :: generated :: skin_reference :: SkinReference , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . register_skin ; let ret = crate :: icalls :: icallptr_obj_obj (method_bind , self . this . sys () . as_ptr () , skin . as_arg_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: skin_reference :: SkinReference , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = ""] # [doc = ""] # [inline] pub fn set_bone_custom_pose (& self , bone_idx : i64 , custom_pose : Transform) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . set_bone_custom_pose ; let ret = crate :: icalls :: icallptr_void_i64_trans (method_bind , self . this . sys () . as_ptr () , bone_idx , custom_pose) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_bone_disable_rest (& self , bone_idx : i64 , disable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . set_bone_disable_rest ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , bone_idx , disable) ; } } # [doc = "\n# Default Arguments\n* `persistent` - `false`"] # [doc = ""] # [inline] pub fn set_bone_global_pose_override (& self , bone_idx : i64 , pose : Transform , amount : f64 , persistent : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . set_bone_global_pose_override ; let ret = crate :: icalls :: icallptr_void_i64_trans_f64_bool (method_bind , self . this . sys () . as_ptr () , bone_idx , pose , amount , persistent) ; } } # [doc = "Sets the bone index `parent_idx` as the parent of the bone at `bone_idx`. If -1, then bone has no parent.\n**Note:** `parent_idx` must be less than `bone_idx`."] # [doc = ""] # [inline] pub fn set_bone_parent (& self , bone_idx : i64 , parent_idx : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . set_bone_parent ; let ret = crate :: icalls :: icallptr_void_i64_i64 (method_bind , self . this . sys () . as_ptr () , bone_idx , parent_idx) ; } } # [doc = "Sets the pose transform for bone `bone_idx`."] # [doc = ""] # [inline] pub fn set_bone_pose (& self , bone_idx : i64 , pose : Transform) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . set_bone_pose ; let ret = crate :: icalls :: icallptr_void_i64_trans (method_bind , self . this . sys () . as_ptr () , bone_idx , pose) ; } } # [doc = "Sets the rest transform for bone `bone_idx`."] # [doc = ""] # [inline] pub fn set_bone_rest (& self , bone_idx : i64 , rest : Transform) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . set_bone_rest ; let ret = crate :: icalls :: icallptr_void_i64_trans (method_bind , self . this . sys () . as_ptr () , bone_idx , rest) ; } } # [doc = "[i]Deprecated soon.[/i]"] # [doc = ""] # [inline] pub fn unbind_child_node_from_bone (& self , bone_idx : i64 , node : impl AsArg < crate :: generated :: node :: Node >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . unbind_child_node_from_bone ; let ret = crate :: icalls :: icallptr_void_i64_obj (method_bind , self . this . sys () . as_ptr () , bone_idx , node . as_arg_ptr ()) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn unparent_bone_and_rest (& self , bone_idx : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = SkeletonMethodTable :: get (get_api ()) . unparent_bone_and_rest ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , bone_idx) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for Skeleton { } unsafe impl GodotObject for Skeleton { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "Skeleton" } } impl QueueFree for Skeleton { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for Skeleton { type Target = crate :: generated :: spatial :: Spatial ; # [inline] fn deref (& self) -> & crate :: generated :: spatial :: Spatial { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for Skeleton { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: spatial :: Spatial { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for Skeleton { } unsafe impl SubClass < crate :: generated :: node :: Node > for Skeleton { } unsafe impl SubClass < crate :: generated :: object :: Object > for Skeleton { } impl Instanciable for Skeleton { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { Skeleton :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct SkeletonMethodTable { pub class_constructor : sys :: godot_class_constructor , pub add_bone : * mut sys :: godot_method_bind , pub bind_child_node_to_bone : * mut sys :: godot_method_bind , pub clear_bones : * mut sys :: godot_method_bind , pub clear_bones_global_pose_override : * mut sys :: godot_method_bind , pub find_bone : * mut sys :: godot_method_bind , pub get_bone_count : * mut sys :: godot_method_bind , pub get_bone_custom_pose : * mut sys :: godot_method_bind , pub get_bone_global_pose : * mut sys :: godot_method_bind , pub get_bone_global_pose_no_override : * mut sys :: godot_method_bind , pub get_bone_name : * mut sys :: godot_method_bind , pub get_bone_parent : * mut sys :: godot_method_bind , pub get_bone_pose : * mut sys :: godot_method_bind , pub get_bone_rest : * mut sys :: godot_method_bind , pub get_bound_child_nodes_to_bone : * mut sys :: godot_method_bind , pub is_bone_rest_disabled : * mut sys :: godot_method_bind , pub localize_rests : * mut sys :: godot_method_bind , pub physical_bones_add_collision_exception : * mut sys :: godot_method_bind , pub physical_bones_remove_collision_exception : * mut sys :: godot_method_bind , pub physical_bones_start_simulation : * mut sys :: godot_method_bind , pub physical_bones_stop_simulation : * mut sys :: godot_method_bind , pub register_skin : * mut sys :: godot_method_bind , pub set_bone_custom_pose : * mut sys :: godot_method_bind , pub set_bone_disable_rest : * mut sys :: godot_method_bind , pub set_bone_global_pose_override : * mut sys :: godot_method_bind , pub set_bone_parent : * mut sys :: godot_method_bind , pub set_bone_pose : * mut sys :: godot_method_bind , pub set_bone_rest : * mut sys :: godot_method_bind , pub unbind_child_node_from_bone : * mut sys :: godot_method_bind , pub unparent_bone_and_rest : * mut sys :: godot_method_bind } impl SkeletonMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : SkeletonMethodTable = SkeletonMethodTable { class_constructor : None , add_bone : 0 as * mut sys :: godot_method_bind , bind_child_node_to_bone : 0 as * mut sys :: godot_method_bind , clear_bones : 0 as * mut sys :: godot_method_bind , clear_bones_global_pose_override : 0 as * mut sys :: godot_method_bind , find_bone : 0 as * mut sys :: godot_method_bind , get_bone_count : 0 as * mut sys :: godot_method_bind , get_bone_custom_pose : 0 as * mut sys :: godot_method_bind , get_bone_global_pose : 0 as * mut sys :: godot_method_bind , get_bone_global_pose_no_override : 0 as * mut sys :: godot_method_bind , get_bone_name : 0 as * mut sys :: godot_method_bind , get_bone_parent : 0 as * mut sys :: godot_method_bind , get_bone_pose : 0 as * mut sys :: godot_method_bind , get_bone_rest : 0 as * mut sys :: godot_method_bind , get_bound_child_nodes_to_bone : 0 as * mut sys :: godot_method_bind , is_bone_rest_disabled : 0 as * mut sys :: godot_method_bind , localize_rests : 0 as * mut sys :: godot_method_bind , physical_bones_add_collision_exception : 0 as * mut sys :: godot_method_bind , physical_bones_remove_collision_exception : 0 as * mut sys :: godot_method_bind , physical_bones_start_simulation : 0 as * mut sys :: godot_method_bind , physical_bones_stop_simulation : 0 as * mut sys :: godot_method_bind , register_skin : 0 as * mut sys :: godot_method_bind , set_bone_custom_pose : 0 as * mut sys :: godot_method_bind , set_bone_disable_rest : 0 as * mut sys :: godot_method_bind , set_bone_global_pose_override : 0 as * mut sys :: godot_method_bind , set_bone_parent : 0 as * mut sys :: godot_method_bind , set_bone_pose : 0 as * mut sys :: godot_method_bind , set_bone_rest : 0 as * mut sys :: godot_method_bind , unbind_child_node_from_bone : 0 as * mut sys :: godot_method_bind , unparent_bone_and_rest : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { SkeletonMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "Skeleton\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . add_bone = (gd_api . godot_method_bind_get_method) (class_name , "add_bone\0" . as_ptr () as * const c_char) ; table . bind_child_node_to_bone = (gd_api . godot_method_bind_get_method) (class_name , "bind_child_node_to_bone\0" . as_ptr () as * const c_char) ; table . clear_bones = (gd_api . godot_method_bind_get_method) (class_name , "clear_bones\0" . as_ptr () as * const c_char) ; table . clear_bones_global_pose_override = (gd_api . godot_method_bind_get_method) (class_name , "clear_bones_global_pose_override\0" . as_ptr () as * const c_char) ; table . find_bone = (gd_api . godot_method_bind_get_method) (class_name , "find_bone\0" . as_ptr () as * const c_char) ; table . get_bone_count = (gd_api . godot_method_bind_get_method) (class_name , "get_bone_count\0" . as_ptr () as * const c_char) ; table . get_bone_custom_pose = (gd_api . godot_method_bind_get_method) (class_name , "get_bone_custom_pose\0" . as_ptr () as * const c_char) ; table . get_bone_global_pose = (gd_api . godot_method_bind_get_method) (class_name , "get_bone_global_pose\0" . as_ptr () as * const c_char) ; table . get_bone_global_pose_no_override = (gd_api . godot_method_bind_get_method) (class_name , "get_bone_global_pose_no_override\0" . as_ptr () as * const c_char) ; table . get_bone_name = (gd_api . godot_method_bind_get_method) (class_name , "get_bone_name\0" . as_ptr () as * const c_char) ; table . get_bone_parent = (gd_api . godot_method_bind_get_method) (class_name , "get_bone_parent\0" . as_ptr () as * const c_char) ; table . get_bone_pose = (gd_api . godot_method_bind_get_method) (class_name , "get_bone_pose\0" . as_ptr () as * const c_char) ; table . get_bone_rest = (gd_api . godot_method_bind_get_method) (class_name , "get_bone_rest\0" . as_ptr () as * const c_char) ; table . get_bound_child_nodes_to_bone = (gd_api . godot_method_bind_get_method) (class_name , "get_bound_child_nodes_to_bone\0" . as_ptr () as * const c_char) ; table . is_bone_rest_disabled = (gd_api . godot_method_bind_get_method) (class_name , "is_bone_rest_disabled\0" . as_ptr () as * const c_char) ; table . localize_rests = (gd_api . godot_method_bind_get_method) (class_name , "localize_rests\0" . as_ptr () as * const c_char) ; table . physical_bones_add_collision_exception = (gd_api . godot_method_bind_get_method) (class_name , "physical_bones_add_collision_exception\0" . as_ptr () as * const c_char) ; table . physical_bones_remove_collision_exception = (gd_api . godot_method_bind_get_method) (class_name , "physical_bones_remove_collision_exception\0" . as_ptr () as * const c_char) ; table . physical_bones_start_simulation = (gd_api . godot_method_bind_get_method) (class_name , "physical_bones_start_simulation\0" . as_ptr () as * const c_char) ; table . physical_bones_stop_simulation = (gd_api . godot_method_bind_get_method) (class_name , "physical_bones_stop_simulation\0" . as_ptr () as * const c_char) ; table . register_skin = (gd_api . godot_method_bind_get_method) (class_name , "register_skin\0" . as_ptr () as * const c_char) ; table . set_bone_custom_pose = (gd_api . godot_method_bind_get_method) (class_name , "set_bone_custom_pose\0" . as_ptr () as * const c_char) ; table . set_bone_disable_rest = (gd_api . godot_method_bind_get_method) (class_name , "set_bone_disable_rest\0" . as_ptr () as * const c_char) ; table . set_bone_global_pose_override = (gd_api . godot_method_bind_get_method) (class_name , "set_bone_global_pose_override\0" . as_ptr () as * const c_char) ; table . set_bone_parent = (gd_api . godot_method_bind_get_method) (class_name , "set_bone_parent\0" . as_ptr () as * const c_char) ; table . set_bone_pose = (gd_api . godot_method_bind_get_method) (class_name , "set_bone_pose\0" . as_ptr () as * const c_char) ; table . set_bone_rest = (gd_api . godot_method_bind_get_method) (class_name , "set_bone_rest\0" . as_ptr () as * const c_char) ; table . unbind_child_node_from_bone = (gd_api . godot_method_bind_get_method) (class_name , "unbind_child_node_from_bone\0" . as_ptr () as * const c_char) ; table . unparent_bone_and_rest = (gd_api . godot_method_bind_get_method) (class_name , "unparent_bone_and_rest\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:328:4464 [INFO] [stdout] | [INFO] [stdout] 328 | ...thodTable { class_constructor : None , } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 328 | # [doc = "`core class HSeparator` inherits `Separator` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_hseparator.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`HSeparator` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nHSeparator inherits methods from:\n - [Separator](struct.Separator.html)\n - [Control](struct.Control.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct HSeparator { this : RawObject < Self > , } impl HSeparator { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = HSeparatorMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } } impl gdnative_core :: private :: godot_object :: Sealed for HSeparator { } unsafe impl GodotObject for HSeparator { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "HSeparator" } } impl QueueFree for HSeparator { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for HSeparator { type Target = crate :: generated :: separator :: Separator ; # [inline] fn deref (& self) -> & crate :: generated :: separator :: Separator { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for HSeparator { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: separator :: Separator { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: separator :: Separator > for HSeparator { } unsafe impl SubClass < crate :: generated :: control :: Control > for HSeparator { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for HSeparator { } unsafe impl SubClass < crate :: generated :: node :: Node > for HSeparator { } unsafe impl SubClass < crate :: generated :: object :: Object > for HSeparator { } impl Instanciable for HSeparator { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { HSeparator :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct HSeparatorMethodTable { pub class_constructor : sys :: godot_class_constructor , } impl HSeparatorMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : HSeparatorMethodTable = HSeparatorMethodTable { class_constructor : None , } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { HSeparatorMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "HSeparator\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:334:4437 [INFO] [stdout] | [INFO] [stdout] 334 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 334 | # [doc = "`core class ProxyTexture` inherits `Texture` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_proxytexture.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nProxyTexture inherits methods from:\n - [Texture](struct.Texture.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct ProxyTexture { this : RawObject < Self > , } impl ProxyTexture { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = ProxyTextureMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = ""] # [doc = ""] # [inline] pub fn base (& self) -> Option < Ref < crate :: generated :: texture :: Texture , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = ProxyTextureMethodTable :: get (get_api ()) . get_base ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: texture :: Texture , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = ""] # [doc = ""] # [inline] pub fn set_base (& self , base : impl AsArg < crate :: generated :: texture :: Texture >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ProxyTextureMethodTable :: get (get_api ()) . set_base ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , base . as_arg_ptr ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for ProxyTexture { } unsafe impl GodotObject for ProxyTexture { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "ProxyTexture" } } impl std :: ops :: Deref for ProxyTexture { type Target = crate :: generated :: texture :: Texture ; # [inline] fn deref (& self) -> & crate :: generated :: texture :: Texture { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for ProxyTexture { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: texture :: Texture { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: texture :: Texture > for ProxyTexture { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for ProxyTexture { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for ProxyTexture { } unsafe impl SubClass < crate :: generated :: object :: Object > for ProxyTexture { } impl Instanciable for ProxyTexture { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { ProxyTexture :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct ProxyTextureMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_base : * mut sys :: godot_method_bind , pub set_base : * mut sys :: godot_method_bind } impl ProxyTextureMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : ProxyTextureMethodTable = ProxyTextureMethodTable { class_constructor : None , get_base : 0 as * mut sys :: godot_method_bind , set_base : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { ProxyTextureMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "ProxyTexture\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_base = (gd_api . godot_method_bind_get_method) (class_name , "get_base\0" . as_ptr () as * const c_char) ; table . set_base = (gd_api . godot_method_bind_get_method) (class_name , "set_base\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:340:11953 [INFO] [stdout] | [INFO] [stdout] 340 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 340 | # [doc = "`core class Sprite3D` inherits `SpriteBase3D` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_sprite3d.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`Sprite3D` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nSprite3D inherits methods from:\n - [SpriteBase3D](struct.SpriteBase3D.html)\n - [GeometryInstance](struct.GeometryInstance.html)\n - [VisualInstance](struct.VisualInstance.html)\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct Sprite3D { this : RawObject < Self > , } impl Sprite3D { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = Sprite3DMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Current frame to display from sprite sheet. [member vframes] or [member hframes] must be greater than 1."] # [doc = ""] # [inline] pub fn frame (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = Sprite3DMethodTable :: get (get_api ()) . get_frame ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Coordinates of the frame to display from sprite sheet. This is as an alias for the [member frame] property. [member vframes] or [member hframes] must be greater than 1."] # [doc = ""] # [inline] pub fn frame_coords (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = Sprite3DMethodTable :: get (get_api ()) . get_frame_coords ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "The number of columns in the sprite sheet."] # [doc = ""] # [inline] pub fn hframes (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = Sprite3DMethodTable :: get (get_api ()) . get_hframes ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The region of the atlas texture to display. [member region_enabled] must be `true`."] # [doc = ""] # [inline] pub fn region_rect (& self) -> Rect2 { unsafe { let method_bind : * mut sys :: godot_method_bind = Sprite3DMethodTable :: get (get_api ()) . get_region_rect ; let ret = crate :: icalls :: icallptr_rect2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "[Texture] object to draw. If [member GeometryInstance.material_override] is used, this will be overridden."] # [doc = ""] # [inline] pub fn texture (& self) -> Option < Ref < crate :: generated :: texture :: Texture , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = Sprite3DMethodTable :: get (get_api ()) . get_texture ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: texture :: Texture , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "The number of rows in the sprite sheet."] # [doc = ""] # [inline] pub fn vframes (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = Sprite3DMethodTable :: get (get_api ()) . get_vframes ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, texture will be cut from a larger atlas texture. See [member region_rect]."] # [doc = ""] # [inline] pub fn is_region (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = Sprite3DMethodTable :: get (get_api ()) . is_region ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Current frame to display from sprite sheet. [member vframes] or [member hframes] must be greater than 1."] # [doc = ""] # [inline] pub fn set_frame (& self , frame : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Sprite3DMethodTable :: get (get_api ()) . set_frame ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , frame) ; } } # [doc = "Coordinates of the frame to display from sprite sheet. This is as an alias for the [member frame] property. [member vframes] or [member hframes] must be greater than 1."] # [doc = ""] # [inline] pub fn set_frame_coords (& self , coords : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Sprite3DMethodTable :: get (get_api ()) . set_frame_coords ; let ret = crate :: icalls :: icallptr_void_vec2 (method_bind , self . this . sys () . as_ptr () , coords) ; } } # [doc = "The number of columns in the sprite sheet."] # [doc = ""] # [inline] pub fn set_hframes (& self , hframes : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Sprite3DMethodTable :: get (get_api ()) . set_hframes ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , hframes) ; } } # [doc = "If `true`, texture will be cut from a larger atlas texture. See [member region_rect]."] # [doc = ""] # [inline] pub fn set_region (& self , enabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Sprite3DMethodTable :: get (get_api ()) . set_region ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enabled) ; } } # [doc = "The region of the atlas texture to display. [member region_enabled] must be `true`."] # [doc = ""] # [inline] pub fn set_region_rect (& self , rect : Rect2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Sprite3DMethodTable :: get (get_api ()) . set_region_rect ; let ret = crate :: icalls :: icallptr_void_rect2 (method_bind , self . this . sys () . as_ptr () , rect) ; } } # [doc = "[Texture] object to draw. If [member GeometryInstance.material_override] is used, this will be overridden."] # [doc = ""] # [inline] pub fn set_texture (& self , texture : impl AsArg < crate :: generated :: texture :: Texture >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Sprite3DMethodTable :: get (get_api ()) . set_texture ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , texture . as_arg_ptr ()) ; } } # [doc = "The number of rows in the sprite sheet."] # [doc = ""] # [inline] pub fn set_vframes (& self , vframes : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = Sprite3DMethodTable :: get (get_api ()) . set_vframes ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , vframes) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for Sprite3D { } unsafe impl GodotObject for Sprite3D { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "Sprite3D" } } impl QueueFree for Sprite3D { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for Sprite3D { type Target = crate :: generated :: sprite_base_3d :: SpriteBase3D ; # [inline] fn deref (& self) -> & crate :: generated :: sprite_base_3d :: SpriteBase3D { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for Sprite3D { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: sprite_base_3d :: SpriteBase3D { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: sprite_base_3d :: SpriteBase3D > for Sprite3D { } unsafe impl SubClass < crate :: generated :: geometry_instance :: GeometryInstance > for Sprite3D { } unsafe impl SubClass < crate :: generated :: visual_instance :: VisualInstance > for Sprite3D { } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for Sprite3D { } unsafe impl SubClass < crate :: generated :: node :: Node > for Sprite3D { } unsafe impl SubClass < crate :: generated :: object :: Object > for Sprite3D { } impl Instanciable for Sprite3D { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { Sprite3D :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct Sprite3DMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_frame : * mut sys :: godot_method_bind , pub get_frame_coords : * mut sys :: godot_method_bind , pub get_hframes : * mut sys :: godot_method_bind , pub get_region_rect : * mut sys :: godot_method_bind , pub get_texture : * mut sys :: godot_method_bind , pub get_vframes : * mut sys :: godot_method_bind , pub is_region : * mut sys :: godot_method_bind , pub set_frame : * mut sys :: godot_method_bind , pub set_frame_coords : * mut sys :: godot_method_bind , pub set_hframes : * mut sys :: godot_method_bind , pub set_region : * mut sys :: godot_method_bind , pub set_region_rect : * mut sys :: godot_method_bind , pub set_texture : * mut sys :: godot_method_bind , pub set_vframes : * mut sys :: godot_method_bind } impl Sprite3DMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : Sprite3DMethodTable = Sprite3DMethodTable { class_constructor : None , get_frame : 0 as * mut sys :: godot_method_bind , get_frame_coords : 0 as * mut sys :: godot_method_bind , get_hframes : 0 as * mut sys :: godot_method_bind , get_region_rect : 0 as * mut sys :: godot_method_bind , get_texture : 0 as * mut sys :: godot_method_bind , get_vframes : 0 as * mut sys :: godot_method_bind , is_region : 0 as * mut sys :: godot_method_bind , set_frame : 0 as * mut sys :: godot_method_bind , set_frame_coords : 0 as * mut sys :: godot_method_bind , set_hframes : 0 as * mut sys :: godot_method_bind , set_region : 0 as * mut sys :: godot_method_bind , set_region_rect : 0 as * mut sys :: godot_method_bind , set_texture : 0 as * mut sys :: godot_method_bind , set_vframes : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { Sprite3DMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "Sprite3D\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_frame = (gd_api . godot_method_bind_get_method) (class_name , "get_frame\0" . as_ptr () as * const c_char) ; table . get_frame_coords = (gd_api . godot_method_bind_get_method) (class_name , "get_frame_coords\0" . as_ptr () as * const c_char) ; table . get_hframes = (gd_api . godot_method_bind_get_method) (class_name , "get_hframes\0" . as_ptr () as * const c_char) ; table . get_region_rect = (gd_api . godot_method_bind_get_method) (class_name , "get_region_rect\0" . as_ptr () as * const c_char) ; table . get_texture = (gd_api . godot_method_bind_get_method) (class_name , "get_texture\0" . as_ptr () as * const c_char) ; table . get_vframes = (gd_api . godot_method_bind_get_method) (class_name , "get_vframes\0" . as_ptr () as * const c_char) ; table . is_region = (gd_api . godot_method_bind_get_method) (class_name , "is_region\0" . as_ptr () as * const c_char) ; table . set_frame = (gd_api . godot_method_bind_get_method) (class_name , "set_frame\0" . as_ptr () as * const c_char) ; table . set_frame_coords = (gd_api . godot_method_bind_get_method) (class_name , "set_frame_coords\0" . as_ptr () as * const c_char) ; table . set_hframes = (gd_api . godot_method_bind_get_method) (class_name , "set_hframes\0" . as_ptr () as * const c_char) ; table . set_region = (gd_api . godot_method_bind_get_method) (class_name , "set_region\0" . as_ptr () as * const c_char) ; table . set_region_rect = (gd_api . godot_method_bind_get_method) (class_name , "set_region_rect\0" . as_ptr () as * const c_char) ; table . set_texture = (gd_api . godot_method_bind_get_method) (class_name , "set_texture\0" . as_ptr () as * const c_char) ; table . set_vframes = (gd_api . godot_method_bind_get_method) (class_name , "set_vframes\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:346:6978 [INFO] [stdout] | [INFO] [stdout] 346 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 346 | # [doc = "`core class VisibilityEnabler2D` inherits `VisibilityNotifier2D` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_visibilityenabler2d.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`VisibilityEnabler2D` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nVisibilityEnabler2D inherits methods from:\n - [VisibilityNotifier2D](struct.VisibilityNotifier2D.html)\n - [Node2D](struct.Node2D.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct VisibilityEnabler2D { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct Enabler (pub i64) ; impl Enabler { pub const PAUSE_ANIMATIONS : Enabler = Enabler (0i64) ; pub const FREEZE_BODIES : Enabler = Enabler (1i64) ; pub const PAUSE_PARTICLES : Enabler = Enabler (2i64) ; pub const PARENT_PROCESS : Enabler = Enabler (3i64) ; pub const PARENT_PHYSICS_PROCESS : Enabler = Enabler (4i64) ; pub const PAUSE_ANIMATED_SPRITES : Enabler = Enabler (5i64) ; pub const MAX : Enabler = Enabler (6i64) ; } impl From < i64 > for Enabler { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < Enabler > for i64 { # [inline] fn from (v : Enabler) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl VisibilityEnabler2D { pub const ENABLER_FREEZE_BODIES : i64 = 1i64 ; pub const ENABLER_MAX : i64 = 6i64 ; pub const ENABLER_PARENT_PHYSICS_PROCESS : i64 = 4i64 ; pub const ENABLER_PARENT_PROCESS : i64 = 3i64 ; pub const ENABLER_PAUSE_ANIMATED_SPRITES : i64 = 5i64 ; pub const ENABLER_PAUSE_ANIMATIONS : i64 = 0i64 ; pub const ENABLER_PAUSE_PARTICLES : i64 = 2i64 ; } impl VisibilityEnabler2D { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = VisibilityEnabler2DMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "If `true`, the parent's [method Node._process] will be stopped."] # [doc = ""] # [inline] pub fn is_enabler_enabled (& self , enabler : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = VisibilityEnabler2DMethodTable :: get (get_api ()) . is_enabler_enabled ; let ret = crate :: icalls :: icallptr_bool_i64 (method_bind , self . this . sys () . as_ptr () , enabler) ; ret as _ } } # [doc = "If `true`, the parent's [method Node._process] will be stopped."] # [doc = ""] # [inline] pub fn set_enabler (& self , enabler : i64 , enabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = VisibilityEnabler2DMethodTable :: get (get_api ()) . set_enabler ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , enabler , enabled) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for VisibilityEnabler2D { } unsafe impl GodotObject for VisibilityEnabler2D { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "VisibilityEnabler2D" } } impl QueueFree for VisibilityEnabler2D { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for VisibilityEnabler2D { type Target = crate :: generated :: visibility_notifier_2d :: VisibilityNotifier2D ; # [inline] fn deref (& self) -> & crate :: generated :: visibility_notifier_2d :: VisibilityNotifier2D { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for VisibilityEnabler2D { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: visibility_notifier_2d :: VisibilityNotifier2D { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: visibility_notifier_2d :: VisibilityNotifier2D > for VisibilityEnabler2D { } unsafe impl SubClass < crate :: generated :: node_2d :: Node2D > for VisibilityEnabler2D { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for VisibilityEnabler2D { } unsafe impl SubClass < crate :: generated :: node :: Node > for VisibilityEnabler2D { } unsafe impl SubClass < crate :: generated :: object :: Object > for VisibilityEnabler2D { } impl Instanciable for VisibilityEnabler2D { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { VisibilityEnabler2D :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct VisibilityEnabler2DMethodTable { pub class_constructor : sys :: godot_class_constructor , pub is_enabler_enabled : * mut sys :: godot_method_bind , pub set_enabler : * mut sys :: godot_method_bind } impl VisibilityEnabler2DMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : VisibilityEnabler2DMethodTable = VisibilityEnabler2DMethodTable { class_constructor : None , is_enabler_enabled : 0 as * mut sys :: godot_method_bind , set_enabler : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { VisibilityEnabler2DMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "VisibilityEnabler2D\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . is_enabler_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_enabler_enabled\0" . as_ptr () as * const c_char) ; table . set_enabler = (gd_api . godot_method_bind_get_method) (class_name , "set_enabler\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:352:11980 [INFO] [stdout] | [INFO] [stdout] 352 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 352 | # [doc = "`core class ARVRController` inherits `Spatial` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_arvrcontroller.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`ARVRController` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nARVRController inherits methods from:\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct ARVRController { this : RawObject < Self > , } impl ARVRController { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = ARVRControllerMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "The controller's ID.\nA controller ID of 0 is unbound and will always result in an inactive node. Controller ID 1 is reserved for the first controller that identifies itself as the left-hand controller and ID 2 is reserved for the first controller that identifies itself as the right-hand controller.\nFor any other controller that the [ARVRServer] detects, we continue with controller ID 3.\nWhen a controller is turned off, its slot is freed. This ensures controllers will keep the same ID even when controllers with lower IDs are turned off."] # [doc = ""] # [inline] pub fn controller_id (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = ARVRControllerMethodTable :: get (get_api ()) . get_controller_id ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If active, returns the name of the associated controller if provided by the AR/VR SDK used."] # [doc = ""] # [inline] pub fn get_controller_name (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = ARVRControllerMethodTable :: get (get_api ()) . get_controller_name ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = "Returns the hand holding this controller, if known. See [enum ARVRPositionalTracker.TrackerHand]."] # [doc = ""] # [inline] pub fn get_hand (& self) -> crate :: generated :: arvr_positional_tracker :: TrackerHand { unsafe { let method_bind : * mut sys :: godot_method_bind = ARVRControllerMethodTable :: get (get_api ()) . get_hand ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: arvr_positional_tracker :: TrackerHand (ret) } } # [doc = "Returns `true` if the bound controller is active. ARVR systems attempt to track active controllers."] # [doc = ""] # [inline] pub fn get_is_active (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = ARVRControllerMethodTable :: get (get_api ()) . get_is_active ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the value of the given axis for things like triggers, touchpads, etc. that are embedded into the controller."] # [doc = ""] # [inline] pub fn get_joystick_axis (& self , axis : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = ARVRControllerMethodTable :: get (get_api ()) . get_joystick_axis ; let ret = crate :: icalls :: icallptr_f64_i64 (method_bind , self . this . sys () . as_ptr () , axis) ; ret as _ } } # [doc = "Returns the ID of the joystick object bound to this. Every controller tracked by the [ARVRServer] that has buttons and axis will also be registered as a joystick within Godot. This means that all the normal joystick tracking and input mapping will work for buttons and axis found on the AR/VR controllers. This ID is purely offered as information so you can link up the controller with its joystick entry."] # [doc = ""] # [inline] pub fn get_joystick_id (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = ARVRControllerMethodTable :: get (get_api ()) . get_joystick_id ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If provided by the [ARVRInterface], this returns a mesh associated with the controller. This can be used to visualize the controller."] # [doc = ""] # [inline] pub fn get_mesh (& self) -> Option < Ref < crate :: generated :: mesh :: Mesh , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = ARVRControllerMethodTable :: get (get_api ()) . get_mesh ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: mesh :: Mesh , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "The degree to which the controller vibrates. Ranges from `0.0` to `1.0` with precision `.01`. If changed, updates [member ARVRPositionalTracker.rumble] accordingly.\nThis is a useful property to animate if you want the controller to vibrate for a limited duration."] # [doc = ""] # [inline] pub fn rumble (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = ARVRControllerMethodTable :: get (get_api ()) . get_rumble ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the button at index `button` is pressed. See [enum JoystickList], in particular the `JOY_VR_*` constants."] # [doc = ""] # [inline] pub fn is_button_pressed (& self , button : i64) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = ARVRControllerMethodTable :: get (get_api ()) . is_button_pressed ; let ret = crate :: icalls :: icallptr_i64_i64 (method_bind , self . this . sys () . as_ptr () , button) ; ret as _ } } # [doc = "The controller's ID.\nA controller ID of 0 is unbound and will always result in an inactive node. Controller ID 1 is reserved for the first controller that identifies itself as the left-hand controller and ID 2 is reserved for the first controller that identifies itself as the right-hand controller.\nFor any other controller that the [ARVRServer] detects, we continue with controller ID 3.\nWhen a controller is turned off, its slot is freed. This ensures controllers will keep the same ID even when controllers with lower IDs are turned off."] # [doc = ""] # [inline] pub fn set_controller_id (& self , controller_id : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ARVRControllerMethodTable :: get (get_api ()) . set_controller_id ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , controller_id) ; } } # [doc = "The degree to which the controller vibrates. Ranges from `0.0` to `1.0` with precision `.01`. If changed, updates [member ARVRPositionalTracker.rumble] accordingly.\nThis is a useful property to animate if you want the controller to vibrate for a limited duration."] # [doc = ""] # [inline] pub fn set_rumble (& self , rumble : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ARVRControllerMethodTable :: get (get_api ()) . set_rumble ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , rumble) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for ARVRController { } unsafe impl GodotObject for ARVRController { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "ARVRController" } } impl QueueFree for ARVRController { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for ARVRController { type Target = crate :: generated :: spatial :: Spatial ; # [inline] fn deref (& self) -> & crate :: generated :: spatial :: Spatial { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for ARVRController { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: spatial :: Spatial { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for ARVRController { } unsafe impl SubClass < crate :: generated :: node :: Node > for ARVRController { } unsafe impl SubClass < crate :: generated :: object :: Object > for ARVRController { } impl Instanciable for ARVRController { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { ARVRController :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct ARVRControllerMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_controller_id : * mut sys :: godot_method_bind , pub get_controller_name : * mut sys :: godot_method_bind , pub get_hand : * mut sys :: godot_method_bind , pub get_is_active : * mut sys :: godot_method_bind , pub get_joystick_axis : * mut sys :: godot_method_bind , pub get_joystick_id : * mut sys :: godot_method_bind , pub get_mesh : * mut sys :: godot_method_bind , pub get_rumble : * mut sys :: godot_method_bind , pub is_button_pressed : * mut sys :: godot_method_bind , pub set_controller_id : * mut sys :: godot_method_bind , pub set_rumble : * mut sys :: godot_method_bind } impl ARVRControllerMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : ARVRControllerMethodTable = ARVRControllerMethodTable { class_constructor : None , get_controller_id : 0 as * mut sys :: godot_method_bind , get_controller_name : 0 as * mut sys :: godot_method_bind , get_hand : 0 as * mut sys :: godot_method_bind , get_is_active : 0 as * mut sys :: godot_method_bind , get_joystick_axis : 0 as * mut sys :: godot_method_bind , get_joystick_id : 0 as * mut sys :: godot_method_bind , get_mesh : 0 as * mut sys :: godot_method_bind , get_rumble : 0 as * mut sys :: godot_method_bind , is_button_pressed : 0 as * mut sys :: godot_method_bind , set_controller_id : 0 as * mut sys :: godot_method_bind , set_rumble : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { ARVRControllerMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "ARVRController\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_controller_id = (gd_api . godot_method_bind_get_method) (class_name , "get_controller_id\0" . as_ptr () as * const c_char) ; table . get_controller_name = (gd_api . godot_method_bind_get_method) (class_name , "get_controller_name\0" . as_ptr () as * const c_char) ; table . get_hand = (gd_api . godot_method_bind_get_method) (class_name , "get_hand\0" . as_ptr () as * const c_char) ; table . get_is_active = (gd_api . godot_method_bind_get_method) (class_name , "get_is_active\0" . as_ptr () as * const c_char) ; table . get_joystick_axis = (gd_api . godot_method_bind_get_method) (class_name , "get_joystick_axis\0" . as_ptr () as * const c_char) ; table . get_joystick_id = (gd_api . godot_method_bind_get_method) (class_name , "get_joystick_id\0" . as_ptr () as * const c_char) ; table . get_mesh = (gd_api . godot_method_bind_get_method) (class_name , "get_mesh\0" . as_ptr () as * const c_char) ; table . get_rumble = (gd_api . godot_method_bind_get_method) (class_name , "get_rumble\0" . as_ptr () as * const c_char) ; table . is_button_pressed = (gd_api . godot_method_bind_get_method) (class_name , "is_button_pressed\0" . as_ptr () as * const c_char) ; table . set_controller_id = (gd_api . godot_method_bind_get_method) (class_name , "set_controller_id\0" . as_ptr () as * const c_char) ; table . set_rumble = (gd_api . godot_method_bind_get_method) (class_name , "set_rumble\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:358:7609 [INFO] [stdout] | [INFO] [stdout] 358 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 358 | # [doc = "`core class Physics2DTestMotionResult` inherits `Reference` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_physics2dtestmotionresult.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nPhysics2DTestMotionResult inherits methods from:\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct Physics2DTestMotionResult { this : RawObject < Self > , } impl Physics2DTestMotionResult { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = Physics2DTestMotionResultMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = ""] # [doc = ""] # [inline] pub fn collider (& self) -> Option < Ref < crate :: generated :: object :: Object , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DTestMotionResultMethodTable :: get (get_api ()) . get_collider ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: object :: Object , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = ""] # [doc = ""] # [inline] pub fn collider_id (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DTestMotionResultMethodTable :: get (get_api ()) . get_collider_id ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn collider_rid (& self) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DTestMotionResultMethodTable :: get (get_api ()) . get_collider_rid ; let ret = crate :: icalls :: icallptr_rid (method_bind , self . this . sys () . as_ptr ()) ; Rid :: from_sys (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn collider_shape (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DTestMotionResultMethodTable :: get (get_api ()) . get_collider_shape ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn collider_velocity (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DTestMotionResultMethodTable :: get (get_api ()) . get_collider_velocity ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn collision_normal (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DTestMotionResultMethodTable :: get (get_api ()) . get_collision_normal ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn collision_point (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DTestMotionResultMethodTable :: get (get_api ()) . get_collision_point ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn motion (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DTestMotionResultMethodTable :: get (get_api ()) . get_motion ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn motion_remainder (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = Physics2DTestMotionResultMethodTable :: get (get_api ()) . get_motion_remainder ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } } impl gdnative_core :: private :: godot_object :: Sealed for Physics2DTestMotionResult { } unsafe impl GodotObject for Physics2DTestMotionResult { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "Physics2DTestMotionResult" } } impl std :: ops :: Deref for Physics2DTestMotionResult { type Target = crate :: generated :: reference :: Reference ; # [inline] fn deref (& self) -> & crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for Physics2DTestMotionResult { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: reference :: Reference > for Physics2DTestMotionResult { } unsafe impl SubClass < crate :: generated :: object :: Object > for Physics2DTestMotionResult { } impl Instanciable for Physics2DTestMotionResult { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { Physics2DTestMotionResult :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct Physics2DTestMotionResultMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_collider : * mut sys :: godot_method_bind , pub get_collider_id : * mut sys :: godot_method_bind , pub get_collider_rid : * mut sys :: godot_method_bind , pub get_collider_shape : * mut sys :: godot_method_bind , pub get_collider_velocity : * mut sys :: godot_method_bind , pub get_collision_normal : * mut sys :: godot_method_bind , pub get_collision_point : * mut sys :: godot_method_bind , pub get_motion : * mut sys :: godot_method_bind , pub get_motion_remainder : * mut sys :: godot_method_bind } impl Physics2DTestMotionResultMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : Physics2DTestMotionResultMethodTable = Physics2DTestMotionResultMethodTable { class_constructor : None , get_collider : 0 as * mut sys :: godot_method_bind , get_collider_id : 0 as * mut sys :: godot_method_bind , get_collider_rid : 0 as * mut sys :: godot_method_bind , get_collider_shape : 0 as * mut sys :: godot_method_bind , get_collider_velocity : 0 as * mut sys :: godot_method_bind , get_collision_normal : 0 as * mut sys :: godot_method_bind , get_collision_point : 0 as * mut sys :: godot_method_bind , get_motion : 0 as * mut sys :: godot_method_bind , get_motion_remainder : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { Physics2DTestMotionResultMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "Physics2DTestMotionResult\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_collider = (gd_api . godot_method_bind_get_method) (class_name , "get_collider\0" . as_ptr () as * const c_char) ; table . get_collider_id = (gd_api . godot_method_bind_get_method) (class_name , "get_collider_id\0" . as_ptr () as * const c_char) ; table . get_collider_rid = (gd_api . godot_method_bind_get_method) (class_name , "get_collider_rid\0" . as_ptr () as * const c_char) ; table . get_collider_shape = (gd_api . godot_method_bind_get_method) (class_name , "get_collider_shape\0" . as_ptr () as * const c_char) ; table . get_collider_velocity = (gd_api . godot_method_bind_get_method) (class_name , "get_collider_velocity\0" . as_ptr () as * const c_char) ; table . get_collision_normal = (gd_api . godot_method_bind_get_method) (class_name , "get_collision_normal\0" . as_ptr () as * const c_char) ; table . get_collision_point = (gd_api . godot_method_bind_get_method) (class_name , "get_collision_point\0" . as_ptr () as * const c_char) ; table . get_motion = (gd_api . godot_method_bind_get_method) (class_name , "get_motion\0" . as_ptr () as * const c_char) ; table . get_motion_remainder = (gd_api . godot_method_bind_get_method) (class_name , "get_motion_remainder\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:364:5554 [INFO] [stdout] | [INFO] [stdout] 364 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 364 | # [doc = "`core class Container` inherits `Control` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_container.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`Container` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nContainer inherits methods from:\n - [Control](struct.Control.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct Container { this : RawObject < Self > , } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl Container { pub const NOTIFICATION_SORT_CHILDREN : i64 = 50i64 ; } impl Container { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = ContainerMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Fit a child control in a given rect. This is mainly a helper for creating custom container classes."] # [doc = ""] # [inline] pub fn fit_child_in_rect (& self , child : impl AsArg < crate :: generated :: control :: Control > , rect : Rect2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ContainerMethodTable :: get (get_api ()) . fit_child_in_rect ; let ret = crate :: icalls :: icallptr_void_obj_rect2 (method_bind , self . this . sys () . as_ptr () , child . as_arg_ptr () , rect) ; } } # [doc = "Queue resort of the contained children. This is called automatically anyway, but can be called upon request."] # [doc = ""] # [inline] pub fn queue_sort (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ContainerMethodTable :: get (get_api ()) . queue_sort ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for Container { } unsafe impl GodotObject for Container { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "Container" } } impl QueueFree for Container { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for Container { type Target = crate :: generated :: control :: Control ; # [inline] fn deref (& self) -> & crate :: generated :: control :: Control { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for Container { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: control :: Control { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: control :: Control > for Container { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for Container { } unsafe impl SubClass < crate :: generated :: node :: Node > for Container { } unsafe impl SubClass < crate :: generated :: object :: Object > for Container { } impl Instanciable for Container { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { Container :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct ContainerMethodTable { pub class_constructor : sys :: godot_class_constructor , pub fit_child_in_rect : * mut sys :: godot_method_bind , pub queue_sort : * mut sys :: godot_method_bind } impl ContainerMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : ContainerMethodTable = ContainerMethodTable { class_constructor : None , fit_child_in_rect : 0 as * mut sys :: godot_method_bind , queue_sort : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { ContainerMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "Container\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . fit_child_in_rect = (gd_api . godot_method_bind_get_method) (class_name , "fit_child_in_rect\0" . as_ptr () as * const c_char) ; table . queue_sort = (gd_api . godot_method_bind_get_method) (class_name , "queue_sort\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:370:16976 [INFO] [stdout] | [INFO] [stdout] 370 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 370 | # [doc = "`core class KinematicBody` inherits `PhysicsBody` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_kinematicbody.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`KinematicBody` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nKinematicBody inherits methods from:\n - [PhysicsBody](struct.PhysicsBody.html)\n - [CollisionObject](struct.CollisionObject.html)\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct KinematicBody { this : RawObject < Self > , } impl KinematicBody { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = KinematicBodyMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Lock the body's Z axis movement."] # [doc = ""] # [inline] pub fn axis_lock (& self , axis : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = KinematicBodyMethodTable :: get (get_api ()) . get_axis_lock ; let ret = crate :: icalls :: icallptr_bool_i64 (method_bind , self . this . sys () . as_ptr () , axis) ; ret as _ } } # [doc = "Returns the surface normal of the floor at the last collision point. Only valid after calling [method move_and_slide] or [method move_and_slide_with_snap] and when [method is_on_floor] returns `true`."] # [doc = ""] # [inline] pub fn get_floor_normal (& self) -> Vector3 { unsafe { let method_bind : * mut sys :: godot_method_bind = KinematicBodyMethodTable :: get (get_api ()) . get_floor_normal ; let ret = crate :: icalls :: icallptr_vec3 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Returns the linear velocity of the floor at the last collision point. Only valid after calling [method move_and_slide] or [method move_and_slide_with_snap] and when [method is_on_floor] returns `true`."] # [doc = ""] # [inline] pub fn get_floor_velocity (& self) -> Vector3 { unsafe { let method_bind : * mut sys :: godot_method_bind = KinematicBodyMethodTable :: get (get_api ()) . get_floor_velocity ; let ret = crate :: icalls :: icallptr_vec3 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "If the body is at least this close to another body, this body will consider them to be colliding."] # [doc = ""] # [inline] pub fn safe_margin (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = KinematicBodyMethodTable :: get (get_api ()) . get_safe_margin ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns a [KinematicCollision], which contains information about a collision that occurred during the last [method move_and_slide] call. Since the body can collide several times in a single call to [method move_and_slide], you must specify the index of the collision in the range 0 to ([method get_slide_count] - 1)."] # [doc = ""] # [inline] pub fn get_slide_collision (& self , slide_idx : i64) -> Option < Ref < crate :: generated :: kinematic_collision :: KinematicCollision , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = KinematicBodyMethodTable :: get (get_api ()) . get_slide_collision ; let ret = crate :: icalls :: icallptr_obj_i64 (method_bind , self . this . sys () . as_ptr () , slide_idx) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: kinematic_collision :: KinematicCollision , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the number of times the body collided and changed direction during the last call to [method move_and_slide]."] # [doc = ""] # [inline] pub fn get_slide_count (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = KinematicBodyMethodTable :: get (get_api ()) . get_slide_count ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the body is on the ceiling. Only updates when calling [method move_and_slide]."] # [doc = ""] # [inline] pub fn is_on_ceiling (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = KinematicBodyMethodTable :: get (get_api ()) . is_on_ceiling ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the body is on the floor. Only updates when calling [method move_and_slide]."] # [doc = ""] # [inline] pub fn is_on_floor (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = KinematicBodyMethodTable :: get (get_api ()) . is_on_floor ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the body is on a wall. Only updates when calling [method move_and_slide]."] # [doc = ""] # [inline] pub fn is_on_wall (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = KinematicBodyMethodTable :: get (get_api ()) . is_on_wall ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Moves the body along the vector `rel_vec`. The body will stop if it collides. Returns a [KinematicCollision], which contains information about the collision.\nIf `test_only` is `true`, the body does not move but the would-be collision information is given.\n# Default Arguments\n* `infinite_inertia` - `true`\n* `exclude_raycast_shapes` - `true`\n* `test_only` - `false`"] # [doc = ""] # [inline] pub fn move_and_collide (& self , rel_vec : Vector3 , infinite_inertia : bool , exclude_raycast_shapes : bool , test_only : bool) -> Option < Ref < crate :: generated :: kinematic_collision :: KinematicCollision , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = KinematicBodyMethodTable :: get (get_api ()) . move_and_collide ; let ret = crate :: icalls :: icallptr_obj_vec3_bool_bool_bool (method_bind , self . this . sys () . as_ptr () , rel_vec , infinite_inertia , exclude_raycast_shapes , test_only) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: kinematic_collision :: KinematicCollision , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Moves the body along a vector. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a [KinematicBody] or [RigidBody], it will also be affected by the motion of the other body. You can use this to make moving or rotating platforms, or to make nodes push other nodes.\nThis method should be used in [method Node._physics_process] (or in a method called by [method Node._physics_process]), as it uses the physics step's `delta` value automatically in calculations. Otherwise, the simulation will run at an incorrect speed.\n`linear_velocity` is the velocity vector (typically meters per second). Unlike in [method move_and_collide], you should [i]not[/i] multiply it by `delta` — the physics engine handles applying the velocity.\n`up_direction` is the up direction, used to determine what is a wall and what is a floor or a ceiling. If set to the default value of `Vector3(0, 0, 0)`, everything is considered a wall.\nIf `stop_on_slope` is `true`, body will not slide on slopes when you include gravity in `linear_velocity` and the body is standing still.\nIf the body collides, it will change direction a maximum of `max_slides` times before it stops.\n`floor_max_angle` is the maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall. The default value equals 45 degrees.\nIf `infinite_inertia` is `true`, body will be able to push [RigidBody] nodes, but it won't also detect any collisions with them. If `false`, it will interact with [RigidBody] nodes like with [StaticBody].\nReturns the `linear_velocity` vector, rotated and/or scaled if a slide collision occurred. To get detailed information about collisions that occurred, use [method get_slide_collision].\n# Default Arguments\n* `up_direction` - `Vector3( 0, 0, 0 )`\n* `stop_on_slope` - `false`\n* `max_slides` - `4`\n* `floor_max_angle` - `0.785398`\n* `infinite_inertia` - `true`"] # [doc = ""] # [inline] pub fn move_and_slide (& self , linear_velocity : Vector3 , up_direction : Vector3 , stop_on_slope : bool , max_slides : i64 , floor_max_angle : f64 , infinite_inertia : bool) -> Vector3 { unsafe { let method_bind : * mut sys :: godot_method_bind = KinematicBodyMethodTable :: get (get_api ()) . move_and_slide ; let ret = crate :: icalls :: icallptr_vec3_vec3_vec3_bool_i64_f64_bool (method_bind , self . this . sys () . as_ptr () , linear_velocity , up_direction , stop_on_slope , max_slides , floor_max_angle , infinite_inertia) ; mem :: transmute (ret) } } # [doc = "Moves the body while keeping it attached to slopes. Similar to [method move_and_slide].\nAs long as the `snap` vector is in contact with the ground, the body will remain attached to the surface. This means you must disable snap in order to jump, for example. You can do this by setting `snap` to `(0, 0, 0)` or by using [method move_and_slide] instead.\n# Default Arguments\n* `up_direction` - `Vector3( 0, 0, 0 )`\n* `stop_on_slope` - `false`\n* `max_slides` - `4`\n* `floor_max_angle` - `0.785398`\n* `infinite_inertia` - `true`"] # [doc = ""] # [inline] pub fn move_and_slide_with_snap (& self , linear_velocity : Vector3 , snap : Vector3 , up_direction : Vector3 , stop_on_slope : bool , max_slides : i64 , floor_max_angle : f64 , infinite_inertia : bool) -> Vector3 { unsafe { let method_bind : * mut sys :: godot_method_bind = KinematicBodyMethodTable :: get (get_api ()) . move_and_slide_with_snap ; let ret = crate :: icalls :: icallptr_vec3_vec3_vec3_vec3_bool_i64_f64_bool (method_bind , self . this . sys () . as_ptr () , linear_velocity , snap , up_direction , stop_on_slope , max_slides , floor_max_angle , infinite_inertia) ; mem :: transmute (ret) } } # [doc = "Lock the body's Z axis movement."] # [doc = ""] # [inline] pub fn set_axis_lock (& self , axis : i64 , lock : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = KinematicBodyMethodTable :: get (get_api ()) . set_axis_lock ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , axis , lock) ; } } # [doc = "If the body is at least this close to another body, this body will consider them to be colliding."] # [doc = ""] # [inline] pub fn set_safe_margin (& self , pixels : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = KinematicBodyMethodTable :: get (get_api ()) . set_safe_margin ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , pixels) ; } } # [doc = "Checks for collisions without moving the body. Virtually sets the node's position, scale and rotation to that of the given [Transform], then tries to move the body along the vector `rel_vec`. Returns `true` if a collision would occur.\n# Default Arguments\n* `infinite_inertia` - `true`"] # [doc = ""] # [inline] pub fn test_move (& self , from : Transform , rel_vec : Vector3 , infinite_inertia : bool) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = KinematicBodyMethodTable :: get (get_api ()) . test_move ; let ret = crate :: icalls :: icallptr_bool_trans_vec3_bool (method_bind , self . this . sys () . as_ptr () , from , rel_vec , infinite_inertia) ; ret as _ } } } impl gdnative_core :: private :: godot_object :: Sealed for KinematicBody { } unsafe impl GodotObject for KinematicBody { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "KinematicBody" } } impl QueueFree for KinematicBody { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for KinematicBody { type Target = crate :: generated :: physics_body :: PhysicsBody ; # [inline] fn deref (& self) -> & crate :: generated :: physics_body :: PhysicsBody { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for KinematicBody { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: physics_body :: PhysicsBody { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: physics_body :: PhysicsBody > for KinematicBody { } unsafe impl SubClass < crate :: generated :: collision_object :: CollisionObject > for KinematicBody { } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for KinematicBody { } unsafe impl SubClass < crate :: generated :: node :: Node > for KinematicBody { } unsafe impl SubClass < crate :: generated :: object :: Object > for KinematicBody { } impl Instanciable for KinematicBody { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { KinematicBody :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct KinematicBodyMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_axis_lock : * mut sys :: godot_method_bind , pub get_floor_normal : * mut sys :: godot_method_bind , pub get_floor_velocity : * mut sys :: godot_method_bind , pub get_safe_margin : * mut sys :: godot_method_bind , pub get_slide_collision : * mut sys :: godot_method_bind , pub get_slide_count : * mut sys :: godot_method_bind , pub is_on_ceiling : * mut sys :: godot_method_bind , pub is_on_floor : * mut sys :: godot_method_bind , pub is_on_wall : * mut sys :: godot_method_bind , pub move_and_collide : * mut sys :: godot_method_bind , pub move_and_slide : * mut sys :: godot_method_bind , pub move_and_slide_with_snap : * mut sys :: godot_method_bind , pub set_axis_lock : * mut sys :: godot_method_bind , pub set_safe_margin : * mut sys :: godot_method_bind , pub test_move : * mut sys :: godot_method_bind } impl KinematicBodyMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : KinematicBodyMethodTable = KinematicBodyMethodTable { class_constructor : None , get_axis_lock : 0 as * mut sys :: godot_method_bind , get_floor_normal : 0 as * mut sys :: godot_method_bind , get_floor_velocity : 0 as * mut sys :: godot_method_bind , get_safe_margin : 0 as * mut sys :: godot_method_bind , get_slide_collision : 0 as * mut sys :: godot_method_bind , get_slide_count : 0 as * mut sys :: godot_method_bind , is_on_ceiling : 0 as * mut sys :: godot_method_bind , is_on_floor : 0 as * mut sys :: godot_method_bind , is_on_wall : 0 as * mut sys :: godot_method_bind , move_and_collide : 0 as * mut sys :: godot_method_bind , move_and_slide : 0 as * mut sys :: godot_method_bind , move_and_slide_with_snap : 0 as * mut sys :: godot_method_bind , set_axis_lock : 0 as * mut sys :: godot_method_bind , set_safe_margin : 0 as * mut sys :: godot_method_bind , test_move : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { KinematicBodyMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "KinematicBody\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_axis_lock = (gd_api . godot_method_bind_get_method) (class_name , "get_axis_lock\0" . as_ptr () as * const c_char) ; table . get_floor_normal = (gd_api . godot_method_bind_get_method) (class_name , "get_floor_normal\0" . as_ptr () as * const c_char) ; table . get_floor_velocity = (gd_api . godot_method_bind_get_method) (class_name , "get_floor_velocity\0" . as_ptr () as * const c_char) ; table . get_safe_margin = (gd_api . godot_method_bind_get_method) (class_name , "get_safe_margin\0" . as_ptr () as * const c_char) ; table . get_slide_collision = (gd_api . godot_method_bind_get_method) (class_name , "get_slide_collision\0" . as_ptr () as * const c_char) ; table . get_slide_count = (gd_api . godot_method_bind_get_method) (class_name , "get_slide_count\0" . as_ptr () as * const c_char) ; table . is_on_ceiling = (gd_api . godot_method_bind_get_method) (class_name , "is_on_ceiling\0" . as_ptr () as * const c_char) ; table . is_on_floor = (gd_api . godot_method_bind_get_method) (class_name , "is_on_floor\0" . as_ptr () as * const c_char) ; table . is_on_wall = (gd_api . godot_method_bind_get_method) (class_name , "is_on_wall\0" . as_ptr () as * const c_char) ; table . move_and_collide = (gd_api . godot_method_bind_get_method) (class_name , "move_and_collide\0" . as_ptr () as * const c_char) ; table . move_and_slide = (gd_api . godot_method_bind_get_method) (class_name , "move_and_slide\0" . as_ptr () as * const c_char) ; table . move_and_slide_with_snap = (gd_api . godot_method_bind_get_method) (class_name , "move_and_slide_with_snap\0" . as_ptr () as * const c_char) ; table . set_axis_lock = (gd_api . godot_method_bind_get_method) (class_name , "set_axis_lock\0" . as_ptr () as * const c_char) ; table . set_safe_margin = (gd_api . godot_method_bind_get_method) (class_name , "set_safe_margin\0" . as_ptr () as * const c_char) ; table . test_move = (gd_api . godot_method_bind_get_method) (class_name , "test_move\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:376:5076 [INFO] [stdout] | [INFO] [stdout] 376 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 376 | # [doc = "`core class RayShape` inherits `Shape` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_rayshape.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nRayShape inherits methods from:\n - [Shape](struct.Shape.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct RayShape { this : RawObject < Self > , } impl RayShape { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = RayShapeMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "The ray's length."] # [doc = ""] # [inline] pub fn length (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = RayShapeMethodTable :: get (get_api ()) . get_length ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, allow the shape to return the correct normal."] # [doc = ""] # [inline] pub fn slips_on_slope (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RayShapeMethodTable :: get (get_api ()) . get_slips_on_slope ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The ray's length."] # [doc = ""] # [inline] pub fn set_length (& self , length : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RayShapeMethodTable :: get (get_api ()) . set_length ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , length) ; } } # [doc = "If `true`, allow the shape to return the correct normal."] # [doc = ""] # [inline] pub fn set_slips_on_slope (& self , active : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RayShapeMethodTable :: get (get_api ()) . set_slips_on_slope ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , active) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for RayShape { } unsafe impl GodotObject for RayShape { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "RayShape" } } impl std :: ops :: Deref for RayShape { type Target = crate :: generated :: shape :: Shape ; # [inline] fn deref (& self) -> & crate :: generated :: shape :: Shape { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for RayShape { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: shape :: Shape { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: shape :: Shape > for RayShape { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for RayShape { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for RayShape { } unsafe impl SubClass < crate :: generated :: object :: Object > for RayShape { } impl Instanciable for RayShape { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { RayShape :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct RayShapeMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_length : * mut sys :: godot_method_bind , pub get_slips_on_slope : * mut sys :: godot_method_bind , pub set_length : * mut sys :: godot_method_bind , pub set_slips_on_slope : * mut sys :: godot_method_bind } impl RayShapeMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : RayShapeMethodTable = RayShapeMethodTable { class_constructor : None , get_length : 0 as * mut sys :: godot_method_bind , get_slips_on_slope : 0 as * mut sys :: godot_method_bind , set_length : 0 as * mut sys :: godot_method_bind , set_slips_on_slope : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { RayShapeMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "RayShape\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_length = (gd_api . godot_method_bind_get_method) (class_name , "get_length\0" . as_ptr () as * const c_char) ; table . get_slips_on_slope = (gd_api . godot_method_bind_get_method) (class_name , "get_slips_on_slope\0" . as_ptr () as * const c_char) ; table . set_length = (gd_api . godot_method_bind_get_method) (class_name , "set_length\0" . as_ptr () as * const c_char) ; table . set_slips_on_slope = (gd_api . godot_method_bind_get_method) (class_name , "set_slips_on_slope\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:382:5624 [INFO] [stdout] | [INFO] [stdout] 382 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 382 | # [doc = "`core class CenterContainer` inherits `Container` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_centercontainer.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`CenterContainer` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nCenterContainer inherits methods from:\n - [Container](struct.Container.html)\n - [Control](struct.Control.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct CenterContainer { this : RawObject < Self > , } impl CenterContainer { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = CenterContainerMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "If `true`, centers children relative to the [CenterContainer]'s top left corner."] # [doc = ""] # [inline] pub fn is_using_top_left (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CenterContainerMethodTable :: get (get_api ()) . is_using_top_left ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, centers children relative to the [CenterContainer]'s top left corner."] # [doc = ""] # [inline] pub fn set_use_top_left (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CenterContainerMethodTable :: get (get_api ()) . set_use_top_left ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for CenterContainer { } unsafe impl GodotObject for CenterContainer { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "CenterContainer" } } impl QueueFree for CenterContainer { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for CenterContainer { type Target = crate :: generated :: container :: Container ; # [inline] fn deref (& self) -> & crate :: generated :: container :: Container { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for CenterContainer { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: container :: Container { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: container :: Container > for CenterContainer { } unsafe impl SubClass < crate :: generated :: control :: Control > for CenterContainer { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for CenterContainer { } unsafe impl SubClass < crate :: generated :: node :: Node > for CenterContainer { } unsafe impl SubClass < crate :: generated :: object :: Object > for CenterContainer { } impl Instanciable for CenterContainer { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { CenterContainer :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct CenterContainerMethodTable { pub class_constructor : sys :: godot_class_constructor , pub is_using_top_left : * mut sys :: godot_method_bind , pub set_use_top_left : * mut sys :: godot_method_bind } impl CenterContainerMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : CenterContainerMethodTable = CenterContainerMethodTable { class_constructor : None , is_using_top_left : 0 as * mut sys :: godot_method_bind , set_use_top_left : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { CenterContainerMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "CenterContainer\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . is_using_top_left = (gd_api . godot_method_bind_get_method) (class_name , "is_using_top_left\0" . as_ptr () as * const c_char) ; table . set_use_top_left = (gd_api . godot_method_bind_get_method) (class_name , "set_use_top_left\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:388:7110 [INFO] [stdout] | [INFO] [stdout] 388 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 388 | # [doc = "`core class BackBufferCopy` inherits `Node2D` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_backbuffercopy.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`BackBufferCopy` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nBackBufferCopy inherits methods from:\n - [Node2D](struct.Node2D.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct BackBufferCopy { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct CopyMode (pub i64) ; impl CopyMode { pub const DISABLED : CopyMode = CopyMode (0i64) ; pub const RECT : CopyMode = CopyMode (1i64) ; pub const VIEWPORT : CopyMode = CopyMode (2i64) ; } impl From < i64 > for CopyMode { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < CopyMode > for i64 { # [inline] fn from (v : CopyMode) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl BackBufferCopy { pub const COPY_MODE_DISABLED : i64 = 0i64 ; pub const COPY_MODE_RECT : i64 = 1i64 ; pub const COPY_MODE_VIEWPORT : i64 = 2i64 ; } impl BackBufferCopy { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = BackBufferCopyMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Buffer mode. See [enum CopyMode] constants."] # [doc = ""] # [inline] pub fn copy_mode (& self) -> crate :: generated :: back_buffer_copy :: CopyMode { unsafe { let method_bind : * mut sys :: godot_method_bind = BackBufferCopyMethodTable :: get (get_api ()) . get_copy_mode ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: back_buffer_copy :: CopyMode (ret) } } # [doc = "The area covered by the BackBufferCopy. Only used if [member copy_mode] is [constant COPY_MODE_RECT]."] # [doc = ""] # [inline] pub fn rect (& self) -> Rect2 { unsafe { let method_bind : * mut sys :: godot_method_bind = BackBufferCopyMethodTable :: get (get_api ()) . get_rect ; let ret = crate :: icalls :: icallptr_rect2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Buffer mode. See [enum CopyMode] constants."] # [doc = ""] # [inline] pub fn set_copy_mode (& self , copy_mode : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = BackBufferCopyMethodTable :: get (get_api ()) . set_copy_mode ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , copy_mode) ; } } # [doc = "The area covered by the BackBufferCopy. Only used if [member copy_mode] is [constant COPY_MODE_RECT]."] # [doc = ""] # [inline] pub fn set_rect (& self , rect : Rect2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = BackBufferCopyMethodTable :: get (get_api ()) . set_rect ; let ret = crate :: icalls :: icallptr_void_rect2 (method_bind , self . this . sys () . as_ptr () , rect) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for BackBufferCopy { } unsafe impl GodotObject for BackBufferCopy { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "BackBufferCopy" } } impl QueueFree for BackBufferCopy { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for BackBufferCopy { type Target = crate :: generated :: node_2d :: Node2D ; # [inline] fn deref (& self) -> & crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for BackBufferCopy { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: node_2d :: Node2D > for BackBufferCopy { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for BackBufferCopy { } unsafe impl SubClass < crate :: generated :: node :: Node > for BackBufferCopy { } unsafe impl SubClass < crate :: generated :: object :: Object > for BackBufferCopy { } impl Instanciable for BackBufferCopy { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { BackBufferCopy :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct BackBufferCopyMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_copy_mode : * mut sys :: godot_method_bind , pub get_rect : * mut sys :: godot_method_bind , pub set_copy_mode : * mut sys :: godot_method_bind , pub set_rect : * mut sys :: godot_method_bind } impl BackBufferCopyMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : BackBufferCopyMethodTable = BackBufferCopyMethodTable { class_constructor : None , get_copy_mode : 0 as * mut sys :: godot_method_bind , get_rect : 0 as * mut sys :: godot_method_bind , set_copy_mode : 0 as * mut sys :: godot_method_bind , set_rect : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { BackBufferCopyMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "BackBufferCopy\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_copy_mode = (gd_api . godot_method_bind_get_method) (class_name , "get_copy_mode\0" . as_ptr () as * const c_char) ; table . get_rect = (gd_api . godot_method_bind_get_method) (class_name , "get_rect\0" . as_ptr () as * const c_char) ; table . set_copy_mode = (gd_api . godot_method_bind_get_method) (class_name , "set_copy_mode\0" . as_ptr () as * const c_char) ; table . set_rect = (gd_api . godot_method_bind_get_method) (class_name , "set_rect\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:394:28818 [INFO] [stdout] | [INFO] [stdout] 394 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 394 | # [doc = "`core singleton class AudioServer` inherits `Object` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_audioserver.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = ""] # [doc = "\n## Class hierarchy\n\nAudioServer inherits methods from:\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct AudioServer { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct SpeakerMode (pub i64) ; impl SpeakerMode { pub const MODE_STEREO : SpeakerMode = SpeakerMode (0i64) ; pub const SURROUND_31 : SpeakerMode = SpeakerMode (1i64) ; pub const SURROUND_51 : SpeakerMode = SpeakerMode (2i64) ; pub const SURROUND_71 : SpeakerMode = SpeakerMode (3i64) ; } impl From < i64 > for SpeakerMode { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < SpeakerMode > for i64 { # [inline] fn from (v : SpeakerMode) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl AudioServer { pub const SPEAKER_MODE_STEREO : i64 = 0i64 ; pub const SPEAKER_SURROUND_31 : i64 = 1i64 ; pub const SPEAKER_SURROUND_51 : i64 = 2i64 ; pub const SPEAKER_SURROUND_71 : i64 = 3i64 ; } impl AudioServer { # [doc = "Returns a reference to the singleton instance."] # [inline] pub fn godot_singleton () -> & 'static Self { unsafe { let this = (get_api () . godot_global_get_singleton) ("AudioServer\0" . as_ptr () as * mut _) ; let this = ptr :: NonNull :: new (this) . expect ("singleton should not be null") ; let this = RawObject :: from_sys_ref_unchecked :: < 'static > (this) ; Self :: cast_ref (this) } } # [doc = "Adds a bus at `at_position`.\n# Default Arguments\n* `at_position` - `-1`"] # [doc = ""] # [inline] pub fn add_bus (& self , at_position : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . add_bus ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , at_position) ; } } # [doc = "Adds an [AudioEffect] effect to the bus `bus_idx` at `at_position`.\n# Default Arguments\n* `at_position` - `-1`"] # [doc = ""] # [inline] pub fn add_bus_effect (& self , bus_idx : i64 , effect : impl AsArg < crate :: generated :: audio_effect :: AudioEffect > , at_position : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . add_bus_effect ; let ret = crate :: icalls :: icallptr_void_i64_obj_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx , effect . as_arg_ptr () , at_position) ; } } # [doc = "Name of the current device for audio input (see [method capture_get_device_list])."] # [doc = ""] # [inline] pub fn capture_get_device (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . capture_get_device ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = "Returns the names of all audio input devices detected on the system."] # [doc = ""] # [inline] pub fn capture_get_device_list (& self) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . capture_get_device_list ; let ret = crate :: icalls :: icallvar_ (method_bind , self . this . sys () . as_ptr ()) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = "Sets which audio input device is used for audio capture."] # [doc = ""] # [inline] pub fn capture_set_device (& self , name : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . capture_set_device ; let ret = crate :: icalls :: icallptr_void_str (method_bind , self . this . sys () . as_ptr () , name . into ()) ; } } # [doc = "Generates an [AudioBusLayout] using the available buses and effects."] # [doc = ""] # [inline] pub fn generate_bus_layout (& self) -> Option < Ref < crate :: generated :: audio_bus_layout :: AudioBusLayout , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . generate_bus_layout ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: audio_bus_layout :: AudioBusLayout , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the amount of channels of the bus at index `bus_idx`."] # [doc = ""] # [inline] pub fn get_bus_channels (& self , bus_idx : i64) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_bus_channels ; let ret = crate :: icalls :: icallptr_i64_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx) ; ret as _ } } # [doc = "Number of available audio buses."] # [doc = ""] # [inline] pub fn bus_count (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_bus_count ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the [AudioEffect] at position `effect_idx` in bus `bus_idx`."] # [doc = ""] # [inline] pub fn get_bus_effect (& self , bus_idx : i64 , effect_idx : i64) -> Option < Ref < crate :: generated :: audio_effect :: AudioEffect , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_bus_effect ; let ret = crate :: icalls :: icallptr_obj_i64_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx , effect_idx) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: audio_effect :: AudioEffect , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the number of effects on the bus at `bus_idx`."] # [doc = ""] # [inline] pub fn get_bus_effect_count (& self , bus_idx : i64) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_bus_effect_count ; let ret = crate :: icalls :: icallptr_i64_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx) ; ret as _ } } # [doc = "Returns the [AudioEffectInstance] assigned to the given bus and effect indices (and optionally channel).\n# Default Arguments\n* `channel` - `0`"] # [doc = ""] # [inline] pub fn get_bus_effect_instance (& self , bus_idx : i64 , effect_idx : i64 , channel : i64) -> Option < Ref < crate :: generated :: audio_effect_instance :: AudioEffectInstance , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_bus_effect_instance ; let ret = crate :: icalls :: icallptr_obj_i64_i64_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx , effect_idx , channel) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: audio_effect_instance :: AudioEffectInstance , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the index of the bus with the name `bus_name`."] # [doc = ""] # [inline] pub fn get_bus_index (& self , bus_name : impl Into < GodotString >) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_bus_index ; let ret = crate :: icalls :: icallptr_i64_str (method_bind , self . this . sys () . as_ptr () , bus_name . into ()) ; ret as _ } } # [doc = "Returns the name of the bus with the index `bus_idx`."] # [doc = ""] # [inline] pub fn get_bus_name (& self , bus_idx : i64) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_bus_name ; let ret = crate :: icalls :: icallptr_str_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx) ; GodotString :: from_sys (ret) } } # [doc = "Returns the peak volume of the left speaker at bus index `bus_idx` and channel index `channel`."] # [doc = ""] # [inline] pub fn get_bus_peak_volume_left_db (& self , bus_idx : i64 , channel : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_bus_peak_volume_left_db ; let ret = crate :: icalls :: icallptr_f64_i64_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx , channel) ; ret as _ } } # [doc = "Returns the peak volume of the right speaker at bus index `bus_idx` and channel index `channel`."] # [doc = ""] # [inline] pub fn get_bus_peak_volume_right_db (& self , bus_idx : i64 , channel : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_bus_peak_volume_right_db ; let ret = crate :: icalls :: icallptr_f64_i64_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx , channel) ; ret as _ } } # [doc = "Returns the name of the bus that the bus at index `bus_idx` sends to."] # [doc = ""] # [inline] pub fn get_bus_send (& self , bus_idx : i64) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_bus_send ; let ret = crate :: icalls :: icallptr_str_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx) ; GodotString :: from_sys (ret) } } # [doc = "Returns the volume of the bus at index `bus_idx` in dB."] # [doc = ""] # [inline] pub fn get_bus_volume_db (& self , bus_idx : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_bus_volume_db ; let ret = crate :: icalls :: icallptr_f64_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx) ; ret as _ } } # [doc = "Name of the current device for audio output (see [method get_device_list])."] # [doc = ""] # [inline] pub fn device (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_device ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = "Returns the names of all audio devices detected on the system."] # [doc = ""] # [inline] pub fn get_device_list (& self) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_device_list ; let ret = crate :: icalls :: icallvar_ (method_bind , self . this . sys () . as_ptr ()) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = "Scales the rate at which audio is played (i.e. setting it to `0.5` will make the audio be played twice as fast)."] # [doc = ""] # [inline] pub fn global_rate_scale (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_global_rate_scale ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the sample rate at the output of the [AudioServer]."] # [doc = ""] # [inline] pub fn get_mix_rate (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_mix_rate ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the audio driver's output latency."] # [doc = ""] # [inline] pub fn get_output_latency (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_output_latency ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the speaker configuration."] # [doc = ""] # [inline] pub fn get_speaker_mode (& self) -> crate :: generated :: audio_server :: SpeakerMode { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_speaker_mode ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: audio_server :: SpeakerMode (ret) } } # [doc = "Returns the relative time since the last mix occurred."] # [doc = ""] # [inline] pub fn get_time_since_last_mix (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_time_since_last_mix ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the relative time until the next mix occurs."] # [doc = ""] # [inline] pub fn get_time_to_next_mix (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . get_time_to_next_mix ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, the bus at index `bus_idx` is bypassing effects."] # [doc = ""] # [inline] pub fn is_bus_bypassing_effects (& self , bus_idx : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . is_bus_bypassing_effects ; let ret = crate :: icalls :: icallptr_bool_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx) ; ret as _ } } # [doc = "If `true`, the effect at index `effect_idx` on the bus at index `bus_idx` is enabled."] # [doc = ""] # [inline] pub fn is_bus_effect_enabled (& self , bus_idx : i64 , effect_idx : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . is_bus_effect_enabled ; let ret = crate :: icalls :: icallptr_bool_i64_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx , effect_idx) ; ret as _ } } # [doc = "If `true`, the bus at index `bus_idx` is muted."] # [doc = ""] # [inline] pub fn is_bus_mute (& self , bus_idx : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . is_bus_mute ; let ret = crate :: icalls :: icallptr_bool_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx) ; ret as _ } } # [doc = "If `true`, the bus at index `bus_idx` is in solo mode."] # [doc = ""] # [inline] pub fn is_bus_solo (& self , bus_idx : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . is_bus_solo ; let ret = crate :: icalls :: icallptr_bool_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx) ; ret as _ } } # [doc = "Locks the audio driver's main loop.\n**Note:** Remember to unlock it afterwards."] # [doc = ""] # [inline] pub fn lock (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . lock ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Moves the bus from index `index` to index `to_index`."] # [doc = ""] # [inline] pub fn move_bus (& self , index : i64 , to_index : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . move_bus ; let ret = crate :: icalls :: icallptr_void_i64_i64 (method_bind , self . this . sys () . as_ptr () , index , to_index) ; } } # [doc = "Removes the bus at index `index`."] # [doc = ""] # [inline] pub fn remove_bus (& self , index : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . remove_bus ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , index) ; } } # [doc = "Removes the effect at index `effect_idx` from the bus at index `bus_idx`."] # [doc = ""] # [inline] pub fn remove_bus_effect (& self , bus_idx : i64 , effect_idx : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . remove_bus_effect ; let ret = crate :: icalls :: icallptr_void_i64_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx , effect_idx) ; } } # [doc = "If `true`, the bus at index `bus_idx` is bypassing effects."] # [doc = ""] # [inline] pub fn set_bus_bypass_effects (& self , bus_idx : i64 , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . set_bus_bypass_effects ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , bus_idx , enable) ; } } # [doc = "Number of available audio buses."] # [doc = ""] # [inline] pub fn set_bus_count (& self , amount : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . set_bus_count ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , amount) ; } } # [doc = "If `true`, the effect at index `effect_idx` on the bus at index `bus_idx` is enabled."] # [doc = ""] # [inline] pub fn set_bus_effect_enabled (& self , bus_idx : i64 , effect_idx : i64 , enabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . set_bus_effect_enabled ; let ret = crate :: icalls :: icallptr_void_i64_i64_bool (method_bind , self . this . sys () . as_ptr () , bus_idx , effect_idx , enabled) ; } } # [doc = "Overwrites the currently used [AudioBusLayout]."] # [doc = ""] # [inline] pub fn set_bus_layout (& self , bus_layout : impl AsArg < crate :: generated :: audio_bus_layout :: AudioBusLayout >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . set_bus_layout ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , bus_layout . as_arg_ptr ()) ; } } # [doc = "If `true`, the bus at index `bus_idx` is muted."] # [doc = ""] # [inline] pub fn set_bus_mute (& self , bus_idx : i64 , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . set_bus_mute ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , bus_idx , enable) ; } } # [doc = "Sets the name of the bus at index `bus_idx` to `name`."] # [doc = ""] # [inline] pub fn set_bus_name (& self , bus_idx : i64 , name : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . set_bus_name ; let ret = crate :: icalls :: icallptr_void_i64_str (method_bind , self . this . sys () . as_ptr () , bus_idx , name . into ()) ; } } # [doc = "Connects the output of the bus at `bus_idx` to the bus named `send`."] # [doc = ""] # [inline] pub fn set_bus_send (& self , bus_idx : i64 , send : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . set_bus_send ; let ret = crate :: icalls :: icallptr_void_i64_str (method_bind , self . this . sys () . as_ptr () , bus_idx , send . into ()) ; } } # [doc = "If `true`, the bus at index `bus_idx` is in solo mode."] # [doc = ""] # [inline] pub fn set_bus_solo (& self , bus_idx : i64 , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . set_bus_solo ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , bus_idx , enable) ; } } # [doc = "Sets the volume of the bus at index `bus_idx` to `volume_db`."] # [doc = ""] # [inline] pub fn set_bus_volume_db (& self , bus_idx : i64 , volume_db : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . set_bus_volume_db ; let ret = crate :: icalls :: icallptr_void_i64_f64 (method_bind , self . this . sys () . as_ptr () , bus_idx , volume_db) ; } } # [doc = "Name of the current device for audio output (see [method get_device_list])."] # [doc = ""] # [inline] pub fn set_device (& self , device : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . set_device ; let ret = crate :: icalls :: icallptr_void_str (method_bind , self . this . sys () . as_ptr () , device . into ()) ; } } # [doc = "Scales the rate at which audio is played (i.e. setting it to `0.5` will make the audio be played twice as fast)."] # [doc = ""] # [inline] pub fn set_global_rate_scale (& self , scale : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . set_global_rate_scale ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , scale) ; } } # [doc = "Swaps the position of two effects in bus `bus_idx`."] # [doc = ""] # [inline] pub fn swap_bus_effects (& self , bus_idx : i64 , effect_idx : i64 , by_effect_idx : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . swap_bus_effects ; let ret = crate :: icalls :: icallptr_void_i64_i64_i64 (method_bind , self . this . sys () . as_ptr () , bus_idx , effect_idx , by_effect_idx) ; } } # [doc = "Unlocks the audio driver's main loop. (After locking it, you should always unlock it.)"] # [doc = ""] # [inline] pub fn unlock (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioServerMethodTable :: get (get_api ()) . unlock ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for AudioServer { } unsafe impl GodotObject for AudioServer { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "AudioServer" } } impl std :: ops :: Deref for AudioServer { type Target = crate :: generated :: object :: Object ; # [inline] fn deref (& self) -> & crate :: generated :: object :: Object { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for AudioServer { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: object :: Object { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: object :: Object > for AudioServer { } unsafe impl Send for AudioServer { } unsafe impl Sync for AudioServer { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct AudioServerMethodTable { pub class_constructor : sys :: godot_class_constructor , pub add_bus : * mut sys :: godot_method_bind , pub add_bus_effect : * mut sys :: godot_method_bind , pub capture_get_device : * mut sys :: godot_method_bind , pub capture_get_device_list : * mut sys :: godot_method_bind , pub capture_set_device : * mut sys :: godot_method_bind , pub generate_bus_layout : * mut sys :: godot_method_bind , pub get_bus_channels : * mut sys :: godot_method_bind , pub get_bus_count : * mut sys :: godot_method_bind , pub get_bus_effect : * mut sys :: godot_method_bind , pub get_bus_effect_count : * mut sys :: godot_method_bind , pub get_bus_effect_instance : * mut sys :: godot_method_bind , pub get_bus_index : * mut sys :: godot_method_bind , pub get_bus_name : * mut sys :: godot_method_bind , pub get_bus_peak_volume_left_db : * mut sys :: godot_method_bind , pub get_bus_peak_volume_right_db : * mut sys :: godot_method_bind , pub get_bus_send : * mut sys :: godot_method_bind , pub get_bus_volume_db : * mut sys :: godot_method_bind , pub get_device : * mut sys :: godot_method_bind , pub get_device_list : * mut sys :: godot_method_bind , pub get_global_rate_scale : * mut sys :: godot_method_bind , pub get_mix_rate : * mut sys :: godot_method_bind , pub get_output_latency : * mut sys :: godot_method_bind , pub get_speaker_mode : * mut sys :: godot_method_bind , pub get_time_since_last_mix : * mut sys :: godot_method_bind , pub get_time_to_next_mix : * mut sys :: godot_method_bind , pub is_bus_bypassing_effects : * mut sys :: godot_method_bind , pub is_bus_effect_enabled : * mut sys :: godot_method_bind , pub is_bus_mute : * mut sys :: godot_method_bind , pub is_bus_solo : * mut sys :: godot_method_bind , pub lock : * mut sys :: godot_method_bind , pub move_bus : * mut sys :: godot_method_bind , pub remove_bus : * mut sys :: godot_method_bind , pub remove_bus_effect : * mut sys :: godot_method_bind , pub set_bus_bypass_effects : * mut sys :: godot_method_bind , pub set_bus_count : * mut sys :: godot_method_bind , pub set_bus_effect_enabled : * mut sys :: godot_method_bind , pub set_bus_layout : * mut sys :: godot_method_bind , pub set_bus_mute : * mut sys :: godot_method_bind , pub set_bus_name : * mut sys :: godot_method_bind , pub set_bus_send : * mut sys :: godot_method_bind , pub set_bus_solo : * mut sys :: godot_method_bind , pub set_bus_volume_db : * mut sys :: godot_method_bind , pub set_device : * mut sys :: godot_method_bind , pub set_global_rate_scale : * mut sys :: godot_method_bind , pub swap_bus_effects : * mut sys :: godot_method_bind , pub unlock : * mut sys :: godot_method_bind } impl AudioServerMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : AudioServerMethodTable = AudioServerMethodTable { class_constructor : None , add_bus : 0 as * mut sys :: godot_method_bind , add_bus_effect : 0 as * mut sys :: godot_method_bind , capture_get_device : 0 as * mut sys :: godot_method_bind , capture_get_device_list : 0 as * mut sys :: godot_method_bind , capture_set_device : 0 as * mut sys :: godot_method_bind , generate_bus_layout : 0 as * mut sys :: godot_method_bind , get_bus_channels : 0 as * mut sys :: godot_method_bind , get_bus_count : 0 as * mut sys :: godot_method_bind , get_bus_effect : 0 as * mut sys :: godot_method_bind , get_bus_effect_count : 0 as * mut sys :: godot_method_bind , get_bus_effect_instance : 0 as * mut sys :: godot_method_bind , get_bus_index : 0 as * mut sys :: godot_method_bind , get_bus_name : 0 as * mut sys :: godot_method_bind , get_bus_peak_volume_left_db : 0 as * mut sys :: godot_method_bind , get_bus_peak_volume_right_db : 0 as * mut sys :: godot_method_bind , get_bus_send : 0 as * mut sys :: godot_method_bind , get_bus_volume_db : 0 as * mut sys :: godot_method_bind , get_device : 0 as * mut sys :: godot_method_bind , get_device_list : 0 as * mut sys :: godot_method_bind , get_global_rate_scale : 0 as * mut sys :: godot_method_bind , get_mix_rate : 0 as * mut sys :: godot_method_bind , get_output_latency : 0 as * mut sys :: godot_method_bind , get_speaker_mode : 0 as * mut sys :: godot_method_bind , get_time_since_last_mix : 0 as * mut sys :: godot_method_bind , get_time_to_next_mix : 0 as * mut sys :: godot_method_bind , is_bus_bypassing_effects : 0 as * mut sys :: godot_method_bind , is_bus_effect_enabled : 0 as * mut sys :: godot_method_bind , is_bus_mute : 0 as * mut sys :: godot_method_bind , is_bus_solo : 0 as * mut sys :: godot_method_bind , lock : 0 as * mut sys :: godot_method_bind , move_bus : 0 as * mut sys :: godot_method_bind , remove_bus : 0 as * mut sys :: godot_method_bind , remove_bus_effect : 0 as * mut sys :: godot_method_bind , set_bus_bypass_effects : 0 as * mut sys :: godot_method_bind , set_bus_count : 0 as * mut sys :: godot_method_bind , set_bus_effect_enabled : 0 as * mut sys :: godot_method_bind , set_bus_layout : 0 as * mut sys :: godot_method_bind , set_bus_mute : 0 as * mut sys :: godot_method_bind , set_bus_name : 0 as * mut sys :: godot_method_bind , set_bus_send : 0 as * mut sys :: godot_method_bind , set_bus_solo : 0 as * mut sys :: godot_method_bind , set_bus_volume_db : 0 as * mut sys :: godot_method_bind , set_device : 0 as * mut sys :: godot_method_bind , set_global_rate_scale : 0 as * mut sys :: godot_method_bind , swap_bus_effects : 0 as * mut sys :: godot_method_bind , unlock : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { AudioServerMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "AudioServer\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . add_bus = (gd_api . godot_method_bind_get_method) (class_name , "add_bus\0" . as_ptr () as * const c_char) ; table . add_bus_effect = (gd_api . godot_method_bind_get_method) (class_name , "add_bus_effect\0" . as_ptr () as * const c_char) ; table . capture_get_device = (gd_api . godot_method_bind_get_method) (class_name , "capture_get_device\0" . as_ptr () as * const c_char) ; table . capture_get_device_list = (gd_api . godot_method_bind_get_method) (class_name , "capture_get_device_list\0" . as_ptr () as * const c_char) ; table . capture_set_device = (gd_api . godot_method_bind_get_method) (class_name , "capture_set_device\0" . as_ptr () as * const c_char) ; table . generate_bus_layout = (gd_api . godot_method_bind_get_method) (class_name , "generate_bus_layout\0" . as_ptr () as * const c_char) ; table . get_bus_channels = (gd_api . godot_method_bind_get_method) (class_name , "get_bus_channels\0" . as_ptr () as * const c_char) ; table . get_bus_count = (gd_api . godot_method_bind_get_method) (class_name , "get_bus_count\0" . as_ptr () as * const c_char) ; table . get_bus_effect = (gd_api . godot_method_bind_get_method) (class_name , "get_bus_effect\0" . as_ptr () as * const c_char) ; table . get_bus_effect_count = (gd_api . godot_method_bind_get_method) (class_name , "get_bus_effect_count\0" . as_ptr () as * const c_char) ; table . get_bus_effect_instance = (gd_api . godot_method_bind_get_method) (class_name , "get_bus_effect_instance\0" . as_ptr () as * const c_char) ; table . get_bus_index = (gd_api . godot_method_bind_get_method) (class_name , "get_bus_index\0" . as_ptr () as * const c_char) ; table . get_bus_name = (gd_api . godot_method_bind_get_method) (class_name , "get_bus_name\0" . as_ptr () as * const c_char) ; table . get_bus_peak_volume_left_db = (gd_api . godot_method_bind_get_method) (class_name , "get_bus_peak_volume_left_db\0" . as_ptr () as * const c_char) ; table . get_bus_peak_volume_right_db = (gd_api . godot_method_bind_get_method) (class_name , "get_bus_peak_volume_right_db\0" . as_ptr () as * const c_char) ; table . get_bus_send = (gd_api . godot_method_bind_get_method) (class_name , "get_bus_send\0" . as_ptr () as * const c_char) ; table . get_bus_volume_db = (gd_api . godot_method_bind_get_method) (class_name , "get_bus_volume_db\0" . as_ptr () as * const c_char) ; table . get_device = (gd_api . godot_method_bind_get_method) (class_name , "get_device\0" . as_ptr () as * const c_char) ; table . get_device_list = (gd_api . godot_method_bind_get_method) (class_name , "get_device_list\0" . as_ptr () as * const c_char) ; table . get_global_rate_scale = (gd_api . godot_method_bind_get_method) (class_name , "get_global_rate_scale\0" . as_ptr () as * const c_char) ; table . get_mix_rate = (gd_api . godot_method_bind_get_method) (class_name , "get_mix_rate\0" . as_ptr () as * const c_char) ; table . get_output_latency = (gd_api . godot_method_bind_get_method) (class_name , "get_output_latency\0" . as_ptr () as * const c_char) ; table . get_speaker_mode = (gd_api . godot_method_bind_get_method) (class_name , "get_speaker_mode\0" . as_ptr () as * const c_char) ; table . get_time_since_last_mix = (gd_api . godot_method_bind_get_method) (class_name , "get_time_since_last_mix\0" . as_ptr () as * const c_char) ; table . get_time_to_next_mix = (gd_api . godot_method_bind_get_method) (class_name , "get_time_to_next_mix\0" . as_ptr () as * const c_char) ; table . is_bus_bypassing_effects = (gd_api . godot_method_bind_get_method) (class_name , "is_bus_bypassing_effects\0" . as_ptr () as * const c_char) ; table . is_bus_effect_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_bus_effect_enabled\0" . as_ptr () as * const c_char) ; table . is_bus_mute = (gd_api . godot_method_bind_get_method) (class_name , "is_bus_mute\0" . as_ptr () as * const c_char) ; table . is_bus_solo = (gd_api . godot_method_bind_get_method) (class_name , "is_bus_solo\0" . as_ptr () as * const c_char) ; table . lock = (gd_api . godot_method_bind_get_method) (class_name , "lock\0" . as_ptr () as * const c_char) ; table . move_bus = (gd_api . godot_method_bind_get_method) (class_name , "move_bus\0" . as_ptr () as * const c_char) ; table . remove_bus = (gd_api . godot_method_bind_get_method) (class_name , "remove_bus\0" . as_ptr () as * const c_char) ; table . remove_bus_effect = (gd_api . godot_method_bind_get_method) (class_name , "remove_bus_effect\0" . as_ptr () as * const c_char) ; table . set_bus_bypass_effects = (gd_api . godot_method_bind_get_method) (class_name , "set_bus_bypass_effects\0" . as_ptr () as * const c_char) ; table . set_bus_count = (gd_api . godot_method_bind_get_method) (class_name , "set_bus_count\0" . as_ptr () as * const c_char) ; table . set_bus_effect_enabled = (gd_api . godot_method_bind_get_method) (class_name , "set_bus_effect_enabled\0" . as_ptr () as * const c_char) ; table . set_bus_layout = (gd_api . godot_method_bind_get_method) (class_name , "set_bus_layout\0" . as_ptr () as * const c_char) ; table . set_bus_mute = (gd_api . godot_method_bind_get_method) (class_name , "set_bus_mute\0" . as_ptr () as * const c_char) ; table . set_bus_name = (gd_api . godot_method_bind_get_method) (class_name , "set_bus_name\0" . as_ptr () as * const c_char) ; table . set_bus_send = (gd_api . godot_method_bind_get_method) (class_name , "set_bus_send\0" . as_ptr () as * const c_char) ; table . set_bus_solo = (gd_api . godot_method_bind_get_method) (class_name , "set_bus_solo\0" . as_ptr () as * const c_char) ; table . set_bus_volume_db = (gd_api . godot_method_bind_get_method) (class_name , "set_bus_volume_db\0" . as_ptr () as * const c_char) ; table . set_device = (gd_api . godot_method_bind_get_method) (class_name , "set_device\0" . as_ptr () as * const c_char) ; table . set_global_rate_scale = (gd_api . godot_method_bind_get_method) (class_name , "set_global_rate_scale\0" . as_ptr () as * const c_char) ; table . swap_bus_effects = (gd_api . godot_method_bind_get_method) (class_name , "swap_bus_effects\0" . as_ptr () as * const c_char) ; table . unlock = (gd_api . godot_method_bind_get_method) (class_name , "unlock\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:400:5821 [INFO] [stdout] | [INFO] [stdout] 400 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 400 | # [doc = "`core class AudioStreamRandomPitch` inherits `AudioStream` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_audiostreamrandompitch.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nAudioStreamRandomPitch inherits methods from:\n - [AudioStream](struct.AudioStream.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct AudioStreamRandomPitch { this : RawObject < Self > , } impl AudioStreamRandomPitch { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = AudioStreamRandomPitchMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "The current [AudioStream]."] # [doc = ""] # [inline] pub fn audio_stream (& self) -> Option < Ref < crate :: generated :: audio_stream :: AudioStream , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioStreamRandomPitchMethodTable :: get (get_api ()) . get_audio_stream ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: audio_stream :: AudioStream , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "The intensity of random pitch variation."] # [doc = ""] # [inline] pub fn random_pitch (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioStreamRandomPitchMethodTable :: get (get_api ()) . get_random_pitch ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The current [AudioStream]."] # [doc = ""] # [inline] pub fn set_audio_stream (& self , stream : impl AsArg < crate :: generated :: audio_stream :: AudioStream >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioStreamRandomPitchMethodTable :: get (get_api ()) . set_audio_stream ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , stream . as_arg_ptr ()) ; } } # [doc = "The intensity of random pitch variation."] # [doc = ""] # [inline] pub fn set_random_pitch (& self , scale : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioStreamRandomPitchMethodTable :: get (get_api ()) . set_random_pitch ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , scale) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for AudioStreamRandomPitch { } unsafe impl GodotObject for AudioStreamRandomPitch { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "AudioStreamRandomPitch" } } impl std :: ops :: Deref for AudioStreamRandomPitch { type Target = crate :: generated :: audio_stream :: AudioStream ; # [inline] fn deref (& self) -> & crate :: generated :: audio_stream :: AudioStream { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for AudioStreamRandomPitch { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: audio_stream :: AudioStream { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: audio_stream :: AudioStream > for AudioStreamRandomPitch { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for AudioStreamRandomPitch { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for AudioStreamRandomPitch { } unsafe impl SubClass < crate :: generated :: object :: Object > for AudioStreamRandomPitch { } impl Instanciable for AudioStreamRandomPitch { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { AudioStreamRandomPitch :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct AudioStreamRandomPitchMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_audio_stream : * mut sys :: godot_method_bind , pub get_random_pitch : * mut sys :: godot_method_bind , pub set_audio_stream : * mut sys :: godot_method_bind , pub set_random_pitch : * mut sys :: godot_method_bind } impl AudioStreamRandomPitchMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : AudioStreamRandomPitchMethodTable = AudioStreamRandomPitchMethodTable { class_constructor : None , get_audio_stream : 0 as * mut sys :: godot_method_bind , get_random_pitch : 0 as * mut sys :: godot_method_bind , set_audio_stream : 0 as * mut sys :: godot_method_bind , set_random_pitch : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { AudioStreamRandomPitchMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "AudioStreamRandomPitch\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_audio_stream = (gd_api . godot_method_bind_get_method) (class_name , "get_audio_stream\0" . as_ptr () as * const c_char) ; table . get_random_pitch = (gd_api . godot_method_bind_get_method) (class_name , "get_random_pitch\0" . as_ptr () as * const c_char) ; table . set_audio_stream = (gd_api . godot_method_bind_get_method) (class_name , "set_audio_stream\0" . as_ptr () as * const c_char) ; table . set_random_pitch = (gd_api . godot_method_bind_get_method) (class_name , "set_random_pitch\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:406:16904 [INFO] [stdout] | [INFO] [stdout] 406 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 406 | # [doc = "`core class Curve` inherits `Resource` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_curve.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nCurve inherits methods from:\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct Curve { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct TangentMode (pub i64) ; impl TangentMode { pub const FREE : TangentMode = TangentMode (0i64) ; pub const LINEAR : TangentMode = TangentMode (1i64) ; pub const MODE_COUNT : TangentMode = TangentMode (2i64) ; } impl From < i64 > for TangentMode { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < TangentMode > for i64 { # [inline] fn from (v : TangentMode) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl Curve { pub const TANGENT_FREE : i64 = 0i64 ; pub const TANGENT_LINEAR : i64 = 1i64 ; pub const TANGENT_MODE_COUNT : i64 = 2i64 ; } impl Curve { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = CurveMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Adds a point to the curve. For each side, if the `*_mode` is [constant TANGENT_LINEAR], the `*_tangent` angle (in degrees) uses the slope of the curve halfway to the adjacent point. Allows custom assignments to the `*_tangent` angle if `*_mode` is set to [constant TANGENT_FREE].\n# Default Arguments\n* `left_tangent` - `0`\n* `right_tangent` - `0`\n* `left_mode` - `0`\n* `right_mode` - `0`"] # [doc = ""] # [inline] pub fn add_point (& self , position : Vector2 , left_tangent : f64 , right_tangent : f64 , left_mode : i64 , right_mode : i64) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . add_point ; let ret = crate :: icalls :: icallptr_i64_vec2_f64_f64_i64_i64 (method_bind , self . this . sys () . as_ptr () , position , left_tangent , right_tangent , left_mode , right_mode) ; ret as _ } } # [doc = "Recomputes the baked cache of points for the curve."] # [doc = ""] # [inline] pub fn bake (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . bake ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Removes points that are closer than `CMP_EPSILON` (0.00001) units to their neighbor on the curve."] # [doc = ""] # [inline] pub fn clean_dupes (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . clean_dupes ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Removes all points from the curve."] # [doc = ""] # [inline] pub fn clear_points (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . clear_points ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "The number of points to include in the baked (i.e. cached) curve data."] # [doc = ""] # [inline] pub fn bake_resolution (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . get_bake_resolution ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The maximum value the curve can reach."] # [doc = ""] # [inline] pub fn max_value (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . get_max_value ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The minimum value the curve can reach."] # [doc = ""] # [inline] pub fn min_value (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . get_min_value ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the number of points describing the curve."] # [doc = ""] # [inline] pub fn get_point_count (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . get_point_count ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the left [enum TangentMode] for the point at `index`."] # [doc = ""] # [inline] pub fn get_point_left_mode (& self , index : i64) -> crate :: generated :: curve :: TangentMode { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . get_point_left_mode ; let ret = crate :: icalls :: icallptr_i64_i64 (method_bind , self . this . sys () . as_ptr () , index) ; crate :: generated :: curve :: TangentMode (ret) } } # [doc = "Returns the left tangent angle (in degrees) for the point at `index`."] # [doc = ""] # [inline] pub fn get_point_left_tangent (& self , index : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . get_point_left_tangent ; let ret = crate :: icalls :: icallptr_f64_i64 (method_bind , self . this . sys () . as_ptr () , index) ; ret as _ } } # [doc = "Returns the curve coordinates for the point at `index`."] # [doc = ""] # [inline] pub fn get_point_position (& self , index : i64) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . get_point_position ; let ret = crate :: icalls :: icallptr_vec2_i64 (method_bind , self . this . sys () . as_ptr () , index) ; mem :: transmute (ret) } } # [doc = "Returns the right [enum TangentMode] for the point at `index`."] # [doc = ""] # [inline] pub fn get_point_right_mode (& self , index : i64) -> crate :: generated :: curve :: TangentMode { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . get_point_right_mode ; let ret = crate :: icalls :: icallptr_i64_i64 (method_bind , self . this . sys () . as_ptr () , index) ; crate :: generated :: curve :: TangentMode (ret) } } # [doc = "Returns the right tangent angle (in degrees) for the point at `index`."] # [doc = ""] # [inline] pub fn get_point_right_tangent (& self , index : i64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . get_point_right_tangent ; let ret = crate :: icalls :: icallptr_f64_i64 (method_bind , self . this . sys () . as_ptr () , index) ; ret as _ } } # [doc = "Returns the Y value for the point that would exist at the X position `offset` along the curve."] # [doc = ""] # [inline] pub fn interpolate (& self , offset : f64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . interpolate ; let ret = crate :: icalls :: icallptr_f64_f64 (method_bind , self . this . sys () . as_ptr () , offset) ; ret as _ } } # [doc = "Returns the Y value for the point that would exist at the X position `offset` along the curve using the baked cache. Bakes the curve's points if not already baked."] # [doc = ""] # [inline] pub fn interpolate_baked (& self , offset : f64) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . interpolate_baked ; let ret = crate :: icalls :: icallptr_f64_f64 (method_bind , self . this . sys () . as_ptr () , offset) ; ret as _ } } # [doc = "Removes the point at `index` from the curve."] # [doc = ""] # [inline] pub fn remove_point (& self , index : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . remove_point ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , index) ; } } # [doc = "The number of points to include in the baked (i.e. cached) curve data."] # [doc = ""] # [inline] pub fn set_bake_resolution (& self , resolution : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . set_bake_resolution ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , resolution) ; } } # [doc = "The maximum value the curve can reach."] # [doc = ""] # [inline] pub fn set_max_value (& self , max : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . set_max_value ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , max) ; } } # [doc = "The minimum value the curve can reach."] # [doc = ""] # [inline] pub fn set_min_value (& self , min : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . set_min_value ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , min) ; } } # [doc = "Sets the left [enum TangentMode] for the point at `index` to `mode`."] # [doc = ""] # [inline] pub fn set_point_left_mode (& self , index : i64 , mode : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . set_point_left_mode ; let ret = crate :: icalls :: icallptr_void_i64_i64 (method_bind , self . this . sys () . as_ptr () , index , mode) ; } } # [doc = "Sets the left tangent angle for the point at `index` to `tangent`."] # [doc = ""] # [inline] pub fn set_point_left_tangent (& self , index : i64 , tangent : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . set_point_left_tangent ; let ret = crate :: icalls :: icallptr_void_i64_f64 (method_bind , self . this . sys () . as_ptr () , index , tangent) ; } } # [doc = "Sets the offset from `0.5`."] # [doc = ""] # [inline] pub fn set_point_offset (& self , index : i64 , offset : f64) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . set_point_offset ; let ret = crate :: icalls :: icallptr_i64_i64_f64 (method_bind , self . this . sys () . as_ptr () , index , offset) ; ret as _ } } # [doc = "Sets the right [enum TangentMode] for the point at `index` to `mode`."] # [doc = ""] # [inline] pub fn set_point_right_mode (& self , index : i64 , mode : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . set_point_right_mode ; let ret = crate :: icalls :: icallptr_void_i64_i64 (method_bind , self . this . sys () . as_ptr () , index , mode) ; } } # [doc = "Sets the right tangent angle for the point at `index` to `tangent`."] # [doc = ""] # [inline] pub fn set_point_right_tangent (& self , index : i64 , tangent : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . set_point_right_tangent ; let ret = crate :: icalls :: icallptr_void_i64_f64 (method_bind , self . this . sys () . as_ptr () , index , tangent) ; } } # [doc = "Assigns the vertical position `y` to the point at `index`."] # [doc = ""] # [inline] pub fn set_point_value (& self , index : i64 , y : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CurveMethodTable :: get (get_api ()) . set_point_value ; let ret = crate :: icalls :: icallptr_void_i64_f64 (method_bind , self . this . sys () . as_ptr () , index , y) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for Curve { } unsafe impl GodotObject for Curve { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "Curve" } } impl std :: ops :: Deref for Curve { type Target = crate :: generated :: resource :: Resource ; # [inline] fn deref (& self) -> & crate :: generated :: resource :: Resource { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for Curve { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: resource :: Resource { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: resource :: Resource > for Curve { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for Curve { } unsafe impl SubClass < crate :: generated :: object :: Object > for Curve { } impl Instanciable for Curve { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { Curve :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct CurveMethodTable { pub class_constructor : sys :: godot_class_constructor , pub add_point : * mut sys :: godot_method_bind , pub bake : * mut sys :: godot_method_bind , pub clean_dupes : * mut sys :: godot_method_bind , pub clear_points : * mut sys :: godot_method_bind , pub get_bake_resolution : * mut sys :: godot_method_bind , pub get_max_value : * mut sys :: godot_method_bind , pub get_min_value : * mut sys :: godot_method_bind , pub get_point_count : * mut sys :: godot_method_bind , pub get_point_left_mode : * mut sys :: godot_method_bind , pub get_point_left_tangent : * mut sys :: godot_method_bind , pub get_point_position : * mut sys :: godot_method_bind , pub get_point_right_mode : * mut sys :: godot_method_bind , pub get_point_right_tangent : * mut sys :: godot_method_bind , pub interpolate : * mut sys :: godot_method_bind , pub interpolate_baked : * mut sys :: godot_method_bind , pub remove_point : * mut sys :: godot_method_bind , pub set_bake_resolution : * mut sys :: godot_method_bind , pub set_max_value : * mut sys :: godot_method_bind , pub set_min_value : * mut sys :: godot_method_bind , pub set_point_left_mode : * mut sys :: godot_method_bind , pub set_point_left_tangent : * mut sys :: godot_method_bind , pub set_point_offset : * mut sys :: godot_method_bind , pub set_point_right_mode : * mut sys :: godot_method_bind , pub set_point_right_tangent : * mut sys :: godot_method_bind , pub set_point_value : * mut sys :: godot_method_bind } impl CurveMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : CurveMethodTable = CurveMethodTable { class_constructor : None , add_point : 0 as * mut sys :: godot_method_bind , bake : 0 as * mut sys :: godot_method_bind , clean_dupes : 0 as * mut sys :: godot_method_bind , clear_points : 0 as * mut sys :: godot_method_bind , get_bake_resolution : 0 as * mut sys :: godot_method_bind , get_max_value : 0 as * mut sys :: godot_method_bind , get_min_value : 0 as * mut sys :: godot_method_bind , get_point_count : 0 as * mut sys :: godot_method_bind , get_point_left_mode : 0 as * mut sys :: godot_method_bind , get_point_left_tangent : 0 as * mut sys :: godot_method_bind , get_point_position : 0 as * mut sys :: godot_method_bind , get_point_right_mode : 0 as * mut sys :: godot_method_bind , get_point_right_tangent : 0 as * mut sys :: godot_method_bind , interpolate : 0 as * mut sys :: godot_method_bind , interpolate_baked : 0 as * mut sys :: godot_method_bind , remove_point : 0 as * mut sys :: godot_method_bind , set_bake_resolution : 0 as * mut sys :: godot_method_bind , set_max_value : 0 as * mut sys :: godot_method_bind , set_min_value : 0 as * mut sys :: godot_method_bind , set_point_left_mode : 0 as * mut sys :: godot_method_bind , set_point_left_tangent : 0 as * mut sys :: godot_method_bind , set_point_offset : 0 as * mut sys :: godot_method_bind , set_point_right_mode : 0 as * mut sys :: godot_method_bind , set_point_right_tangent : 0 as * mut sys :: godot_method_bind , set_point_value : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { CurveMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "Curve\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . add_point = (gd_api . godot_method_bind_get_method) (class_name , "add_point\0" . as_ptr () as * const c_char) ; table . bake = (gd_api . godot_method_bind_get_method) (class_name , "bake\0" . as_ptr () as * const c_char) ; table . clean_dupes = (gd_api . godot_method_bind_get_method) (class_name , "clean_dupes\0" . as_ptr () as * const c_char) ; table . clear_points = (gd_api . godot_method_bind_get_method) (class_name , "clear_points\0" . as_ptr () as * const c_char) ; table . get_bake_resolution = (gd_api . godot_method_bind_get_method) (class_name , "get_bake_resolution\0" . as_ptr () as * const c_char) ; table . get_max_value = (gd_api . godot_method_bind_get_method) (class_name , "get_max_value\0" . as_ptr () as * const c_char) ; table . get_min_value = (gd_api . godot_method_bind_get_method) (class_name , "get_min_value\0" . as_ptr () as * const c_char) ; table . get_point_count = (gd_api . godot_method_bind_get_method) (class_name , "get_point_count\0" . as_ptr () as * const c_char) ; table . get_point_left_mode = (gd_api . godot_method_bind_get_method) (class_name , "get_point_left_mode\0" . as_ptr () as * const c_char) ; table . get_point_left_tangent = (gd_api . godot_method_bind_get_method) (class_name , "get_point_left_tangent\0" . as_ptr () as * const c_char) ; table . get_point_position = (gd_api . godot_method_bind_get_method) (class_name , "get_point_position\0" . as_ptr () as * const c_char) ; table . get_point_right_mode = (gd_api . godot_method_bind_get_method) (class_name , "get_point_right_mode\0" . as_ptr () as * const c_char) ; table . get_point_right_tangent = (gd_api . godot_method_bind_get_method) (class_name , "get_point_right_tangent\0" . as_ptr () as * const c_char) ; table . interpolate = (gd_api . godot_method_bind_get_method) (class_name , "interpolate\0" . as_ptr () as * const c_char) ; table . interpolate_baked = (gd_api . godot_method_bind_get_method) (class_name , "interpolate_baked\0" . as_ptr () as * const c_char) ; table . remove_point = (gd_api . godot_method_bind_get_method) (class_name , "remove_point\0" . as_ptr () as * const c_char) ; table . set_bake_resolution = (gd_api . godot_method_bind_get_method) (class_name , "set_bake_resolution\0" . as_ptr () as * const c_char) ; table . set_max_value = (gd_api . godot_method_bind_get_method) (class_name , "set_max_value\0" . as_ptr () as * const c_char) ; table . set_min_value = (gd_api . godot_method_bind_get_method) (class_name , "set_min_value\0" . as_ptr () as * const c_char) ; table . set_point_left_mode = (gd_api . godot_method_bind_get_method) (class_name , "set_point_left_mode\0" . as_ptr () as * const c_char) ; table . set_point_left_tangent = (gd_api . godot_method_bind_get_method) (class_name , "set_point_left_tangent\0" . as_ptr () as * const c_char) ; table . set_point_offset = (gd_api . godot_method_bind_get_method) (class_name , "set_point_offset\0" . as_ptr () as * const c_char) ; table . set_point_right_mode = (gd_api . godot_method_bind_get_method) (class_name , "set_point_right_mode\0" . as_ptr () as * const c_char) ; table . set_point_right_tangent = (gd_api . godot_method_bind_get_method) (class_name , "set_point_right_tangent\0" . as_ptr () as * const c_char) ; table . set_point_value = (gd_api . godot_method_bind_get_method) (class_name , "set_point_value\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:412:3498 [INFO] [stdout] | [INFO] [stdout] 412 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 412 | # [doc = "`core singleton class JavaClassWrapper` inherits `Object` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_javaclasswrapper.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = ""] # [doc = "\n## Class hierarchy\n\nJavaClassWrapper inherits methods from:\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct JavaClassWrapper { this : RawObject < Self > , } impl JavaClassWrapper { # [doc = "Returns a reference to the singleton instance."] # [inline] pub fn godot_singleton () -> & 'static Self { unsafe { let this = (get_api () . godot_global_get_singleton) ("JavaClassWrapper\0" . as_ptr () as * mut _) ; let this = ptr :: NonNull :: new (this) . expect ("singleton should not be null") ; let this = RawObject :: from_sys_ref_unchecked :: < 'static > (this) ; Self :: cast_ref (this) } } # [doc = ""] # [doc = ""] # [inline] pub fn wrap (& self , name : impl Into < GodotString >) -> Option < Ref < crate :: generated :: java_class :: JavaClass , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = JavaClassWrapperMethodTable :: get (get_api ()) . wrap ; let ret = crate :: icalls :: icallptr_obj_str (method_bind , self . this . sys () . as_ptr () , name . into ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: java_class :: JavaClass , thread_access :: Shared >> :: move_from_sys (sys)) } } } impl gdnative_core :: private :: godot_object :: Sealed for JavaClassWrapper { } unsafe impl GodotObject for JavaClassWrapper { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "JavaClassWrapper" } } impl std :: ops :: Deref for JavaClassWrapper { type Target = crate :: generated :: object :: Object ; # [inline] fn deref (& self) -> & crate :: generated :: object :: Object { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for JavaClassWrapper { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: object :: Object { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: object :: Object > for JavaClassWrapper { } unsafe impl Send for JavaClassWrapper { } unsafe impl Sync for JavaClassWrapper { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct JavaClassWrapperMethodTable { pub class_constructor : sys :: godot_class_constructor , pub wrap : * mut sys :: godot_method_bind } impl JavaClassWrapperMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : JavaClassWrapperMethodTable = JavaClassWrapperMethodTable { class_constructor : None , wrap : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { JavaClassWrapperMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "JavaClassWrapper\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . wrap = (gd_api . godot_method_bind_get_method) (class_name , "wrap\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:418:42806 [INFO] [stdout] | [INFO] [stdout] 418 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 418 | # [doc = "`core class CanvasItem` inherits `Node` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_canvasitem.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = ""] # [doc = "\n## Class hierarchy\n\nCanvasItem inherits methods from:\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct CanvasItem { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct BlendMode (pub i64) ; impl BlendMode { pub const MIX : BlendMode = BlendMode (0i64) ; pub const ADD : BlendMode = BlendMode (1i64) ; pub const SUB : BlendMode = BlendMode (2i64) ; pub const MUL : BlendMode = BlendMode (3i64) ; pub const PREMULT_ALPHA : BlendMode = BlendMode (4i64) ; pub const DISABLED : BlendMode = BlendMode (5i64) ; } impl From < i64 > for BlendMode { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < BlendMode > for i64 { # [inline] fn from (v : BlendMode) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl CanvasItem { pub const BLEND_MODE_ADD : i64 = 1i64 ; pub const BLEND_MODE_DISABLED : i64 = 5i64 ; pub const BLEND_MODE_MIX : i64 = 0i64 ; pub const BLEND_MODE_MUL : i64 = 3i64 ; pub const BLEND_MODE_PREMULT_ALPHA : i64 = 4i64 ; pub const BLEND_MODE_SUB : i64 = 2i64 ; pub const NOTIFICATION_DRAW : i64 = 30i64 ; pub const NOTIFICATION_ENTER_CANVAS : i64 = 32i64 ; pub const NOTIFICATION_EXIT_CANVAS : i64 = 33i64 ; pub const NOTIFICATION_TRANSFORM_CHANGED : i64 = 2000i64 ; pub const NOTIFICATION_VISIBILITY_CHANGED : i64 = 31i64 ; } impl CanvasItem { # [doc = "Draws an arc between the given angles. The larger the value of `point_count`, the smoother the curve.\n# Default Arguments\n* `width` - `1.0`\n* `antialiased` - `false`"] # [doc = ""] # [inline] pub fn draw_arc (& self , center : Vector2 , radius : f64 , start_angle : f64 , end_angle : f64 , point_count : i64 , color : Color , width : f64 , antialiased : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_arc ; let ret = crate :: icalls :: icallptr_void_vec2_f64_f64_f64_i64_color_f64_bool (method_bind , self . this . sys () . as_ptr () , center , radius , start_angle , end_angle , point_count , color , width , antialiased) ; } } # [doc = "Draws a string character using a custom font. Returns the advance, depending on the character width and kerning with an optional next character.\n# Default Arguments\n* `modulate` - `Color( 1, 1, 1, 1 )`"] # [doc = ""] # [inline] pub fn draw_char (& self , font : impl AsArg < crate :: generated :: font :: Font > , position : Vector2 , char : impl Into < GodotString > , next : impl Into < GodotString > , modulate : Color) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_char ; let ret = crate :: icalls :: icallptr_f64_obj_vec2_str_str_color (method_bind , self . this . sys () . as_ptr () , font . as_arg_ptr () , position , char . into () , next . into () , modulate) ; ret as _ } } # [doc = "Draws a colored circle."] # [doc = ""] # [inline] pub fn draw_circle (& self , position : Vector2 , radius : f64 , color : Color) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_circle ; let ret = crate :: icalls :: icallptr_void_vec2_f64_color (method_bind , self . this . sys () . as_ptr () , position , radius , color) ; } } # [doc = "Draws a colored polygon of any amount of points, convex or concave.\n# Default Arguments\n* `uvs` - `PoolVector2Array( )`\n* `texture` - `null`\n* `normal_map` - `null`\n* `antialiased` - `false`"] # [doc = ""] # [inline] pub fn draw_colored_polygon (& self , points : Vector2Array , color : Color , uvs : Vector2Array , texture : impl AsArg < crate :: generated :: texture :: Texture > , normal_map : impl AsArg < crate :: generated :: texture :: Texture > , antialiased : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_colored_polygon ; let ret = crate :: icalls :: icallptr_void_vec2arr_color_vec2arr_obj_obj_bool (method_bind , self . this . sys () . as_ptr () , points , color , uvs , texture . as_arg_ptr () , normal_map . as_arg_ptr () , antialiased) ; } } # [doc = "Draws a line from a 2D point to another, with a given color and width. It can be optionally antialiased.\n# Default Arguments\n* `width` - `1.0`\n* `antialiased` - `false`"] # [doc = ""] # [inline] pub fn draw_line (& self , from : Vector2 , to : Vector2 , color : Color , width : f64 , antialiased : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_line ; let ret = crate :: icalls :: icallptr_void_vec2_vec2_color_f64_bool (method_bind , self . this . sys () . as_ptr () , from , to , color , width , antialiased) ; } } # [doc = "Draws a [Mesh] in 2D, using the provided texture. See [MeshInstance2D] for related documentation.\n# Default Arguments\n* `normal_map` - `null`\n* `transform` - `Transform2D( 1, 0, 0, 1, 0, 0 )`\n* `modulate` - `Color( 1, 1, 1, 1 )`"] # [doc = ""] # [inline] pub fn draw_mesh (& self , mesh : impl AsArg < crate :: generated :: mesh :: Mesh > , texture : impl AsArg < crate :: generated :: texture :: Texture > , normal_map : impl AsArg < crate :: generated :: texture :: Texture > , transform : Transform2D , modulate : Color) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_mesh ; let ret = crate :: icalls :: icallptr_void_obj_obj_obj_trans2D_color (method_bind , self . this . sys () . as_ptr () , mesh . as_arg_ptr () , texture . as_arg_ptr () , normal_map . as_arg_ptr () , transform , modulate) ; } } # [doc = "Draws multiple, parallel lines with a uniform `color`.\n**Note:** `width` and `antialiased` are currently not implemented and have no effect.\n# Default Arguments\n* `width` - `1.0`\n* `antialiased` - `false`"] # [doc = ""] # [inline] pub fn draw_multiline (& self , points : Vector2Array , color : Color , width : f64 , antialiased : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_multiline ; let ret = crate :: icalls :: icallptr_void_vec2arr_color_f64_bool (method_bind , self . this . sys () . as_ptr () , points , color , width , antialiased) ; } } # [doc = "Draws multiple, parallel lines with a uniform `width` and segment-by-segment coloring. Colors assigned to line segments match by index between `points` and `colors`.\n**Note:** `width` and `antialiased` are currently not implemented and have no effect.\n# Default Arguments\n* `width` - `1.0`\n* `antialiased` - `false`"] # [doc = ""] # [inline] pub fn draw_multiline_colors (& self , points : Vector2Array , colors : ColorArray , width : f64 , antialiased : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_multiline_colors ; let ret = crate :: icalls :: icallptr_void_vec2arr_colorarr_f64_bool (method_bind , self . this . sys () . as_ptr () , points , colors , width , antialiased) ; } } # [doc = "Draws a [MultiMesh] in 2D with the provided texture. See [MultiMeshInstance2D] for related documentation.\n# Default Arguments\n* `normal_map` - `null`"] # [doc = ""] # [inline] pub fn draw_multimesh (& self , multimesh : impl AsArg < crate :: generated :: multi_mesh :: MultiMesh > , texture : impl AsArg < crate :: generated :: texture :: Texture > , normal_map : impl AsArg < crate :: generated :: texture :: Texture >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_multimesh ; let ret = crate :: icalls :: icallptr_void_obj_obj_obj (method_bind , self . this . sys () . as_ptr () , multimesh . as_arg_ptr () , texture . as_arg_ptr () , normal_map . as_arg_ptr ()) ; } } # [doc = "Draws a polygon of any amount of points, convex or concave.\n# Default Arguments\n* `uvs` - `PoolVector2Array( )`\n* `texture` - `null`\n* `normal_map` - `null`\n* `antialiased` - `false`"] # [doc = ""] # [inline] pub fn draw_polygon (& self , points : Vector2Array , colors : ColorArray , uvs : Vector2Array , texture : impl AsArg < crate :: generated :: texture :: Texture > , normal_map : impl AsArg < crate :: generated :: texture :: Texture > , antialiased : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_polygon ; let ret = crate :: icalls :: icallptr_void_vec2arr_colorarr_vec2arr_obj_obj_bool (method_bind , self . this . sys () . as_ptr () , points , colors , uvs , texture . as_arg_ptr () , normal_map . as_arg_ptr () , antialiased) ; } } # [doc = "Draws interconnected line segments with a uniform `color` and `width` and optional antialiasing.\n# Default Arguments\n* `width` - `1.0`\n* `antialiased` - `false`"] # [doc = ""] # [inline] pub fn draw_polyline (& self , points : Vector2Array , color : Color , width : f64 , antialiased : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_polyline ; let ret = crate :: icalls :: icallptr_void_vec2arr_color_f64_bool (method_bind , self . this . sys () . as_ptr () , points , color , width , antialiased) ; } } # [doc = "Draws interconnected line segments with a uniform `width`, segment-by-segment coloring, and optional antialiasing. Colors assigned to line segments match by index between `points` and `colors`.\n# Default Arguments\n* `width` - `1.0`\n* `antialiased` - `false`"] # [doc = ""] # [inline] pub fn draw_polyline_colors (& self , points : Vector2Array , colors : ColorArray , width : f64 , antialiased : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_polyline_colors ; let ret = crate :: icalls :: icallptr_void_vec2arr_colorarr_f64_bool (method_bind , self . this . sys () . as_ptr () , points , colors , width , antialiased) ; } } # [doc = "Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points for a triangle and 4 points for a quad.\n# Default Arguments\n* `texture` - `null`\n* `width` - `1.0`\n* `normal_map` - `null`"] # [doc = ""] # [inline] pub fn draw_primitive (& self , points : Vector2Array , colors : ColorArray , uvs : Vector2Array , texture : impl AsArg < crate :: generated :: texture :: Texture > , width : f64 , normal_map : impl AsArg < crate :: generated :: texture :: Texture >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_primitive ; let ret = crate :: icalls :: icallptr_void_vec2arr_colorarr_vec2arr_obj_f64_obj (method_bind , self . this . sys () . as_ptr () , points , colors , uvs , texture . as_arg_ptr () , width , normal_map . as_arg_ptr ()) ; } } # [doc = "Draws a rectangle. If `filled` is `true`, the rectangle will be filled with the `color` specified. If `filled` is `false`, the rectangle will be drawn as a stroke with the `color` and `width` specified. If `antialiased` is `true`, the lines will be antialiased.\n**Note:** `width` and `antialiased` are only effective if `filled` is `false`.\n# Default Arguments\n* `filled` - `true`\n* `width` - `1.0`\n* `antialiased` - `false`"] # [doc = ""] # [inline] pub fn draw_rect (& self , rect : Rect2 , color : Color , filled : bool , width : f64 , antialiased : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_rect ; let ret = crate :: icalls :: icallptr_void_rect2_color_bool_f64_bool (method_bind , self . this . sys () . as_ptr () , rect , color , filled , width , antialiased) ; } } # [doc = "Sets a custom transform for drawing via components. Anything drawn afterwards will be transformed by this."] # [doc = ""] # [inline] pub fn draw_set_transform (& self , position : Vector2 , rotation : f64 , scale : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_set_transform ; let ret = crate :: icalls :: icallptr_void_vec2_f64_vec2 (method_bind , self . this . sys () . as_ptr () , position , rotation , scale) ; } } # [doc = "Sets a custom transform for drawing via matrix. Anything drawn afterwards will be transformed by this."] # [doc = ""] # [inline] pub fn draw_set_transform_matrix (& self , xform : Transform2D) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_set_transform_matrix ; let ret = crate :: icalls :: icallptr_void_trans2D (method_bind , self . this . sys () . as_ptr () , xform) ; } } # [doc = "_Sample code is GDScript unless otherwise noted._\n\nDraws `text` using the specified `font` at the `position` (top-left corner). The text will have its color multiplied by `modulate`. If `clip_w` is greater than or equal to 0, the text will be clipped if it exceeds the specified width.\n**Example using the default project font:**\n```gdscript\n# If using this method in a script that redraws constantly, move the\n# `default_font` declaration to a member variable assigned in `_ready()`\n# so the Control is only created once.\nvar default_font = Control.new().get_font(\"font\")\ndraw_string(default_font, Vector2(64, 64), \"Hello world\")\n```\nSee also [method Font.draw].\n# Default Arguments\n* `modulate` - `Color( 1, 1, 1, 1 )`\n* `clip_w` - `-1`"] # [doc = ""] # [inline] pub fn draw_string (& self , font : impl AsArg < crate :: generated :: font :: Font > , position : Vector2 , text : impl Into < GodotString > , modulate : Color , clip_w : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_string ; let ret = crate :: icalls :: icallptr_void_obj_vec2_str_color_i64 (method_bind , self . this . sys () . as_ptr () , font . as_arg_ptr () , position , text . into () , modulate , clip_w) ; } } # [doc = "Draws a styled rectangle."] # [doc = ""] # [inline] pub fn draw_style_box (& self , style_box : impl AsArg < crate :: generated :: style_box :: StyleBox > , rect : Rect2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_style_box ; let ret = crate :: icalls :: icallptr_void_obj_rect2 (method_bind , self . this . sys () . as_ptr () , style_box . as_arg_ptr () , rect) ; } } # [doc = "Draws a texture at a given position.\n# Default Arguments\n* `modulate` - `Color( 1, 1, 1, 1 )`\n* `normal_map` - `null`"] # [doc = ""] # [inline] pub fn draw_texture (& self , texture : impl AsArg < crate :: generated :: texture :: Texture > , position : Vector2 , modulate : Color , normal_map : impl AsArg < crate :: generated :: texture :: Texture >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_texture ; let ret = crate :: icalls :: icallptr_void_obj_vec2_color_obj (method_bind , self . this . sys () . as_ptr () , texture . as_arg_ptr () , position , modulate , normal_map . as_arg_ptr ()) ; } } # [doc = "Draws a textured rectangle at a given position, optionally modulated by a color. If `transpose` is `true`, the texture will have its X and Y coordinates swapped.\n# Default Arguments\n* `modulate` - `Color( 1, 1, 1, 1 )`\n* `transpose` - `false`\n* `normal_map` - `null`"] # [doc = ""] # [inline] pub fn draw_texture_rect (& self , texture : impl AsArg < crate :: generated :: texture :: Texture > , rect : Rect2 , tile : bool , modulate : Color , transpose : bool , normal_map : impl AsArg < crate :: generated :: texture :: Texture >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_texture_rect ; let ret = crate :: icalls :: icallptr_void_obj_rect2_bool_color_bool_obj (method_bind , self . this . sys () . as_ptr () , texture . as_arg_ptr () , rect , tile , modulate , transpose , normal_map . as_arg_ptr ()) ; } } # [doc = "Draws a textured rectangle region at a given position, optionally modulated by a color. If `transpose` is `true`, the texture will have its X and Y coordinates swapped.\n# Default Arguments\n* `modulate` - `Color( 1, 1, 1, 1 )`\n* `transpose` - `false`\n* `normal_map` - `null`\n* `clip_uv` - `true`"] # [doc = ""] # [inline] pub fn draw_texture_rect_region (& self , texture : impl AsArg < crate :: generated :: texture :: Texture > , rect : Rect2 , src_rect : Rect2 , modulate : Color , transpose : bool , normal_map : impl AsArg < crate :: generated :: texture :: Texture > , clip_uv : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . draw_texture_rect_region ; let ret = crate :: icalls :: icallptr_void_obj_rect2_rect2_color_bool_obj_bool (method_bind , self . this . sys () . as_ptr () , texture . as_arg_ptr () , rect , src_rect , modulate , transpose , normal_map . as_arg_ptr () , clip_uv) ; } } # [doc = "Forces the transform to update. Transform changes in physics are not instant for performance reasons. Transforms are accumulated and then set. Use this if you need an up-to-date transform when doing physics operations."] # [doc = ""] # [inline] pub fn force_update_transform (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . force_update_transform ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Returns the [RID] of the [World2D] canvas where this item is in."] # [doc = ""] # [inline] pub fn get_canvas (& self) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_canvas ; let ret = crate :: icalls :: icallptr_rid (method_bind , self . this . sys () . as_ptr ()) ; Rid :: from_sys (ret) } } # [doc = "Returns the canvas item RID used by [VisualServer] for this item."] # [doc = ""] # [inline] pub fn get_canvas_item (& self) -> Rid { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_canvas_item ; let ret = crate :: icalls :: icallptr_rid (method_bind , self . this . sys () . as_ptr ()) ; Rid :: from_sys (ret) } } # [doc = "Returns the transform matrix of this item's canvas."] # [doc = ""] # [inline] pub fn get_canvas_transform (& self) -> Transform2D { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_canvas_transform ; let ret = crate :: icalls :: icallptr_trans2D (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Returns the global position of the mouse."] # [doc = ""] # [inline] pub fn get_global_mouse_position (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_global_mouse_position ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Returns the global transform matrix of this item."] # [doc = ""] # [inline] pub fn get_global_transform (& self) -> Transform2D { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_global_transform ; let ret = crate :: icalls :: icallptr_trans2D (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Returns the global transform matrix of this item in relation to the canvas."] # [doc = ""] # [inline] pub fn get_global_transform_with_canvas (& self) -> Transform2D { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_global_transform_with_canvas ; let ret = crate :: icalls :: icallptr_trans2D (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "The rendering layers in which this [CanvasItem] responds to [Light2D] nodes."] # [doc = ""] # [inline] pub fn light_mask (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_light_mask ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the mouse position relative to this item's position."] # [doc = ""] # [inline] pub fn get_local_mouse_position (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_local_mouse_position ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "The material applied to textures on this [CanvasItem]."] # [doc = ""] # [inline] pub fn material (& self) -> Option < Ref < crate :: generated :: material :: Material , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_material ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: material :: Material , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "The color applied to textures on this [CanvasItem]."] # [doc = ""] # [inline] pub fn modulate (& self) -> Color { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_modulate ; let ret = crate :: icalls :: icallptr_color (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "The color applied to textures on this [CanvasItem]. This is not inherited by children [CanvasItem]s."] # [doc = ""] # [inline] pub fn self_modulate (& self) -> Color { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_self_modulate ; let ret = crate :: icalls :: icallptr_color (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Returns the transform matrix of this item."] # [doc = ""] # [inline] pub fn get_transform (& self) -> Transform2D { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_transform ; let ret = crate :: icalls :: icallptr_trans2D (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "If `true`, the parent [CanvasItem]'s [member material] property is used as this one's material."] # [doc = ""] # [inline] pub fn use_parent_material (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_use_parent_material ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the viewport's boundaries as a [Rect2]."] # [doc = ""] # [inline] pub fn get_viewport_rect (& self) -> Rect2 { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_viewport_rect ; let ret = crate :: icalls :: icallptr_rect2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Returns this item's transform in relation to the viewport."] # [doc = ""] # [inline] pub fn get_viewport_transform (& self) -> Transform2D { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_viewport_transform ; let ret = crate :: icalls :: icallptr_trans2D (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Returns the [World2D] where this item is in."] # [doc = ""] # [inline] pub fn get_world_2d (& self) -> Option < Ref < crate :: generated :: world_2d :: World2D , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . get_world_2d ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: world_2d :: World2D , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Hide the [CanvasItem] if it's currently visible."] # [doc = ""] # [inline] pub fn hide (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . hide ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "If `true`, the object draws behind its parent."] # [doc = ""] # [inline] pub fn is_draw_behind_parent_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . is_draw_behind_parent_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if local transform notifications are communicated to children."] # [doc = ""] # [inline] pub fn is_local_transform_notification_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . is_local_transform_notification_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the node is set as top-level. See [method set_as_toplevel]."] # [doc = ""] # [inline] pub fn is_set_as_toplevel (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . is_set_as_toplevel ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if global transform notifications are communicated to children."] # [doc = ""] # [inline] pub fn is_transform_notification_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . is_transform_notification_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, this [CanvasItem] is drawn. The node is only visible if all of its antecedents are visible as well (in other words, [method is_visible_in_tree] must return `true`).\n**Note:** For controls that inherit [Popup], the correct way to make them visible is to call one of the multiple `popup*()` functions instead."] # [doc = ""] # [inline] pub fn is_visible (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . is_visible ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the node is present in the [SceneTree], its [member visible] property is `true` and all its antecedents are also visible. If any antecedent is hidden, this node will not be visible in the scene tree."] # [doc = ""] # [inline] pub fn is_visible_in_tree (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . is_visible_in_tree ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Assigns `screen_point` as this node's new local transform."] # [doc = ""] # [inline] pub fn make_canvas_position_local (& self , screen_point : Vector2) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . make_canvas_position_local ; let ret = crate :: icalls :: icallptr_vec2_vec2 (method_bind , self . this . sys () . as_ptr () , screen_point) ; mem :: transmute (ret) } } # [doc = "Transformations issued by `event`'s inputs are applied in local space instead of global space."] # [doc = ""] # [inline] pub fn make_input_local (& self , event : impl AsArg < crate :: generated :: input_event :: InputEvent >) -> Option < Ref < crate :: generated :: input_event :: InputEvent , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . make_input_local ; let ret = crate :: icalls :: icallptr_obj_obj (method_bind , self . this . sys () . as_ptr () , event . as_arg_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: input_event :: InputEvent , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "If `enable` is `true`, the node won't inherit its transform from parent canvas items."] # [doc = ""] # [inline] pub fn set_as_toplevel (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . set_as_toplevel ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "If `true`, the object draws behind its parent."] # [doc = ""] # [inline] pub fn set_draw_behind_parent (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . set_draw_behind_parent ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "The rendering layers in which this [CanvasItem] responds to [Light2D] nodes."] # [doc = ""] # [inline] pub fn set_light_mask (& self , light_mask : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . set_light_mask ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , light_mask) ; } } # [doc = "The material applied to textures on this [CanvasItem]."] # [doc = ""] # [inline] pub fn set_material (& self , material : impl AsArg < crate :: generated :: material :: Material >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . set_material ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , material . as_arg_ptr ()) ; } } # [doc = "The color applied to textures on this [CanvasItem]."] # [doc = ""] # [inline] pub fn set_modulate (& self , modulate : Color) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . set_modulate ; let ret = crate :: icalls :: icallptr_void_color (method_bind , self . this . sys () . as_ptr () , modulate) ; } } # [doc = "If `enable` is `true`, children will be updated with local transform data."] # [doc = ""] # [inline] pub fn set_notify_local_transform (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . set_notify_local_transform ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "If `enable` is `true`, children will be updated with global transform data."] # [doc = ""] # [inline] pub fn set_notify_transform (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . set_notify_transform ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "The color applied to textures on this [CanvasItem]. This is not inherited by children [CanvasItem]s."] # [doc = ""] # [inline] pub fn set_self_modulate (& self , self_modulate : Color) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . set_self_modulate ; let ret = crate :: icalls :: icallptr_void_color (method_bind , self . this . sys () . as_ptr () , self_modulate) ; } } # [doc = "If `true`, the parent [CanvasItem]'s [member material] property is used as this one's material."] # [doc = ""] # [inline] pub fn set_use_parent_material (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . set_use_parent_material ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "If `true`, this [CanvasItem] is drawn. The node is only visible if all of its antecedents are visible as well (in other words, [method is_visible_in_tree] must return `true`).\n**Note:** For controls that inherit [Popup], the correct way to make them visible is to call one of the multiple `popup*()` functions instead."] # [doc = ""] # [inline] pub fn set_visible (& self , visible : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . set_visible ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , visible) ; } } # [doc = "Show the [CanvasItem] if it's currently hidden. For controls that inherit [Popup], the correct way to make them visible is to call one of the multiple `popup*()` functions instead."] # [doc = ""] # [inline] pub fn show (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . show ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Queue the [CanvasItem] for update. [constant NOTIFICATION_DRAW] will be called on idle time to request redraw."] # [doc = ""] # [inline] pub fn update (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = CanvasItemMethodTable :: get (get_api ()) . update ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for CanvasItem { } unsafe impl GodotObject for CanvasItem { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "CanvasItem" } } impl QueueFree for CanvasItem { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for CanvasItem { type Target = crate :: generated :: node :: Node ; # [inline] fn deref (& self) -> & crate :: generated :: node :: Node { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for CanvasItem { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: node :: Node { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: node :: Node > for CanvasItem { } unsafe impl SubClass < crate :: generated :: object :: Object > for CanvasItem { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct CanvasItemMethodTable { pub class_constructor : sys :: godot_class_constructor , pub draw_arc : * mut sys :: godot_method_bind , pub draw_char : * mut sys :: godot_method_bind , pub draw_circle : * mut sys :: godot_method_bind , pub draw_colored_polygon : * mut sys :: godot_method_bind , pub draw_line : * mut sys :: godot_method_bind , pub draw_mesh : * mut sys :: godot_method_bind , pub draw_multiline : * mut sys :: godot_method_bind , pub draw_multiline_colors : * mut sys :: godot_method_bind , pub draw_multimesh : * mut sys :: godot_method_bind , pub draw_polygon : * mut sys :: godot_method_bind , pub draw_polyline : * mut sys :: godot_method_bind , pub draw_polyline_colors : * mut sys :: godot_method_bind , pub draw_primitive : * mut sys :: godot_method_bind , pub draw_rect : * mut sys :: godot_method_bind , pub draw_set_transform : * mut sys :: godot_method_bind , pub draw_set_transform_matrix : * mut sys :: godot_method_bind , pub draw_string : * mut sys :: godot_method_bind , pub draw_style_box : * mut sys :: godot_method_bind , pub draw_texture : * mut sys :: godot_method_bind , pub draw_texture_rect : * mut sys :: godot_method_bind , pub draw_texture_rect_region : * mut sys :: godot_method_bind , pub force_update_transform : * mut sys :: godot_method_bind , pub get_canvas : * mut sys :: godot_method_bind , pub get_canvas_item : * mut sys :: godot_method_bind , pub get_canvas_transform : * mut sys :: godot_method_bind , pub get_global_mouse_position : * mut sys :: godot_method_bind , pub get_global_transform : * mut sys :: godot_method_bind , pub get_global_transform_with_canvas : * mut sys :: godot_method_bind , pub get_light_mask : * mut sys :: godot_method_bind , pub get_local_mouse_position : * mut sys :: godot_method_bind , pub get_material : * mut sys :: godot_method_bind , pub get_modulate : * mut sys :: godot_method_bind , pub get_self_modulate : * mut sys :: godot_method_bind , pub get_transform : * mut sys :: godot_method_bind , pub get_use_parent_material : * mut sys :: godot_method_bind , pub get_viewport_rect : * mut sys :: godot_method_bind , pub get_viewport_transform : * mut sys :: godot_method_bind , pub get_world_2d : * mut sys :: godot_method_bind , pub hide : * mut sys :: godot_method_bind , pub is_draw_behind_parent_enabled : * mut sys :: godot_method_bind , pub is_local_transform_notification_enabled : * mut sys :: godot_method_bind , pub is_set_as_toplevel : * mut sys :: godot_method_bind , pub is_transform_notification_enabled : * mut sys :: godot_method_bind , pub is_visible : * mut sys :: godot_method_bind , pub is_visible_in_tree : * mut sys :: godot_method_bind , pub make_canvas_position_local : * mut sys :: godot_method_bind , pub make_input_local : * mut sys :: godot_method_bind , pub set_as_toplevel : * mut sys :: godot_method_bind , pub set_draw_behind_parent : * mut sys :: godot_method_bind , pub set_light_mask : * mut sys :: godot_method_bind , pub set_material : * mut sys :: godot_method_bind , pub set_modulate : * mut sys :: godot_method_bind , pub set_notify_local_transform : * mut sys :: godot_method_bind , pub set_notify_transform : * mut sys :: godot_method_bind , pub set_self_modulate : * mut sys :: godot_method_bind , pub set_use_parent_material : * mut sys :: godot_method_bind , pub set_visible : * mut sys :: godot_method_bind , pub show : * mut sys :: godot_method_bind , pub update : * mut sys :: godot_method_bind } impl CanvasItemMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : CanvasItemMethodTable = CanvasItemMethodTable { class_constructor : None , draw_arc : 0 as * mut sys :: godot_method_bind , draw_char : 0 as * mut sys :: godot_method_bind , draw_circle : 0 as * mut sys :: godot_method_bind , draw_colored_polygon : 0 as * mut sys :: godot_method_bind , draw_line : 0 as * mut sys :: godot_method_bind , draw_mesh : 0 as * mut sys :: godot_method_bind , draw_multiline : 0 as * mut sys :: godot_method_bind , draw_multiline_colors : 0 as * mut sys :: godot_method_bind , draw_multimesh : 0 as * mut sys :: godot_method_bind , draw_polygon : 0 as * mut sys :: godot_method_bind , draw_polyline : 0 as * mut sys :: godot_method_bind , draw_polyline_colors : 0 as * mut sys :: godot_method_bind , draw_primitive : 0 as * mut sys :: godot_method_bind , draw_rect : 0 as * mut sys :: godot_method_bind , draw_set_transform : 0 as * mut sys :: godot_method_bind , draw_set_transform_matrix : 0 as * mut sys :: godot_method_bind , draw_string : 0 as * mut sys :: godot_method_bind , draw_style_box : 0 as * mut sys :: godot_method_bind , draw_texture : 0 as * mut sys :: godot_method_bind , draw_texture_rect : 0 as * mut sys :: godot_method_bind , draw_texture_rect_region : 0 as * mut sys :: godot_method_bind , force_update_transform : 0 as * mut sys :: godot_method_bind , get_canvas : 0 as * mut sys :: godot_method_bind , get_canvas_item : 0 as * mut sys :: godot_method_bind , get_canvas_transform : 0 as * mut sys :: godot_method_bind , get_global_mouse_position : 0 as * mut sys :: godot_method_bind , get_global_transform : 0 as * mut sys :: godot_method_bind , get_global_transform_with_canvas : 0 as * mut sys :: godot_method_bind , get_light_mask : 0 as * mut sys :: godot_method_bind , get_local_mouse_position : 0 as * mut sys :: godot_method_bind , get_material : 0 as * mut sys :: godot_method_bind , get_modulate : 0 as * mut sys :: godot_method_bind , get_self_modulate : 0 as * mut sys :: godot_method_bind , get_transform : 0 as * mut sys :: godot_method_bind , get_use_parent_material : 0 as * mut sys :: godot_method_bind , get_viewport_rect : 0 as * mut sys :: godot_method_bind , get_viewport_transform : 0 as * mut sys :: godot_method_bind , get_world_2d : 0 as * mut sys :: godot_method_bind , hide : 0 as * mut sys :: godot_method_bind , is_draw_behind_parent_enabled : 0 as * mut sys :: godot_method_bind , is_local_transform_notification_enabled : 0 as * mut sys :: godot_method_bind , is_set_as_toplevel : 0 as * mut sys :: godot_method_bind , is_transform_notification_enabled : 0 as * mut sys :: godot_method_bind , is_visible : 0 as * mut sys :: godot_method_bind , is_visible_in_tree : 0 as * mut sys :: godot_method_bind , make_canvas_position_local : 0 as * mut sys :: godot_method_bind , make_input_local : 0 as * mut sys :: godot_method_bind , set_as_toplevel : 0 as * mut sys :: godot_method_bind , set_draw_behind_parent : 0 as * mut sys :: godot_method_bind , set_light_mask : 0 as * mut sys :: godot_method_bind , set_material : 0 as * mut sys :: godot_method_bind , set_modulate : 0 as * mut sys :: godot_method_bind , set_notify_local_transform : 0 as * mut sys :: godot_method_bind , set_notify_transform : 0 as * mut sys :: godot_method_bind , set_self_modulate : 0 as * mut sys :: godot_method_bind , set_use_parent_material : 0 as * mut sys :: godot_method_bind , set_visible : 0 as * mut sys :: godot_method_bind , show : 0 as * mut sys :: godot_method_bind , update : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { CanvasItemMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "CanvasItem\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . draw_arc = (gd_api . godot_method_bind_get_method) (class_name , "draw_arc\0" . as_ptr () as * const c_char) ; table . draw_char = (gd_api . godot_method_bind_get_method) (class_name , "draw_char\0" . as_ptr () as * const c_char) ; table . draw_circle = (gd_api . godot_method_bind_get_method) (class_name , "draw_circle\0" . as_ptr () as * const c_char) ; table . draw_colored_polygon = (gd_api . godot_method_bind_get_method) (class_name , "draw_colored_polygon\0" . as_ptr () as * const c_char) ; table . draw_line = (gd_api . godot_method_bind_get_method) (class_name , "draw_line\0" . as_ptr () as * const c_char) ; table . draw_mesh = (gd_api . godot_method_bind_get_method) (class_name , "draw_mesh\0" . as_ptr () as * const c_char) ; table . draw_multiline = (gd_api . godot_method_bind_get_method) (class_name , "draw_multiline\0" . as_ptr () as * const c_char) ; table . draw_multiline_colors = (gd_api . godot_method_bind_get_method) (class_name , "draw_multiline_colors\0" . as_ptr () as * const c_char) ; table . draw_multimesh = (gd_api . godot_method_bind_get_method) (class_name , "draw_multimesh\0" . as_ptr () as * const c_char) ; table . draw_polygon = (gd_api . godot_method_bind_get_method) (class_name , "draw_polygon\0" . as_ptr () as * const c_char) ; table . draw_polyline = (gd_api . godot_method_bind_get_method) (class_name , "draw_polyline\0" . as_ptr () as * const c_char) ; table . draw_polyline_colors = (gd_api . godot_method_bind_get_method) (class_name , "draw_polyline_colors\0" . as_ptr () as * const c_char) ; table . draw_primitive = (gd_api . godot_method_bind_get_method) (class_name , "draw_primitive\0" . as_ptr () as * const c_char) ; table . draw_rect = (gd_api . godot_method_bind_get_method) (class_name , "draw_rect\0" . as_ptr () as * const c_char) ; table . draw_set_transform = (gd_api . godot_method_bind_get_method) (class_name , "draw_set_transform\0" . as_ptr () as * const c_char) ; table . draw_set_transform_matrix = (gd_api . godot_method_bind_get_method) (class_name , "draw_set_transform_matrix\0" . as_ptr () as * const c_char) ; table . draw_string = (gd_api . godot_method_bind_get_method) (class_name , "draw_string\0" . as_ptr () as * const c_char) ; table . draw_style_box = (gd_api . godot_method_bind_get_method) (class_name , "draw_style_box\0" . as_ptr () as * const c_char) ; table . draw_texture = (gd_api . godot_method_bind_get_method) (class_name , "draw_texture\0" . as_ptr () as * const c_char) ; table . draw_texture_rect = (gd_api . godot_method_bind_get_method) (class_name , "draw_texture_rect\0" . as_ptr () as * const c_char) ; table . draw_texture_rect_region = (gd_api . godot_method_bind_get_method) (class_name , "draw_texture_rect_region\0" . as_ptr () as * const c_char) ; table . force_update_transform = (gd_api . godot_method_bind_get_method) (class_name , "force_update_transform\0" . as_ptr () as * const c_char) ; table . get_canvas = (gd_api . godot_method_bind_get_method) (class_name , "get_canvas\0" . as_ptr () as * const c_char) ; table . get_canvas_item = (gd_api . godot_method_bind_get_method) (class_name , "get_canvas_item\0" . as_ptr () as * const c_char) ; table . get_canvas_transform = (gd_api . godot_method_bind_get_method) (class_name , "get_canvas_transform\0" . as_ptr () as * const c_char) ; table . get_global_mouse_position = (gd_api . godot_method_bind_get_method) (class_name , "get_global_mouse_position\0" . as_ptr () as * const c_char) ; table . get_global_transform = (gd_api . godot_method_bind_get_method) (class_name , "get_global_transform\0" . as_ptr () as * const c_char) ; table . get_global_transform_with_canvas = (gd_api . godot_method_bind_get_method) (class_name , "get_global_transform_with_canvas\0" . as_ptr () as * const c_char) ; table . get_light_mask = (gd_api . godot_method_bind_get_method) (class_name , "get_light_mask\0" . as_ptr () as * const c_char) ; table . get_local_mouse_position = (gd_api . godot_method_bind_get_method) (class_name , "get_local_mouse_position\0" . as_ptr () as * const c_char) ; table . get_material = (gd_api . godot_method_bind_get_method) (class_name , "get_material\0" . as_ptr () as * const c_char) ; table . get_modulate = (gd_api . godot_method_bind_get_method) (class_name , "get_modulate\0" . as_ptr () as * const c_char) ; table . get_self_modulate = (gd_api . godot_method_bind_get_method) (class_name , "get_self_modulate\0" . as_ptr () as * const c_char) ; table . get_transform = (gd_api . godot_method_bind_get_method) (class_name , "get_transform\0" . as_ptr () as * const c_char) ; table . get_use_parent_material = (gd_api . godot_method_bind_get_method) (class_name , "get_use_parent_material\0" . as_ptr () as * const c_char) ; table . get_viewport_rect = (gd_api . godot_method_bind_get_method) (class_name , "get_viewport_rect\0" . as_ptr () as * const c_char) ; table . get_viewport_transform = (gd_api . godot_method_bind_get_method) (class_name , "get_viewport_transform\0" . as_ptr () as * const c_char) ; table . get_world_2d = (gd_api . godot_method_bind_get_method) (class_name , "get_world_2d\0" . as_ptr () as * const c_char) ; table . hide = (gd_api . godot_method_bind_get_method) (class_name , "hide\0" . as_ptr () as * const c_char) ; table . is_draw_behind_parent_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_draw_behind_parent_enabled\0" . as_ptr () as * const c_char) ; table . is_local_transform_notification_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_local_transform_notification_enabled\0" . as_ptr () as * const c_char) ; table . is_set_as_toplevel = (gd_api . godot_method_bind_get_method) (class_name , "is_set_as_toplevel\0" . as_ptr () as * const c_char) ; table . is_transform_notification_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_transform_notification_enabled\0" . as_ptr () as * const c_char) ; table . is_visible = (gd_api . godot_method_bind_get_method) (class_name , "is_visible\0" . as_ptr () as * const c_char) ; table . is_visible_in_tree = (gd_api . godot_method_bind_get_method) (class_name , "is_visible_in_tree\0" . as_ptr () as * const c_char) ; table . make_canvas_position_local = (gd_api . godot_method_bind_get_method) (class_name , "make_canvas_position_local\0" . as_ptr () as * const c_char) ; table . make_input_local = (gd_api . godot_method_bind_get_method) (class_name , "make_input_local\0" . as_ptr () as * const c_char) ; table . set_as_toplevel = (gd_api . godot_method_bind_get_method) (class_name , "set_as_toplevel\0" . as_ptr () as * const c_char) ; table . set_draw_behind_parent = (gd_api . godot_method_bind_get_method) (class_name , "set_draw_behind_parent\0" . as_ptr () as * const c_char) ; table . set_light_mask = (gd_api . godot_method_bind_get_method) (class_name , "set_light_mask\0" . as_ptr () as * const c_char) ; table . set_material = (gd_api . godot_method_bind_get_method) (class_name , "set_material\0" . as_ptr () as * const c_char) ; table . set_modulate = (gd_api . godot_method_bind_get_method) (class_name , "set_modulate\0" . as_ptr () as * const c_char) ; table . set_notify_local_transform = (gd_api . godot_method_bind_get_method) (class_name , "set_notify_local_transform\0" . as_ptr () as * const c_char) ; table . set_notify_transform = (gd_api . godot_method_bind_get_method) (class_name , "set_notify_transform\0" . as_ptr () as * const c_char) ; table . set_self_modulate = (gd_api . godot_method_bind_get_method) (class_name , "set_self_modulate\0" . as_ptr () as * const c_char) ; table . set_use_parent_material = (gd_api . godot_method_bind_get_method) (class_name , "set_use_parent_material\0" . as_ptr () as * const c_char) ; table . set_visible = (gd_api . godot_method_bind_get_method) (class_name , "set_visible\0" . as_ptr () as * const c_char) ; table . show = (gd_api . godot_method_bind_get_method) (class_name , "show\0" . as_ptr () as * const c_char) ; table . update = (gd_api . godot_method_bind_get_method) (class_name , "update\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:424:7422 [INFO] [stdout] | [INFO] [stdout] 424 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 424 | # [doc = "`core class RegEx` inherits `Reference` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_regex.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nRegEx inherits methods from:\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct RegEx { this : RawObject < Self > , } impl RegEx { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = RegExMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = ""] # [doc = ""] # [inline] pub fn clear (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = RegExMethodTable :: get (get_api ()) . clear ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn compile (& self , pattern : impl Into < GodotString >) -> GodotResult { unsafe { let method_bind : * mut sys :: godot_method_bind = RegExMethodTable :: get (get_api ()) . compile ; let ret = crate :: icalls :: icallptr_i64_str (method_bind , self . this . sys () . as_ptr () , pattern . into ()) ; GodotError :: result_from_sys (ret as _) } } # [doc = ""] # [doc = ""] # [inline] pub fn get_group_count (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = RegExMethodTable :: get (get_api ()) . get_group_count ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn get_names (& self) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = RegExMethodTable :: get (get_api ()) . get_names ; let ret = crate :: icalls :: icallvar_ (method_bind , self . this . sys () . as_ptr ()) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = ""] # [doc = ""] # [inline] pub fn get_pattern (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = RegExMethodTable :: get (get_api ()) . get_pattern ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn is_valid (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = RegExMethodTable :: get (get_api ()) . is_valid ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn search (& self , subject : impl Into < GodotString > , offset : i64 , end : i64) -> Option < Ref < crate :: generated :: reg_ex_match :: RegExMatch , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = RegExMethodTable :: get (get_api ()) . search ; let ret = crate :: icalls :: icallptr_obj_str_i64_i64 (method_bind , self . this . sys () . as_ptr () , subject . into () , offset , end) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: reg_ex_match :: RegExMatch , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = ""] # [doc = ""] # [inline] pub fn search_all (& self , subject : impl Into < GodotString > , offset : i64 , end : i64) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = RegExMethodTable :: get (get_api ()) . search_all ; let ret = crate :: icalls :: icallvar__str_i64_i64 (method_bind , self . this . sys () . as_ptr () , subject . into () , offset , end) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = ""] # [doc = ""] # [inline] pub fn sub (& self , subject : impl Into < GodotString > , replacement : impl Into < GodotString > , all : bool , offset : i64 , end : i64) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = RegExMethodTable :: get (get_api ()) . sub ; let ret = crate :: icalls :: icallptr_str_str_str_bool_i64_i64 (method_bind , self . this . sys () . as_ptr () , subject . into () , replacement . into () , all , offset , end) ; GodotString :: from_sys (ret) } } } impl gdnative_core :: private :: godot_object :: Sealed for RegEx { } unsafe impl GodotObject for RegEx { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "RegEx" } } impl std :: ops :: Deref for RegEx { type Target = crate :: generated :: reference :: Reference ; # [inline] fn deref (& self) -> & crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for RegEx { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: reference :: Reference > for RegEx { } unsafe impl SubClass < crate :: generated :: object :: Object > for RegEx { } impl Instanciable for RegEx { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { RegEx :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct RegExMethodTable { pub class_constructor : sys :: godot_class_constructor , pub clear : * mut sys :: godot_method_bind , pub compile : * mut sys :: godot_method_bind , pub get_group_count : * mut sys :: godot_method_bind , pub get_names : * mut sys :: godot_method_bind , pub get_pattern : * mut sys :: godot_method_bind , pub is_valid : * mut sys :: godot_method_bind , pub search : * mut sys :: godot_method_bind , pub search_all : * mut sys :: godot_method_bind , pub sub : * mut sys :: godot_method_bind } impl RegExMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : RegExMethodTable = RegExMethodTable { class_constructor : None , clear : 0 as * mut sys :: godot_method_bind , compile : 0 as * mut sys :: godot_method_bind , get_group_count : 0 as * mut sys :: godot_method_bind , get_names : 0 as * mut sys :: godot_method_bind , get_pattern : 0 as * mut sys :: godot_method_bind , is_valid : 0 as * mut sys :: godot_method_bind , search : 0 as * mut sys :: godot_method_bind , search_all : 0 as * mut sys :: godot_method_bind , sub : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { RegExMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "RegEx\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . clear = (gd_api . godot_method_bind_get_method) (class_name , "clear\0" . as_ptr () as * const c_char) ; table . compile = (gd_api . godot_method_bind_get_method) (class_name , "compile\0" . as_ptr () as * const c_char) ; table . get_group_count = (gd_api . godot_method_bind_get_method) (class_name , "get_group_count\0" . as_ptr () as * const c_char) ; table . get_names = (gd_api . godot_method_bind_get_method) (class_name , "get_names\0" . as_ptr () as * const c_char) ; table . get_pattern = (gd_api . godot_method_bind_get_method) (class_name , "get_pattern\0" . as_ptr () as * const c_char) ; table . is_valid = (gd_api . godot_method_bind_get_method) (class_name , "is_valid\0" . as_ptr () as * const c_char) ; table . search = (gd_api . godot_method_bind_get_method) (class_name , "search\0" . as_ptr () as * const c_char) ; table . search_all = (gd_api . godot_method_bind_get_method) (class_name , "search_all\0" . as_ptr () as * const c_char) ; table . sub = (gd_api . godot_method_bind_get_method) (class_name , "sub\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:430:3280 [INFO] [stdout] | [INFO] [stdout] 430 | ...thodTable { class_constructor : None , } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 430 | # [doc = "`core class ResourceFormatLoader` inherits `Reference` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_resourceformatloader.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nResourceFormatLoader inherits methods from:\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct ResourceFormatLoader { this : RawObject < Self > , } impl ResourceFormatLoader { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = ResourceFormatLoaderMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } } impl gdnative_core :: private :: godot_object :: Sealed for ResourceFormatLoader { } unsafe impl GodotObject for ResourceFormatLoader { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "ResourceFormatLoader" } } impl std :: ops :: Deref for ResourceFormatLoader { type Target = crate :: generated :: reference :: Reference ; # [inline] fn deref (& self) -> & crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for ResourceFormatLoader { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: reference :: Reference > for ResourceFormatLoader { } unsafe impl SubClass < crate :: generated :: object :: Object > for ResourceFormatLoader { } impl Instanciable for ResourceFormatLoader { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { ResourceFormatLoader :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct ResourceFormatLoaderMethodTable { pub class_constructor : sys :: godot_class_constructor , } impl ResourceFormatLoaderMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : ResourceFormatLoaderMethodTable = ResourceFormatLoaderMethodTable { class_constructor : None , } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { ResourceFormatLoaderMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "ResourceFormatLoader\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:436:4051 [INFO] [stdout] | [INFO] [stdout] 436 | ...thodTable { class_constructor : None , } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 436 | # [doc = "`core class VisualShaderNodeScalarSwitch` inherits `VisualShaderNodeSwitch` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_visualshadernodescalarswitch.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nVisualShaderNodeScalarSwitch inherits methods from:\n - [VisualShaderNodeSwitch](struct.VisualShaderNodeSwitch.html)\n - [VisualShaderNode](struct.VisualShaderNode.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct VisualShaderNodeScalarSwitch { this : RawObject < Self > , } impl VisualShaderNodeScalarSwitch { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = VisualShaderNodeScalarSwitchMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } } impl gdnative_core :: private :: godot_object :: Sealed for VisualShaderNodeScalarSwitch { } unsafe impl GodotObject for VisualShaderNodeScalarSwitch { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "VisualShaderNodeScalarSwitch" } } impl std :: ops :: Deref for VisualShaderNodeScalarSwitch { type Target = crate :: generated :: visual_shader_node_switch :: VisualShaderNodeSwitch ; # [inline] fn deref (& self) -> & crate :: generated :: visual_shader_node_switch :: VisualShaderNodeSwitch { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for VisualShaderNodeScalarSwitch { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: visual_shader_node_switch :: VisualShaderNodeSwitch { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: visual_shader_node_switch :: VisualShaderNodeSwitch > for VisualShaderNodeScalarSwitch { } unsafe impl SubClass < crate :: generated :: visual_shader_node :: VisualShaderNode > for VisualShaderNodeScalarSwitch { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for VisualShaderNodeScalarSwitch { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for VisualShaderNodeScalarSwitch { } unsafe impl SubClass < crate :: generated :: object :: Object > for VisualShaderNodeScalarSwitch { } impl Instanciable for VisualShaderNodeScalarSwitch { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { VisualShaderNodeScalarSwitch :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct VisualShaderNodeScalarSwitchMethodTable { pub class_constructor : sys :: godot_class_constructor , } impl VisualShaderNodeScalarSwitchMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : VisualShaderNodeScalarSwitchMethodTable = VisualShaderNodeScalarSwitchMethodTable { class_constructor : None , } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { VisualShaderNodeScalarSwitchMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "VisualShaderNodeScalarSwitch\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:442:4604 [INFO] [stdout] | [INFO] [stdout] 442 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 442 | # [doc = "`core class ConcavePolygonShape2D` inherits `Shape2D` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_concavepolygonshape2d.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nConcavePolygonShape2D inherits methods from:\n - [Shape2D](struct.Shape2D.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct ConcavePolygonShape2D { this : RawObject < Self > , } impl ConcavePolygonShape2D { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = ConcavePolygonShape2DMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "The array of points that make up the [ConcavePolygonShape2D]'s line segments."] # [doc = ""] # [inline] pub fn segments (& self) -> Vector2Array { unsafe { let method_bind : * mut sys :: godot_method_bind = ConcavePolygonShape2DMethodTable :: get (get_api ()) . get_segments ; let ret = crate :: icalls :: icallptr_vec2arr (method_bind , self . this . sys () . as_ptr ()) ; Vector2Array :: from_sys (ret) } } # [doc = "The array of points that make up the [ConcavePolygonShape2D]'s line segments."] # [doc = ""] # [inline] pub fn set_segments (& self , segments : Vector2Array) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ConcavePolygonShape2DMethodTable :: get (get_api ()) . set_segments ; let ret = crate :: icalls :: icallptr_void_vec2arr (method_bind , self . this . sys () . as_ptr () , segments) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for ConcavePolygonShape2D { } unsafe impl GodotObject for ConcavePolygonShape2D { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "ConcavePolygonShape2D" } } impl std :: ops :: Deref for ConcavePolygonShape2D { type Target = crate :: generated :: shape_2d :: Shape2D ; # [inline] fn deref (& self) -> & crate :: generated :: shape_2d :: Shape2D { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for ConcavePolygonShape2D { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: shape_2d :: Shape2D { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: shape_2d :: Shape2D > for ConcavePolygonShape2D { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for ConcavePolygonShape2D { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for ConcavePolygonShape2D { } unsafe impl SubClass < crate :: generated :: object :: Object > for ConcavePolygonShape2D { } impl Instanciable for ConcavePolygonShape2D { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { ConcavePolygonShape2D :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct ConcavePolygonShape2DMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_segments : * mut sys :: godot_method_bind , pub set_segments : * mut sys :: godot_method_bind } impl ConcavePolygonShape2DMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : ConcavePolygonShape2DMethodTable = ConcavePolygonShape2DMethodTable { class_constructor : None , get_segments : 0 as * mut sys :: godot_method_bind , set_segments : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { ConcavePolygonShape2DMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "ConcavePolygonShape2D\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_segments = (gd_api . godot_method_bind_get_method) (class_name , "get_segments\0" . as_ptr () as * const c_char) ; table . set_segments = (gd_api . godot_method_bind_get_method) (class_name , "set_segments\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:448:4298 [INFO] [stdout] | [INFO] [stdout] 448 | ...thodTable { class_constructor : None , } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 448 | # [doc = "`core class ARVRCamera` inherits `Camera` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_arvrcamera.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`ARVRCamera` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nARVRCamera inherits methods from:\n - [Camera](struct.Camera.html)\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct ARVRCamera { this : RawObject < Self > , } impl ARVRCamera { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = ARVRCameraMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } } impl gdnative_core :: private :: godot_object :: Sealed for ARVRCamera { } unsafe impl GodotObject for ARVRCamera { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "ARVRCamera" } } impl QueueFree for ARVRCamera { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for ARVRCamera { type Target = crate :: generated :: camera :: Camera ; # [inline] fn deref (& self) -> & crate :: generated :: camera :: Camera { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for ARVRCamera { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: camera :: Camera { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: camera :: Camera > for ARVRCamera { } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for ARVRCamera { } unsafe impl SubClass < crate :: generated :: node :: Node > for ARVRCamera { } unsafe impl SubClass < crate :: generated :: object :: Object > for ARVRCamera { } impl Instanciable for ARVRCamera { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { ARVRCamera :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct ARVRCameraMethodTable { pub class_constructor : sys :: godot_class_constructor , } impl ARVRCameraMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : ARVRCameraMethodTable = ARVRCameraMethodTable { class_constructor : None , } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { ARVRCameraMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "ARVRCamera\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:454:42840 [INFO] [stdout] | [INFO] [stdout] 454 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 454 | # [doc = "`core class TileMap` inherits `Node2D` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_tilemap.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`TileMap` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nTileMap inherits methods from:\n - [Node2D](struct.Node2D.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct TileMap { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct HalfOffset (pub i64) ; impl HalfOffset { pub const X : HalfOffset = HalfOffset (0i64) ; pub const Y : HalfOffset = HalfOffset (1i64) ; pub const DISABLED : HalfOffset = HalfOffset (2i64) ; pub const NEGATIVE_X : HalfOffset = HalfOffset (3i64) ; pub const NEGATIVE_Y : HalfOffset = HalfOffset (4i64) ; } impl From < i64 > for HalfOffset { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < HalfOffset > for i64 { # [inline] fn from (v : HalfOffset) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct Mode (pub i64) ; impl Mode { pub const SQUARE : Mode = Mode (0i64) ; pub const ISOMETRIC : Mode = Mode (1i64) ; pub const CUSTOM : Mode = Mode (2i64) ; } impl From < i64 > for Mode { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < Mode > for i64 { # [inline] fn from (v : Mode) -> Self { v . 0 } } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct TileOrigin (pub i64) ; impl TileOrigin { pub const TOP_LEFT : TileOrigin = TileOrigin (0i64) ; pub const CENTER : TileOrigin = TileOrigin (1i64) ; pub const BOTTOM_LEFT : TileOrigin = TileOrigin (2i64) ; } impl From < i64 > for TileOrigin { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < TileOrigin > for i64 { # [inline] fn from (v : TileOrigin) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl TileMap { pub const HALF_OFFSET_DISABLED : i64 = 2i64 ; pub const HALF_OFFSET_NEGATIVE_X : i64 = 3i64 ; pub const HALF_OFFSET_NEGATIVE_Y : i64 = 4i64 ; pub const HALF_OFFSET_X : i64 = 0i64 ; pub const HALF_OFFSET_Y : i64 = 1i64 ; pub const INVALID_CELL : i64 = - 1i64 ; pub const MODE_CUSTOM : i64 = 2i64 ; pub const MODE_ISOMETRIC : i64 = 1i64 ; pub const MODE_SQUARE : i64 = 0i64 ; pub const TILE_ORIGIN_BOTTOM_LEFT : i64 = 2i64 ; pub const TILE_ORIGIN_CENTER : i64 = 1i64 ; pub const TILE_ORIGIN_TOP_LEFT : i64 = 0i64 ; } impl TileMap { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = TileMapMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Clears all cells."] # [doc = ""] # [inline] pub fn clear (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . clear ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Clears cells that do not exist in the tileset."] # [doc = ""] # [inline] pub fn fix_invalid_tiles (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . fix_invalid_tiles ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Returns the tile index of the given cell. If no tile exists in the cell, returns [constant INVALID_CELL]."] # [doc = ""] # [inline] pub fn get_cell (& self , x : i64 , y : i64) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_cell ; let ret = crate :: icalls :: icallptr_i64_i64_i64 (method_bind , self . this . sys () . as_ptr () , x , y) ; ret as _ } } # [doc = "Returns the coordinate (subtile column and row) of the autotile variation in the tileset. Returns a zero vector if the cell doesn't have autotiling."] # [doc = ""] # [inline] pub fn get_cell_autotile_coord (& self , x : i64 , y : i64) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_cell_autotile_coord ; let ret = crate :: icalls :: icallptr_vec2_i64_i64 (method_bind , self . this . sys () . as_ptr () , x , y) ; mem :: transmute (ret) } } # [doc = "The TileMap's cell size."] # [doc = ""] # [inline] pub fn cell_size (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_cell_size ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Returns the tile index of the cell given by a Vector2. If no tile exists in the cell, returns [constant INVALID_CELL]."] # [doc = ""] # [inline] pub fn get_cellv (& self , position : Vector2) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_cellv ; let ret = crate :: icalls :: icallptr_i64_vec2 (method_bind , self . this . sys () . as_ptr () , position) ; ret as _ } } # [doc = "If `true`, the cell's UVs will be clipped."] # [doc = ""] # [inline] pub fn clip_uv (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_clip_uv ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Bounce value for static body collisions (see `collision_use_kinematic`)."] # [doc = ""] # [inline] pub fn collision_bounce (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_collision_bounce ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Friction value for static body collisions (see `collision_use_kinematic`)."] # [doc = ""] # [inline] pub fn collision_friction (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_collision_friction ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The collision layer(s) for all colliders in the TileMap. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information."] # [doc = ""] # [inline] pub fn collision_layer (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_collision_layer ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the given collision layer bit is set."] # [doc = ""] # [inline] pub fn get_collision_layer_bit (& self , bit : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_collision_layer_bit ; let ret = crate :: icalls :: icallptr_bool_i64 (method_bind , self . this . sys () . as_ptr () , bit) ; ret as _ } } # [doc = "The collision mask(s) for all colliders in the TileMap. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information."] # [doc = ""] # [inline] pub fn collision_mask (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_collision_mask ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if the given collision mask bit is set."] # [doc = ""] # [inline] pub fn get_collision_mask_bit (& self , bit : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_collision_mask_bit ; let ret = crate :: icalls :: icallptr_bool_i64 (method_bind , self . this . sys () . as_ptr () , bit) ; ret as _ } } # [doc = "If `true`, TileMap collisions will be handled as a kinematic body. If `false`, collisions will be handled as static body."] # [doc = ""] # [inline] pub fn collision_use_kinematic (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_collision_use_kinematic ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, this tilemap's collision shape will be added to the collision shape of the parent. The parent has to be a [CollisionObject2D]."] # [doc = ""] # [inline] pub fn collision_use_parent (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_collision_use_parent ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The custom [Transform2D] to be applied to the TileMap's cells."] # [doc = ""] # [inline] pub fn custom_transform (& self) -> Transform2D { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_custom_transform ; let ret = crate :: icalls :: icallptr_trans2D (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Amount to offset alternating tiles. See [enum HalfOffset] for possible values."] # [doc = ""] # [inline] pub fn half_offset (& self) -> crate :: generated :: tile_map :: HalfOffset { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_half_offset ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: tile_map :: HalfOffset (ret) } } # [doc = "The TileMap orientation mode. See [enum Mode] for possible values."] # [doc = ""] # [inline] pub fn mode (& self) -> crate :: generated :: tile_map :: Mode { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_mode ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: tile_map :: Mode (ret) } } # [doc = "The light mask assigned to all light occluders in the TileMap. The TileSet's light occluders will cast shadows only from Light2D(s) that have the same light mask(s)."] # [doc = ""] # [inline] pub fn occluder_light_mask (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_occluder_light_mask ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The TileMap's quadrant size. Optimizes drawing by batching, using chunks of this size."] # [doc = ""] # [inline] pub fn quadrant_size (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_quadrant_size ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Position for tile origin. See [enum TileOrigin] for possible values."] # [doc = ""] # [inline] pub fn tile_origin (& self) -> crate :: generated :: tile_map :: TileOrigin { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_tile_origin ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: tile_map :: TileOrigin (ret) } } # [doc = "The assigned [TileSet]."] # [doc = ""] # [inline] pub fn tileset (& self) -> Option < Ref < crate :: generated :: tile_set :: TileSet , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_tileset ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: tile_set :: TileSet , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns a [Vector2] array with the positions of all cells containing a tile from the tileset (i.e. a tile index different from `-1`)."] # [doc = ""] # [inline] pub fn get_used_cells (& self) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_used_cells ; let ret = crate :: icalls :: icallvar_ (method_bind , self . this . sys () . as_ptr ()) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = "Returns an array of all cells with the given tile index specified in `id`."] # [doc = ""] # [inline] pub fn get_used_cells_by_id (& self , id : i64) -> VariantArray { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_used_cells_by_id ; let ret = crate :: icalls :: icallvar__i64 (method_bind , self . this . sys () . as_ptr () , id) ; < VariantArray > :: from_variant (& ret) . expect ("Unexpected variant type") } } # [doc = "Returns a rectangle enclosing the used (non-empty) tiles of the map."] # [doc = ""] # [inline] pub fn get_used_rect (& self) -> Rect2 { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . get_used_rect ; let ret = crate :: icalls :: icallptr_rect2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Returns `true` if the given cell is transposed, i.e. the X and Y axes are swapped."] # [doc = ""] # [inline] pub fn is_cell_transposed (& self , x : i64 , y : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . is_cell_transposed ; let ret = crate :: icalls :: icallptr_bool_i64_i64 (method_bind , self . this . sys () . as_ptr () , x , y) ; ret as _ } } # [doc = "Returns `true` if the given cell is flipped in the X axis."] # [doc = ""] # [inline] pub fn is_cell_x_flipped (& self , x : i64 , y : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . is_cell_x_flipped ; let ret = crate :: icalls :: icallptr_bool_i64_i64 (method_bind , self . this . sys () . as_ptr () , x , y) ; ret as _ } } # [doc = "Returns `true` if the given cell is flipped in the Y axis."] # [doc = ""] # [inline] pub fn is_cell_y_flipped (& self , x : i64 , y : i64) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . is_cell_y_flipped ; let ret = crate :: icalls :: icallptr_bool_i64_i64 (method_bind , self . this . sys () . as_ptr () , x , y) ; ret as _ } } # [doc = "If `true`, the textures will be centered in the middle of each tile. This is useful for certain isometric or top-down modes when textures are made larger or smaller than the tiles (e.g. to avoid flickering on tile edges). The offset is still applied, but from the center of the tile. If used, [member compatibility_mode] is ignored.\nIf `false`, the texture position start in the top-left corner unless [member compatibility_mode] is enabled."] # [doc = ""] # [inline] pub fn is_centered_textures_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . is_centered_textures_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, the compatibility with the tilemaps made in Godot 3.1 or earlier is maintained (textures move when the tile origin changes and rotate if the texture size is not homogeneous). This mode presents problems when doing `flip_h`, `flip_v` and `transpose` tile operations on non-homogeneous isometric tiles (e.g. 2:1), in which the texture could not coincide with the collision, thus it is not recommended for isometric or non-square tiles.\nIf `false`, the textures do not move when doing `flip_h`, `flip_v` operations if no offset is used, nor when changing the tile origin.\nThe compatibility mode doesn't work with the [member centered_textures] option, because displacing textures with the [member cell_tile_origin] option or in irregular tiles is not relevant when centering those textures."] # [doc = ""] # [inline] pub fn is_compatibility_mode_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . is_compatibility_mode_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn is_show_collision_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . is_show_collision_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, the TileMap's children will be drawn in order of their Y coordinate."] # [doc = ""] # [inline] pub fn is_y_sort_mode_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . is_y_sort_mode_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns the global position corresponding to the given tilemap (grid-based) coordinates.\nOptionally, the tilemap's half offset can be ignored.\n# Default Arguments\n* `ignore_half_ofs` - `false`"] # [doc = ""] # [inline] pub fn map_to_world (& self , map_position : Vector2 , ignore_half_ofs : bool) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . map_to_world ; let ret = crate :: icalls :: icallptr_vec2_vec2_bool (method_bind , self . this . sys () . as_ptr () , map_position , ignore_half_ofs) ; mem :: transmute (ret) } } # [doc = "_Sample code is GDScript unless otherwise noted._\n\nSets the tile index for the cell given by a Vector2.\nAn index of `-1` clears the cell.\nOptionally, the tile can also be flipped, transposed, or given autotile coordinates. The autotile coordinate refers to the column and row of the subtile.\n**Note:** Data such as navigation polygons and collision shapes are not immediately updated for performance reasons.\nIf you need these to be immediately updated, you can call [method update_dirty_quadrants].\nOverriding this method also overrides it internally, allowing custom logic to be implemented when tiles are placed/removed:\n```gdscript\nfunc set_cell(x, y, tile, flip_x=false, flip_y=false, transpose=false, autotile_coord=Vector2())\n # Write your custom logic here.\n # To call the default method:\n .set_cell(x, y, tile, flip_x, flip_y, transpose, autotile_coord)\n```\n# Default Arguments\n* `flip_x` - `false`\n* `flip_y` - `false`\n* `transpose` - `false`\n* `autotile_coord` - `Vector2( 0, 0 )`"] # [doc = ""] # [inline] pub fn set_cell (& self , x : i64 , y : i64 , tile : i64 , flip_x : bool , flip_y : bool , transpose : bool , autotile_coord : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_cell ; let ret = crate :: icalls :: icallptr_void_i64_i64_i64_bool_bool_bool_vec2 (method_bind , self . this . sys () . as_ptr () , x , y , tile , flip_x , flip_y , transpose , autotile_coord) ; } } # [doc = "The TileMap's cell size."] # [doc = ""] # [inline] pub fn set_cell_size (& self , size : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_cell_size ; let ret = crate :: icalls :: icallptr_void_vec2 (method_bind , self . this . sys () . as_ptr () , size) ; } } # [doc = "Sets the tile index for the given cell.\nAn index of `-1` clears the cell.\nOptionally, the tile can also be flipped or transposed.\n**Note:** Data such as navigation polygons and collision shapes are not immediately updated for performance reasons.\nIf you need these to be immediately updated, you can call [method update_dirty_quadrants].\n# Default Arguments\n* `flip_x` - `false`\n* `flip_y` - `false`\n* `transpose` - `false`"] # [doc = ""] # [inline] pub fn set_cellv (& self , position : Vector2 , tile : i64 , flip_x : bool , flip_y : bool , transpose : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_cellv ; let ret = crate :: icalls :: icallptr_void_vec2_i64_bool_bool_bool (method_bind , self . this . sys () . as_ptr () , position , tile , flip_x , flip_y , transpose) ; } } # [doc = "If `true`, the textures will be centered in the middle of each tile. This is useful for certain isometric or top-down modes when textures are made larger or smaller than the tiles (e.g. to avoid flickering on tile edges). The offset is still applied, but from the center of the tile. If used, [member compatibility_mode] is ignored.\nIf `false`, the texture position start in the top-left corner unless [member compatibility_mode] is enabled."] # [doc = ""] # [inline] pub fn set_centered_textures (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_centered_textures ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "If `true`, the cell's UVs will be clipped."] # [doc = ""] # [inline] pub fn set_clip_uv (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_clip_uv ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "Bounce value for static body collisions (see `collision_use_kinematic`)."] # [doc = ""] # [inline] pub fn set_collision_bounce (& self , value : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_collision_bounce ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , value) ; } } # [doc = "Friction value for static body collisions (see `collision_use_kinematic`)."] # [doc = ""] # [inline] pub fn set_collision_friction (& self , value : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_collision_friction ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , value) ; } } # [doc = "The collision layer(s) for all colliders in the TileMap. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information."] # [doc = ""] # [inline] pub fn set_collision_layer (& self , layer : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_collision_layer ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , layer) ; } } # [doc = "Sets the given collision layer bit."] # [doc = ""] # [inline] pub fn set_collision_layer_bit (& self , bit : i64 , value : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_collision_layer_bit ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , bit , value) ; } } # [doc = "The collision mask(s) for all colliders in the TileMap. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information."] # [doc = ""] # [inline] pub fn set_collision_mask (& self , mask : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_collision_mask ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , mask) ; } } # [doc = "Sets the given collision mask bit."] # [doc = ""] # [inline] pub fn set_collision_mask_bit (& self , bit : i64 , value : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_collision_mask_bit ; let ret = crate :: icalls :: icallptr_void_i64_bool (method_bind , self . this . sys () . as_ptr () , bit , value) ; } } # [doc = "If `true`, TileMap collisions will be handled as a kinematic body. If `false`, collisions will be handled as static body."] # [doc = ""] # [inline] pub fn set_collision_use_kinematic (& self , use_kinematic : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_collision_use_kinematic ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , use_kinematic) ; } } # [doc = "If `true`, this tilemap's collision shape will be added to the collision shape of the parent. The parent has to be a [CollisionObject2D]."] # [doc = ""] # [inline] pub fn set_collision_use_parent (& self , use_parent : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_collision_use_parent ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , use_parent) ; } } # [doc = "If `true`, the compatibility with the tilemaps made in Godot 3.1 or earlier is maintained (textures move when the tile origin changes and rotate if the texture size is not homogeneous). This mode presents problems when doing `flip_h`, `flip_v` and `transpose` tile operations on non-homogeneous isometric tiles (e.g. 2:1), in which the texture could not coincide with the collision, thus it is not recommended for isometric or non-square tiles.\nIf `false`, the textures do not move when doing `flip_h`, `flip_v` operations if no offset is used, nor when changing the tile origin.\nThe compatibility mode doesn't work with the [member centered_textures] option, because displacing textures with the [member cell_tile_origin] option or in irregular tiles is not relevant when centering those textures."] # [doc = ""] # [inline] pub fn set_compatibility_mode (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_compatibility_mode ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "The custom [Transform2D] to be applied to the TileMap's cells."] # [doc = ""] # [inline] pub fn set_custom_transform (& self , custom_transform : Transform2D) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_custom_transform ; let ret = crate :: icalls :: icallptr_void_trans2D (method_bind , self . this . sys () . as_ptr () , custom_transform) ; } } # [doc = "Amount to offset alternating tiles. See [enum HalfOffset] for possible values."] # [doc = ""] # [inline] pub fn set_half_offset (& self , half_offset : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_half_offset ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , half_offset) ; } } # [doc = "The TileMap orientation mode. See [enum Mode] for possible values."] # [doc = ""] # [inline] pub fn set_mode (& self , mode : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_mode ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , mode) ; } } # [doc = "The light mask assigned to all light occluders in the TileMap. The TileSet's light occluders will cast shadows only from Light2D(s) that have the same light mask(s)."] # [doc = ""] # [inline] pub fn set_occluder_light_mask (& self , mask : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_occluder_light_mask ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , mask) ; } } # [doc = "The TileMap's quadrant size. Optimizes drawing by batching, using chunks of this size."] # [doc = ""] # [inline] pub fn set_quadrant_size (& self , size : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_quadrant_size ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , size) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_show_collision (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_show_collision ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "Position for tile origin. See [enum TileOrigin] for possible values."] # [doc = ""] # [inline] pub fn set_tile_origin (& self , origin : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_tile_origin ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , origin) ; } } # [doc = "The assigned [TileSet]."] # [doc = ""] # [inline] pub fn set_tileset (& self , tileset : impl AsArg < crate :: generated :: tile_set :: TileSet >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_tileset ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , tileset . as_arg_ptr ()) ; } } # [doc = "If `true`, the TileMap's children will be drawn in order of their Y coordinate."] # [doc = ""] # [inline] pub fn set_y_sort_mode (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . set_y_sort_mode ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "Applies autotiling rules to the cell (and its adjacent cells) referenced by its grid-based X and Y coordinates."] # [doc = ""] # [inline] pub fn update_bitmask_area (& self , position : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . update_bitmask_area ; let ret = crate :: icalls :: icallptr_void_vec2 (method_bind , self . this . sys () . as_ptr () , position) ; } } # [doc = "Applies autotiling rules to the cells in the given region (specified by grid-based X and Y coordinates).\nCalling with invalid (or missing) parameters applies autotiling rules for the entire tilemap.\n# Default Arguments\n* `start` - `Vector2( 0, 0 )`\n* `end` - `Vector2( 0, 0 )`"] # [doc = ""] # [inline] pub fn update_bitmask_region (& self , start : Vector2 , end : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . update_bitmask_region ; let ret = crate :: icalls :: icallptr_void_vec2_vec2 (method_bind , self . this . sys () . as_ptr () , start , end) ; } } # [doc = "Updates the tile map's quadrants, allowing things such as navigation and collision shapes to be immediately used if modified."] # [doc = ""] # [inline] pub fn update_dirty_quadrants (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . update_dirty_quadrants ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Returns the tilemap (grid-based) coordinates corresponding to the given local position."] # [doc = ""] # [inline] pub fn world_to_map (& self , world_position : Vector2) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = TileMapMethodTable :: get (get_api ()) . world_to_map ; let ret = crate :: icalls :: icallptr_vec2_vec2 (method_bind , self . this . sys () . as_ptr () , world_position) ; mem :: transmute (ret) } } } impl gdnative_core :: private :: godot_object :: Sealed for TileMap { } unsafe impl GodotObject for TileMap { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "TileMap" } } impl QueueFree for TileMap { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for TileMap { type Target = crate :: generated :: node_2d :: Node2D ; # [inline] fn deref (& self) -> & crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for TileMap { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: node_2d :: Node2D > for TileMap { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for TileMap { } unsafe impl SubClass < crate :: generated :: node :: Node > for TileMap { } unsafe impl SubClass < crate :: generated :: object :: Object > for TileMap { } impl Instanciable for TileMap { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { TileMap :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct TileMapMethodTable { pub class_constructor : sys :: godot_class_constructor , pub clear : * mut sys :: godot_method_bind , pub fix_invalid_tiles : * mut sys :: godot_method_bind , pub get_cell : * mut sys :: godot_method_bind , pub get_cell_autotile_coord : * mut sys :: godot_method_bind , pub get_cell_size : * mut sys :: godot_method_bind , pub get_cellv : * mut sys :: godot_method_bind , pub get_clip_uv : * mut sys :: godot_method_bind , pub get_collision_bounce : * mut sys :: godot_method_bind , pub get_collision_friction : * mut sys :: godot_method_bind , pub get_collision_layer : * mut sys :: godot_method_bind , pub get_collision_layer_bit : * mut sys :: godot_method_bind , pub get_collision_mask : * mut sys :: godot_method_bind , pub get_collision_mask_bit : * mut sys :: godot_method_bind , pub get_collision_use_kinematic : * mut sys :: godot_method_bind , pub get_collision_use_parent : * mut sys :: godot_method_bind , pub get_custom_transform : * mut sys :: godot_method_bind , pub get_half_offset : * mut sys :: godot_method_bind , pub get_mode : * mut sys :: godot_method_bind , pub get_occluder_light_mask : * mut sys :: godot_method_bind , pub get_quadrant_size : * mut sys :: godot_method_bind , pub get_tile_origin : * mut sys :: godot_method_bind , pub get_tileset : * mut sys :: godot_method_bind , pub get_used_cells : * mut sys :: godot_method_bind , pub get_used_cells_by_id : * mut sys :: godot_method_bind , pub get_used_rect : * mut sys :: godot_method_bind , pub is_cell_transposed : * mut sys :: godot_method_bind , pub is_cell_x_flipped : * mut sys :: godot_method_bind , pub is_cell_y_flipped : * mut sys :: godot_method_bind , pub is_centered_textures_enabled : * mut sys :: godot_method_bind , pub is_compatibility_mode_enabled : * mut sys :: godot_method_bind , pub is_show_collision_enabled : * mut sys :: godot_method_bind , pub is_y_sort_mode_enabled : * mut sys :: godot_method_bind , pub map_to_world : * mut sys :: godot_method_bind , pub set_cell : * mut sys :: godot_method_bind , pub set_cell_size : * mut sys :: godot_method_bind , pub set_cellv : * mut sys :: godot_method_bind , pub set_centered_textures : * mut sys :: godot_method_bind , pub set_clip_uv : * mut sys :: godot_method_bind , pub set_collision_bounce : * mut sys :: godot_method_bind , pub set_collision_friction : * mut sys :: godot_method_bind , pub set_collision_layer : * mut sys :: godot_method_bind , pub set_collision_layer_bit : * mut sys :: godot_method_bind , pub set_collision_mask : * mut sys :: godot_method_bind , pub set_collision_mask_bit : * mut sys :: godot_method_bind , pub set_collision_use_kinematic : * mut sys :: godot_method_bind , pub set_collision_use_parent : * mut sys :: godot_method_bind , pub set_compatibility_mode : * mut sys :: godot_method_bind , pub set_custom_transform : * mut sys :: godot_method_bind , pub set_half_offset : * mut sys :: godot_method_bind , pub set_mode : * mut sys :: godot_method_bind , pub set_occluder_light_mask : * mut sys :: godot_method_bind , pub set_quadrant_size : * mut sys :: godot_method_bind , pub set_show_collision : * mut sys :: godot_method_bind , pub set_tile_origin : * mut sys :: godot_method_bind , pub set_tileset : * mut sys :: godot_method_bind , pub set_y_sort_mode : * mut sys :: godot_method_bind , pub update_bitmask_area : * mut sys :: godot_method_bind , pub update_bitmask_region : * mut sys :: godot_method_bind , pub update_dirty_quadrants : * mut sys :: godot_method_bind , pub world_to_map : * mut sys :: godot_method_bind } impl TileMapMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : TileMapMethodTable = TileMapMethodTable { class_constructor : None , clear : 0 as * mut sys :: godot_method_bind , fix_invalid_tiles : 0 as * mut sys :: godot_method_bind , get_cell : 0 as * mut sys :: godot_method_bind , get_cell_autotile_coord : 0 as * mut sys :: godot_method_bind , get_cell_size : 0 as * mut sys :: godot_method_bind , get_cellv : 0 as * mut sys :: godot_method_bind , get_clip_uv : 0 as * mut sys :: godot_method_bind , get_collision_bounce : 0 as * mut sys :: godot_method_bind , get_collision_friction : 0 as * mut sys :: godot_method_bind , get_collision_layer : 0 as * mut sys :: godot_method_bind , get_collision_layer_bit : 0 as * mut sys :: godot_method_bind , get_collision_mask : 0 as * mut sys :: godot_method_bind , get_collision_mask_bit : 0 as * mut sys :: godot_method_bind , get_collision_use_kinematic : 0 as * mut sys :: godot_method_bind , get_collision_use_parent : 0 as * mut sys :: godot_method_bind , get_custom_transform : 0 as * mut sys :: godot_method_bind , get_half_offset : 0 as * mut sys :: godot_method_bind , get_mode : 0 as * mut sys :: godot_method_bind , get_occluder_light_mask : 0 as * mut sys :: godot_method_bind , get_quadrant_size : 0 as * mut sys :: godot_method_bind , get_tile_origin : 0 as * mut sys :: godot_method_bind , get_tileset : 0 as * mut sys :: godot_method_bind , get_used_cells : 0 as * mut sys :: godot_method_bind , get_used_cells_by_id : 0 as * mut sys :: godot_method_bind , get_used_rect : 0 as * mut sys :: godot_method_bind , is_cell_transposed : 0 as * mut sys :: godot_method_bind , is_cell_x_flipped : 0 as * mut sys :: godot_method_bind , is_cell_y_flipped : 0 as * mut sys :: godot_method_bind , is_centered_textures_enabled : 0 as * mut sys :: godot_method_bind , is_compatibility_mode_enabled : 0 as * mut sys :: godot_method_bind , is_show_collision_enabled : 0 as * mut sys :: godot_method_bind , is_y_sort_mode_enabled : 0 as * mut sys :: godot_method_bind , map_to_world : 0 as * mut sys :: godot_method_bind , set_cell : 0 as * mut sys :: godot_method_bind , set_cell_size : 0 as * mut sys :: godot_method_bind , set_cellv : 0 as * mut sys :: godot_method_bind , set_centered_textures : 0 as * mut sys :: godot_method_bind , set_clip_uv : 0 as * mut sys :: godot_method_bind , set_collision_bounce : 0 as * mut sys :: godot_method_bind , set_collision_friction : 0 as * mut sys :: godot_method_bind , set_collision_layer : 0 as * mut sys :: godot_method_bind , set_collision_layer_bit : 0 as * mut sys :: godot_method_bind , set_collision_mask : 0 as * mut sys :: godot_method_bind , set_collision_mask_bit : 0 as * mut sys :: godot_method_bind , set_collision_use_kinematic : 0 as * mut sys :: godot_method_bind , set_collision_use_parent : 0 as * mut sys :: godot_method_bind , set_compatibility_mode : 0 as * mut sys :: godot_method_bind , set_custom_transform : 0 as * mut sys :: godot_method_bind , set_half_offset : 0 as * mut sys :: godot_method_bind , set_mode : 0 as * mut sys :: godot_method_bind , set_occluder_light_mask : 0 as * mut sys :: godot_method_bind , set_quadrant_size : 0 as * mut sys :: godot_method_bind , set_show_collision : 0 as * mut sys :: godot_method_bind , set_tile_origin : 0 as * mut sys :: godot_method_bind , set_tileset : 0 as * mut sys :: godot_method_bind , set_y_sort_mode : 0 as * mut sys :: godot_method_bind , update_bitmask_area : 0 as * mut sys :: godot_method_bind , update_bitmask_region : 0 as * mut sys :: godot_method_bind , update_dirty_quadrants : 0 as * mut sys :: godot_method_bind , world_to_map : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { TileMapMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "TileMap\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . clear = (gd_api . godot_method_bind_get_method) (class_name , "clear\0" . as_ptr () as * const c_char) ; table . fix_invalid_tiles = (gd_api . godot_method_bind_get_method) (class_name , "fix_invalid_tiles\0" . as_ptr () as * const c_char) ; table . get_cell = (gd_api . godot_method_bind_get_method) (class_name , "get_cell\0" . as_ptr () as * const c_char) ; table . get_cell_autotile_coord = (gd_api . godot_method_bind_get_method) (class_name , "get_cell_autotile_coord\0" . as_ptr () as * const c_char) ; table . get_cell_size = (gd_api . godot_method_bind_get_method) (class_name , "get_cell_size\0" . as_ptr () as * const c_char) ; table . get_cellv = (gd_api . godot_method_bind_get_method) (class_name , "get_cellv\0" . as_ptr () as * const c_char) ; table . get_clip_uv = (gd_api . godot_method_bind_get_method) (class_name , "get_clip_uv\0" . as_ptr () as * const c_char) ; table . get_collision_bounce = (gd_api . godot_method_bind_get_method) (class_name , "get_collision_bounce\0" . as_ptr () as * const c_char) ; table . get_collision_friction = (gd_api . godot_method_bind_get_method) (class_name , "get_collision_friction\0" . as_ptr () as * const c_char) ; table . get_collision_layer = (gd_api . godot_method_bind_get_method) (class_name , "get_collision_layer\0" . as_ptr () as * const c_char) ; table . get_collision_layer_bit = (gd_api . godot_method_bind_get_method) (class_name , "get_collision_layer_bit\0" . as_ptr () as * const c_char) ; table . get_collision_mask = (gd_api . godot_method_bind_get_method) (class_name , "get_collision_mask\0" . as_ptr () as * const c_char) ; table . get_collision_mask_bit = (gd_api . godot_method_bind_get_method) (class_name , "get_collision_mask_bit\0" . as_ptr () as * const c_char) ; table . get_collision_use_kinematic = (gd_api . godot_method_bind_get_method) (class_name , "get_collision_use_kinematic\0" . as_ptr () as * const c_char) ; table . get_collision_use_parent = (gd_api . godot_method_bind_get_method) (class_name , "get_collision_use_parent\0" . as_ptr () as * const c_char) ; table . get_custom_transform = (gd_api . godot_method_bind_get_method) (class_name , "get_custom_transform\0" . as_ptr () as * const c_char) ; table . get_half_offset = (gd_api . godot_method_bind_get_method) (class_name , "get_half_offset\0" . as_ptr () as * const c_char) ; table . get_mode = (gd_api . godot_method_bind_get_method) (class_name , "get_mode\0" . as_ptr () as * const c_char) ; table . get_occluder_light_mask = (gd_api . godot_method_bind_get_method) (class_name , "get_occluder_light_mask\0" . as_ptr () as * const c_char) ; table . get_quadrant_size = (gd_api . godot_method_bind_get_method) (class_name , "get_quadrant_size\0" . as_ptr () as * const c_char) ; table . get_tile_origin = (gd_api . godot_method_bind_get_method) (class_name , "get_tile_origin\0" . as_ptr () as * const c_char) ; table . get_tileset = (gd_api . godot_method_bind_get_method) (class_name , "get_tileset\0" . as_ptr () as * const c_char) ; table . get_used_cells = (gd_api . godot_method_bind_get_method) (class_name , "get_used_cells\0" . as_ptr () as * const c_char) ; table . get_used_cells_by_id = (gd_api . godot_method_bind_get_method) (class_name , "get_used_cells_by_id\0" . as_ptr () as * const c_char) ; table . get_used_rect = (gd_api . godot_method_bind_get_method) (class_name , "get_used_rect\0" . as_ptr () as * const c_char) ; table . is_cell_transposed = (gd_api . godot_method_bind_get_method) (class_name , "is_cell_transposed\0" . as_ptr () as * const c_char) ; table . is_cell_x_flipped = (gd_api . godot_method_bind_get_method) (class_name , "is_cell_x_flipped\0" . as_ptr () as * const c_char) ; table . is_cell_y_flipped = (gd_api . godot_method_bind_get_method) (class_name , "is_cell_y_flipped\0" . as_ptr () as * const c_char) ; table . is_centered_textures_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_centered_textures_enabled\0" . as_ptr () as * const c_char) ; table . is_compatibility_mode_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_compatibility_mode_enabled\0" . as_ptr () as * const c_char) ; table . is_show_collision_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_show_collision_enabled\0" . as_ptr () as * const c_char) ; table . is_y_sort_mode_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_y_sort_mode_enabled\0" . as_ptr () as * const c_char) ; table . map_to_world = (gd_api . godot_method_bind_get_method) (class_name , "map_to_world\0" . as_ptr () as * const c_char) ; table . set_cell = (gd_api . godot_method_bind_get_method) (class_name , "set_cell\0" . as_ptr () as * const c_char) ; table . set_cell_size = (gd_api . godot_method_bind_get_method) (class_name , "set_cell_size\0" . as_ptr () as * const c_char) ; table . set_cellv = (gd_api . godot_method_bind_get_method) (class_name , "set_cellv\0" . as_ptr () as * const c_char) ; table . set_centered_textures = (gd_api . godot_method_bind_get_method) (class_name , "set_centered_textures\0" . as_ptr () as * const c_char) ; table . set_clip_uv = (gd_api . godot_method_bind_get_method) (class_name , "set_clip_uv\0" . as_ptr () as * const c_char) ; table . set_collision_bounce = (gd_api . godot_method_bind_get_method) (class_name , "set_collision_bounce\0" . as_ptr () as * const c_char) ; table . set_collision_friction = (gd_api . godot_method_bind_get_method) (class_name , "set_collision_friction\0" . as_ptr () as * const c_char) ; table . set_collision_layer = (gd_api . godot_method_bind_get_method) (class_name , "set_collision_layer\0" . as_ptr () as * const c_char) ; table . set_collision_layer_bit = (gd_api . godot_method_bind_get_method) (class_name , "set_collision_layer_bit\0" . as_ptr () as * const c_char) ; table . set_collision_mask = (gd_api . godot_method_bind_get_method) (class_name , "set_collision_mask\0" . as_ptr () as * const c_char) ; table . set_collision_mask_bit = (gd_api . godot_method_bind_get_method) (class_name , "set_collision_mask_bit\0" . as_ptr () as * const c_char) ; table . set_collision_use_kinematic = (gd_api . godot_method_bind_get_method) (class_name , "set_collision_use_kinematic\0" . as_ptr () as * const c_char) ; table . set_collision_use_parent = (gd_api . godot_method_bind_get_method) (class_name , "set_collision_use_parent\0" . as_ptr () as * const c_char) ; table . set_compatibility_mode = (gd_api . godot_method_bind_get_method) (class_name , "set_compatibility_mode\0" . as_ptr () as * const c_char) ; table . set_custom_transform = (gd_api . godot_method_bind_get_method) (class_name , "set_custom_transform\0" . as_ptr () as * const c_char) ; table . set_half_offset = (gd_api . godot_method_bind_get_method) (class_name , "set_half_offset\0" . as_ptr () as * const c_char) ; table . set_mode = (gd_api . godot_method_bind_get_method) (class_name , "set_mode\0" . as_ptr () as * const c_char) ; table . set_occluder_light_mask = (gd_api . godot_method_bind_get_method) (class_name , "set_occluder_light_mask\0" . as_ptr () as * const c_char) ; table . set_quadrant_size = (gd_api . godot_method_bind_get_method) (class_name , "set_quadrant_size\0" . as_ptr () as * const c_char) ; table . set_show_collision = (gd_api . godot_method_bind_get_method) (class_name , "set_show_collision\0" . as_ptr () as * const c_char) ; table . set_tile_origin = (gd_api . godot_method_bind_get_method) (class_name , "set_tile_origin\0" . as_ptr () as * const c_char) ; table . set_tileset = (gd_api . godot_method_bind_get_method) (class_name , "set_tileset\0" . as_ptr () as * const c_char) ; table . set_y_sort_mode = (gd_api . godot_method_bind_get_method) (class_name , "set_y_sort_mode\0" . as_ptr () as * const c_char) ; table . update_bitmask_area = (gd_api . godot_method_bind_get_method) (class_name , "update_bitmask_area\0" . as_ptr () as * const c_char) ; table . update_bitmask_region = (gd_api . godot_method_bind_get_method) (class_name , "update_bitmask_region\0" . as_ptr () as * const c_char) ; table . update_dirty_quadrants = (gd_api . godot_method_bind_get_method) (class_name , "update_dirty_quadrants\0" . as_ptr () as * const c_char) ; table . world_to_map = (gd_api . godot_method_bind_get_method) (class_name , "world_to_map\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:460:9557 [INFO] [stdout] | [INFO] [stdout] 460 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 460 | # [doc = "`core class PacketPeer` inherits `Reference` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_packetpeer.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nPacketPeer inherits methods from:\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct PacketPeer { this : RawObject < Self > , } impl PacketPeer { # [doc = "Returns the number of packets currently available in the ring-buffer."] # [doc = ""] # [inline] pub fn get_available_packet_count (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PacketPeerMethodTable :: get (get_api ()) . get_available_packet_count ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Maximum buffer size allowed when encoding [Variant]s. Raise this value to support heavier memory allocations.\nThe [method put_var] method allocates memory on the stack, and the buffer used will grow automatically to the closest power of two to match the size of the [Variant]. If the [Variant] is bigger than `encode_buffer_max_size`, the method will error out with [constant ERR_OUT_OF_MEMORY]."] # [doc = ""] # [inline] pub fn encode_buffer_max_size (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = PacketPeerMethodTable :: get (get_api ()) . get_encode_buffer_max_size ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Gets a raw packet."] # [doc = ""] # [inline] pub fn get_packet (& self) -> ByteArray { unsafe { let method_bind : * mut sys :: godot_method_bind = PacketPeerMethodTable :: get (get_api ()) . get_packet ; let ret = crate :: icalls :: icallptr_bytearr (method_bind , self . this . sys () . as_ptr ()) ; ByteArray :: from_sys (ret) } } # [doc = "Returns the error state of the last packet received (via [method get_packet] and [method get_var])."] # [doc = ""] # [inline] pub fn get_packet_error (& self) -> GodotResult { unsafe { let method_bind : * mut sys :: godot_method_bind = PacketPeerMethodTable :: get (get_api ()) . get_packet_error ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; GodotError :: result_from_sys (ret as _) } } # [doc = "Gets a Variant. If `allow_objects` (or [member allow_object_decoding]) is `true`, decoding objects is allowed.\n**Warning:** Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution.\n# Default Arguments\n* `allow_objects` - `false`"] # [doc = ""] # [inline] pub fn get_var (& self , allow_objects : bool) -> Variant { unsafe { let method_bind : * mut sys :: godot_method_bind = PacketPeerMethodTable :: get (get_api ()) . get_var ; let ret = crate :: icalls :: icallptr_var_bool (method_bind , self . this . sys () . as_ptr () , allow_objects) ; Variant :: from_sys (ret) } } # [doc = "[i]Deprecated.[/i] Use `get_var` and `put_var` parameters instead.\nIf `true`, the PacketPeer will allow encoding and decoding of object via [method get_var] and [method put_var].\n**Warning:** Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution."] # [doc = ""] # [inline] pub fn is_object_decoding_allowed (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = PacketPeerMethodTable :: get (get_api ()) . is_object_decoding_allowed ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Sends a raw packet."] # [doc = ""] # [inline] pub fn put_packet (& self , buffer : ByteArray) -> GodotResult { unsafe { let method_bind : * mut sys :: godot_method_bind = PacketPeerMethodTable :: get (get_api ()) . put_packet ; let ret = crate :: icalls :: icallptr_i64_bytearr (method_bind , self . this . sys () . as_ptr () , buffer) ; GodotError :: result_from_sys (ret as _) } } # [doc = "Sends a [Variant] as a packet. If `full_objects` (or [member allow_object_decoding]) is `true`, encoding objects is allowed (and can potentially include code).\n# Default Arguments\n* `full_objects` - `false`"] # [doc = ""] # [inline] pub fn put_var (& self , var : impl OwnedToVariant , full_objects : bool) -> GodotResult { unsafe { let method_bind : * mut sys :: godot_method_bind = PacketPeerMethodTable :: get (get_api ()) . put_var ; let ret = crate :: icalls :: icallptr_i64_var_bool (method_bind , self . this . sys () . as_ptr () , var . owned_to_variant () , full_objects) ; GodotError :: result_from_sys (ret as _) } } # [doc = "[i]Deprecated.[/i] Use `get_var` and `put_var` parameters instead.\nIf `true`, the PacketPeer will allow encoding and decoding of object via [method get_var] and [method put_var].\n**Warning:** Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution."] # [doc = ""] # [inline] pub fn set_allow_object_decoding (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PacketPeerMethodTable :: get (get_api ()) . set_allow_object_decoding ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "Maximum buffer size allowed when encoding [Variant]s. Raise this value to support heavier memory allocations.\nThe [method put_var] method allocates memory on the stack, and the buffer used will grow automatically to the closest power of two to match the size of the [Variant]. If the [Variant] is bigger than `encode_buffer_max_size`, the method will error out with [constant ERR_OUT_OF_MEMORY]."] # [doc = ""] # [inline] pub fn set_encode_buffer_max_size (& self , max_size : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = PacketPeerMethodTable :: get (get_api ()) . set_encode_buffer_max_size ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , max_size) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for PacketPeer { } unsafe impl GodotObject for PacketPeer { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "PacketPeer" } } impl std :: ops :: Deref for PacketPeer { type Target = crate :: generated :: reference :: Reference ; # [inline] fn deref (& self) -> & crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for PacketPeer { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: reference :: Reference > for PacketPeer { } unsafe impl SubClass < crate :: generated :: object :: Object > for PacketPeer { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct PacketPeerMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_available_packet_count : * mut sys :: godot_method_bind , pub get_encode_buffer_max_size : * mut sys :: godot_method_bind , pub get_packet : * mut sys :: godot_method_bind , pub get_packet_error : * mut sys :: godot_method_bind , pub get_var : * mut sys :: godot_method_bind , pub is_object_decoding_allowed : * mut sys :: godot_method_bind , pub put_packet : * mut sys :: godot_method_bind , pub put_var : * mut sys :: godot_method_bind , pub set_allow_object_decoding : * mut sys :: godot_method_bind , pub set_encode_buffer_max_size : * mut sys :: godot_method_bind } impl PacketPeerMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : PacketPeerMethodTable = PacketPeerMethodTable { class_constructor : None , get_available_packet_count : 0 as * mut sys :: godot_method_bind , get_encode_buffer_max_size : 0 as * mut sys :: godot_method_bind , get_packet : 0 as * mut sys :: godot_method_bind , get_packet_error : 0 as * mut sys :: godot_method_bind , get_var : 0 as * mut sys :: godot_method_bind , is_object_decoding_allowed : 0 as * mut sys :: godot_method_bind , put_packet : 0 as * mut sys :: godot_method_bind , put_var : 0 as * mut sys :: godot_method_bind , set_allow_object_decoding : 0 as * mut sys :: godot_method_bind , set_encode_buffer_max_size : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { PacketPeerMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "PacketPeer\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_available_packet_count = (gd_api . godot_method_bind_get_method) (class_name , "get_available_packet_count\0" . as_ptr () as * const c_char) ; table . get_encode_buffer_max_size = (gd_api . godot_method_bind_get_method) (class_name , "get_encode_buffer_max_size\0" . as_ptr () as * const c_char) ; table . get_packet = (gd_api . godot_method_bind_get_method) (class_name , "get_packet\0" . as_ptr () as * const c_char) ; table . get_packet_error = (gd_api . godot_method_bind_get_method) (class_name , "get_packet_error\0" . as_ptr () as * const c_char) ; table . get_var = (gd_api . godot_method_bind_get_method) (class_name , "get_var\0" . as_ptr () as * const c_char) ; table . is_object_decoding_allowed = (gd_api . godot_method_bind_get_method) (class_name , "is_object_decoding_allowed\0" . as_ptr () as * const c_char) ; table . put_packet = (gd_api . godot_method_bind_get_method) (class_name , "put_packet\0" . as_ptr () as * const c_char) ; table . put_var = (gd_api . godot_method_bind_get_method) (class_name , "put_var\0" . as_ptr () as * const c_char) ; table . set_allow_object_decoding = (gd_api . godot_method_bind_get_method) (class_name , "set_allow_object_decoding\0" . as_ptr () as * const c_char) ; table . set_encode_buffer_max_size = (gd_api . godot_method_bind_get_method) (class_name , "set_encode_buffer_max_size\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:466:7485 [INFO] [stdout] | [INFO] [stdout] 466 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 466 | # [doc = "`core class InputEventWithModifiers` inherits `InputEvent` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_inputeventwithmodifiers.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nInputEventWithModifiers inherits methods from:\n - [InputEvent](struct.InputEvent.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct InputEventWithModifiers { this : RawObject < Self > , } impl InputEventWithModifiers { # [doc = "State of the `Alt` modifier."] # [doc = ""] # [inline] pub fn alt (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventWithModifiersMethodTable :: get (get_api ()) . get_alt ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "State of the `Command` modifier."] # [doc = ""] # [inline] pub fn command (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventWithModifiersMethodTable :: get (get_api ()) . get_command ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "State of the `Ctrl` modifier."] # [doc = ""] # [inline] pub fn control (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventWithModifiersMethodTable :: get (get_api ()) . get_control ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "State of the `Meta` modifier."] # [doc = ""] # [inline] pub fn metakey (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventWithModifiersMethodTable :: get (get_api ()) . get_metakey ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "State of the `Shift` modifier."] # [doc = ""] # [inline] pub fn shift (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventWithModifiersMethodTable :: get (get_api ()) . get_shift ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "State of the `Alt` modifier."] # [doc = ""] # [inline] pub fn set_alt (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventWithModifiersMethodTable :: get (get_api ()) . set_alt ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "State of the `Command` modifier."] # [doc = ""] # [inline] pub fn set_command (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventWithModifiersMethodTable :: get (get_api ()) . set_command ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "State of the `Ctrl` modifier."] # [doc = ""] # [inline] pub fn set_control (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventWithModifiersMethodTable :: get (get_api ()) . set_control ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "State of the `Meta` modifier."] # [doc = ""] # [inline] pub fn set_metakey (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventWithModifiersMethodTable :: get (get_api ()) . set_metakey ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "State of the `Shift` modifier."] # [doc = ""] # [inline] pub fn set_shift (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = InputEventWithModifiersMethodTable :: get (get_api ()) . set_shift ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for InputEventWithModifiers { } unsafe impl GodotObject for InputEventWithModifiers { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "InputEventWithModifiers" } } impl std :: ops :: Deref for InputEventWithModifiers { type Target = crate :: generated :: input_event :: InputEvent ; # [inline] fn deref (& self) -> & crate :: generated :: input_event :: InputEvent { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for InputEventWithModifiers { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: input_event :: InputEvent { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: input_event :: InputEvent > for InputEventWithModifiers { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for InputEventWithModifiers { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for InputEventWithModifiers { } unsafe impl SubClass < crate :: generated :: object :: Object > for InputEventWithModifiers { } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct InputEventWithModifiersMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_alt : * mut sys :: godot_method_bind , pub get_command : * mut sys :: godot_method_bind , pub get_control : * mut sys :: godot_method_bind , pub get_metakey : * mut sys :: godot_method_bind , pub get_shift : * mut sys :: godot_method_bind , pub set_alt : * mut sys :: godot_method_bind , pub set_command : * mut sys :: godot_method_bind , pub set_control : * mut sys :: godot_method_bind , pub set_metakey : * mut sys :: godot_method_bind , pub set_shift : * mut sys :: godot_method_bind } impl InputEventWithModifiersMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : InputEventWithModifiersMethodTable = InputEventWithModifiersMethodTable { class_constructor : None , get_alt : 0 as * mut sys :: godot_method_bind , get_command : 0 as * mut sys :: godot_method_bind , get_control : 0 as * mut sys :: godot_method_bind , get_metakey : 0 as * mut sys :: godot_method_bind , get_shift : 0 as * mut sys :: godot_method_bind , set_alt : 0 as * mut sys :: godot_method_bind , set_command : 0 as * mut sys :: godot_method_bind , set_control : 0 as * mut sys :: godot_method_bind , set_metakey : 0 as * mut sys :: godot_method_bind , set_shift : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { InputEventWithModifiersMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "InputEventWithModifiers\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_alt = (gd_api . godot_method_bind_get_method) (class_name , "get_alt\0" . as_ptr () as * const c_char) ; table . get_command = (gd_api . godot_method_bind_get_method) (class_name , "get_command\0" . as_ptr () as * const c_char) ; table . get_control = (gd_api . godot_method_bind_get_method) (class_name , "get_control\0" . as_ptr () as * const c_char) ; table . get_metakey = (gd_api . godot_method_bind_get_method) (class_name , "get_metakey\0" . as_ptr () as * const c_char) ; table . get_shift = (gd_api . godot_method_bind_get_method) (class_name , "get_shift\0" . as_ptr () as * const c_char) ; table . set_alt = (gd_api . godot_method_bind_get_method) (class_name , "set_alt\0" . as_ptr () as * const c_char) ; table . set_command = (gd_api . godot_method_bind_get_method) (class_name , "set_command\0" . as_ptr () as * const c_char) ; table . set_control = (gd_api . godot_method_bind_get_method) (class_name , "set_control\0" . as_ptr () as * const c_char) ; table . set_metakey = (gd_api . godot_method_bind_get_method) (class_name , "set_metakey\0" . as_ptr () as * const c_char) ; table . set_shift = (gd_api . godot_method_bind_get_method) (class_name , "set_shift\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:472:3553 [INFO] [stdout] | [INFO] [stdout] 472 | ...thodTable { class_constructor : None , } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 472 | # [doc = "`core class VisualScriptSelf` inherits `VisualScriptNode` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_visualscriptself.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nVisualScriptSelf inherits methods from:\n - [VisualScriptNode](struct.VisualScriptNode.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct VisualScriptSelf { this : RawObject < Self > , } impl VisualScriptSelf { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = VisualScriptSelfMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } } impl gdnative_core :: private :: godot_object :: Sealed for VisualScriptSelf { } unsafe impl GodotObject for VisualScriptSelf { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "VisualScriptSelf" } } impl std :: ops :: Deref for VisualScriptSelf { type Target = crate :: generated :: visual_script_node :: VisualScriptNode ; # [inline] fn deref (& self) -> & crate :: generated :: visual_script_node :: VisualScriptNode { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for VisualScriptSelf { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: visual_script_node :: VisualScriptNode { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: visual_script_node :: VisualScriptNode > for VisualScriptSelf { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for VisualScriptSelf { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for VisualScriptSelf { } unsafe impl SubClass < crate :: generated :: object :: Object > for VisualScriptSelf { } impl Instanciable for VisualScriptSelf { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { VisualScriptSelf :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct VisualScriptSelfMethodTable { pub class_constructor : sys :: godot_class_constructor , } impl VisualScriptSelfMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : VisualScriptSelfMethodTable = VisualScriptSelfMethodTable { class_constructor : None , } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { VisualScriptSelfMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "VisualScriptSelf\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:478:6738 [INFO] [stdout] | [INFO] [stdout] 478 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 478 | # [doc = "`core class MeshTexture` inherits `Texture` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_meshtexture.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nMeshTexture inherits methods from:\n - [Texture](struct.Texture.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct MeshTexture { this : RawObject < Self > , } impl MeshTexture { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = MeshTextureMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Sets the base texture that the Mesh will use to draw."] # [doc = ""] # [inline] pub fn base_texture (& self) -> Option < Ref < crate :: generated :: texture :: Texture , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = MeshTextureMethodTable :: get (get_api ()) . get_base_texture ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: texture :: Texture , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Sets the size of the image, needed for reference."] # [doc = ""] # [inline] pub fn image_size (& self) -> Vector2 { unsafe { let method_bind : * mut sys :: godot_method_bind = MeshTextureMethodTable :: get (get_api ()) . get_image_size ; let ret = crate :: icalls :: icallptr_vec2 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = "Sets the mesh used to draw. It must be a mesh using 2D vertices."] # [doc = ""] # [inline] pub fn mesh (& self) -> Option < Ref < crate :: generated :: mesh :: Mesh , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = MeshTextureMethodTable :: get (get_api ()) . get_mesh ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: mesh :: Mesh , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Sets the base texture that the Mesh will use to draw."] # [doc = ""] # [inline] pub fn set_base_texture (& self , texture : impl AsArg < crate :: generated :: texture :: Texture >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MeshTextureMethodTable :: get (get_api ()) . set_base_texture ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , texture . as_arg_ptr ()) ; } } # [doc = "Sets the size of the image, needed for reference."] # [doc = ""] # [inline] pub fn set_image_size (& self , size : Vector2) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MeshTextureMethodTable :: get (get_api ()) . set_image_size ; let ret = crate :: icalls :: icallptr_void_vec2 (method_bind , self . this . sys () . as_ptr () , size) ; } } # [doc = "Sets the mesh used to draw. It must be a mesh using 2D vertices."] # [doc = ""] # [inline] pub fn set_mesh (& self , mesh : impl AsArg < crate :: generated :: mesh :: Mesh >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MeshTextureMethodTable :: get (get_api ()) . set_mesh ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , mesh . as_arg_ptr ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for MeshTexture { } unsafe impl GodotObject for MeshTexture { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "MeshTexture" } } impl std :: ops :: Deref for MeshTexture { type Target = crate :: generated :: texture :: Texture ; # [inline] fn deref (& self) -> & crate :: generated :: texture :: Texture { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for MeshTexture { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: texture :: Texture { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: texture :: Texture > for MeshTexture { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for MeshTexture { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for MeshTexture { } unsafe impl SubClass < crate :: generated :: object :: Object > for MeshTexture { } impl Instanciable for MeshTexture { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { MeshTexture :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct MeshTextureMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_base_texture : * mut sys :: godot_method_bind , pub get_image_size : * mut sys :: godot_method_bind , pub get_mesh : * mut sys :: godot_method_bind , pub set_base_texture : * mut sys :: godot_method_bind , pub set_image_size : * mut sys :: godot_method_bind , pub set_mesh : * mut sys :: godot_method_bind } impl MeshTextureMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : MeshTextureMethodTable = MeshTextureMethodTable { class_constructor : None , get_base_texture : 0 as * mut sys :: godot_method_bind , get_image_size : 0 as * mut sys :: godot_method_bind , get_mesh : 0 as * mut sys :: godot_method_bind , set_base_texture : 0 as * mut sys :: godot_method_bind , set_image_size : 0 as * mut sys :: godot_method_bind , set_mesh : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { MeshTextureMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "MeshTexture\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_base_texture = (gd_api . godot_method_bind_get_method) (class_name , "get_base_texture\0" . as_ptr () as * const c_char) ; table . get_image_size = (gd_api . godot_method_bind_get_method) (class_name , "get_image_size\0" . as_ptr () as * const c_char) ; table . get_mesh = (gd_api . godot_method_bind_get_method) (class_name , "get_mesh\0" . as_ptr () as * const c_char) ; table . set_base_texture = (gd_api . godot_method_bind_get_method) (class_name , "set_base_texture\0" . as_ptr () as * const c_char) ; table . set_image_size = (gd_api . godot_method_bind_get_method) (class_name , "set_image_size\0" . as_ptr () as * const c_char) ; table . set_mesh = (gd_api . godot_method_bind_get_method) (class_name , "set_mesh\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:484:6957 [INFO] [stdout] | [INFO] [stdout] 484 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 484 | # [doc = "`core class LightOccluder2D` inherits `Node2D` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_lightoccluder2d.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`LightOccluder2D` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nLightOccluder2D inherits methods from:\n - [Node2D](struct.Node2D.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct LightOccluder2D { this : RawObject < Self > , } impl LightOccluder2D { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = LightOccluder2DMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "The LightOccluder2D's light mask. The LightOccluder2D will cast shadows only from Light2D(s) that have the same light mask(s)."] # [doc = ""] # [inline] pub fn occluder_light_mask (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = LightOccluder2DMethodTable :: get (get_api ()) . get_occluder_light_mask ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "The [OccluderPolygon2D] used to compute the shadow."] # [doc = ""] # [inline] pub fn occluder_polygon (& self) -> Option < Ref < crate :: generated :: occluder_polygon_2d :: OccluderPolygon2D , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = LightOccluder2DMethodTable :: get (get_api ()) . get_occluder_polygon ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: occluder_polygon_2d :: OccluderPolygon2D , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "The LightOccluder2D's light mask. The LightOccluder2D will cast shadows only from Light2D(s) that have the same light mask(s)."] # [doc = ""] # [inline] pub fn set_occluder_light_mask (& self , mask : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = LightOccluder2DMethodTable :: get (get_api ()) . set_occluder_light_mask ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , mask) ; } } # [doc = "The [OccluderPolygon2D] used to compute the shadow."] # [doc = ""] # [inline] pub fn set_occluder_polygon (& self , polygon : impl AsArg < crate :: generated :: occluder_polygon_2d :: OccluderPolygon2D >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = LightOccluder2DMethodTable :: get (get_api ()) . set_occluder_polygon ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , polygon . as_arg_ptr ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for LightOccluder2D { } unsafe impl GodotObject for LightOccluder2D { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "LightOccluder2D" } } impl QueueFree for LightOccluder2D { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for LightOccluder2D { type Target = crate :: generated :: node_2d :: Node2D ; # [inline] fn deref (& self) -> & crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for LightOccluder2D { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: node_2d :: Node2D { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: node_2d :: Node2D > for LightOccluder2D { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for LightOccluder2D { } unsafe impl SubClass < crate :: generated :: node :: Node > for LightOccluder2D { } unsafe impl SubClass < crate :: generated :: object :: Object > for LightOccluder2D { } impl Instanciable for LightOccluder2D { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { LightOccluder2D :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct LightOccluder2DMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_occluder_light_mask : * mut sys :: godot_method_bind , pub get_occluder_polygon : * mut sys :: godot_method_bind , pub set_occluder_light_mask : * mut sys :: godot_method_bind , pub set_occluder_polygon : * mut sys :: godot_method_bind } impl LightOccluder2DMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : LightOccluder2DMethodTable = LightOccluder2DMethodTable { class_constructor : None , get_occluder_light_mask : 0 as * mut sys :: godot_method_bind , get_occluder_polygon : 0 as * mut sys :: godot_method_bind , set_occluder_light_mask : 0 as * mut sys :: godot_method_bind , set_occluder_polygon : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { LightOccluder2DMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "LightOccluder2D\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_occluder_light_mask = (gd_api . godot_method_bind_get_method) (class_name , "get_occluder_light_mask\0" . as_ptr () as * const c_char) ; table . get_occluder_polygon = (gd_api . godot_method_bind_get_method) (class_name , "get_occluder_polygon\0" . as_ptr () as * const c_char) ; table . set_occluder_light_mask = (gd_api . godot_method_bind_get_method) (class_name , "set_occluder_light_mask\0" . as_ptr () as * const c_char) ; table . set_occluder_polygon = (gd_api . godot_method_bind_get_method) (class_name , "set_occluder_polygon\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:490:6546 [INFO] [stdout] | [INFO] [stdout] 490 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 490 | # [doc = "`core class NavigationMeshInstance` inherits `Spatial` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_navigationmeshinstance.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`NavigationMeshInstance` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nNavigationMeshInstance inherits methods from:\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct NavigationMeshInstance { this : RawObject < Self > , } impl NavigationMeshInstance { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = NavigationMeshInstanceMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = ""] # [doc = ""] # [inline] pub fn navigation_mesh (& self) -> Option < Ref < crate :: generated :: navigation_mesh :: NavigationMesh , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = NavigationMeshInstanceMethodTable :: get (get_api ()) . get_navigation_mesh ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: navigation_mesh :: NavigationMesh , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = ""] # [doc = ""] # [inline] pub fn is_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = NavigationMeshInstanceMethodTable :: get (get_api ()) . is_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn set_enabled (& self , enabled : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NavigationMeshInstanceMethodTable :: get (get_api ()) . set_enabled ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enabled) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_navigation_mesh (& self , navmesh : impl AsArg < crate :: generated :: navigation_mesh :: NavigationMesh >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = NavigationMeshInstanceMethodTable :: get (get_api ()) . set_navigation_mesh ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , navmesh . as_arg_ptr ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for NavigationMeshInstance { } unsafe impl GodotObject for NavigationMeshInstance { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "NavigationMeshInstance" } } impl QueueFree for NavigationMeshInstance { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for NavigationMeshInstance { type Target = crate :: generated :: spatial :: Spatial ; # [inline] fn deref (& self) -> & crate :: generated :: spatial :: Spatial { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for NavigationMeshInstance { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: spatial :: Spatial { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for NavigationMeshInstance { } unsafe impl SubClass < crate :: generated :: node :: Node > for NavigationMeshInstance { } unsafe impl SubClass < crate :: generated :: object :: Object > for NavigationMeshInstance { } impl Instanciable for NavigationMeshInstance { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { NavigationMeshInstance :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct NavigationMeshInstanceMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_navigation_mesh : * mut sys :: godot_method_bind , pub is_enabled : * mut sys :: godot_method_bind , pub set_enabled : * mut sys :: godot_method_bind , pub set_navigation_mesh : * mut sys :: godot_method_bind } impl NavigationMeshInstanceMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : NavigationMeshInstanceMethodTable = NavigationMeshInstanceMethodTable { class_constructor : None , get_navigation_mesh : 0 as * mut sys :: godot_method_bind , is_enabled : 0 as * mut sys :: godot_method_bind , set_enabled : 0 as * mut sys :: godot_method_bind , set_navigation_mesh : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { NavigationMeshInstanceMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "NavigationMeshInstance\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_navigation_mesh = (gd_api . godot_method_bind_get_method) (class_name , "get_navigation_mesh\0" . as_ptr () as * const c_char) ; table . is_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_enabled\0" . as_ptr () as * const c_char) ; table . set_enabled = (gd_api . godot_method_bind_get_method) (class_name , "set_enabled\0" . as_ptr () as * const c_char) ; table . set_navigation_mesh = (gd_api . godot_method_bind_get_method) (class_name , "set_navigation_mesh\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:496:7201 [INFO] [stdout] | [INFO] [stdout] 496 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 496 | # [doc = "`core class ViewportContainer` inherits `Container` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_viewportcontainer.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`ViewportContainer` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nViewportContainer inherits methods from:\n - [Container](struct.Container.html)\n - [Control](struct.Control.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct ViewportContainer { this : RawObject < Self > , } impl ViewportContainer { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = ViewportContainerMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Divides the viewport's effective resolution by this value while preserving its scale. This can be used to speed up rendering.\nFor example, a 1280×720 viewport with [member stretch_shrink] set to `2` will be rendered at 640×360 while occupying the same size in the container.\n**Note:** [member stretch] must be `true` for this property to work."] # [doc = ""] # [inline] pub fn stretch_shrink (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = ViewportContainerMethodTable :: get (get_api ()) . get_stretch_shrink ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, the viewport will be scaled to the control's size."] # [doc = ""] # [inline] pub fn is_stretch_enabled (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = ViewportContainerMethodTable :: get (get_api ()) . is_stretch_enabled ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, the viewport will be scaled to the control's size."] # [doc = ""] # [inline] pub fn set_stretch (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ViewportContainerMethodTable :: get (get_api ()) . set_stretch ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "Divides the viewport's effective resolution by this value while preserving its scale. This can be used to speed up rendering.\nFor example, a 1280×720 viewport with [member stretch_shrink] set to `2` will be rendered at 640×360 while occupying the same size in the container.\n**Note:** [member stretch] must be `true` for this property to work."] # [doc = ""] # [inline] pub fn set_stretch_shrink (& self , amount : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ViewportContainerMethodTable :: get (get_api ()) . set_stretch_shrink ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , amount) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for ViewportContainer { } unsafe impl GodotObject for ViewportContainer { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "ViewportContainer" } } impl QueueFree for ViewportContainer { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for ViewportContainer { type Target = crate :: generated :: container :: Container ; # [inline] fn deref (& self) -> & crate :: generated :: container :: Container { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for ViewportContainer { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: container :: Container { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: container :: Container > for ViewportContainer { } unsafe impl SubClass < crate :: generated :: control :: Control > for ViewportContainer { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for ViewportContainer { } unsafe impl SubClass < crate :: generated :: node :: Node > for ViewportContainer { } unsafe impl SubClass < crate :: generated :: object :: Object > for ViewportContainer { } impl Instanciable for ViewportContainer { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { ViewportContainer :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct ViewportContainerMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_stretch_shrink : * mut sys :: godot_method_bind , pub is_stretch_enabled : * mut sys :: godot_method_bind , pub set_stretch : * mut sys :: godot_method_bind , pub set_stretch_shrink : * mut sys :: godot_method_bind } impl ViewportContainerMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : ViewportContainerMethodTable = ViewportContainerMethodTable { class_constructor : None , get_stretch_shrink : 0 as * mut sys :: godot_method_bind , is_stretch_enabled : 0 as * mut sys :: godot_method_bind , set_stretch : 0 as * mut sys :: godot_method_bind , set_stretch_shrink : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { ViewportContainerMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "ViewportContainer\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_stretch_shrink = (gd_api . godot_method_bind_get_method) (class_name , "get_stretch_shrink\0" . as_ptr () as * const c_char) ; table . is_stretch_enabled = (gd_api . godot_method_bind_get_method) (class_name , "is_stretch_enabled\0" . as_ptr () as * const c_char) ; table . set_stretch = (gd_api . godot_method_bind_get_method) (class_name , "set_stretch\0" . as_ptr () as * const c_char) ; table . set_stretch_shrink = (gd_api . godot_method_bind_get_method) (class_name , "set_stretch_shrink\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:502:15700 [INFO] [stdout] | [INFO] [stdout] 502 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 502 | # [doc = "`core class MultiplayerAPI` inherits `Reference` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_multiplayerapi.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nMultiplayerAPI inherits methods from:\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct MultiplayerAPI { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct RpcMode (pub i64) ; impl RpcMode { pub const DISABLED : RpcMode = RpcMode (0i64) ; pub const REMOTE : RpcMode = RpcMode (1i64) ; pub const MASTER : RpcMode = RpcMode (2i64) ; pub const SLAVE : RpcMode = RpcMode (3i64) ; pub const PUPPET : RpcMode = RpcMode (3i64) ; pub const SYNC : RpcMode = RpcMode (4i64) ; pub const REMOTESYNC : RpcMode = RpcMode (4i64) ; pub const MASTERSYNC : RpcMode = RpcMode (5i64) ; pub const PUPPETSYNC : RpcMode = RpcMode (6i64) ; } impl From < i64 > for RpcMode { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < RpcMode > for i64 { # [inline] fn from (v : RpcMode) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl MultiplayerAPI { pub const RPC_MODE_DISABLED : i64 = 0i64 ; pub const RPC_MODE_MASTER : i64 = 2i64 ; pub const RPC_MODE_MASTERSYNC : i64 = 5i64 ; pub const RPC_MODE_PUPPET : i64 = 3i64 ; pub const RPC_MODE_PUPPETSYNC : i64 = 6i64 ; pub const RPC_MODE_REMOTE : i64 = 1i64 ; pub const RPC_MODE_REMOTESYNC : i64 = 4i64 ; pub const RPC_MODE_SLAVE : i64 = 3i64 ; pub const RPC_MODE_SYNC : i64 = 4i64 ; } impl MultiplayerAPI { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = MultiplayerAPIMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = "Clears the current MultiplayerAPI network state (you shouldn't call this unless you know what you are doing)."] # [doc = ""] # [inline] pub fn clear (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . clear ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Returns the peer IDs of all connected peers of this MultiplayerAPI's [member network_peer]."] # [doc = ""] # [inline] pub fn get_network_connected_peers (& self) -> Int32Array { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . get_network_connected_peers ; let ret = crate :: icalls :: icallptr_i32arr (method_bind , self . this . sys () . as_ptr ()) ; Int32Array :: from_sys (ret) } } # [doc = "The peer object to handle the RPC system (effectively enabling networking when set). Depending on the peer itself, the MultiplayerAPI will become a network server (check with [method is_network_server]) and will set root node's network mode to master, or it will become a regular peer with root node set to puppet. All child nodes are set to inherit the network mode by default. Handling of networking-related events (connection, disconnection, new clients) is done by connecting to MultiplayerAPI's signals."] # [doc = ""] # [inline] pub fn network_peer (& self) -> Option < Ref < crate :: generated :: networked_multiplayer_peer :: NetworkedMultiplayerPeer , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . get_network_peer ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: networked_multiplayer_peer :: NetworkedMultiplayerPeer , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the unique peer ID of this MultiplayerAPI's [member network_peer]."] # [doc = ""] # [inline] pub fn get_network_unique_id (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . get_network_unique_id ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn root_node (& self) -> Option < Ref < crate :: generated :: node :: Node , thread_access :: Shared > > { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . get_root_node ; let ret = crate :: icalls :: icallptr_obj (method_bind , self . this . sys () . as_ptr ()) ; ptr :: NonNull :: new (ret) . map (| sys | < Ref < crate :: generated :: node :: Node , thread_access :: Shared >> :: move_from_sys (sys)) } } # [doc = "Returns the sender's peer ID for the RPC currently being executed.\n**Note:** If not inside an RPC this method will return 0."] # [doc = ""] # [inline] pub fn get_rpc_sender_id (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . get_rpc_sender_id ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if there is a [member network_peer] set."] # [doc = ""] # [inline] pub fn has_network_peer (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . has_network_peer ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Returns `true` if this MultiplayerAPI's [member network_peer] is in server mode (listening for connections)."] # [doc = ""] # [inline] pub fn is_network_server (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . is_network_server ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true` (or if the [member network_peer] has [member PacketPeer.allow_object_decoding] set to `true`), the MultiplayerAPI will allow encoding and decoding of object during RPCs/RSETs.\n**Warning:** Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution."] # [doc = ""] # [inline] pub fn is_object_decoding_allowed (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . is_object_decoding_allowed ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "If `true`, the MultiplayerAPI's [member network_peer] refuses new incoming connections."] # [doc = ""] # [inline] pub fn is_refusing_new_network_connections (& self) -> bool { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . is_refusing_new_network_connections ; let ret = crate :: icalls :: icallptr_bool (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Method used for polling the MultiplayerAPI. You only need to worry about this if you are using [member Node.custom_multiplayer] override or you set [member SceneTree.multiplayer_poll] to `false`. By default, [SceneTree] will poll its MultiplayerAPI for you.\n**Note:** This method results in RPCs and RSETs being called, so they will be executed in the same context of this function (e.g. `_process`, `physics`, [Thread])."] # [doc = ""] # [inline] pub fn poll (& self) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . poll ; let ret = crate :: icalls :: icallptr_void (method_bind , self . this . sys () . as_ptr ()) ; } } # [doc = "Sends the given raw `bytes` to a specific peer identified by `id` (see [method NetworkedMultiplayerPeer.set_target_peer]). Default ID is `0`, i.e. broadcast to all peers.\n# Default Arguments\n* `id` - `0`\n* `mode` - `2`"] # [doc = ""] # [inline] pub fn send_bytes (& self , bytes : ByteArray , id : i64 , mode : i64) -> GodotResult { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . send_bytes ; let ret = crate :: icalls :: icallptr_i64_bytearr_i64_i64 (method_bind , self . this . sys () . as_ptr () , bytes , id , mode) ; GodotError :: result_from_sys (ret as _) } } # [doc = "If `true` (or if the [member network_peer] has [member PacketPeer.allow_object_decoding] set to `true`), the MultiplayerAPI will allow encoding and decoding of object during RPCs/RSETs.\n**Warning:** Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution."] # [doc = ""] # [inline] pub fn set_allow_object_decoding (& self , enable : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . set_allow_object_decoding ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , enable) ; } } # [doc = "The peer object to handle the RPC system (effectively enabling networking when set). Depending on the peer itself, the MultiplayerAPI will become a network server (check with [method is_network_server]) and will set root node's network mode to master, or it will become a regular peer with root node set to puppet. All child nodes are set to inherit the network mode by default. Handling of networking-related events (connection, disconnection, new clients) is done by connecting to MultiplayerAPI's signals."] # [doc = ""] # [inline] pub fn set_network_peer (& self , peer : impl AsArg < crate :: generated :: networked_multiplayer_peer :: NetworkedMultiplayerPeer >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . set_network_peer ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , peer . as_arg_ptr ()) ; } } # [doc = "If `true`, the MultiplayerAPI's [member network_peer] refuses new incoming connections."] # [doc = ""] # [inline] pub fn set_refuse_new_network_connections (& self , refuse : bool) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . set_refuse_new_network_connections ; let ret = crate :: icalls :: icallptr_void_bool (method_bind , self . this . sys () . as_ptr () , refuse) ; } } # [doc = "Sets the base root node to use for RPCs. Instead of an absolute path, a relative path will be used to find the node upon which the RPC should be executed.\nThis effectively allows to have different branches of the scene tree to be managed by different MultiplayerAPI, allowing for example to run both client and server in the same scene."] # [doc = ""] # [inline] pub fn set_root_node (& self , node : impl AsArg < crate :: generated :: node :: Node >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = MultiplayerAPIMethodTable :: get (get_api ()) . set_root_node ; let ret = crate :: icalls :: icallptr_void_obj (method_bind , self . this . sys () . as_ptr () , node . as_arg_ptr ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for MultiplayerAPI { } unsafe impl GodotObject for MultiplayerAPI { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "MultiplayerAPI" } } impl std :: ops :: Deref for MultiplayerAPI { type Target = crate :: generated :: reference :: Reference ; # [inline] fn deref (& self) -> & crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for MultiplayerAPI { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: reference :: Reference { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: reference :: Reference > for MultiplayerAPI { } unsafe impl SubClass < crate :: generated :: object :: Object > for MultiplayerAPI { } impl Instanciable for MultiplayerAPI { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { MultiplayerAPI :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct MultiplayerAPIMethodTable { pub class_constructor : sys :: godot_class_constructor , pub clear : * mut sys :: godot_method_bind , pub get_network_connected_peers : * mut sys :: godot_method_bind , pub get_network_peer : * mut sys :: godot_method_bind , pub get_network_unique_id : * mut sys :: godot_method_bind , pub get_root_node : * mut sys :: godot_method_bind , pub get_rpc_sender_id : * mut sys :: godot_method_bind , pub has_network_peer : * mut sys :: godot_method_bind , pub is_network_server : * mut sys :: godot_method_bind , pub is_object_decoding_allowed : * mut sys :: godot_method_bind , pub is_refusing_new_network_connections : * mut sys :: godot_method_bind , pub poll : * mut sys :: godot_method_bind , pub send_bytes : * mut sys :: godot_method_bind , pub set_allow_object_decoding : * mut sys :: godot_method_bind , pub set_network_peer : * mut sys :: godot_method_bind , pub set_refuse_new_network_connections : * mut sys :: godot_method_bind , pub set_root_node : * mut sys :: godot_method_bind } impl MultiplayerAPIMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : MultiplayerAPIMethodTable = MultiplayerAPIMethodTable { class_constructor : None , clear : 0 as * mut sys :: godot_method_bind , get_network_connected_peers : 0 as * mut sys :: godot_method_bind , get_network_peer : 0 as * mut sys :: godot_method_bind , get_network_unique_id : 0 as * mut sys :: godot_method_bind , get_root_node : 0 as * mut sys :: godot_method_bind , get_rpc_sender_id : 0 as * mut sys :: godot_method_bind , has_network_peer : 0 as * mut sys :: godot_method_bind , is_network_server : 0 as * mut sys :: godot_method_bind , is_object_decoding_allowed : 0 as * mut sys :: godot_method_bind , is_refusing_new_network_connections : 0 as * mut sys :: godot_method_bind , poll : 0 as * mut sys :: godot_method_bind , send_bytes : 0 as * mut sys :: godot_method_bind , set_allow_object_decoding : 0 as * mut sys :: godot_method_bind , set_network_peer : 0 as * mut sys :: godot_method_bind , set_refuse_new_network_connections : 0 as * mut sys :: godot_method_bind , set_root_node : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { MultiplayerAPIMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "MultiplayerAPI\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . clear = (gd_api . godot_method_bind_get_method) (class_name , "clear\0" . as_ptr () as * const c_char) ; table . get_network_connected_peers = (gd_api . godot_method_bind_get_method) (class_name , "get_network_connected_peers\0" . as_ptr () as * const c_char) ; table . get_network_peer = (gd_api . godot_method_bind_get_method) (class_name , "get_network_peer\0" . as_ptr () as * const c_char) ; table . get_network_unique_id = (gd_api . godot_method_bind_get_method) (class_name , "get_network_unique_id\0" . as_ptr () as * const c_char) ; table . get_root_node = (gd_api . godot_method_bind_get_method) (class_name , "get_root_node\0" . as_ptr () as * const c_char) ; table . get_rpc_sender_id = (gd_api . godot_method_bind_get_method) (class_name , "get_rpc_sender_id\0" . as_ptr () as * const c_char) ; table . has_network_peer = (gd_api . godot_method_bind_get_method) (class_name , "has_network_peer\0" . as_ptr () as * const c_char) ; table . is_network_server = (gd_api . godot_method_bind_get_method) (class_name , "is_network_server\0" . as_ptr () as * const c_char) ; table . is_object_decoding_allowed = (gd_api . godot_method_bind_get_method) (class_name , "is_object_decoding_allowed\0" . as_ptr () as * const c_char) ; table . is_refusing_new_network_connections = (gd_api . godot_method_bind_get_method) (class_name , "is_refusing_new_network_connections\0" . as_ptr () as * const c_char) ; table . poll = (gd_api . godot_method_bind_get_method) (class_name , "poll\0" . as_ptr () as * const c_char) ; table . send_bytes = (gd_api . godot_method_bind_get_method) (class_name , "send_bytes\0" . as_ptr () as * const c_char) ; table . set_allow_object_decoding = (gd_api . godot_method_bind_get_method) (class_name , "set_allow_object_decoding\0" . as_ptr () as * const c_char) ; table . set_network_peer = (gd_api . godot_method_bind_get_method) (class_name , "set_network_peer\0" . as_ptr () as * const c_char) ; table . set_refuse_new_network_connections = (gd_api . godot_method_bind_get_method) (class_name , "set_refuse_new_network_connections\0" . as_ptr () as * const c_char) ; table . set_root_node = (gd_api . godot_method_bind_get_method) (class_name , "set_root_node\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:508:4564 [INFO] [stdout] | [INFO] [stdout] 508 | ...thodTable { class_constructor : None , } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 508 | # [doc = "`core class ToolButton` inherits `Button` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_toolbutton.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`ToolButton` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nToolButton inherits methods from:\n - [Button](struct.Button.html)\n - [BaseButton](struct.BaseButton.html)\n - [Control](struct.Control.html)\n - [CanvasItem](struct.CanvasItem.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct ToolButton { this : RawObject < Self > , } impl ToolButton { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = ToolButtonMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } } impl gdnative_core :: private :: godot_object :: Sealed for ToolButton { } unsafe impl GodotObject for ToolButton { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "ToolButton" } } impl QueueFree for ToolButton { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for ToolButton { type Target = crate :: generated :: button :: Button ; # [inline] fn deref (& self) -> & crate :: generated :: button :: Button { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for ToolButton { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: button :: Button { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: button :: Button > for ToolButton { } unsafe impl SubClass < crate :: generated :: base_button :: BaseButton > for ToolButton { } unsafe impl SubClass < crate :: generated :: control :: Control > for ToolButton { } unsafe impl SubClass < crate :: generated :: canvas_item :: CanvasItem > for ToolButton { } unsafe impl SubClass < crate :: generated :: node :: Node > for ToolButton { } unsafe impl SubClass < crate :: generated :: object :: Object > for ToolButton { } impl Instanciable for ToolButton { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { ToolButton :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct ToolButtonMethodTable { pub class_constructor : sys :: godot_class_constructor , } impl ToolButtonMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : ToolButtonMethodTable = ToolButtonMethodTable { class_constructor : None , } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { ToolButtonMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "ToolButton\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:514:3905 [INFO] [stdout] | [INFO] [stdout] 514 | ...thodTable { class_constructor : None , } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 514 | # [doc = "`core class AudioEffectHighPassFilter` inherits `AudioEffectFilter` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_audioeffecthighpassfilter.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nAudioEffectHighPassFilter inherits methods from:\n - [AudioEffectFilter](struct.AudioEffectFilter.html)\n - [AudioEffect](struct.AudioEffect.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct AudioEffectHighPassFilter { this : RawObject < Self > , } impl AudioEffectHighPassFilter { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = AudioEffectHighPassFilterMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } } impl gdnative_core :: private :: godot_object :: Sealed for AudioEffectHighPassFilter { } unsafe impl GodotObject for AudioEffectHighPassFilter { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "AudioEffectHighPassFilter" } } impl std :: ops :: Deref for AudioEffectHighPassFilter { type Target = crate :: generated :: audio_effect_filter :: AudioEffectFilter ; # [inline] fn deref (& self) -> & crate :: generated :: audio_effect_filter :: AudioEffectFilter { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for AudioEffectHighPassFilter { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: audio_effect_filter :: AudioEffectFilter { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: audio_effect_filter :: AudioEffectFilter > for AudioEffectHighPassFilter { } unsafe impl SubClass < crate :: generated :: audio_effect :: AudioEffect > for AudioEffectHighPassFilter { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for AudioEffectHighPassFilter { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for AudioEffectHighPassFilter { } unsafe impl SubClass < crate :: generated :: object :: Object > for AudioEffectHighPassFilter { } impl Instanciable for AudioEffectHighPassFilter { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { AudioEffectHighPassFilter :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct AudioEffectHighPassFilterMethodTable { pub class_constructor : sys :: godot_class_constructor , } impl AudioEffectHighPassFilterMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : AudioEffectHighPassFilterMethodTable = AudioEffectHighPassFilterMethodTable { class_constructor : None , } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { AudioEffectHighPassFilterMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "AudioEffectHighPassFilter\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:520:7296 [INFO] [stdout] | [INFO] [stdout] 520 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 520 | # [doc = "`core class AudioEffectPitchShift` inherits `AudioEffect` (reference counted)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_audioeffectpitchshift.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nThe lifetime of this object is automatically managed through reference counting."] # [doc = "\n## Class hierarchy\n\nAudioEffectPitchShift inherits methods from:\n - [AudioEffect](struct.AudioEffect.html)\n - [Resource](struct.Resource.html)\n - [Reference](struct.Reference.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct AudioEffectPitchShift { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct FftSize (pub i64) ; impl FftSize { pub const _256 : FftSize = FftSize (0i64) ; pub const _512 : FftSize = FftSize (1i64) ; pub const _1024 : FftSize = FftSize (2i64) ; pub const _2048 : FftSize = FftSize (3i64) ; pub const _4096 : FftSize = FftSize (4i64) ; pub const MAX : FftSize = FftSize (5i64) ; } impl From < i64 > for FftSize { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < FftSize > for i64 { # [inline] fn from (v : FftSize) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl AudioEffectPitchShift { pub const FFT_SIZE_1024 : i64 = 2i64 ; pub const FFT_SIZE_2048 : i64 = 3i64 ; pub const FFT_SIZE_256 : i64 = 0i64 ; pub const FFT_SIZE_4096 : i64 = 4i64 ; pub const FFT_SIZE_512 : i64 = 1i64 ; pub const FFT_SIZE_MAX : i64 = 5i64 ; } impl AudioEffectPitchShift { # [doc = "Creates a new instance of this object.\n\nThis is a reference-counted type. The returned object is automatically managed\nby `Ref`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = AudioEffectPitchShiftMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = ""] # [doc = ""] # [inline] pub fn fft_size (& self) -> crate :: generated :: audio_effect_pitch_shift :: FftSize { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectPitchShiftMethodTable :: get (get_api ()) . get_fft_size ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: audio_effect_pitch_shift :: FftSize (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn oversampling (& self) -> i64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectPitchShiftMethodTable :: get (get_api ()) . get_oversampling ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = "Pitch value. Can range from 0 (-1 octave) to 16 (+16 octaves)."] # [doc = ""] # [inline] pub fn pitch_scale (& self) -> f64 { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectPitchShiftMethodTable :: get (get_api ()) . get_pitch_scale ; let ret = crate :: icalls :: icallptr_f64 (method_bind , self . this . sys () . as_ptr ()) ; ret as _ } } # [doc = ""] # [doc = ""] # [inline] pub fn set_fft_size (& self , size : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectPitchShiftMethodTable :: get (get_api ()) . set_fft_size ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , size) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_oversampling (& self , amount : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectPitchShiftMethodTable :: get (get_api ()) . set_oversampling ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , amount) ; } } # [doc = "Pitch value. Can range from 0 (-1 octave) to 16 (+16 octaves)."] # [doc = ""] # [inline] pub fn set_pitch_scale (& self , rate : f64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = AudioEffectPitchShiftMethodTable :: get (get_api ()) . set_pitch_scale ; let ret = crate :: icalls :: icallptr_void_f64 (method_bind , self . this . sys () . as_ptr () , rate) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for AudioEffectPitchShift { } unsafe impl GodotObject for AudioEffectPitchShift { type RefKind = ref_kind :: RefCounted ; # [inline] fn class_name () -> & 'static str { "AudioEffectPitchShift" } } impl std :: ops :: Deref for AudioEffectPitchShift { type Target = crate :: generated :: audio_effect :: AudioEffect ; # [inline] fn deref (& self) -> & crate :: generated :: audio_effect :: AudioEffect { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for AudioEffectPitchShift { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: audio_effect :: AudioEffect { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: audio_effect :: AudioEffect > for AudioEffectPitchShift { } unsafe impl SubClass < crate :: generated :: resource :: Resource > for AudioEffectPitchShift { } unsafe impl SubClass < crate :: generated :: reference :: Reference > for AudioEffectPitchShift { } unsafe impl SubClass < crate :: generated :: object :: Object > for AudioEffectPitchShift { } impl Instanciable for AudioEffectPitchShift { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { AudioEffectPitchShift :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct AudioEffectPitchShiftMethodTable { pub class_constructor : sys :: godot_class_constructor , pub get_fft_size : * mut sys :: godot_method_bind , pub get_oversampling : * mut sys :: godot_method_bind , pub get_pitch_scale : * mut sys :: godot_method_bind , pub set_fft_size : * mut sys :: godot_method_bind , pub set_oversampling : * mut sys :: godot_method_bind , pub set_pitch_scale : * mut sys :: godot_method_bind } impl AudioEffectPitchShiftMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : AudioEffectPitchShiftMethodTable = AudioEffectPitchShiftMethodTable { class_constructor : None , get_fft_size : 0 as * mut sys :: godot_method_bind , get_oversampling : 0 as * mut sys :: godot_method_bind , get_pitch_scale : 0 as * mut sys :: godot_method_bind , set_fft_size : 0 as * mut sys :: godot_method_bind , set_oversampling : 0 as * mut sys :: godot_method_bind , set_pitch_scale : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { AudioEffectPitchShiftMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "AudioEffectPitchShift\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . get_fft_size = (gd_api . godot_method_bind_get_method) (class_name , "get_fft_size\0" . as_ptr () as * const c_char) ; table . get_oversampling = (gd_api . godot_method_bind_get_method) (class_name , "get_oversampling\0" . as_ptr () as * const c_char) ; table . get_pitch_scale = (gd_api . godot_method_bind_get_method) (class_name , "get_pitch_scale\0" . as_ptr () as * const c_char) ; table . set_fft_size = (gd_api . godot_method_bind_get_method) (class_name , "set_fft_size\0" . as_ptr () as * const c_char) ; table . set_oversampling = (gd_api . godot_method_bind_get_method) (class_name , "set_oversampling\0" . as_ptr () as * const c_char) ; table . set_pitch_scale = (gd_api . godot_method_bind_get_method) (class_name , "set_pitch_scale\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:526:8140 [INFO] [stdout] | [INFO] [stdout] 526 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 526 | # [doc = "`core class ProximityGroup` inherits `Spatial` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_proximitygroup.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`ProximityGroup` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref` form.\n\nIn the cases where Rust code owns an object of this type, for example if the object was just\ncreated on the Rust side and not passed to the engine yet, ownership should be either given\nto the engine or the object must be manually destroyed using `Ref::free`, or `Ref::queue_free`\nif it is a `Node`."] # [doc = "\n## Class hierarchy\n\nProximityGroup inherits methods from:\n - [Spatial](struct.Spatial.html)\n - [Node](struct.Node.html)\n - [Object](struct.Object.html)\n"] # [doc = ""] # [doc = "\n## Safety\n\nAll types in the Godot API have \"interior mutability\" in Rust parlance.\nTo enforce that the official [thread-safety guidelines][thread-safety] are\nfollowed, the typestate pattern is used in the `Ref` and `TRef` smart pointers,\nand the `Instance` API. The typestate `Access` in these types tracks whether the\naccess is unique, shared, or exclusive to the current thread. For more information,\nsee the type-level documentation on `Ref`.\n\n[thread-safety]: https://docs.godotengine.org/en/stable/tutorials/threads/thread_safe_apis.html"] # [allow (non_camel_case_types)] # [derive (Debug)] pub struct ProximityGroup { this : RawObject < Self > , } # [derive (Copy , Clone , Debug , PartialEq , Eq , PartialOrd , Ord , Hash)] pub struct DispatchMode (pub i64) ; impl DispatchMode { pub const PROXY : DispatchMode = DispatchMode (0i64) ; pub const SIGNAL : DispatchMode = DispatchMode (1i64) ; } impl From < i64 > for DispatchMode { # [inline] fn from (v : i64) -> Self { Self (v) } } impl From < DispatchMode > for i64 { # [inline] fn from (v : DispatchMode) -> Self { v . 0 } } # [doc = "Constants"] # [allow (non_upper_case_globals)] impl ProximityGroup { pub const MODE_PROXY : i64 = 0i64 ; pub const MODE_SIGNAL : i64 = 1i64 ; } impl ProximityGroup { # [doc = "Creates a new instance of this object.\n\nBecause this type is not reference counted, the lifetime of the returned object\nis *not* automatically managed.\n\nImmediately after creation, the object is owned by the caller, and can be\npassed to the engine (in which case the engine will be responsible for\ndestroying the object) or destroyed manually using `Ref::free`, or preferably\n`Ref::queue_free` if it is a `Node`."] # [inline] pub fn new () -> Ref < Self , thread_access :: Unique > { unsafe { let gd_api = get_api () ; let ctor = ProximityGroupMethodTable :: get (gd_api) . class_constructor . unwrap () ; let obj = ptr :: NonNull :: new (ctor ()) . expect ("constructor should not return null") ; Ref :: init_from_sys (obj) } } # [doc = ""] # [doc = ""] # [inline] pub fn broadcast (& self , method : impl Into < GodotString > , parameters : impl OwnedToVariant) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ProximityGroupMethodTable :: get (get_api ()) . broadcast ; let ret = crate :: icalls :: icallptr_void_str_var (method_bind , self . this . sys () . as_ptr () , method . into () , parameters . owned_to_variant ()) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn dispatch_mode (& self) -> crate :: generated :: proximity_group :: DispatchMode { unsafe { let method_bind : * mut sys :: godot_method_bind = ProximityGroupMethodTable :: get (get_api ()) . get_dispatch_mode ; let ret = crate :: icalls :: icallptr_i64 (method_bind , self . this . sys () . as_ptr ()) ; crate :: generated :: proximity_group :: DispatchMode (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn grid_radius (& self) -> Vector3 { unsafe { let method_bind : * mut sys :: godot_method_bind = ProximityGroupMethodTable :: get (get_api ()) . get_grid_radius ; let ret = crate :: icalls :: icallptr_vec3 (method_bind , self . this . sys () . as_ptr ()) ; mem :: transmute (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn group_name (& self) -> GodotString { unsafe { let method_bind : * mut sys :: godot_method_bind = ProximityGroupMethodTable :: get (get_api ()) . get_group_name ; let ret = crate :: icalls :: icallptr_str (method_bind , self . this . sys () . as_ptr ()) ; GodotString :: from_sys (ret) } } # [doc = ""] # [doc = ""] # [inline] pub fn set_dispatch_mode (& self , mode : i64) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ProximityGroupMethodTable :: get (get_api ()) . set_dispatch_mode ; let ret = crate :: icalls :: icallptr_void_i64 (method_bind , self . this . sys () . as_ptr () , mode) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_grid_radius (& self , radius : Vector3) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ProximityGroupMethodTable :: get (get_api ()) . set_grid_radius ; let ret = crate :: icalls :: icallptr_void_vec3 (method_bind , self . this . sys () . as_ptr () , radius) ; } } # [doc = ""] # [doc = ""] # [inline] pub fn set_group_name (& self , name : impl Into < GodotString >) -> () { unsafe { let method_bind : * mut sys :: godot_method_bind = ProximityGroupMethodTable :: get (get_api ()) . set_group_name ; let ret = crate :: icalls :: icallptr_void_str (method_bind , self . this . sys () . as_ptr () , name . into ()) ; } } } impl gdnative_core :: private :: godot_object :: Sealed for ProximityGroup { } unsafe impl GodotObject for ProximityGroup { type RefKind = ref_kind :: ManuallyManaged ; # [inline] fn class_name () -> & 'static str { "ProximityGroup" } } impl QueueFree for ProximityGroup { # [inline] unsafe fn godot_queue_free (obj : * mut sys :: godot_object) { let method_bind : * mut sys :: godot_method_bind = crate :: generated :: node :: NodeMethodTable :: get (get_api ()) . queue_free ; crate :: icalls :: icallptr_void (method_bind , obj) } } impl std :: ops :: Deref for ProximityGroup { type Target = crate :: generated :: spatial :: Spatial ; # [inline] fn deref (& self) -> & crate :: generated :: spatial :: Spatial { unsafe { std :: mem :: transmute (self) } } } impl std :: ops :: DerefMut for ProximityGroup { # [inline] fn deref_mut (& mut self) -> & mut crate :: generated :: spatial :: Spatial { unsafe { std :: mem :: transmute (self) } } } unsafe impl SubClass < crate :: generated :: spatial :: Spatial > for ProximityGroup { } unsafe impl SubClass < crate :: generated :: node :: Node > for ProximityGroup { } unsafe impl SubClass < crate :: generated :: object :: Object > for ProximityGroup { } impl Instanciable for ProximityGroup { # [inline] fn construct () -> Ref < Self , thread_access :: Unique > { ProximityGroup :: new () } } # [doc (hidden)] # [allow (non_camel_case_types , dead_code)] pub (crate) struct ProximityGroupMethodTable { pub class_constructor : sys :: godot_class_constructor , pub broadcast : * mut sys :: godot_method_bind , pub get_dispatch_mode : * mut sys :: godot_method_bind , pub get_grid_radius : * mut sys :: godot_method_bind , pub get_group_name : * mut sys :: godot_method_bind , pub set_dispatch_mode : * mut sys :: godot_method_bind , pub set_grid_radius : * mut sys :: godot_method_bind , pub set_group_name : * mut sys :: godot_method_bind } impl ProximityGroupMethodTable { unsafe fn get_mut () -> & 'static mut Self { static mut TABLE : ProximityGroupMethodTable = ProximityGroupMethodTable { class_constructor : None , broadcast : 0 as * mut sys :: godot_method_bind , get_dispatch_mode : 0 as * mut sys :: godot_method_bind , get_grid_radius : 0 as * mut sys :: godot_method_bind , get_group_name : 0 as * mut sys :: godot_method_bind , set_dispatch_mode : 0 as * mut sys :: godot_method_bind , set_grid_radius : 0 as * mut sys :: godot_method_bind , set_group_name : 0 as * mut sys :: godot_method_bind } ; &raw mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'static Self { unsafe { let table = Self :: get_mut () ; static INIT : :: std :: sync :: Once = Once :: new () ; INIT . call_once (|| { ProximityGroupMethodTable :: init (table , gd_api) ; }) ; table } } # [inline (never)] # [allow (dead_code)] fn init (table : & mut Self , gd_api : & GodotApi) { unsafe { let class_name = "ProximityGroup\0" . as_ptr () as * const c_char ; table . class_constructor = (gd_api . godot_get_class_constructor) (class_name) ; table . broadcast = (gd_api . godot_method_bind_get_method) (class_name , "broadcast\0" . as_ptr () as * const c_char) ; table . get_dispatch_mode = (gd_api . godot_method_bind_get_method) (class_name , "get_dispatch_mode\0" . as_ptr () as * const c_char) ; table . get_grid_radius = (gd_api . godot_method_bind_get_method) (class_name , "get_grid_radius\0" . as_ptr () as * const c_char) ; table . get_group_name = (gd_api . godot_method_bind_get_method) (class_name , "get_group_name\0" . as_ptr () as * const c_char) ; table . set_dispatch_mode = (gd_api . godot_method_bind_get_method) (class_name , "set_dispatch_mode\0" . as_ptr () as * const c_char) ; table . set_grid_radius = (gd_api . godot_method_bind_get_method) (class_name , "set_grid_radius\0" . as_ptr () as * const c_char) ; table . set_group_name = (gd_api . godot_method_bind_get_method) (class_name , "set_group_name\0" . as_ptr () as * const c_char) ; } } } [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> /opt/rustwide/target/debug/build/gdnative-bindings-lily-4b70c1ce0b297269/out/generated.rs:532:11390 [INFO] [stdout] | [INFO] [stdout] 532 | ... : 0 as * mut sys :: godot_method_bind } ; & mut TABLE } # [inline] # [allow (dead_code)] pub fn get (gd_api : & GodotApi) -> & 'stati... [INFO] [stdout] | ^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] help: use `&raw mut` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 532 | # [doc = "`core class Button` inherits `BaseButton` (unsafe)."] # [doc = "## Official documentation\n\nSee the [documentation of this class](https://godot.readthedocs.io/en/latest/classes/class_button.html) in the Godot engine's official documentation.\nThe method descriptions are generated from it and typically contain code samples in GDScript, not Rust."] # [doc = "## Memory management\n\nNon reference counted objects such as the ones of this type are usually owned by the engine.\n\n`Button` is a reference-only type. Persistent references can\nonly exist in the unsafe `Ref