//! Time and streaming plugin — tick advancement, chunk streaming, news ticker. //! //! Systems span three phases: //! - PreInput: chunk_streaming (loads chunks before input processing) //! - Snapshot: tick_news_ticker (assembles display content) //! - TickAdvance: advance_tick (must be last in the pipeline) use bevy_app::prelude::*; use bevy_ecs::schedule::IntoScheduleConfigs; use crate::tick_phases::TickPhase; pub struct TimePlugin; impl Plugin for TimePlugin { fn build(&self, app: &mut App) { app.init_resource::() // T-970 (D-226 layer 1): tracks whether the current pause was // auto-triggered (implant fullscreen) vs. manual (D-088). .init_resource::() .init_resource::() .init_resource::() .init_resource::() .add_systems( Update, super::chunk_streaming::chunk_streaming.in_set(TickPhase::PreInput), ) .add_systems( Update, super::ticker::tick_news_ticker.in_set(TickPhase::Snapshot), ) .add_systems( Update, super::time::advance_tick.in_set(TickPhase::TickAdvance), ); } }