bevy/crates
MiniaczQ 524fb01457
Make initial StateTransition run before PreStartup (#14208)
# Objective

- Fixes #14206 

## Solution

- Run initial `StateTransition` as a startup schedule before
`PreStartup`, instead of running it inside `Startup` as an exclusive
system.

Related discord discussion:

https://discord.com/channels/691052431525675048/692572690833473578/1259543775668207678

## Testing

Reproduction now works correctly:

```rs
use bevy::prelude::*;

#[derive(Debug, Clone, Copy, Default, Eq, PartialEq, Hash, States)]
enum AppState {
    #[default]
    Menu,
    InGame,
}

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .init_state::<AppState>()
        .add_systems(Startup, setup)
        .add_systems(OnEnter(AppState::Menu), enter_menu_state)
        .run();
}

fn setup(mut next_state: ResMut<NextState<AppState>>) {
    next_state.set(AppState::Menu);
}

fn enter_menu_state() {
    println!("Entered menu state");
}
```


![image](https://github.com/bevyengine/bevy/assets/13040204/96d7a533-c439-4c0b-8f15-49f620903ce1)


---

## Changelog

- Initial `StateTransition` runs before `PreStartup` instead of inside
`Startup`.
2024-08-02 19:17:57 +02:00
..
bevy_a11y Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_animation Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_app Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_asset EmptyPathStream is only used in android/wasm32 (#14200) 2024-08-02 18:58:30 +02:00
bevy_audio Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_color Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_core Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_core_pipeline Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_derive Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_dev_tools Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_diagnostic Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_dylib Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_dynamic_plugin Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_ecs Allow observer systems to have outputs (#14159) 2024-08-02 19:16:46 +02:00
bevy_encase_derive Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_gilrs Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_gizmos Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_gltf EmptyPathStream is only used in android/wasm32 (#14200) 2024-08-02 18:58:30 +02:00
bevy_hierarchy Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_input bevy_input: allow use without bevy_reflect (#14167) 2024-08-02 19:11:13 +02:00
bevy_internal Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_log Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_macro_utils Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_math Fix swapped docs for Rot2::rotation_to/from_y (#14307) 2024-08-02 19:15:56 +02:00
bevy_mikktspace Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_pbr Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_ptr Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_reflect Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_render disable gpu preprocessing on android with Adreno 730 GPU and earilier (#14176) 2024-08-02 18:58:31 +02:00
bevy_scene Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_sprite Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_state Make initial StateTransition run before PreStartup (#14208) 2024-08-02 19:17:57 +02:00
bevy_tasks Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_text Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_time Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_transform Optimize unnecessary normalizations for Transform::local_{xyz} (#14171) 2024-08-02 18:58:31 +02:00
bevy_ui add entity to error message (#14163) 2024-08-02 18:58:30 +02:00
bevy_utils Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_window Release 0.14.0 version bump (#14126) 2024-07-03 18:22:10 -07:00
bevy_winit Dirty fix for App hanging when windows are invisible on WindowsOS (#14155) 2024-08-02 19:12:05 +02:00