From eb698b031621fc6d66a47097c8329a2ce547ca27 Mon Sep 17 00:00:00 2001 From: "Elijah C. Voigt" Date: Wed, 27 Mar 2024 21:04:51 -0700 Subject: [PATCH] First stab at dissolving title I wrote this literally without running it. Let's see if I nailed it :fingerscrossed: --- src/display3d.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/display3d.rs b/src/display3d.rs index 384ea08..bc14d03 100644 --- a/src/display3d.rs +++ b/src/display3d.rs @@ -93,10 +93,12 @@ impl Plugin for Display3dPlugin { .run_if(in_state(DisplayState::Display3d)), ), ) + .add_systems(OnEnter(GameState::Title), intro_title_dissolve) + .add_systems(OnExit(GameState::Title), outro_title_dissolve) .add_systems( Update, continue_title.run_if( - in_state(GameState::Title).and_then( + in_state(GameState::Title).and_then(not(any_with_component::)).and_then( just_pressed(KeyCode::Enter).or_else(just_pressed(MouseButton::Left)), ), ), @@ -1344,6 +1346,24 @@ fn monitor_animations( }); } +fn intro_title_dissolve( + mut query: Query>, + mut commands: Commands, +) { + query.iter_mut().for_each(|entity| { + commands.entity(entity).insert(Dissolving::In(3.0)); + }); +} + +fn outro_title_dissolve( + mut query: Query>, + mut commands: Commands, +) { + query.iter_mut().for_each(|entity| { + commands.entity(entity).insert(Dissolving::Out(3.0)); + }); +} + fn continue_title(mut next_state: ResMut>) { next_state.set(GameState::Play) }