diff --git a/Cargo.lock b/Cargo.lock index e5a247f..dfa6872 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1074,6 +1074,18 @@ dependencies = [ "tracing", ] +[[package]] +name = "bevy_prototype_lyon" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb09bb9cadacae3238d1bdc856b71a164a17f93e1e94db62011dd969dacbe75b" +dependencies = [ + "bevy", + "lyon_algorithms", + "lyon_tessellation", + "svgtypes", +] + [[package]] name = "bevy_ptr" version = "0.17.3" @@ -1310,6 +1322,7 @@ name = "bevy_stock_photo" version = "0.1.0" dependencies = [ "bevy", + "bevy_prototype_lyon", "enumset", "rand", "serde", @@ -2297,6 +2310,12 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "float_next_after" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8" + [[package]] name = "fnv" version = "1.0.7" @@ -2862,6 +2881,17 @@ dependencies = [ "bitflags 2.10.0", ] +[[package]] +name = "kurbo" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62026ae44756f8a599ba21140f350303d4f08dcdcc71b5ad9c9bb8128c13c62" +dependencies = [ + "arrayvec", + "euclid", + "smallvec", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -2955,6 +2985,48 @@ version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +[[package]] +name = "lyon_algorithms" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c0829e28c4f336396f250d850c3987e16ce6db057ffe047ce0dd54aab6b647" +dependencies = [ + "lyon_path", + "num-traits", +] + +[[package]] +name = "lyon_geom" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e260b6de923e6e47adfedf6243013a7a874684165a6a277594ee3906021b2343" +dependencies = [ + "arrayvec", + "euclid", + "num-traits", +] + +[[package]] +name = "lyon_path" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aeca86bcfd632a15984ba029b539ffb811e0a70bf55e814ef8b0f54f506fdeb" +dependencies = [ + "lyon_geom", + "num-traits", +] + +[[package]] +name = "lyon_tessellation" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3f586142e1280335b1bc89539f7c97dd80f08fc43e9ab1b74ef0a42b04aa353" +dependencies = [ + "float_next_after", + "lyon_path", + "num-traits", +] + [[package]] name = "mach2" version = "0.4.3" @@ -4121,6 +4193,12 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + [[package]] name = "skrifa" version = "0.37.0" @@ -4237,6 +4315,16 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0193cc4331cfd2f3d2011ef287590868599a2f33c3e69bc22c1a3d3acf9e02fb" +[[package]] +name = "svgtypes" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68c7541fff44b35860c1a7a47a7cadf3e4a304c457b58f9870d9706ece028afc" +dependencies = [ + "kurbo", + "siphasher", +] + [[package]] name = "swash" version = "0.2.6" diff --git a/Cargo.toml b/Cargo.toml index ba45ed1..d24b3d3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,6 +5,7 @@ edition = "2024" [dependencies] bevy = "0.17.3" +bevy_prototype_lyon = "0.15.0" enumset = "1.1.10" rand = "0.9.2" serde = { version = "1.0.228", features = ["derive"] } diff --git a/assets/fonts/GloriaHalleluja.ttf b/assets/fonts/GloriaHalleluja.ttf new file mode 100644 index 0000000..82d3874 Binary files /dev/null and b/assets/fonts/GloriaHalleluja.ttf differ diff --git a/src/gameplay/mod.rs b/src/gameplay/mod.rs index 8665b62..b6b3a32 100644 --- a/src/gameplay/mod.rs +++ b/src/gameplay/mod.rs @@ -1 +1,2 @@ pub mod navi; +pub mod pause; diff --git a/src/gameplay/navi.rs b/src/gameplay/navi.rs index 77c65b2..93ccb24 100644 --- a/src/gameplay/navi.rs +++ b/src/gameplay/navi.rs @@ -1,4 +1,6 @@ -use bevy::{post_process::bloom::Bloom, prelude::*, sprite::Anchor}; +use bevy::{ + camera::visibility::RenderLayers, post_process::bloom::Bloom, prelude::*, sprite::Anchor, +}; use rand::Rng; use crate::{ @@ -26,6 +28,10 @@ impl Plugin for NaviGameplayPlugin { #[derive(Component)] pub struct PlayerVWBus; +#[derive(Component)] +#[require(Camera2d)] +struct MainCamera; + pub fn setup_scene( mut commands: Commands, mut meshes: ResMut>, @@ -36,7 +42,16 @@ pub fn setup_scene( MeshMaterial2d(materials.add(Color::srgb(0.2, 0.2, 0.3))), )); - commands.spawn((Camera2d, Bloom::NATURAL)); + commands.spawn(( + MainCamera, + Camera { + order: 1, + // clear_color: ClearColorConfig::None, + ..default() + }, + Bloom::NATURAL, + RenderLayers::layer(0), + )); } pub fn spawn_bus(mut commands: Commands, asset_server: Res) { @@ -106,9 +121,9 @@ pub fn move_player( } } -pub fn follow_player( - mut camera: Single<&mut Transform, (With, Without)>, - player: Single<&Transform, (With, Without)>, +fn follow_player( + mut camera: Single<&mut Transform, (With, Without)>, + player: Single<&Transform, (With, Without)>, time: Res