From 780dba67c017cac07ab848e9dd6a0e9dff1fab0f Mon Sep 17 00:00:00 2001 From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com> Date: Fri, 9 Dec 2022 20:20:27 -0800 Subject: [PATCH] feat: load a project file and display a loading screen --- Cargo.lock | 14 ++++ Cargo.toml | 2 + assets/Infinite Toebeans.sb3 | Bin 0 -> 70937 bytes src/main.rs | 129 ++++++++++++++++++++++++++++------- 4 files changed, 121 insertions(+), 24 deletions(-) create mode 100644 assets/Infinite Toebeans.sb3 diff --git a/Cargo.lock b/Cargo.lock index 3240431..a615d72 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2484,6 +2484,8 @@ name = "scratch-bevy" version = "0.1.0" dependencies = [ "bevy", + "futures-lite", + "zip", ] [[package]] @@ -3295,3 +3297,15 @@ name = "xi-unicode" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" + +[[package]] +name = "zip" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537ce7411d25e54e8ae21a7ce0b15840e7bfcff15b51d697ec3266cc76bdf080" +dependencies = [ + "byteorder", + "crc32fast", + "crossbeam-utils", + "flate2", +] diff --git a/Cargo.toml b/Cargo.toml index 85b5ecd..e5374e9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,8 @@ rust-version = "1.65" [dependencies] bevy = "0.9.1" +futures-lite = "1.12.0" +zip = { version = "0.6.3", default-features = false, features = ["deflate"] } [features] # remember to disable bevy's "dynamic" feature for release builds diff --git a/assets/Infinite Toebeans.sb3 b/assets/Infinite Toebeans.sb3 new file mode 100644 index 0000000000000000000000000000000000000000..7f34553ee6b250c2813ba527b8b24a5bd56627d3 GIT binary patch literal 70937 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 literal 0 HcmV?d00001 diff --git a/src/main.rs b/src/main.rs index ebd8105..2bfc40d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,11 +1,20 @@ use bevy::{ prelude::*, + tasks::*, time::FixedTimestep, window::*, }; +use futures_lite::future; const TIME_STEP: f64 = 1. / 30.; +#[derive(Debug, Clone, Eq, PartialEq, Hash)] + +enum AppState { + Loading, + Running, +} + fn main() { App::new() .add_plugins(DefaultPlugins.set(WindowPlugin { @@ -20,12 +29,69 @@ fn main() { }, ..default() })) + .add_plugin(ScratchLoadingScreenPlugin) .add_plugin(ScratchStagePlugin) .add_plugin(ScratchDemoProjectPlugin) .add_system(close_on_esc) .run(); } +// +// Loading screen +// + +pub struct ScratchLoadingScreenPlugin; + +#[derive(Component)] +struct LoadingScreen; + +impl Plugin for ScratchLoadingScreenPlugin { + fn build(&self, app: &mut App) { + app + .add_state(AppState::Loading) + .add_system_set( + SystemSet::on_enter(AppState::Loading) + .with_system(ScratchLoadingScreenPlugin::start_loading_screen) + ) + .add_system_set( + SystemSet::on_update(AppState::Loading) + .with_system(ScratchLoadingScreenPlugin::update_loading_screen) + ) + .add_system_set( + SystemSet::on_exit(AppState::Loading) + .with_system(ScratchLoadingScreenPlugin::stop_loading_screen) + ); + } +} + +impl ScratchLoadingScreenPlugin { + + fn start_loading_screen(mut commands: Commands, asset_server: Res) { + commands.spawn(( + SpriteBundle { + texture: asset_server.load("squirrel.png"), + ..default() + }, + LoadingScreen + )); + } + + fn update_loading_screen(mut loading_screen_query: Query<&mut Transform, With>) { + let one_degree_in_radians: f32 = (1.0_f32).to_radians(); + + for mut transform in &mut loading_screen_query { + transform.rotate_z(-one_degree_in_radians); + } + } + + fn stop_loading_screen(mut commands: Commands, mut loading_screen_query: Query>) { + for loading_screen in &mut loading_screen_query { + commands.entity(loading_screen).despawn(); + } + + } +} + // // Sprite // @@ -109,31 +175,46 @@ pub struct ScratchDemoProjectPlugin; impl Plugin for ScratchDemoProjectPlugin { fn build(&self, app: &mut App) { app - .add_startup_system(add_demo_project_sprites); + .add_startup_system(project_load) + .add_system_set( + SystemSet::on_update(AppState::Loading) + .with_system(project_check_load) + ); } } -fn add_demo_project_sprites(mut commands: Commands, asset_server: Res) { - commands.spawn( - SpriteBundle { - texture: asset_server.load("squirrel.png"), - transform: Transform::from_scale(Vec3::new(0.5, 0.5, 1.)), - ..default() - }) - .insert(Name("Sprite 1".to_string())) - .insert(ScratchScripts(vec![ - ScratchCode::MoveOneStep, - ScratchCode::TurnClockwise, - ])); - commands.spawn( - SpriteBundle { - texture: asset_server.load("squirrel.png"), - transform: Transform::from_scale(Vec3::new(0.5, 0.5, 1.)), - ..default() - }) - .insert(Name("Sprite 2".to_string())) - .insert(ScratchScripts(vec![ - ScratchCode::MoveTwoSteps, - ScratchCode::TurnCounterClockwise, - ])); +#[derive(Resource)] +struct ProjectZip(HandleUntyped); + +#[derive(Resource)] +struct ProjectLoadTask(Task); + +fn project_load(mut commands: Commands, asset_server: Res) { + info!("Starting project load"); + let project_handle = asset_server.load_untyped("Infinite Toebeans.sb3"); + commands.insert_resource(ProjectZip(project_handle)) +} + +fn project_check_load(mut commands: Commands, mut app_state: ResMut>, project_zip: Option>, mut project_task: Option>) { + if let Some(project_zip) = project_zip { + if project_zip.is_added() { + info!("Project archive is loaded. Time to unpack..."); + let thread_pool = AsyncComputeTaskPool::get(); + let load_task = thread_pool.spawn(async move { + let start_time = std::time::Instant::now(); + while start_time.elapsed() < std::time::Duration::from_secs_f32(4.2) + { + // spin + } + 42 // return hydrated project + }); + commands.insert_resource(ProjectLoadTask(load_task)); + } + else if let Some(project_task) = &mut project_task { + if let Some(project_data) = future::block_on(future::poll_once(&mut project_task.0)) { + info!("Project data is: {}", project_data); + app_state.set(AppState::Running).unwrap(); + } + } + } }