- the world engine splits from the game into a benilla-world crate — 112 files, and the wall is ratcheted to zero names of the game inside the engine - the engine's public doorway is counted and gated at 32 items, and the render materials, shaders and asset cache move down to benilla-assets - the game's files leave the engine's asset root — game:// is its own space — and a spike binary boots the engine with no game attached - weather rides along: snowfall emission is denominated in the reference's frame cap, and a long teleport retires the stranded precipitation field instead of leaving it behind Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
27 lines
1.2 KiB
Rust
27 lines
1.2 KiB
Rust
//! The particle lane's debug-instrument system plumbing, bundled into one parameter.
|
|
//!
|
|
//! `simulate_particles` sits exactly at Bevy's 16-system-parameter ceiling, and the lane carries
|
|
//! two optional instruments — [`super::depthdump`] (`$WOW_PARTICLE_DEPTHDUMP`, the depth numbers
|
|
//! a pool brings to the compare) and [`super::emitdump`] (`$WOW_EMIT_DUMP`, what the emission
|
|
//! front end decided) — each of which would otherwise spend a parameter or two of its own. That
|
|
//! ceiling should never be the reason an instrument doesn't get built (0022), so the
|
|
//! pair shares one: both stay inert without their env, and the sim reads them through here.
|
|
|
|
use bevy::ecs::system::SystemParam;
|
|
use bevy::prelude::*;
|
|
|
|
#[derive(SystemParam)]
|
|
pub(super) struct Dumps<'w, 's> {
|
|
/// `$WOW_PARTICLE_DEPTHDUMP`'s frame counter.
|
|
depth_frames: Local<'s, u32>,
|
|
/// `$WOW_EMIT_DUMP`'s label lookup and period clock.
|
|
pub(super) emit: super::emitdump::EmitDump<'w, 's>,
|
|
}
|
|
|
|
impl Dumps<'_, '_> {
|
|
/// `$WOW_PARTICLE_DEPTHDUMP`: this frame's dump index, if it is a dump frame at all.
|
|
pub(super) fn depth_frame(&mut self, now: f32) -> Option<u32> {
|
|
super::depthdump::frame(now, &mut self.depth_frames)
|
|
}
|
|
}
|