3D

ParticleEmitter3D

3D particle emitter.

Driven by a .ppart profile with active, looping, prewarm, spawn_rate, seed, sim_mode, and render_mode.

Base node: Node3D

Source: perro_source/core/perro_nodes/src/nodes/particle_emitter_3d.rs

Fields

activeloopingspawn_rateprofileseed
pub struct ParticleEmitter3D {    pub base: Node3D,    pub active: bool,    pub looping: bool,    pub spawn_rate: f32,    pub profile: ParticleProfileID,}

Scene template

[node_instance]tags = ["runtime", "demo"]parent = @rootscript = "res://script.rs"script_vars = { speed = 4.0, health = 100 }   [ParticleEmitter3D]    active = true    looping = 0    spawn_rate = 1.0    profile = "res://asset.res"    seed = 1  [/ParticleEmitter3D][/node_instance]

Script API

Create

let node_id = create_node!(ctx, ParticleEmitter3D, "Spawned Node", ["enemy", "runtime"], parent_id);

Access / mutate

let value = with_node!(ctx, ParticleEmitter3D, node_id, |node| {    node.active}); let pair = with_node!(ctx, ParticleEmitter3D, node_id, |node| {    (node.active, node.looping)}); with_node_mut!(ctx, ParticleEmitter3D, node_id, |node| {    node.active = true;});