//! Built-in visual effects.
//!
//! The VFX layer composes the engine's existing GPU renderers into ready-made,
//! in-world effects. Nothing here introduces a new render pass: particles ride
//! the GPU particle system, beams/lightning/trails drive the [`Lines`] buffer,
//! and mesh effects animate an emissive mesh's transform and material.
//!
//! # Built-in presets
//!
//! [`spawn_vfx`] turns a [`VfxPreset`] into live entities and returns a
//! [`VfxHandle`] that [`despawn_vfx`] tears down:
//!
//! ```ignore
//! let fire = spawn_vfx(world, VfxPreset::Fire, Vec3::new(0.0, 0.0, 0.0));
//! // ... later ...
//! despawn_vfx(world, &fire);
//! ```
//!
//! Presets span four families:
//!
//! - **Particles**: bonfire, explosion, magic aura, fireworks, blizzard,
//!   flamethrower, fireflies, waterfall.
//! - **Trails & beams**: laser, energy beam, lightning, chain lightning, comet.
//! - **Mesh effects**: shockwave, force field, portal.
//! - **Showpieces**: tesla coil, rune circle, energy core, supernova, lightning
//!   storm, singularity, orrery.
//!
//! # Custom effects
//!
//! The underlying components are public, so games can attach a [`Beam`],
//! [`LightningBolt`], [`Trail`], or [`VfxAnimator`] to their own entities and
//! the [`update_vfx_system`](systems::update_vfx_system) frame entry advances
//! them automatically.
//!
//! # Screen-space effects
//!
//! Fullscreen distortion, lens flare, vignette, chromatic aberration, and color
//! grading are global render state on
//! `world.resources.renderer_state.effects`, not entities, so they are tuned
//! directly rather than through [`spawn_vfx`].
//!
//! [`Lines`]: crate::ecs::lines::components::Lines
//! [`Beam`]: components::Beam
//! [`LightningBolt`]: components::LightningBolt
//! [`Trail`]: components::Trail
//! [`VfxAnimator`]: components::VfxAnimator
//! [`VfxPreset`]: presets::VfxPreset
//! [`VfxHandle`]: components::VfxHandle
//! [`spawn_vfx`]: presets::spawn_vfx
//! [`despawn_vfx`]: presets::despawn_vfx

pub mod components;
pub mod presets;
pub mod systems;
pub mod textures;
