diff --git a/Cargo.lock b/Cargo.lock index 61b13b9db3..384a3c3e02 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "ab_glyph" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcdbc68024b653943864d436fe8a24b028095bc1cf91a8926f8241e4aaffe59" +checksum = "e5568a4aa5ba8adf5175c5c460b030e27d8893412976cc37bef0e4fbc16cfbba" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -56,8 +56,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf6ccdb167abbf410dcb915cabd428929d7f6a04980b54a11f26a39f1c7f7107" dependencies = [ - "cfg-if 1.0.0", - "getrandom 0.2.8", + "cfg-if", "once_cell", "version_check", ] @@ -106,11 +105,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9ed09b18365ed295d722d0b5ed59c01b79a826ff2d2a8f73d5ecca8e6fb2f66" dependencies = [ "android_log-sys", - "env_logger", + "env_logger 0.8.4", "lazy_static", "log", ] +[[package]] +name = "android_logger" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8619b80c242aa7bd638b5c7ddd952addeecb71f69c75e33f1d47b2804f8f883a" +dependencies = [ + "android_log-sys", + "env_logger 0.10.0", + "log", + "once_cell", +] + [[package]] name = "android_system_properties" version = "0.1.5" @@ -142,7 +153,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc120354d1b5ec6d7aaf4876b602def75595937b5e15d356eb554ab5177e08bb" dependencies = [ "clipboard-win", - "core-graphics 0.22.3", + "core-graphics", "image 0.23.14", "log", "objc", @@ -154,12 +165,6 @@ dependencies = [ "x11rb", ] -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - [[package]] name = "arrayvec" version = "0.7.2" @@ -181,7 +186,7 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" dependencies = [ - "concurrent-queue", + "concurrent-queue 2.0.0", "event-listener", "futures-core", ] @@ -194,7 +199,7 @@ checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b" dependencies = [ "async-lock", "async-task", - "concurrent-queue", + "concurrent-queue 2.0.0", "fastrand", "futures-lite", "slab", @@ -208,7 +213,7 @@ checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794" dependencies = [ "async-lock", "autocfg", - "concurrent-queue", + "concurrent-queue 2.0.0", "futures-lite", "libc", "log", @@ -250,9 +255,9 @@ checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" [[package]] name = "atomic_refcell" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b5e5f48b927f04e952dedc932f31995a65a0bf65ec971c74436e51bf6e970d" +checksum = "857253367827bd9d0fd973f0ef15506a96e79e41b0ad7aa691203a4e3214f6c8" [[package]] name = "autocfg" @@ -268,46 +273,81 @@ checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" dependencies = [ "addr2line", "cc", - "cfg-if 1.0.0", + "cfg-if", "libc", "miniz_oxide 0.6.2", "object", "rustc-demangle", ] +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + [[package]] name = "base64" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5" + [[package]] name = "bevy" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fea147ef1ebb92d41294cfad804c40de151b174c711ce6e0a4a40eba23eae1a4" dependencies = [ - "bevy_internal", + "bevy_internal 0.8.1", +] + +[[package]] +name = "bevy" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dae99b246505811f5bc19d2de1e406ec5d2816b421d58fa223779eb576f472c9" +dependencies = [ + "bevy_internal 0.9.1", ] [[package]] name = "bevy-inspector-egui" -version = "0.13.0" +version = "0.16.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e18f673a7040930e20c899ad5e98d62f5db702a742c9cd96b5862d051a7b5da" +checksum = "477f1860a47519d51d8d00a769134223476172468136569595bbb638a2fad71d" dependencies = [ - "bevy", "bevy-inspector-egui-derive", + "bevy_app 0.9.1", + "bevy_asset 0.9.1", + "bevy_core 0.9.1", + "bevy_core_pipeline 0.9.1", + "bevy_ecs 0.9.1", "bevy_egui", - "image 0.23.14", + "bevy_hierarchy 0.9.1", + "bevy_log 0.9.1", + "bevy_math 0.9.1", + "bevy_pbr 0.9.1", + "bevy_reflect 0.9.1", + "bevy_render 0.9.1", + "bevy_utils 0.9.1", + "egui", + "image 0.24.5", + "once_cell", "pretty-type-name", + "smallvec", ] [[package]] name = "bevy-inspector-egui-derive" -version = "0.13.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ce0a659fdb2c31c2ae7f2ee8020fa758aff458a4ae4dc4e55bc27dcc31ef487" +checksum = "8927db6cc2e377e3148ab6cc8404c4d4af45ed93bc30acfbcca2404edccde9fb" dependencies = [ "proc-macro2", "quote", @@ -316,11 +356,11 @@ dependencies = [ [[package]] name = "bevy-parallax" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "848290b802a0315343b65eba37dc258194689b5df40fbd808aa2dec75bf812a3" +checksum = "f43fff43976f20c3bd9d92280c7976b5afcda5359e711e01a8e4842317e200e0" dependencies = [ - "bevy", + "bevy 0.9.1", "serde", ] @@ -330,11 +370,26 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e4ae0a6ed2adf3b153511b4645241660a93f747c05ecd1e5a909dafc803cad4" dependencies = [ - "bevy_derive", - "bevy_ecs", - "bevy_reflect", - "bevy_tasks", - "bevy_utils", + "bevy_derive 0.8.1", + "bevy_ecs 0.8.1", + "bevy_reflect 0.8.1", + "bevy_tasks 0.8.1", + "bevy_utils 0.8.1", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "bevy_app" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "536e4d0018347478545ed8b6cb6e57b9279ee984868e81b7c0e78e0fb3222e42" +dependencies = [ + "bevy_derive 0.9.1", + "bevy_ecs 0.9.1", + "bevy_reflect 0.9.1", + "bevy_utils 0.9.1", + "downcast-rs", "wasm-bindgen", "web-sys", ] @@ -346,18 +401,45 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ec773c861a7e9d9978771f59f385500ec6da3a1ab5487705cddb054393d3d19" dependencies = [ "anyhow", - "bevy_app", - "bevy_diagnostic", - "bevy_ecs", - "bevy_log", - "bevy_reflect", - "bevy_tasks", - "bevy_utils", + "bevy_app 0.8.1", + "bevy_diagnostic 0.8.1", + "bevy_ecs 0.8.1", + "bevy_log 0.8.1", + "bevy_reflect 0.8.1", + "bevy_tasks 0.8.1", + "bevy_utils 0.8.1", "crossbeam-channel", "downcast-rs", "fastrand", "js-sys", "ndk-glue 0.5.2", + "parking_lot 0.12.1", + "serde", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "bevy_asset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db1bb550168304df69c867c09125e1aae7ff51cf21575396e1598bf293442c4" +dependencies = [ + "anyhow", + "bevy_app 0.9.1", + "bevy_diagnostic 0.9.1", + "bevy_ecs 0.9.1", + "bevy_log 0.9.1", + "bevy_reflect 0.9.1", + "bevy_tasks 0.9.1", + "bevy_utils 0.9.1", + "crossbeam-channel", + "downcast-rs", + "fastrand", + "js-sys", + "ndk-glue 0.7.0", "notify", "parking_lot 0.12.1", "serde", @@ -373,13 +455,29 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c53172003d5cde7780870b5403c66c8ede3581faf3e510e916d8b4baa5b538d2" dependencies = [ - "bevy_app", - "bevy_ecs", - "bevy_math", - "bevy_reflect", - "bevy_tasks", - "bevy_utils", + "bevy_app 0.8.1", + "bevy_ecs 0.8.1", + "bevy_math 0.8.1", + "bevy_reflect 0.8.1", + "bevy_tasks 0.8.1", + "bevy_utils 0.8.1", + "bytemuck", +] + +[[package]] +name = "bevy_core" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96299aceb3c8362cb4aa39ff81c7ef758a5f4e768d16b5046a91628eff114ac0" +dependencies = [ + "bevy_app 0.9.1", + "bevy_ecs 0.9.1", + "bevy_math 0.9.1", + "bevy_reflect 0.9.1", + "bevy_tasks 0.9.1", + "bevy_utils 0.9.1", "bytemuck", + "serde", ] [[package]] @@ -388,14 +486,34 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e60efd10d593f6d122f2687f74c09ad55835a8f999c35bed6380ddd8e6ff7f2" dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_derive", - "bevy_ecs", - "bevy_reflect", - "bevy_render", - "bevy_transform", - "bevy_utils", + "bevy_app 0.8.1", + "bevy_asset 0.8.1", + "bevy_derive 0.8.1", + "bevy_ecs 0.8.1", + "bevy_reflect 0.8.1", + "bevy_render 0.8.1", + "bevy_transform 0.8.1", + "bevy_utils 0.8.1", + "radsort", + "serde", +] + +[[package]] +name = "bevy_core_pipeline" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc128a9860aadf16fb343ae427f2768986fd91dce64d945455acda9759c48014" +dependencies = [ + "bevy_app 0.9.1", + "bevy_asset 0.9.1", + "bevy_derive 0.9.1", + "bevy_ecs 0.9.1", + "bevy_math 0.9.1", + "bevy_reflect 0.9.1", + "bevy_render 0.9.1", + "bevy_transform 0.9.1", + "bevy_utils 0.9.1", + "bitflags", "radsort", "serde", ] @@ -406,7 +524,18 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e6345431bbe6d7b6c165cd860ecd0b35da929779571259c5df970ac256d45f9" dependencies = [ - "bevy_macro_utils", + "bevy_macro_utils 0.8.1", + "quote", + "syn", +] + +[[package]] +name = "bevy_derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7baf73c58d41c353c6fd08e6764a2e7420c9f19e8227b391c50981db6d0282a6" +dependencies = [ + "bevy_macro_utils 0.9.1", "quote", "syn", ] @@ -417,11 +546,25 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58ac9f4c2815f412be4b6e21e4b299cdafa710f651d064f6d40b2a8377a0d17c" dependencies = [ - "bevy_app", - "bevy_ecs", - "bevy_log", - "bevy_time", - "bevy_utils", + "bevy_app 0.8.1", + "bevy_ecs 0.8.1", + "bevy_log 0.8.1", + "bevy_time 0.8.1", + "bevy_utils 0.8.1", +] + +[[package]] +name = "bevy_diagnostic" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63bf96ec7980fa25b77ff6c72dfafada477936c0dab76c1edf6c028c0e5fe0e4" +dependencies = [ + "bevy_app 0.9.1", + "bevy_core 0.9.1", + "bevy_ecs 0.9.1", + "bevy_log 0.9.1", + "bevy_time 0.9.1", + "bevy_utils 0.9.1", ] [[package]] @@ -431,12 +574,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c174066a24ed8a14d15ea58b0aea1c1f5c763f4bb36ebdc2b1dc78026007d0f5" dependencies = [ "async-channel", - "bevy_ecs_macros", - "bevy_ptr", - "bevy_reflect", - "bevy_tasks", - "bevy_utils", + "bevy_ecs_macros 0.8.1", + "bevy_ptr 0.8.1", + "bevy_reflect 0.8.1", + "bevy_tasks 0.8.1", + "bevy_utils 0.8.1", + "downcast-rs", + "fixedbitset", + "fxhash", + "serde", + "thread_local", +] + +[[package]] +name = "bevy_ecs" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c071d7c6bc9801253485e05d0c257284150de755391902746837ba21c0cf74" +dependencies = [ + "async-channel", + "bevy_ecs_macros 0.9.1", + "bevy_ptr 0.9.1", + "bevy_reflect 0.9.1", + "bevy_tasks 0.9.1", + "bevy_utils 0.9.1", "downcast-rs", + "event-listener", "fixedbitset", "fxhash", "serde", @@ -446,10 +609,11 @@ dependencies = [ [[package]] name = "bevy_ecs_dynamic" version = "0.1.0" -source = "git+https://github.com/jakobhellermann/bevy_ecs_dynamic?rev=aa7a051a49bd134cfd8c169542e16526bf2b36b3#aa7a051a49bd134cfd8c169542e16526bf2b36b3" +source = "git+https://github.com/jakobhellermann/bevy_ecs_dynamic#dc68a95ad94ec69570c19c734ba5710913cb6465" dependencies = [ - "bevy_ecs", - "bevy_reflect", + "bevy_app 0.9.1", + "bevy_ecs 0.9.1", + "bevy_reflect 0.9.1", "fixedbitset", ] @@ -459,7 +623,19 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc50c39e49e8febccc74e8e731680adb0cb4aef1f53275740cbaa95c6da71f4f" dependencies = [ - "bevy_macro_utils", + "bevy_macro_utils 0.8.1", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "bevy_ecs_macros" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c15bd45438eeb681ad74f2d205bb07a5699f98f9524462a30ec764afab2742ce" +dependencies = [ + "bevy_macro_utils 0.9.1", "proc-macro2", "quote", "syn", @@ -467,23 +643,23 @@ dependencies = [ [[package]] name = "bevy_ecs_tilemap" -version = "0.7.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef56c77808aa1fc7379ce538bd9a1e4048794203b4f591f2d06131fc613a1cc" +checksum = "7ce7f9fa49f364602ac0901d5f181445529b23fb0623e39e791548f8a6e8c2b5" dependencies = [ - "bevy", + "bevy 0.9.1", "log", "regex", ] [[package]] name = "bevy_egui" -version = "0.16.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d365761fd6a5c227b1f88f38b560287334accb69cfe938443e27615464edc897" +checksum = "f93fab81b00d664b7fd09c74eadcc8ab4a608649af1fb355647cd43f95f38ec6" dependencies = [ "arboard", - "bevy", + "bevy 0.9.1", "egui", "thread_local", "webbrowser", @@ -495,24 +671,35 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68bc194009c5e9b97da64a08142dd183c264885d99c985cf849868103018adf1" dependencies = [ - "bevy_macro_utils", - "encase_derive_impl", + "bevy_macro_utils 0.8.1", + "encase_derive_impl 0.3.0", +] + +[[package]] +name = "bevy_encase_derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "962b6bb0d30e92ec2e6c29837acce9e55b920733a634e7c3c5fd5a514bea7a24" +dependencies = [ + "bevy_macro_utils 0.9.1", + "encase_derive_impl 0.4.1", ] [[package]] name = "bevy_fluent" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97073140587e1d731a583695c64b3a4410ba5edf9b3f79aae56ab63d0aab0384" +checksum = "b76fd2fd9c24ecf87bdf6c41bef009825d380c6e260016dac1e6d428d9e0dc69" dependencies = [ "anyhow", - "bevy", + "bevy 0.9.1", "fluent", "fluent-langneg", + "fluent_content", "globset", "indexmap", "intl-memoizer", - "ron", + "ron 0.8.0", "serde", "serde_yaml", "thiserror", @@ -523,11 +710,12 @@ dependencies = [ [[package]] name = "bevy_framepace" -version = "0.7.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327027bd161a95a03962d03ba4cf71013a8d2500bf288838f6046278806cb383" +checksum = "b5ae983870b93cdc5bc3484dd6928d7c3217e4a31ccbe4dfb0680dc00c06b47f" dependencies = [ - "bevy", + "bevy 0.9.1", + "wasm_thread", ] [[package]] @@ -535,7 +723,7 @@ name = "bevy_ggrs" version = "0.10.0" source = "git+https://github.com/zicklag/bevy_ggrs.git?branch=jumpy#306683bbad3ed12e81175879a1ecb020d1873ea1" dependencies = [ - "bevy", + "bevy 0.8.1", "bytemuck", "ggrs", "instant", @@ -546,14 +734,14 @@ dependencies = [ [[package]] name = "bevy_gilrs" -version = "0.8.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb15a3427d9707be92b457e5d66900b02d853b475c21dd8662bdda387ba9f24e" +checksum = "4af552dad82f854b2fae24f36a389fd8ee99d65fe86ae876e854e70d53ff16d9" dependencies = [ - "bevy_app", - "bevy_ecs", - "bevy_input", - "bevy_utils", + "bevy_app 0.9.1", + "bevy_ecs 0.9.1", + "bevy_input 0.9.1", + "bevy_utils 0.9.1", "gilrs", ] @@ -562,10 +750,25 @@ name = "bevy_hierarchy" version = "0.8.1" source = "git+https://github.com/zicklag/bevy.git?branch=dont-error-on-non-mapped-children-entities#0db2b8e67b8cd848fdad2a98bebead4cfce6b336" dependencies = [ - "bevy_app", - "bevy_ecs", - "bevy_reflect", - "bevy_utils", + "bevy_app 0.8.1", + "bevy_ecs 0.8.1", + "bevy_reflect 0.8.1", + "bevy_utils 0.8.1", + "smallvec", +] + +[[package]] +name = "bevy_hierarchy" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dd6d50c48c6e1bcb5e08a768b765323292bb3bf3a439b992754c57ffb85b23a" +dependencies = [ + "bevy_app 0.9.1", + "bevy_core 0.9.1", + "bevy_ecs 0.9.1", + "bevy_log 0.9.1", + "bevy_reflect 0.9.1", + "bevy_utils 0.9.1", "smallvec", ] @@ -575,11 +778,25 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1821c4b760ba6ddb4fe61806e9cc33f40b09a884557aca4553a29b8c7d73c6b4" dependencies = [ - "bevy_app", - "bevy_ecs", - "bevy_math", - "bevy_utils", + "bevy_app 0.8.1", + "bevy_ecs 0.8.1", + "bevy_math 0.8.1", + "bevy_utils 0.8.1", +] + +[[package]] +name = "bevy_input" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3378b5171284f4c4c0e8307081718a9fe458f846444616bd82d69110dcabca51" +dependencies = [ + "bevy_app 0.9.1", + "bevy_ecs 0.9.1", + "bevy_math 0.9.1", + "bevy_reflect 0.9.1", + "bevy_utils 0.9.1", "serde", + "thiserror", ] [[package]] @@ -588,43 +805,70 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee63ad1e3f95a26ff2c227fadb1534a7bfe3a098e0e45c347f2f2575a573d9bc" dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_core", - "bevy_core_pipeline", - "bevy_derive", - "bevy_diagnostic", - "bevy_ecs", - "bevy_gilrs", - "bevy_hierarchy", - "bevy_input", - "bevy_log", - "bevy_math", - "bevy_pbr", - "bevy_ptr", - "bevy_reflect", - "bevy_render", + "bevy_app 0.8.1", + "bevy_asset 0.8.1", + "bevy_core 0.8.1", + "bevy_core_pipeline 0.8.1", + "bevy_derive 0.8.1", + "bevy_diagnostic 0.8.1", + "bevy_ecs 0.8.1", + "bevy_hierarchy 0.8.1", + "bevy_input 0.8.1", + "bevy_log 0.8.1", + "bevy_math 0.8.1", + "bevy_pbr 0.8.1", + "bevy_ptr 0.8.1", + "bevy_reflect 0.8.1", + "bevy_render 0.8.1", "bevy_scene", + "bevy_tasks 0.8.1", + "bevy_time 0.8.1", + "bevy_transform 0.8.1", + "bevy_utils 0.8.1", + "bevy_window 0.8.1", + "ndk-glue 0.5.2", +] + +[[package]] +name = "bevy_internal" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c46014b7e885b1311de06b6039e448454a4db55b8d35464798ba88faa186e11" +dependencies = [ + "bevy_app 0.9.1", + "bevy_asset 0.9.1", + "bevy_core 0.9.1", + "bevy_core_pipeline 0.9.1", + "bevy_derive 0.9.1", + "bevy_diagnostic 0.9.1", + "bevy_ecs 0.9.1", + "bevy_gilrs", + "bevy_hierarchy 0.9.1", + "bevy_input 0.9.1", + "bevy_log 0.9.1", + "bevy_math 0.9.1", + "bevy_pbr 0.9.1", + "bevy_ptr 0.9.1", + "bevy_reflect 0.9.1", + "bevy_render 0.9.1", "bevy_sprite", - "bevy_tasks", - "bevy_text", - "bevy_time", - "bevy_transform", - "bevy_ui", - "bevy_utils", - "bevy_window", + "bevy_tasks 0.9.1", + "bevy_time 0.9.1", + "bevy_transform 0.9.1", + "bevy_utils 0.9.1", + "bevy_window 0.9.1", "bevy_winit", - "ndk-glue 0.5.2", + "ndk-glue 0.7.0", ] [[package]] name = "bevy_kira_audio" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0379febb94c497ac6f6b5c0ef27775f7302f65dc780a33dbcec0c743a474b5f4" +checksum = "b310ffe1c870e6ca5f0db228953f68af5a861302ec759edae43450f5835a0ece" dependencies = [ "anyhow", - "bevy", + "bevy 0.9.1", "kira", "parking_lot 0.12.1", "thiserror", @@ -637,8 +881,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "092daf498887814a064331dfcd1cf487a5ddab01fd38629b84a35b8b664462a1" dependencies = [ "android_log-sys", - "bevy_app", - "bevy_utils", + "bevy_app 0.8.1", + "bevy_utils 0.8.1", + "console_error_panic_hook", + "tracing-log", + "tracing-subscriber", + "tracing-wasm", +] + +[[package]] +name = "bevy_log" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c480bac54cf4ae76edc3ae9ae3fa7c5e1b385e7f2111ef5ec3fd00cf3a7998b" +dependencies = [ + "android_log-sys", + "bevy_app 0.9.1", + "bevy_ecs 0.9.1", + "bevy_utils 0.9.1", "console_error_panic_hook", "tracing-log", "tracing-subscriber", @@ -656,13 +916,34 @@ dependencies = [ "toml", ] +[[package]] +name = "bevy_macro_utils" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "022bb69196deeea691b6997414af85bbd7f2b34a8914c4aa7a7ff4dfa44f7677" +dependencies = [ + "quote", + "syn", + "toml", +] + [[package]] name = "bevy_math" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "531f2b90c7e861a96f418b3d560131b3354c5e67a67eba3953a45a56ea0114d2" dependencies = [ - "glam", + "glam 0.21.3", +] + +[[package]] +name = "bevy_math" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d434c77ab766c806ed9062ef8a7285b3b02b47df51f188d4496199c3ac062eaf" +dependencies = [ + "glam 0.22.0", + "serde", ] [[package]] @@ -671,7 +952,16 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "941e7d3d4e1dbb735f040e4cdc1558be1d3c38d43f1d9fdbb039c39a7849a00b" dependencies = [ - "glam", + "glam 0.21.3", +] + +[[package]] +name = "bevy_mikktspace" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfb5908d33fd613069be516180b8f138aaaf6e41c36b1fd98c6c29c00c24a13" +dependencies = [ + "glam 0.22.0", ] [[package]] @@ -680,16 +970,38 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "176073021a4caeb8b448f24ce790fb57fde74b114f345064a8b102d2f7bed905" dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_core_pipeline", - "bevy_ecs", - "bevy_math", - "bevy_reflect", - "bevy_render", - "bevy_transform", - "bevy_utils", - "bevy_window", + "bevy_app 0.8.1", + "bevy_asset 0.8.1", + "bevy_core_pipeline 0.8.1", + "bevy_ecs 0.8.1", + "bevy_math 0.8.1", + "bevy_reflect 0.8.1", + "bevy_render 0.8.1", + "bevy_transform 0.8.1", + "bevy_utils 0.8.1", + "bevy_window 0.8.1", + "bitflags", + "bytemuck", + "radsort", +] + +[[package]] +name = "bevy_pbr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "310b1f260a475d81445623e138e1b7245759a42310bc1f84b550a3f4ff8763bf" +dependencies = [ + "bevy_app 0.9.1", + "bevy_asset 0.9.1", + "bevy_core_pipeline 0.9.1", + "bevy_derive 0.9.1", + "bevy_ecs 0.9.1", + "bevy_math 0.9.1", + "bevy_reflect 0.9.1", + "bevy_render 0.9.1", + "bevy_transform 0.9.1", + "bevy_utils 0.9.1", + "bevy_window 0.9.1", "bitflags", "bytemuck", "radsort", @@ -697,11 +1009,11 @@ dependencies = [ [[package]] name = "bevy_prototype_lyon" -version = "0.6.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9e44f5ffcbac7114ed9377e6bc875e845c76e5ebb3a5a018169dc37ba5b78d0" +checksum = "0c063aff10ca720d5cadf9cf669800eff2166f6f28cf7f20648ece1c3bdb2442" dependencies = [ - "bevy", + "bevy 0.9.1", "lyon_tessellation", "svgtypes", ] @@ -712,18 +1024,44 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9960c19e582b43cebe1894b6679520a4f50802d1cc5b6fa432f8d685ed232f09" +[[package]] +name = "bevy_ptr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ec44f7655039546bc5d34d98de877083473f3e9b2b81d560c528d6d74d3eff4" + [[package]] name = "bevy_reflect" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fc689dd7a7df3b3768884a4754711d406aa302ea48da483c03b52715fa95045" dependencies = [ - "bevy_ptr", - "bevy_reflect_derive", - "bevy_utils", + "bevy_ptr 0.8.1", + "bevy_reflect_derive 0.8.1", + "bevy_utils 0.8.1", + "downcast-rs", + "erased-serde", + "glam 0.21.3", + "once_cell", + "parking_lot 0.12.1", + "serde", + "smallvec", + "thiserror", +] + +[[package]] +name = "bevy_reflect" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6deae303a7f69dc243b2fa35b5e193cc920229f448942080c8eb2dbd9de6d37a" +dependencies = [ + "bevy_math 0.9.1", + "bevy_ptr 0.9.1", + "bevy_reflect_derive 0.9.1", + "bevy_utils 0.9.1", "downcast-rs", "erased-serde", - "glam", + "glam 0.22.0", "once_cell", "parking_lot 0.12.1", "serde", @@ -737,7 +1075,21 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c36fa5100832c787c10558d31632ddc454c221e8dfacbbef836938f59614754" dependencies = [ - "bevy_macro_utils", + "bevy_macro_utils 0.8.1", + "proc-macro2", + "quote", + "syn", + "uuid", +] + +[[package]] +name = "bevy_reflect_derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bf4cb9cd5acb4193f890f36cb63679f1502e2de025e66a63b194b8b133d018" +dependencies = [ + "bevy_macro_utils 0.9.1", + "bit-set", "proc-macro2", "quote", "syn", @@ -751,32 +1103,74 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "600bcef85c7efac6e38ed725707f0e5b7c59b510430034ba2f743f472493f845" dependencies = [ "anyhow", - "bevy_app", - "bevy_asset", - "bevy_core", - "bevy_derive", - "bevy_ecs", - "bevy_encase_derive", - "bevy_hierarchy", - "bevy_log", - "bevy_math", - "bevy_mikktspace", - "bevy_reflect", - "bevy_render_macros", - "bevy_time", - "bevy_transform", - "bevy_utils", - "bevy_window", + "bevy_app 0.8.1", + "bevy_asset 0.8.1", + "bevy_core 0.8.1", + "bevy_derive 0.8.1", + "bevy_ecs 0.8.1", + "bevy_encase_derive 0.8.1", + "bevy_hierarchy 0.8.1", + "bevy_log 0.8.1", + "bevy_math 0.8.1", + "bevy_mikktspace 0.8.1", + "bevy_reflect 0.8.1", + "bevy_render_macros 0.8.1", + "bevy_time 0.8.1", + "bevy_transform 0.8.1", + "bevy_utils 0.8.1", + "bevy_window 0.8.1", "bitflags", "codespan-reporting", "copyless", "downcast-rs", - "encase", + "encase 0.3.0", + "futures-lite", + "hex", + "hexasphere 7.2.1", + "image 0.24.5", + "naga 0.9.0", + "once_cell", + "parking_lot 0.12.1", + "regex", + "serde", + "smallvec", + "thiserror", + "thread_local", + "wgpu 0.13.1", +] + +[[package]] +name = "bevy_render" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e3282a8f8779d2aced93207fbed73f740937c6c2bd27bd84f0799b081c7fca5" +dependencies = [ + "anyhow", + "bevy_app 0.9.1", + "bevy_asset 0.9.1", + "bevy_core 0.9.1", + "bevy_derive 0.9.1", + "bevy_ecs 0.9.1", + "bevy_encase_derive 0.9.1", + "bevy_hierarchy 0.9.1", + "bevy_log 0.9.1", + "bevy_math 0.9.1", + "bevy_mikktspace 0.9.1", + "bevy_reflect 0.9.1", + "bevy_render_macros 0.9.1", + "bevy_time 0.9.1", + "bevy_transform 0.9.1", + "bevy_utils 0.9.1", + "bevy_window 0.9.1", + "bitflags", + "codespan-reporting", + "downcast-rs", + "encase 0.4.1", "futures-lite", "hex", - "hexasphere", + "hexasphere 8.0.0", "image 0.24.5", - "naga", + "naga 0.10.0", "once_cell", "parking_lot 0.12.1", "regex", @@ -784,7 +1178,7 @@ dependencies = [ "smallvec", "thiserror", "thread_local", - "wgpu", + "wgpu 0.14.2", ] [[package]] @@ -793,7 +1187,19 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1be90adc9e5d5808833e363670818da5fe68ccafd7ca983a457f90957d2a430b" dependencies = [ - "bevy_macro_utils", + "bevy_macro_utils 0.8.1", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "bevy_render_macros" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7acae697776ac05bea523e1725cf2660c91c53abe72c66782ea1e1b9eedb572" +dependencies = [ + "bevy_macro_utils 0.9.1", "proc-macro2", "quote", "syn", @@ -806,16 +1212,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a045d575d2c8f776d8ea965363c81660243fefbfc3712ead938b00dfd6797216" dependencies = [ "anyhow", - "bevy_app", - "bevy_asset", - "bevy_derive", - "bevy_ecs", - "bevy_hierarchy", - "bevy_reflect", - "bevy_render", - "bevy_transform", - "bevy_utils", - "ron", + "bevy_app 0.8.1", + "bevy_asset 0.8.1", + "bevy_derive 0.8.1", + "bevy_ecs 0.8.1", + "bevy_hierarchy 0.8.1", + "bevy_reflect 0.8.1", + "bevy_render 0.8.1", + "bevy_transform 0.8.1", + "bevy_utils 0.8.1", + "ron 0.7.1", "serde", "thiserror", "uuid", @@ -823,38 +1229,37 @@ dependencies = [ [[package]] name = "bevy_sprite" -version = "0.8.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69c419f3db09d7ac1f4d45e0874d349d5d6f47f48bc10d55cd0da36413e2331e" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_core_pipeline", - "bevy_ecs", - "bevy_log", - "bevy_math", - "bevy_reflect", - "bevy_render", - "bevy_transform", - "bevy_utils", +checksum = "5ec01c7db7f698d95bcb70708527c3ae6bcdc78fc247abe74f935cae8f0a1145" +dependencies = [ + "bevy_app 0.9.1", + "bevy_asset 0.9.1", + "bevy_core_pipeline 0.9.1", + "bevy_derive 0.9.1", + "bevy_ecs 0.9.1", + "bevy_log 0.9.1", + "bevy_math 0.9.1", + "bevy_reflect 0.9.1", + "bevy_render 0.9.1", + "bevy_transform 0.9.1", + "bevy_utils 0.9.1", "bitflags", "bytemuck", - "copyless", "fixedbitset", "guillotiere", "rectangle-pack", - "serde", "thiserror", ] [[package]] name = "bevy_system_graph" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01982006dc7d468bc38c6362066299bcffeb742066483b131cd1acc3648ecb5f" +checksum = "5e05e75035dc7145447cd74122b820ef2c36c9bea54ee17c4d420f52648db9d4" dependencies = [ - "bevy_ecs", - "bevy_utils", + "bevy_ecs 0.9.1", + "bevy_utils 0.9.1", ] [[package]] @@ -873,26 +1278,18 @@ dependencies = [ ] [[package]] -name = "bevy_text" -version = "0.8.1" +name = "bevy_tasks" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c265b7515faf55a3b92fd6ce0ab65dd246f247e11d737d6f5cdaf49c2be42c63" +checksum = "680b16b53df9c9f24681dd95f4d772d83760bd19adf8bca00f358a3aad997853" dependencies = [ - "ab_glyph", - "anyhow", - "bevy_app", - "bevy_asset", - "bevy_ecs", - "bevy_math", - "bevy_reflect", - "bevy_render", - "bevy_sprite", - "bevy_transform", - "bevy_utils", - "bevy_window", - "glyph_brush_layout", - "serde", - "thiserror", + "async-channel", + "async-executor", + "async-task", + "concurrent-queue 1.2.4", + "futures-lite", + "once_cell", + "wasm-bindgen-futures", ] [[package]] @@ -901,69 +1298,83 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22830665b8476292b861216383fd79922aef2b540f9fd09d49144e3e5e94550e" dependencies = [ - "bevy_app", - "bevy_ecs", - "bevy_reflect", - "bevy_utils", + "bevy_app 0.8.1", + "bevy_ecs 0.8.1", + "bevy_reflect 0.8.1", + "bevy_utils 0.8.1", "crossbeam-channel", ] +[[package]] +name = "bevy_time" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c38a6d3ea929c7f81e6adf5a6c62cf7e8c40f5106c2174d6057e9d8ea624d" +dependencies = [ + "bevy_app 0.9.1", + "bevy_ecs 0.9.1", + "bevy_reflect 0.9.1", + "bevy_utils 0.9.1", + "crossbeam-channel", + "serde", +] + [[package]] name = "bevy_transform" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4bb8760f03e9667e7499a5ceec1f7630fc3e45702781ac0df56cb969e8ae668" dependencies = [ - "bevy_app", - "bevy_ecs", - "bevy_hierarchy", - "bevy_math", - "bevy_reflect", + "bevy_app 0.8.1", + "bevy_ecs 0.8.1", + "bevy_hierarchy 0.8.1", + "bevy_math 0.8.1", + "bevy_reflect 0.8.1", +] + +[[package]] +name = "bevy_transform" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba13c57a040b89767191a6f6d720a635b7792793628bfa41a9e38b7026484aec" +dependencies = [ + "bevy_app 0.9.1", + "bevy_ecs 0.9.1", + "bevy_hierarchy 0.9.1", + "bevy_math 0.9.1", + "bevy_reflect 0.9.1", + "serde", ] [[package]] name = "bevy_tweening" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "164bcb41708fa1aeb435b6bba6cae61777b9f8cf3e18b207bb6209ca5b970e77" +checksum = "6d38b2abf5518df10c3c32ee57a54b9ba7067f3bd1c137b912e286d573962145" dependencies = [ - "bevy", + "bevy 0.9.1", "interpolation", ] [[package]] -name = "bevy_ui" +name = "bevy_utils" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "062ce086de1a4a470e5df48cb5c16a1dc97ab610e635cafabdef26c4a1ef5756" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_core_pipeline", - "bevy_derive", - "bevy_ecs", - "bevy_hierarchy", - "bevy_input", - "bevy_log", - "bevy_math", - "bevy_reflect", - "bevy_render", - "bevy_sprite", - "bevy_text", - "bevy_transform", - "bevy_utils", - "bevy_window", - "bytemuck", - "serde", - "smallvec", - "taffy", +checksum = "f6e9aa1866c1cf7ee000f281ce9e90d02d701f5c7380a107252017e58e2f5246" +dependencies = [ + "ahash 0.7.6", + "getrandom 0.2.8", + "hashbrown", + "instant", + "tracing", + "uuid", ] [[package]] name = "bevy_utils" -version = "0.8.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e9aa1866c1cf7ee000f281ce9e90d02d701f5c7380a107252017e58e2f5246" +checksum = "16750aae52cd35bd7b60eb61cee883420b250e11b4a290b8d44b2b2941795739" dependencies = [ "ahash 0.7.6", "getrandom 0.2.8", @@ -979,30 +1390,46 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707dbbebfac72b1e63e874e7a11a345feab8c440355c0bd71e6dff26709fba9a" dependencies = [ - "bevy_app", - "bevy_ecs", - "bevy_input", - "bevy_math", - "bevy_utils", - "raw-window-handle", + "bevy_app 0.8.1", + "bevy_ecs 0.8.1", + "bevy_input 0.8.1", + "bevy_math 0.8.1", + "bevy_utils 0.8.1", + "raw-window-handle 0.4.3", "web-sys", ] +[[package]] +name = "bevy_window" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a44d3f3bd54a2261f4f57f614bf7bccc8d2832761493c0cd7dab81d98cc151e" +dependencies = [ + "bevy_app 0.9.1", + "bevy_ecs 0.9.1", + "bevy_input 0.9.1", + "bevy_math 0.9.1", + "bevy_reflect 0.9.1", + "bevy_utils 0.9.1", + "raw-window-handle 0.5.0", + "serde", +] + [[package]] name = "bevy_winit" -version = "0.8.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98b15fee4b75472e3441b0c7221467303e4ce59b342a94a328e447e7cdb5a43c" +checksum = "c7b7e647ecd0b3577468da37767dcdd7c26ca9f80da0060b2ec4c77336b6d2e1" dependencies = [ "approx", - "bevy_app", - "bevy_ecs", - "bevy_input", - "bevy_math", - "bevy_utils", - "bevy_window", + "bevy_app 0.9.1", + "bevy_ecs 0.9.1", + "bevy_input 0.9.1", + "bevy_math 0.9.1", + "bevy_utils 0.9.1", + "bevy_window 0.9.1", "crossbeam-channel", - "raw-window-handle", + "raw-window-handle 0.5.0", "wasm-bindgen", "web-sys", "winit", @@ -1099,16 +1526,16 @@ name = "bones_camera_shake" version = "0.1.0" source = "git+https://github.com/DRuppFv/bones?branch=camera_shake_bevy0.8#edfe71fa07340b1bf9a8ea0cf1472b75684d5623" dependencies = [ - "bevy", + "bevy 0.8.1", "noise", ] [[package]] name = "bones_has_load_progress" version = "0.1.0" -source = "git+https://github.com/fishfolk/bones.git#80cc48f29de61dbadf187040decef003f1e70001" +source = "git+https://github.com/fishfolk/bones.git#1f826dd939dfcb1fd7045f634b8008fa3ce3acff" dependencies = [ - "bevy", + "bevy 0.9.1", "bevy_egui", "bones_has_load_progress_macros", ] @@ -1116,7 +1543,7 @@ dependencies = [ [[package]] name = "bones_has_load_progress_macros" version = "0.1.0" -source = "git+https://github.com/fishfolk/bones.git#80cc48f29de61dbadf187040decef003f1e70001" +source = "git+https://github.com/fishfolk/bones.git#1f826dd939dfcb1fd7045f634b8008fa3ce3acff" dependencies = [ "proc-macro2", "quote", @@ -1126,19 +1553,19 @@ dependencies = [ [[package]] name = "bones_matchmaker_proto" version = "0.1.0" -source = "git+https://github.com/fishfolk/bones.git#80cc48f29de61dbadf187040decef003f1e70001" +source = "git+https://github.com/fishfolk/bones.git#1f826dd939dfcb1fd7045f634b8008fa3ce3acff" dependencies = [ "serde", - "ulid", ] [[package]] name = "bstr" -version = "0.2.17" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +checksum = "b45ea9b00a7b3f2988e9a65ad3917e62123c38dba709b666506207be96d1790b" dependencies = [ "memchr", + "serde", ] [[package]] @@ -1209,12 +1636,6 @@ dependencies = [ "nom", ] -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.0" @@ -1301,8 +1722,8 @@ dependencies = [ "bitflags", "block", "cocoa-foundation", - "core-foundation 0.9.3", - "core-graphics 0.22.3", + "core-foundation", + "core-graphics", "foreign-types", "libc", "objc", @@ -1316,7 +1737,7 @@ checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" dependencies = [ "bitflags", "block", - "core-foundation 0.9.3", + "core-foundation", "core-graphics-types", "foreign-types", "libc", @@ -1349,6 +1770,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "concurrent-queue" +version = "1.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" +dependencies = [ + "cache-padded", +] + [[package]] name = "concurrent-queue" version = "2.0.0" @@ -1364,7 +1794,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "wasm-bindgen", ] @@ -1380,49 +1810,21 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2df960f5d869b2dd8532793fde43eb5427cceb126c929747a26823ab0eeb536" -[[package]] -name = "core-foundation" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" -dependencies = [ - "core-foundation-sys 0.7.0", - "libc", -] - [[package]] name = "core-foundation" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" dependencies = [ - "core-foundation-sys 0.8.3", + "core-foundation-sys", "libc", ] -[[package]] -name = "core-foundation-sys" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" - [[package]] name = "core-foundation-sys" version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" - -[[package]] -name = "core-graphics" -version = "0.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923" -dependencies = [ - "bitflags", - "core-foundation 0.7.0", - "foreign-types", - "libc", -] +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "core-graphics" @@ -1431,7 +1833,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" dependencies = [ "bitflags", - "core-foundation 0.9.3", + "core-foundation", "core-graphics-types", "foreign-types", "libc", @@ -1444,24 +1846,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" dependencies = [ "bitflags", - "core-foundation 0.9.3", + "core-foundation", "foreign-types", "libc", ] -[[package]] -name = "core-video-sys" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ecad23610ad9757664d644e369246edde1803fcb43ed72876565098a5d3828" -dependencies = [ - "cfg-if 0.1.10", - "core-foundation-sys 0.7.0", - "core-graphics 0.19.2", - "libc", - "objc", -] - [[package]] name = "coreaudio-rs" version = "0.10.0" @@ -1483,28 +1872,27 @@ dependencies = [ [[package]] name = "cpal" -version = "0.13.5" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74117836a5124f3629e4b474eed03e479abaf98988b4bb317e29f08cfe0e4116" +checksum = "f342c1b63e185e9953584ff2199726bf53850d96610a310e3aca09e9405a2d0b" dependencies = [ "alsa", - "core-foundation-sys 0.8.3", + "core-foundation-sys", "coreaudio-rs", - "jni", + "jni 0.19.0", "js-sys", - "lazy_static", "libc", "mach", - "ndk 0.6.0", - "ndk-glue 0.6.2", - "nix 0.23.2", + "ndk 0.7.0", + "ndk-context", "oboe", - "parking_lot 0.11.2", + "once_cell", + "parking_lot 0.12.1", "stdweb", "thiserror", "wasm-bindgen", "web-sys", - "winapi", + "windows 0.37.0", ] [[package]] @@ -1513,7 +1901,7 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -1522,7 +1910,7 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-utils", ] @@ -1532,7 +1920,7 @@ version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -1617,6 +2005,15 @@ dependencies = [ "dirs-sys", ] +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys", +] + [[package]] name = "dirs-sys" version = "0.3.7" @@ -1628,6 +2025,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "discard" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" + [[package]] name = "dispatch" version = "0.2.0" @@ -1651,11 +2054,20 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +[[package]] +name = "ecolor" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b601108bca3af7650440ace4ca55b2daf52c36f2635be3587d77b16efd8d0691" +dependencies = [ + "bytemuck", +] + [[package]] name = "egui" -version = "0.19.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc9fcd393c3daaaf5909008a1d948319d538b79c51871e4df0993260260a94e4" +checksum = "65a5e883a316e53866977450eecfbcac9c48109c2ab3394af29feb83fcde4ea9" dependencies = [ "ahash 0.8.2", "epaint", @@ -1664,11 +2076,12 @@ dependencies = [ [[package]] name = "egui_extras" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f698f685bb0ad39e87109e2f695ded0bccde77d5d40bbf7590cb5561c1e3039d" +checksum = "1975cd88ff7430f93b29e6b9868b648a8ff6a43b08b9ff8474ee0a648bd8f9a6" dependencies = [ "egui", + "serde", ] [[package]] @@ -1679,9 +2092,9 @@ checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "emath" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9542a40106fdba943a055f418d1746a050e1a903a049b030c2b097d4686a33cf" +checksum = "5277249c8c3430e7127e4f2c40a77485e7baf11ae132ce9b3253a8ed710df0a0" dependencies = [ "bytemuck", ] @@ -1693,8 +2106,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a516181e9a36e8982cb37933c5e7dba638c42938cacde46ee4e5b4156f881b9" dependencies = [ "const_panic", - "encase_derive", - "glam", + "encase_derive 0.3.0", + "glam 0.21.3", + "thiserror", +] + +[[package]] +name = "encase" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48ec50086547d597b5c871a78399ec04a14828a6a5c445a61ed4687c540edec6" +dependencies = [ + "const_panic", + "encase_derive 0.4.1", + "glam 0.22.0", "thiserror", ] @@ -1704,7 +2129,16 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5b802412eea315f29f2bb2da3a5963cd6121f56eaa06aebcdc0c54eea578f22" dependencies = [ - "encase_derive_impl", + "encase_derive_impl 0.3.0", +] + +[[package]] +name = "encase_derive" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dda93e9714c7683c474f49a461a2ae329471d2bda43c4302d41c6d8339579e92" +dependencies = [ + "encase_derive_impl 0.4.1", ] [[package]] @@ -1718,13 +2152,24 @@ dependencies = [ "syn", ] +[[package]] +name = "encase_derive_impl" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec27b639e942eb0297513b81cc6d87c50f6c77dc8c37af00a39ed5db3b9657ee" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "encoding_rs" version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -1737,16 +2182,27 @@ dependencies = [ "regex", ] +[[package]] +name = "env_logger" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +dependencies = [ + "log", + "regex", +] + [[package]] name = "epaint" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba04741be7f6602b1a1b28f1082cce45948a7032961c52814f8946b28493300" +checksum = "de14b65fe5e423e0058f77a8beb2c863b056d0566d6c4ce0d097aa5814cb705a" dependencies = [ "ab_glyph", "ahash 0.8.2", "atomic_refcell", "bytemuck", + "ecolor", "emath", "nohash-hasher", "parking_lot 0.12.1", @@ -1844,7 +2300,7 @@ version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e884668cd0c7480504233e951174ddc3b382f7c2666e3b7310b5c4e7b0c37f9" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "redox_syscall", "windows-sys 0.42.0", @@ -1866,12 +2322,6 @@ dependencies = [ "miniz_oxide 0.6.2", ] -[[package]] -name = "float-cmp" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75224bec9bfe1a65e2d34132933f2de7fe79900c96a0174307554244ece8150e" - [[package]] name = "float_next_after" version = "0.1.5" @@ -1925,6 +2375,20 @@ dependencies = [ "thiserror", ] +[[package]] +name = "fluent_content" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a582c297515a2fb08cbaa1166498dd18b11ba0e4d7c9cad5b10386a6a2208c8a" +dependencies = [ + "fluent", + "fluent-langneg", + "intl-memoizer", + "thiserror", + "tracing", + "unic-langid", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1964,12 +2428,48 @@ dependencies = [ "libc", ] +[[package]] +name = "futures" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +dependencies = [ + "futures-core", + "futures-sink", +] + [[package]] name = "futures-core" version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" +[[package]] +name = "futures-executor" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + [[package]] name = "futures-io" version = "0.3.25" @@ -1991,6 +2491,47 @@ dependencies = [ "waker-fn", ] +[[package]] +name = "futures-macro" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" + +[[package]] +name = "futures-task" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" + +[[package]] +name = "futures-util" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + [[package]] name = "fxhash" version = "0.2.1" @@ -2016,7 +2557,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "wasi 0.9.0+wasi-snapshot-preview1", ] @@ -2027,7 +2568,7 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", @@ -2051,9 +2592,9 @@ dependencies = [ [[package]] name = "gilrs" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ba7c37bf8ea7ba0c3e3795dfa1a7771b1e47c4bb417c4d27c7b338d79685f" +checksum = "7d0342acdc7b591d171212e17c9350ca02383b86d5f9af33c6e3598e03a6c57e" dependencies = [ "fnv", "gilrs-core", @@ -2064,23 +2605,22 @@ dependencies = [ [[package]] name = "gilrs-core" -version = "0.4.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96a8d94a7fc5afd27e894e08a4cfe5a49237f85bcc7140e90721bad3399c7d02" +checksum = "6789d356476c3280a4e15365d23f62b4b4f1bcdac81fdd552f65807bce4666dd" dependencies = [ - "core-foundation 0.9.3", + "core-foundation", "io-kit-sys", "js-sys", "libc", "libudev-sys", "log", - "nix 0.24.3", - "rusty-xinput", + "nix 0.25.1", "uuid", "vec_map", "wasm-bindgen", "web-sys", - "winapi", + "windows 0.43.0", ] [[package]] @@ -2099,17 +2639,27 @@ dependencies = [ "serde", ] +[[package]] +name = "glam" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f597d56c1bd55a811a1be189459e8fad2bbc272616375602443bdfb37fa774" +dependencies = [ + "bytemuck", + "serde", +] + [[package]] name = "glob" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "globset" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" +checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" dependencies = [ "aho-corasick", "bstr", @@ -2130,17 +2680,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "glyph_brush_layout" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc32c2334f00ca5ac3695c5009ae35da21da8c62d255b5b96d56e2597a637a38" -dependencies = [ - "ab_glyph", - "approx", - "xi-unicode", -] - [[package]] name = "gpu-alloc" version = "0.5.3" @@ -2190,26 +2729,6 @@ dependencies = [ "svg_fmt", ] -[[package]] -name = "hash32" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" -dependencies = [ - "byteorder", -] - -[[package]] -name = "hash32-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59d2aba832b60be25c1b169146b27c64115470981b128ed84c8db18c1b03c6ff" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "hashbrown" version = "0.12.3" @@ -2247,7 +2766,17 @@ version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaadafd1beb6ad34cff5521987017ece5848f9ad5401fdb039bff896a643add4" dependencies = [ - "glam", + "glam 0.21.3", + "once_cell", +] + +[[package]] +name = "hexasphere" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "619ce654558681d7d0a7809e1b20249c7032ff13ee6baa7bb7ff64f7f28a906a" +dependencies = [ + "glam 0.22.0", "once_cell", ] @@ -2346,7 +2875,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "wasm-bindgen", "web-sys", @@ -2383,7 +2912,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7789f7f3c9686f96164f5109d69152de759e76e284f736bd57661c6df5091919" dependencies = [ - "core-foundation-sys 0.8.3", + "core-foundation-sys", "mach", ] @@ -2426,14 +2955,14 @@ checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" [[package]] name = "iyes_loopless" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20f42b3a59033b3372129b84850a6d39e02c25f3f170c4f8b84232b775602bb0" +checksum = "c47fd2cbdb1d7f295c25e6bfccfd78a84b6eef3055bc9f01b34ae861721b01ee" dependencies = [ - "bevy_app", - "bevy_ecs", - "bevy_time", - "bevy_utils", + "bevy_app 0.9.1", + "bevy_ecs 0.9.1", + "bevy_time 0.9.1", + "bevy_utils 0.9.1", ] [[package]] @@ -2450,6 +2979,20 @@ dependencies = [ "walkdir", ] +[[package]] +name = "jni" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + [[package]] name = "jni-sys" version = "0.3.0" @@ -2486,8 +3029,8 @@ version = "0.5.1" dependencies = [ "anyhow", "async-channel", - "base64", - "bevy", + "base64 0.20.0", + "bevy 0.9.1", "bevy-inspector-egui", "bevy-parallax", "bevy_ecs_dynamic", @@ -2512,6 +3055,7 @@ dependencies = [ "egui_extras", "either", "fluent", + "fluent_content", "fnv", "futures-lite", "getrandom 0.2.8", @@ -2552,9 +3096,9 @@ dependencies = [ [[package]] name = "kira" -version = "0.6.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "556d90f602ffc4996630769a645035b041786d1b927a17cfbc6a9c3000e62de9" +checksum = "cec4348608a23d372acceb18871ed6be4aa2036f135d48eabffe59258368e1fd" dependencies = [ "atomic-arena", "cpal", @@ -2596,11 +3140,11 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "leafwing-input-manager" -version = "0.6.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32953f440c0c48698cf354a78ccdb4fda4cb6ca1846f326e1280021fa333e158" +checksum = "4cbad9c683a5a2527e8cb3abc57d03af52e22ab9be1cc9b51e780c73e4a244be" dependencies = [ - "bevy", + "bevy 0.9.1", "derive_more", "itertools", "leafwing_input_manager_macros", @@ -2610,9 +3154,9 @@ dependencies = [ [[package]] name = "leafwing_input_manager_macros" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98664cb644020e9c60d50c49a4630eb0a44aa15008d859208c538d75a4216b9" +checksum = "5ec3d0a4b25f0e6a66547cc3a1eb98b8477814db58de8035063f3db42353a7de" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2632,15 +3176,21 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "winapi", ] +[[package]] +name = "libm" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" + [[package]] name = "libmimalloc-sys" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04d1c67deb83e6b75fa4fe3309e09cfeade12e7721d95322af500d3814ea60c9" +checksum = "dd8c7cbf8b89019683667e347572e6d55a7df7ea36b0c4ce69961b0cde67b174" dependencies = [ "cc", "libc", @@ -2678,37 +3228,39 @@ version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] name = "lyon_geom" -version = "0.17.7" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d89ccbdafd83d259403e22061be27bccc3254bba65cdc5303250c4227c8c8e" +checksum = "74df1ff0a0147282eb10699537a03baa7d31972b58984a1d44ce0624043fe8ad" dependencies = [ - "arrayvec 0.5.2", + "arrayvec", "euclid", "num-traits", ] [[package]] name = "lyon_path" -version = "0.17.7" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0a59fdf767ca0d887aa61d1b48d4bbf6a124c1a45503593f7d38ab945bfbc0" +checksum = "7da8358c012e5651e4619cfd0b5b75c0f77866181a01b0909aab4bae14adf660" dependencies = [ "lyon_geom", + "num-traits", ] [[package]] name = "lyon_tessellation" -version = "0.17.10" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7230e08dd0638048e46f387f255dbe7a7344a3e6705beab53242b5af25635760" +checksum = "2e48a1d4a9cef1075ebe0afbf16521db6c7942e6563c136fb15676dafc5135d7" dependencies = [ "float_next_after", "lyon_path", + "thiserror", ] [[package]] @@ -2769,9 +3321,9 @@ dependencies = [ [[package]] name = "mimalloc" -version = "0.1.32" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2374e2999959a7b583e1811a1ddbf1d3a4b9496eceb9746f1192a59d871eca" +checksum = "9dcb174b18635f7561a0c6c9fc2ce57218ac7523cf72c50af80e2d79ab8f3ba1" dependencies = [ "libmimalloc-sys", ] @@ -2844,6 +3396,28 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "naga" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "262d2840e72dbe250e8cf2f522d080988dfca624c4112c096238a4845f591707" +dependencies = [ + "bit-set", + "bitflags", + "codespan-reporting", + "hexf-parse", + "indexmap", + "log", + "num-traits", + "petgraph", + "pp-rs", + "rustc-hash", + "spirv", + "termcolor", + "thiserror", + "unicode-xid", +] + [[package]] name = "ndk" version = "0.5.0" @@ -2870,6 +3444,20 @@ dependencies = [ "thiserror", ] +[[package]] +name = "ndk" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" +dependencies = [ + "bitflags", + "jni-sys", + "ndk-sys 0.4.1+23.1.7779620", + "num_enum", + "raw-window-handle 0.5.0", + "thiserror", +] + [[package]] name = "ndk-context" version = "0.1.1" @@ -2882,7 +3470,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71bee8ea72d685477e28bd004cfe1bf99c754d688cd78cad139eae4089484d4" dependencies = [ - "android_logger", + "android_logger 0.10.1", "lazy_static", "libc", "log", @@ -2894,17 +3482,19 @@ dependencies = [ [[package]] name = "ndk-glue" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d0c4a7b83860226e6b4183edac21851f05d5a51756e97a1144b7f5a6b63e65f" +checksum = "0434fabdd2c15e0aab768ca31d5b7b333717f03cf02037d5a0a3ff3c278ed67f" dependencies = [ - "lazy_static", + "android_logger 0.11.3", "libc", "log", - "ndk 0.6.0", + "ndk 0.7.0", "ndk-context", "ndk-macro", - "ndk-sys 0.3.0", + "ndk-sys 0.4.1+23.1.7779620", + "once_cell", + "parking_lot 0.12.1", ] [[package]] @@ -2935,6 +3525,15 @@ dependencies = [ "jni-sys", ] +[[package]] +name = "ndk-sys" +version = "0.4.1+23.1.7779620" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" +dependencies = [ + "jni-sys", +] + [[package]] name = "nix" version = "0.22.3" @@ -2943,7 +3542,7 @@ checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf" dependencies = [ "bitflags", "cc", - "cfg-if 1.0.0", + "cfg-if", "libc", "memoffset", ] @@ -2956,19 +3555,20 @@ checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" dependencies = [ "bitflags", "cc", - "cfg-if 1.0.0", + "cfg-if", "libc", "memoffset", ] [[package]] name = "nix" -version = "0.24.3" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" dependencies = [ + "autocfg", "bitflags", - "cfg-if 1.0.0", + "cfg-if", "libc", ] @@ -2990,9 +3590,9 @@ dependencies = [ [[package]] name = "nom" -version = "7.1.1" +version = "7.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +checksum = "e5507769c4919c998e69e49c839d9dc6e693ede4cc4290d6ad8b41d4f09c548c" dependencies = [ "memchr", "minimal-lexical", @@ -3006,9 +3606,9 @@ checksum = "cf22e319b2e3cb517350572e3b70c6822e0a520abfb5c78f690e829a73e8d9f2" [[package]] name = "notify" -version = "5.0.0-pre.15" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "553f9844ad0b0824605c20fb55a661679782680410abfb1a8144c2e7e437e7a7" +checksum = "ed2c66da08abae1c024c01d635253e402341b4060a12e99b31c7594063bf490a" dependencies = [ "bitflags", "crossbeam-channel", @@ -3093,6 +3693,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -3173,9 +3774,9 @@ dependencies = [ [[package]] name = "object" -version = "0.30.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239da7f290cfa979f43f85a8efeee9a8a76d0827c356d37f9d3d7254d6b537fb" +checksum = "8d864c91689fdc196779b98dba0aceac6118594c2df6ee5d943eb6a8df4d107a" dependencies = [ "memchr", ] @@ -3186,7 +3787,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27f63c358b4fa0fbcfefd7c8be5cfc39c08ce2389f5325687e7762a48d30a5c1" dependencies = [ - "jni", + "jni 0.19.0", "ndk 0.6.0", "ndk-context", "num-derive", @@ -3205,9 +3806,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" +checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" [[package]] name = "openssl-probe" @@ -3229,9 +3830,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "owned_ttf_parser" -version = "0.17.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18904d3c65493a9f0d7542293d1a7f69bfdc309a6b9ef4f46dc3e58b0577edc5" +checksum = "2a5f3c7ca08b6879e7965fb25e24d1f5eeb32ea73f9ad99b3854778a38c57e93" dependencies = [ "ttf-parser", ] @@ -3269,7 +3870,7 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "instant", "libc", "redox_syscall", @@ -3283,7 +3884,7 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "redox_syscall", "smallvec", @@ -3347,6 +3948,12 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + [[package]] name = "pkg-config" version = "0.3.26" @@ -3384,7 +3991,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" dependencies = [ "autocfg", - "cfg-if 1.0.0", + "cfg-if", "libc", "log", "wepoll-ffi", @@ -3526,11 +4133,11 @@ dependencies = [ [[package]] name = "quinn_runtime_bevy" version = "0.1.0" -source = "git+https://github.com/fishfolk/bones.git#80cc48f29de61dbadf187040decef003f1e70001" +source = "git+https://github.com/fishfolk/bones.git#1f826dd939dfcb1fd7045f634b8008fa3ce3acff" dependencies = [ "async-executor", "async-io", - "bevy_tasks", + "bevy_tasks 0.9.1", "futures-lite", "pin-project", "quinn", @@ -3648,6 +4255,15 @@ dependencies = [ "cty", ] +[[package]] +name = "raw-window-handle" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a" +dependencies = [ + "cty", +] + [[package]] name = "rectangle-pack" version = "0.4.2" @@ -3723,11 +4339,11 @@ dependencies = [ [[package]] name = "ringbuf" -version = "0.2.8" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f65af18d50f789e74aaf23bbb3f65dcd22a3cb6e029b5bced149f6bd57c5c2a2" +checksum = "89e68dd9c1d8f7bb0c664e1556b1521809bc6fa62d92bb3b813adf8611caa0eb" dependencies = [ - "cache-padded", + "crossbeam-utils", ] [[package]] @@ -3736,7 +4352,18 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a" dependencies = [ - "base64", + "base64 0.13.1", + "bitflags", + "serde", +] + +[[package]] +name = "ron" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bff" +dependencies = [ + "base64 0.13.1", "bitflags", "serde", ] @@ -3753,11 +4380,20 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver", +] + [[package]] name = "rustix" -version = "0.36.5" +version = "0.36.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3807b5d10909833d3e9acd1eb5fb988f79376ff10fce42937de71a449c4c588" +checksum = "4feacf7db682c6c329c4ede12649cd36ecab0f3be5b7d74e6a20304725db4549" dependencies = [ "bitflags", "errno", @@ -3797,18 +4433,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" dependencies = [ - "base64", -] - -[[package]] -name = "rusty-xinput" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2aa654bc32eb9ca14cce1a084abc9dfe43949a4547c35269a094c39272db3bb" -dependencies = [ - "lazy_static", - "log", - "winapi", + "base64 0.13.1", ] [[package]] @@ -3859,8 +4484,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" dependencies = [ "bitflags", - "core-foundation 0.9.3", - "core-foundation-sys 0.8.3", + "core-foundation", + "core-foundation-sys", "libc", "security-framework-sys", ] @@ -3871,7 +4496,7 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" dependencies = [ - "core-foundation-sys 0.8.3", + "core-foundation-sys", "libc", ] @@ -3881,20 +4506,35 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ef965a420fe14fdac7dd018862966a4c14094f900e1650bbc71ddd7d580c8af" +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + [[package]] name = "serde" -version = "1.0.151" +version = "1.0.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fed41fc1a24994d044e6db6935e69511a1153b52c15eb42493b26fa87feba0" +checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.151" +version = "1.0.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "255abe9a125a985c05190d687b320c12f9b1f0b99445e608c21ba0782c719ad8" +checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" dependencies = [ "proc-macro2", "quote", @@ -3925,6 +4565,15 @@ dependencies = [ "unsafe-libyaml", ] +[[package]] +name = "sha1" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" +dependencies = [ + "sha1_smol", +] + [[package]] name = "sha1_smol" version = "1.0.0" @@ -3948,9 +4597,9 @@ checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" [[package]] name = "siphasher" -version = "0.2.3" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" [[package]] name = "slab" @@ -4005,11 +4654,60 @@ dependencies = [ "num-traits", ] +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + [[package]] name = "stdweb" -version = "0.1.3" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" +dependencies = [ + "discard", + "rustc_version", + "stdweb-derive", + "stdweb-internal-macros", + "stdweb-internal-runtime", + "wasm-bindgen", +] + +[[package]] +name = "stdweb-derive" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "serde_derive", + "syn", +] + +[[package]] +name = "stdweb-internal-macros" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" +dependencies = [ + "base-x", + "proc-macro2", + "quote", + "serde", + "serde_derive", + "serde_json", + "sha1", + "syn", +] + +[[package]] +name = "stdweb-internal-runtime" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e" +checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" [[package]] name = "str-buf" @@ -4031,11 +4729,10 @@ checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2" [[package]] name = "svgtypes" -version = "0.5.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c536faaff1a10837cfe373142583f6e27d81e96beba339147e77b67c9f260ff" +checksum = "22975e8a2bac6a76bb54f898a6b18764633b00e780330f0b689f65afb3975564" dependencies = [ - "float-cmp", "siphasher", ] @@ -4069,7 +4766,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "199a6417cd4115bac79289b64b859358ea050b7add0ceb364dc991f628c5b347" dependencies = [ - "arrayvec 0.7.2", + "arrayvec", "bitflags", "bytemuck", "lazy_static", @@ -4146,19 +4843,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "taffy" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec27dea659b100d489dffa57cf0efc6d7bfefb119af817b92cc14006c0b214e3" -dependencies = [ - "arrayvec 0.7.2", - "hash32", - "hash32-derive", - "num-traits", - "typenum", -] - [[package]] name = "termcolor" version = "1.1.3" @@ -4234,9 +4918,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.23.0" +version = "1.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eab6d665857cc6ca78d6e80303a02cea7a7851e85dfbd77cbdc09bd129f1ef46" +checksum = "1d9f76183f91ecfb55e1d7d5602bd1d979e38a3a522fe900241cf195624d67ae" dependencies = [ "autocfg", "pin-project-lite", @@ -4258,7 +4942,7 @@ version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -4327,9 +5011,9 @@ dependencies = [ [[package]] name = "ttf-parser" -version = "0.17.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375812fa44dab6df41c195cd2f7fecb488f6c09fbaafb62807488cefab642bff" +checksum = "dbf554b6e535f9a160b2ed4ea83f99000f21cbc0a693df26e258eaf2c226a151" [[package]] name = "turborand" @@ -4351,22 +5035,6 @@ dependencies = [ "rustc-hash", ] -[[package]] -name = "typenum" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" - -[[package]] -name = "ulid" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13a3aaa69b04e5b66cc27309710a569ea23593612387d67daaf102e73aa974fd" -dependencies = [ - "rand 0.8.5", - "serde", -] - [[package]] name = "unic-langid" version = "0.9.1" @@ -4512,7 +5180,7 @@ version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "wasm-bindgen-macro", ] @@ -4537,7 +5205,7 @@ version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "wasm-bindgen", "web-sys", @@ -4572,6 +5240,19 @@ version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +[[package]] +name = "wasm_thread" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a52fc987e67957cab58160d1ea273a2886972ef6f59c7fa0c02e9fe2c8e11706" +dependencies = [ + "async-channel", + "futures", + "js-sys", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "web-sys" version = "0.3.60" @@ -4584,16 +5265,20 @@ dependencies = [ [[package]] name = "webbrowser" -version = "0.7.1" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc6a3cffdb686fbb24d9fb8f03a213803277ed2300f11026a3afe1f108dc021b" +checksum = "e74f5ff7786c4c21f61ba8e30ea29c9745f06fca0a4a02d083b3c662583399e8" dependencies = [ - "jni", - "ndk-glue 0.6.2", + "core-foundation", + "dirs", + "jni 0.20.0", + "log", + "ndk-context", + "objc", + "raw-window-handle 0.5.0", "url", "web-sys", - "widestring", - "winapi", + "windows 0.43.0", ] [[package]] @@ -4627,19 +5312,41 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "277e967bf8b7820a76852645a6bce8bbd31c32fda2042e82d8e3ea75fda8892d" dependencies = [ - "arrayvec 0.7.2", + "arrayvec", + "js-sys", + "log", + "naga 0.9.0", + "parking_lot 0.12.1", + "raw-window-handle 0.4.3", + "smallvec", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "wgpu-core 0.13.2", + "wgpu-hal 0.13.2", + "wgpu-types 0.13.2", +] + +[[package]] +name = "wgpu" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81f643110d228fd62a60c5ed2ab56c4d5b3704520bd50561174ec4ec74932937" +dependencies = [ + "arrayvec", "js-sys", "log", - "naga", + "naga 0.10.0", "parking_lot 0.12.1", - "raw-window-handle", + "raw-window-handle 0.5.0", "smallvec", + "static_assertions", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "wgpu-core", - "wgpu-hal", - "wgpu-types", + "wgpu-core 0.14.2", + "wgpu-hal 0.14.1", + "wgpu-types 0.14.1", ] [[package]] @@ -4648,7 +5355,7 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b92788dec9d0c1bed849a1b83f01b2ee12819bf04a79c90f68e4173f7b5ba2" dependencies = [ - "arrayvec 0.7.2", + "arrayvec", "bit-vec", "bitflags", "cfg_aliases", @@ -4656,15 +5363,39 @@ dependencies = [ "copyless", "fxhash", "log", - "naga", + "naga 0.9.0", + "parking_lot 0.12.1", + "profiling", + "raw-window-handle 0.4.3", + "smallvec", + "thiserror", + "web-sys", + "wgpu-hal 0.13.2", + "wgpu-types 0.13.2", +] + +[[package]] +name = "wgpu-core" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6000d1284ef8eec6076fd5544a73125fd7eb9b635f18dceeb829d826f41724ca" +dependencies = [ + "arrayvec", + "bit-vec", + "bitflags", + "cfg_aliases", + "codespan-reporting", + "fxhash", + "log", + "naga 0.10.0", "parking_lot 0.12.1", "profiling", - "raw-window-handle", + "raw-window-handle 0.5.0", "smallvec", "thiserror", "web-sys", - "wgpu-hal", - "wgpu-types", + "wgpu-hal 0.14.1", + "wgpu-types 0.14.1", ] [[package]] @@ -4674,7 +5405,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20cbdfc3d0637dba3d5536b93adef3d26023a0b96f0e1ee5ee9560a401d9f646" dependencies = [ "android_system_properties", - "arrayvec 0.7.2", + "arrayvec", "ash", "bit-set", "bitflags", @@ -4692,17 +5423,56 @@ dependencies = [ "libloading", "log", "metal", - "naga", + "naga 0.9.0", + "objc", + "parking_lot 0.12.1", + "profiling", + "range-alloc", + "raw-window-handle 0.4.3", + "renderdoc-sys", + "thiserror", + "wasm-bindgen", + "web-sys", + "wgpu-types 0.13.2", + "winapi", +] + +[[package]] +name = "wgpu-hal" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cc320a61acb26be4f549c9b1b53405c10a223fbfea363ec39474c32c348d12f" +dependencies = [ + "android_system_properties", + "arrayvec", + "ash", + "bit-set", + "bitflags", + "block", + "core-graphics-types", + "d3d12", + "foreign-types", + "fxhash", + "glow", + "gpu-alloc", + "gpu-descriptor", + "js-sys", + "khronos-egl", + "libloading", + "log", + "metal", + "naga 0.10.0", "objc", "parking_lot 0.12.1", "profiling", "range-alloc", - "raw-window-handle", + "raw-window-handle 0.5.0", "renderdoc-sys", + "smallvec", "thiserror", "wasm-bindgen", "web-sys", - "wgpu-types", + "wgpu-types 0.14.1", "winapi", ] @@ -4716,10 +5486,13 @@ dependencies = [ ] [[package]] -name = "widestring" -version = "0.5.1" +name = "wgpu-types" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" +checksum = "fb6b28ef22cac17b9109b25b3bf8c9a103eeb293d7c5f78653979b09140375f6" +dependencies = [ + "bitflags", +] [[package]] name = "winapi" @@ -4761,6 +5534,34 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" +dependencies = [ + "windows_aarch64_msvc 0.37.0", + "windows_i686_gnu 0.37.0", + "windows_i686_msvc 0.37.0", + "windows_x86_64_gnu 0.37.0", + "windows_x86_64_msvc 0.37.0", +] + +[[package]] +name = "windows" +version = "0.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04662ed0e3e5630dfa9b26e4cb823b817f1a9addda855d973a9458c236556244" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.0", + "windows_i686_gnu 0.42.0", + "windows_i686_msvc 0.42.0", + "windows_x86_64_gnu 0.42.0", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.0", +] + [[package]] name = "windows-sys" version = "0.36.1" @@ -4801,6 +5602,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +[[package]] +name = "windows_aarch64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" + [[package]] name = "windows_aarch64_msvc" version = "0.42.0" @@ -4813,6 +5620,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +[[package]] +name = "windows_i686_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" + [[package]] name = "windows_i686_gnu" version = "0.42.0" @@ -4825,6 +5638,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +[[package]] +name = "windows_i686_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" + [[package]] name = "windows_i686_msvc" version = "0.42.0" @@ -4837,6 +5656,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" + [[package]] name = "windows_x86_64_gnu" version = "0.42.0" @@ -4855,6 +5680,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +[[package]] +name = "windows_x86_64_msvc" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" + [[package]] name = "windows_x86_64_msvc" version = "0.42.0" @@ -4863,31 +5694,30 @@ checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" [[package]] name = "winit" -version = "0.26.1" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b43cc931d58b99461188607efd7acb2a093e65fc621f54cad78517a6063e73a" +checksum = "bb796d6fbd86b2fd896c9471e6f04d39d750076ebe5680a3958f00f5ab97657c" dependencies = [ "bitflags", "cocoa", - "core-foundation 0.9.3", - "core-graphics 0.22.3", - "core-video-sys", + "core-foundation", + "core-graphics", "dispatch", "instant", - "lazy_static", "libc", "log", "mio", - "ndk 0.5.0", - "ndk-glue 0.5.2", - "ndk-sys 0.2.2", + "ndk 0.7.0", + "ndk-glue 0.7.0", "objc", - "parking_lot 0.11.2", + "once_cell", + "parking_lot 0.12.1", "percent-encoding", - "raw-window-handle", + "raw-window-handle 0.4.3", + "raw-window-handle 0.5.0", "wasm-bindgen", "web-sys", - "winapi", + "windows-sys 0.36.1", "x11-dl", ] @@ -4913,9 +5743,3 @@ dependencies = [ "winapi", "winapi-wsapoll", ] - -[[package]] -name = "xi-unicode" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" diff --git a/Cargo.toml b/Cargo.toml index 12dfda8d22..fa7bcc107a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,55 +1,53 @@ [package] -name = "jumpy" -version = "0.5.1" -description = "A tactical 2D shooter" -authors = ["The Fish Fight Game & Spicy Lobster Developers"] -license = "MIT OR Apache-2.0" -edition = "2021" +authors = ["The Fish Fight Game & Spicy Lobster Developers"] default-run = "jumpy" +description = "A tactical 2D shooter" +edition = "2021" +license = "MIT OR Apache-2.0" +name = "jumpy" +version = "0.5.1" [features] default = ["render"] -render = [ - "bevy/x11", - "bevy/png", - "bevy/filesystem_watcher", - "bevy/bevy_gilrs", -] +render = ["bevy/x11", "bevy/png", "bevy/filesystem_watcher", "bevy/bevy_gilrs"] [dependencies] -anyhow = "1.0.58" -async-channel = "1.7.1" -base64 = "0.13.0" -bevy-inspector-egui = { version = "0.13.0" } -bevy-parallax = "0.2.0" -bevy_ecs_dynamic = { git = "https://github.com/jakobhellermann/bevy_ecs_dynamic", rev = "aa7a051a49bd134cfd8c169542e16526bf2b36b3" } -bevy_ecs_tilemap = { version = "0.7.0", features = ["atlas"] } -bevy_egui = "0.16.1" -bevy_fluent = "0.4.0" -bevy_framepace = "0.7" -bevy_ggrs = { git = "https://github.com/zicklag/bevy_ggrs.git", branch = "jumpy" } -bevy_kira_audio = { version = "0.12.0", features = ["ogg"], default-features = false } +anyhow = "1.0.58" +async-channel = "1.7.1" +base64 = "0.20" +bevy-inspector-egui = { version = "0.16" } +bevy-parallax = "0.3.0" +bevy_ecs_dynamic = { git = "https://github.com/jakobhellermann/bevy_ecs_dynamic" } +bevy_ecs_tilemap = { version = "0.9.0", features = ["atlas"] } +bevy_egui = "0.18" +bevy_fluent = "0.5" +bevy_framepace = "0.9" +bevy_ggrs = { git = "https://github.com/zicklag/bevy_ggrs.git", branch = "jumpy" } +bevy_kira_audio = { version = "0.13", features = ["ogg"], default-features = false } # bevy_mod_js_scripting = { git = "https://github.com/zicklag/bevy_mod_js_scripting.git", branch = "jumpy" } -bevy_prototype_lyon = "0.6.0" -bevy_system_graph = "0.3.0" -bevy_tweening = { version = "0.5", default-features = false } +bevy_prototype_lyon = "0.7" +bevy_system_graph = "0.4" +bevy_tweening = { version = "0.6", default-features = false } bitfield = "0.14.0" blocking = "1.2.0" -bones_has_load_progress = { git = "https://github.com/fishfolk/bones.git", features = ["bevy_egui"] } -bones_matchmaker_proto = { git = "https://github.com/fishfolk/bones.git" } bones_camera_shake = { git = "https://github.com/DRuppFv/bones", branch = "camera_shake_bevy0.8" } +bones_has_load_progress = { git = "https://github.com/fishfolk/bones.git", features = [ + "bevy_egui", +] } +bones_matchmaker_proto = { git = "https://github.com/fishfolk/bones.git" } bytemuck = "1.12.3" bytes = "1.2.1" clap = { version = "4.0.18", features = ["derive", "env"] } directories = "4.0.1" -egui_extras = "0.19.0" +egui_extras = "0.20" either = "1.8.0" fluent = "0.16.0" +fluent_content = "0.0.3" fnv = "1.0.7" futures-lite = "1.12.0" getrandom = { version = "0.2", features = ["js"] } -iyes_loopless = "0.8.0" -leafwing-input-manager = { version = "0.6.1", default-features = false } +iyes_loopless = "0.9" +leafwing-input-manager = { version = "0.7", default-features = false } log = { version = "0.4.17", features = ["release_max_level_debug"] } mimalloc = { version = "0.1.32", default-features = false } normalize-path = "0.2.0" @@ -68,30 +66,29 @@ turborand = { version = "0.8.0", features = ["atomic", "serialize"] } unic-langid = "0.9.0" [dependencies.bevy] -version = "0.8" default-features = false -features = [ - "x11", - "png", - "filesystem_watcher", - "bevy_gilrs" -] +features = ["x11", "png", "filesystem_watcher", "bevy_gilrs"] +version = "0.9" [target.'cfg(target_arch = "wasm32")'.dependencies] wasm-bindgen = "0.2.83" -web-sys = { version = "0.3", features = ["Window","Location","Storage"] } +web-sys = { version = "0.3", features = ["Window", "Location", "Storage"] } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] -quinn = { version = "0.9", default-features = false, features = ["futures-io", "native-certs", "tls-rustls"] } +quinn = { version = "0.9", default-features = false, features = [ + "futures-io", + "native-certs", + "tls-rustls", +] } quinn_runtime_bevy = { git = "https://github.com/fishfolk/bones.git" } [profile.dev.package."*"] -opt-level = 3 # Set this to 3 if the game becomes slow to respond during gameplay -debug = true +debug = true +opt-level = 3 # Set this to 3 if the game becomes slow to respond during gameplay [profile.release] -lto = true -codegen-units = 1 # Improved rapier physics perf, so it might help other stuff, too +codegen-units = 1 # Improved rapier physics perf, so it might help other stuff, too +lto = true [patch.crates-io] # Fix for https://github.com/bevyengine/bevy/issues/6790 diff --git a/src/animation.rs b/src/animation.rs index 38a49319a0..ab4789edb7 100644 --- a/src/animation.rs +++ b/src/animation.rs @@ -161,19 +161,20 @@ fn animate_sprites( for (i, atlas) in pending_stacks.into_iter().enumerate() { if let Some(atlas) = atlas { let stack_ent = commands - .spawn() - .insert_bundle(SpriteSheetBundle { - texture_atlas: atlas.clone_weak(), - sprite: TextureAtlasSprite { - index: sprite_index, - flip_x: animated_sprite.flip_x, - flip_y: animated_sprite.flip_y, + .spawn(( + SpriteSheetBundle { + texture_atlas: atlas.clone_weak(), + sprite: TextureAtlasSprite { + index: sprite_index, + flip_x: animated_sprite.flip_x, + flip_y: animated_sprite.flip_y, + ..default() + }, + transform: Transform::from_xyz(0.0, 0.0, (i + 1) as f32 * STACK_Z_DIFF), ..default() }, - transform: Transform::from_xyz(0.0, 0.0, (i + 1) as f32 * STACK_Z_DIFF), - ..default() - }) - .insert(StackedAtlas) + StackedAtlas, + )) .id(); commands.entity(sprite_ent).add_child(stack_ent); } diff --git a/src/assets.rs b/src/assets.rs index 60ab482d8d..7e5a5b2554 100644 --- a/src/assets.rs +++ b/src/assets.rs @@ -267,6 +267,8 @@ impl AssetLoader for PlayerMetaLoader { meta.spritesheet.tile_size.as_vec2(), meta.spritesheet.columns, meta.spritesheet.rows, + None, + None, )) .with_dependency(atlas_path.clone()), ); @@ -281,6 +283,8 @@ impl AssetLoader for PlayerMetaLoader { meta.spritesheet.tile_size.as_vec2(), meta.spritesheet.columns, meta.spritesheet.rows, + None, + None, )), ); meta.spritesheet.decoration_handles.push(atlas_handle); @@ -653,3 +657,12 @@ impl AssetLoader for EguiFontLoader { &["ttf"] } } + +#[derive(Debug, Clone, Resource, Deref, DerefMut)] +pub struct EguiFontDefinitions(pub egui::FontDefinitions); + +impl EguiFontDefinitions { + pub fn get_fonts(&self) -> &egui::FontDefinitions { + &self.0 + } +} diff --git a/src/audio.rs b/src/audio.rs index 39f384e217..4174bd144e 100644 --- a/src/audio.rs +++ b/src/audio.rs @@ -24,13 +24,13 @@ impl Plugin for AudioPlugin { pub struct MusicChannel; pub struct EffectsChannel; -#[derive(Clone, Debug, Default)] +#[derive(Clone, Debug, Default, Resource)] pub struct CurrentMusic { pub instance: Handle, pub idx: usize, } -#[derive(Deref, DerefMut, Clone, Debug, Default)] +#[derive(Deref, DerefMut, Clone, Debug, Default, Resource)] pub struct ShuffledPlaylist(pub Vec>); fn setup_audio_defaults( diff --git a/src/camera.rs b/src/camera.rs index 292d5ed646..d2cb37bccd 100644 --- a/src/camera.rs +++ b/src/camera.rs @@ -48,44 +48,47 @@ pub struct CameraBundle { pub fn spawn_game_camera(commands: &mut Commands) -> Entity { commands - .spawn_bundle(CameraBundle { - camera_bundle: Camera2dBundle { - // This is different than just omitting this transform field because - // Camera2DBundle's default transform is not the same as Transform::default(). - transform: default(), - ..default() + .spawn(( + CameraBundle { + camera_bundle: Camera2dBundle { + // This is different than just omitting this transform field because + // Camera2DBundle's default transform is not the same as Transform::default(). + transform: default(), + ..default() + }, + render_layers: RenderLayers::layer(GameRenderLayers::DEFAULT) + .with(GameRenderLayers::GAME), + parallax_camera_component: ParallaxCameraComponent, }, - render_layers: RenderLayers::layer(GameRenderLayers::DEFAULT) - .with(GameRenderLayers::GAME), - parallax_camera_component: ParallaxCameraComponent, - }) - .insert(CameraShake::new(90.0, Vec2::splat(100.0), 0.5)) - .insert(Name::new("Game Camera")) - .insert(GameCamera) + CameraShake::new(90.0, Vec2::splat(100.0), 0.5), + Name::new("Game Camera"), + GameCamera, + )) .id() } pub fn spawn_editor_camera(commands: &mut Commands) -> Entity { commands - .spawn_bundle(CameraBundle { - camera_bundle: Camera2dBundle { - // This is different than just omitting this transform field because - // Camera2DBundle's default transform is not the same as Transform::default(). - transform: default(), - camera: Camera { - // Disable editor camera by default - is_active: false, - ..default() + .spawn(( + CameraBundle { + camera_bundle: Camera2dBundle { + // This is different than just omitting this transform field because + // Camera2DBundle's default transform is not the same as Transform::default(). + transform: default(), + camera: Camera { + // Disable editor camera by default + is_active: false, + ..default() + }, + + render_layers: RenderLayers::layer(GameRenderLayers::DEFAULT) + .with(GameRenderLayers::EDITOR), + parallax_camera_component: ParallaxCameraComponent, }, - ..default() }, - - render_layers: RenderLayers::layer(GameRenderLayers::DEFAULT) - .with(GameRenderLayers::EDITOR), - parallax_camera_component: ParallaxCameraComponent, - }) - .insert(Name::new("Editor Camera")) - .insert(EditorCamera) + Name::new("Editor Camera"), + EditorCamera, + )) .id() } diff --git a/src/debug.rs b/src/debug.rs index f5c44dbaf9..a2554ffbba 100644 --- a/src/debug.rs +++ b/src/debug.rs @@ -1,4 +1,4 @@ -use bevy_inspector_egui::{WorldInspectorParams, WorldInspectorPlugin}; +use bevy_inspector_egui::quick::WorldInspectorPlugin; use crate::prelude::*; @@ -6,10 +6,11 @@ pub struct DebugPlugin; impl Plugin for DebugPlugin { fn build(&self, app: &mut App) { - app.insert_resource(WorldInspectorParams { - enabled: false, - ..default() - }) - .add_plugin(WorldInspectorPlugin::new()); + app + // .insert_resource(WorldInspectorParams { + // enabled: false, + // ..default() + // }) + .add_plugin(WorldInspectorPlugin::new()); } } diff --git a/src/loading.rs b/src/loading.rs index 0c76937178..245f71b043 100644 --- a/src/loading.rs +++ b/src/loading.rs @@ -11,7 +11,7 @@ use leafwing_input_manager::{ use crate::{ camera::{spawn_editor_camera, spawn_game_camera}, config::ENGINE_CONFIG, - metadata::{BorderImageMeta, GameMeta, PlayerMeta, Settings}, + metadata::{BorderImageMeta, GameHandle, GameMeta, PlayerMeta, Settings}, platform::Storage, player::{input::PlayerInputs, MAX_PLAYERS}, prelude::*, @@ -44,13 +44,13 @@ impl Plugin for LoadingPlugin { pub struct PlayerInputCollector(pub usize); fn setup(mut commands: Commands) { - commands - .spawn() - .insert(Name::new("Menu Input Collector")) - .insert_bundle(InputManagerBundle { + commands.spawn(( + Name::new("Menu Input Collector"), + InputManagerBundle { input_map: menu_input_map(), ..default() - }); + }, + )); // Spawn the game camera spawn_game_camera(&mut commands); @@ -61,7 +61,7 @@ fn setup(mut commands: Commands) { // Condition system used to make sure game assets have loaded fn game_assets_loaded( - game_handle: Res>, + game_handle: Res, loading_resources: LoadingResources, game_assets: Res>, ) -> bool { @@ -93,7 +93,7 @@ pub struct GameLoader<'w, 's> { skip_next_asset_update_event: Local<'s, bool>, camera_projections: Query<'w, 's, &'static mut OrthographicProjection>, commands: Commands<'w, 's>, - game_handle: Res<'w, Handle>, + game_handle: Res<'w, GameHandle>, clear_color: ResMut<'w, ClearColor>, game_assets: ResMut<'w, Assets>, egui_ctx: Option>, @@ -163,14 +163,14 @@ impl<'w, 's> GameLoader<'w, 's> { let settings = storage.get(Settings::STORAGE_KEY); let settings = settings.as_ref().unwrap_or(&game.default_settings); for player in 0..MAX_PLAYERS { - commands - .spawn() - .insert(Name::new(format!("Player Input Collector {player}"))) - .insert(PlayerInputCollector(player)) - .insert_bundle(InputManagerBundle { + commands.spawn(( + Name::new(format!("Player Input Collector {player}")), + PlayerInputCollector(player), + InputManagerBundle { input_map: settings.player_controls.get_input_map(player), ..default() - }); + }, + )); } // Select default character for all players diff --git a/src/localization.rs b/src/localization.rs index f5ca4b2345..0ea18c198f 100644 --- a/src/localization.rs +++ b/src/localization.rs @@ -1,10 +1,9 @@ use std::borrow::Borrow; use bevy::{prelude::*, utils::HashMap}; -use bevy_fluent::{ - exts::fluent::content::Request, BundleAsset, Content, FluentPlugin, Locale, Localization, -}; +use bevy_fluent::{BundleAsset, FluentPlugin, Locale, Localization}; use fluent::FluentArgs; +use fluent_content::{Content, Request}; /// Plugin for initializing and loading the [`Localization`] resource. pub struct LocalizationPlugin; diff --git a/src/main.rs b/src/main.rs index 570f2b8e36..cc55bef345 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,9 +7,6 @@ #![allow(clippy::forget_non_drop)] #![allow(clippy::too_many_arguments)] -use bevy::{ - asset::AssetServerSettings, log::LogSettings, render::texture::ImageSettings, text::TextPlugin, -}; use bevy_ggrs::{ ggrs::{self}, GGRSPlugin, @@ -71,6 +68,7 @@ use crate::{ schedule::RollbackSystems, session::SessionPlugin, ui::UiPlugin, + // ui::UiPlugin, utils::{run_criteria_game_not_paused, UtilsPlugin}, workarounds::WorkaroundsPlugin, }; @@ -124,28 +122,45 @@ pub fn main() { let mut app = App::new(); - app.insert_resource(WindowDescriptor { - title: "Fish Folk: Jumpy".to_string(), - fit_canvas_to_parent: true, - ..default() - }) - .insert_resource(ImageSettings::default_nearest()); + app.add_plugins({ + let mut builder = DefaultPlugins.build(); - // Configure log level - app.insert_resource(LogSettings { - filter: engine_config.log_level.clone(), - ..default() - }); + // Configure Window + builder = builder + .set(WindowPlugin { + window: WindowDescriptor { + title: "Fish Folk: Jumpy".to_string(), + fit_canvas_to_parent: true, + ..default() + }, + ..default() + }) + .set(ImagePlugin::default_nearest()); - // Configure asset server - let mut asset_server_settings = AssetServerSettings { - watch_for_changes: engine_config.hot_reload, - ..default() - }; - if let Some(asset_dir) = &engine_config.asset_dir { - asset_server_settings.asset_folder = asset_dir.clone(); - } - app.insert_resource(asset_server_settings); + // Configure asset server + let mut asset_plugin = bevy::prelude::AssetPlugin { + watch_for_changes: engine_config.hot_reload, + ..default() + }; + if let Some(asset_folder) = &engine_config.asset_dir { + asset_plugin.asset_folder = asset_folder.clone(); + } + builder = builder.set(asset_plugin); + + // Configure log level + builder = builder.set(bevy::log::LogPlugin { + filter: engine_config.log_level.clone(), + ..default() + }); + + #[cfg(feature = "schedule_graph")] + { + builder.disable::() + } + + #[cfg(not(feature = "schedule_graph"))] + builder + }); // Initialize resources app.insert_resource(ClearColor(Color::BLACK)) @@ -196,19 +211,10 @@ pub fn main() { app.insert_resource(rollback_plugin); // Install game plugins - - app.add_plugins_with(DefaultPlugins, |group| { - // TODO: We should figure out how to not include these dependencies, so we can remove - // this disable section. - group - .disable::() - .disable::() - }) - .add_plugin(LinesPlugin) - .add_plugin(UiPlugin); - app.add_plugin(bevy_tweening::TweeningPlugin) .add_plugin(bevy_framepace::FramepacePlugin) + .add_plugin(LinesPlugin) + .add_plugin(UiPlugin) .add_plugin(AudioPlugin) .add_plugin(UtilsPlugin) .add_plugin(MetadataPlugin) diff --git a/src/map.rs b/src/map.rs index 9786118e68..3a28d19b1d 100644 --- a/src/map.rs +++ b/src/map.rs @@ -7,6 +7,7 @@ use bevy_prototype_lyon::{prelude::*, shapes::Rectangle}; use crate::{ camera::GameRenderLayers, metadata::{MapElementMeta, MapLayerKind, MapLayerMeta, MapMeta}, + networking::RollbackIdWrapper, physics::collisions::{CollisionLayerTag, TileCollision}, player::{PlayerIdx, PlayerKillCommand}, prelude::*, @@ -66,7 +67,7 @@ pub fn hydrate_map( element_assets: ResMut>, // mut active_scripts: ResMut, // mut map_scripts: ResMut, - mut rids: ResMut, + mut rids: ResMut, unspawned_maps: Query<(Entity, &AssetHandle), Without>, mut session_manager: SessionManager, ) { @@ -106,11 +107,12 @@ pub fn hydrate_map( // Spawn the grid let grid_entity = commands - .spawn() - .insert(Name::new("Grid")) - .insert(MapGridView) - .insert_bundle(grid) - .insert(RenderLayers::layer(GameRenderLayers::EDITOR)) + .spawn(( + Name::new("Grid"), + MapGridView, + grid, + RenderLayers::layer(GameRenderLayers::EDITOR), + )) .id(); map_children.push(grid_entity); @@ -129,8 +131,7 @@ pub fn hydrate_map( match &layer.kind { MapLayerKind::Tile(tile_layer) => { let layer_entity = commands - .spawn() - .insert(Name::new(format!("Map Layer: {layer_id}"))) + .spawn(Name::new(format!("Map Layer: {layer_id}"))) .id(); let mut storage = TileStorage::empty(tilemap_size); @@ -143,7 +144,7 @@ pub fn hydrate_map( let half_tile_x = map.tile_size.x as f32 / 2.0; let half_tile_y = map.tile_size.y as f32 / 2.0; - let mut tile_entity_commands = commands.spawn(); + let mut tile_entity_commands = commands.spawn_empty(); tile_entity_commands .insert(Name::new(format!( @@ -153,7 +154,7 @@ pub fn hydrate_map( .insert_bundle(TileBundle { position: tile_pos, tilemap_id: TilemapId(layer_entity), - texture: TileTexture(tile.idx), + texture_index: TileTextureIndex(tile.idx), ..default() }) .insert_bundle(TransformBundle { @@ -181,6 +182,7 @@ pub fn hydrate_map( layer_commands .insert_bundle(TilemapBundle { + storage, grid_size: TilemapGridSize { x: map.grid_size.x as f32, y: map.grid_size.y as f32, @@ -189,9 +191,10 @@ pub fn hydrate_map( x: map.tile_size.x as f32, y: map.tile_size.y as f32, }, - texture: TilemapTexture(tile_layer.tilemap_handle.inner.clone_weak()), - storage, transform: Transform::from_xyz(0.0, 0.0, -100.0 + i as f32), + texture: TilemapTexture::Single( + tile_layer.tilemap_handle.inner.clone_weak(), + ), ..default() }) .push_children(&tile_entities); @@ -218,25 +221,19 @@ pub fn hydrate_map( current_map_element_idx += 1; let entity = commands - .spawn() - .insert(Name::new(format!( - "Map Element ( {layer_id} ): {element_name}" - ))) - .insert(Visibility::default()) - .insert(ComputedVisibility::default()) - .insert(Transform::from_xyz( - element.pos.x, - element.pos.y, - -100.0 + i as f32, + .spawn(( + Name::new(format!("Map Element ( {layer_id} ): {element_name}")), + Visibility::default(), + ComputedVisibility::default(), + Transform::from_xyz(element.pos.x, element.pos.y, -100.0 + i as f32), + GlobalTransform::default(), + sort, )) - .insert(GlobalTransform::default()) - .insert(sort) .with_children(|parent| { - parent - .spawn() - .insert(Name::new("Map Element Debug Rect")) - .insert(RenderLayers::layer(GameRenderLayers::EDITOR)) - .insert_bundle(GeometryBuilder::build_as( + parent.spawn(( + Name::new("Map Element Debug Rect"), + RenderLayers::layer(GameRenderLayers::EDITOR), + GeometryBuilder::build_as( &Rectangle { extents: element_meta.editor_size, ..default() @@ -247,7 +244,8 @@ pub fn hydrate_map( 0.5, )), default(), - )); + ), + )); }) .insert(element.element_handle.inner.clone()) .insert(Rollback::new(rids.next_id())) diff --git a/src/map/elements/blunderbuss.rs b/src/map/elements/blunderbuss.rs new file mode 100644 index 0000000000..3191b03077 --- /dev/null +++ b/src/map/elements/blunderbuss.rs @@ -0,0 +1,178 @@ +use crate::networking::RollbackIdWrapper; + +use super::*; + +#[derive(Reflect, Component, Clone, Debug)] +#[reflect(Component)] +pub struct IdleBlunderBussItem { + /// The entity ID of the map element that spawned the crate + spawner: Entity, +} + +impl Default for IdleBlunderBussItem { + fn default() -> Self { + Self { + spawner: crate::utils::invalid_entity(), + } + } +} + +pub struct BlunderBussPlugin; + +impl Plugin for BlunderBussPlugin { + fn build(&self, app: &mut App) { + app.add_rollback_system(RollbackStage::PreUpdate, pre_update_in_game) + .add_rollback_system(RollbackStage::Update, update_idle_blunderbuss); + } +} + +fn pre_update_in_game( + mut commands: Commands, + non_hydrated_map_elements: Query< + (Entity, &Sort, &Handle, &Transform), + Without, + >, + element_assets: ResMut>, +) { + let mut elements = non_hydrated_map_elements.iter().collect::>(); + elements.sort_by_key(|x| x.1); + for (entity, _sort, map_element_handle, transform) in elements { + let map_element = element_assets.get(map_element_handle).unwrap(); + if let BuiltinElementKind::Blunderbuss { + body_size, + body_offset, + atlas_handle, + .. + } = &map_element.builtin + { + commands.entity(entity).insert(MapElementHydrated); + + commands + .spawn() + .insert(Rollback::new(ridp.next_id())) + .insert(Item { + script: "core:blunderbass".into(), + }) + .insert(Name::new("Item: Blunderbass")) + .insert(IdleBlunderBussItem { spawner: entity }) + .insert(AnimatedSprite { + start: 0, + end: 0, + atlas: atlas_handle.inner.clone(), + repeat: false, + ..default() + }) + .insert(map_element_handle.clone_weak()) + .insert_bundle(VisibilityBundle::default()) + .insert(MapRespawnPoint(transform.translation)) + .insert_bundle(TransformBundle { + local: *transform, + ..default() + }) + .insert(KinematicBody { + size: *body_size, + offset: *body_offset, + gravity: 1.0, + has_mass: true, + has_friction: true, + ..default() + }); + } + } +} + +fn update_idle_blunderbuss( + mut commands: Commands, + players: Query<(&AnimatedSprite, &Transform, &KinematicBody), With>, + mut blunderbusses: Query< + ( + &Rollback, + Entity, + &IdleBlunderBussItem, + &mut Transform, + &mut AnimatedSprite, + &mut KinematicBody, + &Handle, + Option<&Parent>, + Option<&ItemUsed>, + Option<&ItemDropped>, + ), + Without, + >, + mut ridp: ResMut, + element_assets: ResMut>, + effects: Res>, +) { + let mut items = blunderbusses.iter_mut().collect::>(); + items.sort_by_key(|x| x.0.id()); + for ( + _, + item_ent, + blunderbuss, + mut transform, + mut sprite, + mut body, + meta_handle, + parent, + used, + dropped, + ) in items + { + let meta = element_assets.get(meta_handle).unwrap(); + let BuiltinElementKind::Blunderbuss { + grab_offset, + atlas_handle, + bullet_sound_handle, + bullet_velocity, + .. + } = &meta.builtin else { + unreachable!(); + }; + + // If the item is being held + if let Some(parent) = parent { + let (player_sprite, player_transform, player_body, ..) = + players.get(parent.get()).expect("Parent is not player"); + + // Deactivate items while held + body.is_deactivated = true; + + // Flip the sprite to match the player orientation + let flip = player_sprite.flip_x; + sprite.flip_x = flip; + let flip_factor = if flip { -1.0 } else { 1.0 }; + transform.translation.x = grab_offset.x * flip_factor; + transform.translation.y = grab_offset.y; + transform.translation.z = 1.0; + + // If the item is being used + if used.is_some() { + // Spawn a bullet + } + } + + // If the item was dropped + if let Some(dropped) = dropped { + println!("Dropped"); + + commands.entity(item_ent).remove::(); + let (.., player_transform, player_body) = + players.get(dropped.player).expect("Parent is not a player"); + + // Re-activate physicsc + body.is_deactivated = false; + + // Put sword in rest position + sprite.index = 0; + sprite.start = 0; + sprite.end = 0; + body.velocity = player_body.velocity; + body.is_spawning = true; + + // Drop item at middle of player + transform.translation.y = player_transform.translation.y - 30.0; + transform.translation.x = player_transform.translation.x; + transform.translation.z = player_transform.translation.z; + } + } +} diff --git a/src/map/elements/crate_item.rs b/src/map/elements/crate_item.rs index 847ae38450..d362159b28 100644 --- a/src/map/elements/crate_item.rs +++ b/src/map/elements/crate_item.rs @@ -3,7 +3,9 @@ //! This module is inconsistently named with the rest of the modules ( i.e. has an `_item` suffix ) //! because `crate` is a Rust keyword. -use crate::{physics::collisions::TileCollision, player::PlayerKillCommand}; +use crate::{ + networking::RollbackIdWrapper, physics::collisions::TileCollision, player::PlayerKillCommand, +}; use super::*; @@ -63,7 +65,7 @@ fn pre_update_in_game( (Entity, &Sort, &Handle, &Transform), Without, >, - mut ridp: ResMut, + mut ridp: ResMut, element_assets: ResMut>, ) { // Hydrate any newly-spawned crates @@ -80,36 +82,36 @@ fn pre_update_in_game( { commands.entity(entity).insert(MapElementHydrated); - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(Item { + commands.spawn(( + Rollback::new(ridp.next_id()), + Item { script: "core:crate".into(), - }) - .insert(IdleCrateItem { spawner: entity }) - .insert(Name::new("Item: Crate")) - .insert(AnimatedSprite { + }, + IdleCrateItem { spawner: entity }, + Name::new("Item: Crate"), + AnimatedSprite { start: 0, end: 0, atlas: atlas_handle.inner.clone(), repeat: false, ..default() - }) - .insert(map_element_handle.clone_weak()) - .insert_bundle(VisibilityBundle::default()) - .insert(MapRespawnPoint(transform.translation)) - .insert_bundle(TransformBundle { + }, + map_element_handle.clone_weak(), + VisibilityBundle::default(), + MapRespawnPoint(transform.translation), + TransformBundle { local: *transform, ..default() - }) - .insert(KinematicBody { + }, + KinematicBody { size: *body_size, offset: *body_offset, gravity: 1.0, has_mass: true, has_friction: true, ..default() - }); + }, + )); } } } @@ -132,7 +134,7 @@ fn update_idle_crates( ), Without, >, - mut ridp: ResMut, + mut ridp: ResMut, element_assets: ResMut>, ) { let mut items = grenades.iter_mut().collect::>(); @@ -183,34 +185,34 @@ fn update_idle_crates( commands.entity(item_ent).despawn(); // Spawn a new, lit grenade - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(Name::new("Crate ( Thrown )")) - .insert(Transform::from_translation( + commands.spawn(( + Rollback::new(ridp.next_id()), + Name::new("Crate ( Thrown )"), + Transform::from_translation( player_transform.translation + (*grab_offset * horizontal_flip_factor).extend(0.0), - )) - .insert(GlobalTransform::default()) - .insert(Visibility::default()) - .insert(ComputedVisibility::default()) - .insert(AnimatedSprite { + ), + GlobalTransform::default(), + Visibility::default(), + ComputedVisibility::default(), + AnimatedSprite { atlas: atlas_handle.inner.clone(), ..default() - }) - .insert(meta_handle.clone_weak()) - .insert(body.clone()) - .insert(ThrownCrateItem { + }, + meta_handle.clone_weak(), + body.clone(), + ThrownCrateItem { spawner: crate_item.spawner, owner: parent.get(), ..default() - }) - .insert(KinematicBody { + }, + KinematicBody { velocity: *throw_velocity * horizontal_flip_factor + player_body.velocity, is_deactivated: false, fall_through: true, ..body.clone() - }); + }, + )); } } @@ -255,7 +257,7 @@ fn update_thrown_crates( ), Without, >, - mut ridp: ResMut, + mut ridp: ResMut, element_assets: ResMut>, player_inputs: Res, effects: Res>, @@ -313,24 +315,22 @@ fn update_thrown_crates( .remove::(); // Spawn the explosion sprite entity - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(*transform) - .insert(GlobalTransform::default()) - .insert(Visibility::default()) - .insert(ComputedVisibility::default()) - .insert(AnimatedSprite { + commands.spawn(( + Rollback::new(ridp.next_id()), + *transform, + GlobalTransform::default(), + Visibility::default(), + ComputedVisibility::default(), + AnimatedSprite { start: 0, end: *breaking_anim_length, atlas: breaking_atlas_handle.inner.clone(), repeat: false, fps: *breaking_anim_fps, ..default() - }) - .insert(Lifetime::new( - *breaking_anim_fps * *breaking_anim_length as f32, - )); + }, + Lifetime::new(*breaking_anim_fps * *breaking_anim_length as f32), + )); } } } diff --git a/src/map/elements/grenade.rs b/src/map/elements/grenade.rs index a52f854307..b3dd500d40 100644 --- a/src/map/elements/grenade.rs +++ b/src/map/elements/grenade.rs @@ -2,6 +2,8 @@ use bones_camera_shake::CameraTrauma; use std::time::Duration; +use crate::networking::RollbackIdWrapper; + use super::*; pub struct GrenadePlugin; @@ -59,7 +61,7 @@ fn pre_update_in_game( (Entity, &Sort, &Handle, &Transform), Without, >, - mut ridp: ResMut, + mut ridp: ResMut, element_assets: ResMut>, ) { // Hydrate any newly-spawned grenades @@ -78,29 +80,28 @@ fn pre_update_in_game( { commands.entity(entity).insert(MapElementHydrated); - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(Item { + commands.spawn(( + Rollback::new(ridp.next_id()), + Item { script: "core:grenade".into(), - }) - .insert(IdleGrenade { spawner: entity }) - .insert(Name::new("Item: Grenade")) - .insert(AnimatedSprite { + }, + IdleGrenade { spawner: entity }, + Name::new("Item: Grenade"), + AnimatedSprite { start: 0, end: 0, atlas: atlas_handle.inner.clone(), repeat: false, ..default() - }) - .insert(map_element_handle.clone_weak()) - .insert_bundle(VisibilityBundle::default()) - .insert(MapRespawnPoint(transform.translation)) - .insert_bundle(TransformBundle { + }, + map_element_handle.clone_weak(), + VisibilityBundle::default(), + MapRespawnPoint(transform.translation), + TransformBundle { local: *transform, ..default() - }) - .insert(KinematicBody { + }, + KinematicBody { size: *body_size, offset: *body_offset, gravity: 1.0, @@ -109,7 +110,8 @@ fn pre_update_in_game( can_rotate: *can_rotate, bouncyness: *bouncyness, ..default() - }); + }, + )); } } } @@ -239,7 +241,7 @@ fn update_lit_grenades( ), Without, >, - mut ridp: ResMut, + mut ridp: ResMut, element_assets: ResMut>, player_inputs: Res, effects: Res>, @@ -344,34 +346,35 @@ fn update_lit_grenades( let mut spawn_transform = global_transform.compute_transform(); spawn_transform.rotation = Quat::IDENTITY; - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(spawn_transform) - .insert(GlobalTransform::default()) - .insert(Visibility::default()) - .insert(ComputedVisibility::default()) - .insert(DamageRegion { + commands.spawn(( + Rollback::new(ridp.next_id()), + spawn_transform, + GlobalTransform::default(), + Visibility::default(), + ComputedVisibility::default(), + DamageRegion { size: *damage_region_size, - }) - .insert(Lifetime::new(*damage_region_lifetime)); + }, + Lifetime::new(*damage_region_lifetime), + )); + // Spawn the explosion sprite entity - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(spawn_transform) - .insert(GlobalTransform::default()) - .insert(Visibility::default()) - .insert(ComputedVisibility::default()) - .insert(AnimatedSprite { + commands.spawn(( + Rollback::new(ridp.next_id()), + spawn_transform, + GlobalTransform::default(), + Visibility::default(), + ComputedVisibility::default(), + AnimatedSprite { start: 0, end: *explosion_frames, atlas: explosion_atlas_handle.inner.clone(), repeat: false, fps: *explosion_fps, ..default() - }) - .insert(Lifetime::new(*explosion_lifetime)); + }, + Lifetime::new(*explosion_lifetime), + )); } } } diff --git a/src/map/elements/kick_bomb.rs b/src/map/elements/kick_bomb.rs index cf804476c2..0772dddffa 100644 --- a/src/map/elements/kick_bomb.rs +++ b/src/map/elements/kick_bomb.rs @@ -1,5 +1,7 @@ use std::time::Duration; +use crate::networking::RollbackIdWrapper; + use super::*; pub struct KickBombPlugin; @@ -55,7 +57,7 @@ fn pre_update_in_game( (Entity, &Sort, &Handle, &Transform), Without, >, - mut ridp: ResMut, + mut ridp: ResMut, element_assets: ResMut>, ) { let mut elements = non_hydrated_map_elements.iter().collect::>(); @@ -73,29 +75,28 @@ fn pre_update_in_game( { commands.entity(entity).insert(MapElementHydrated); - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(Item { + commands.spawn(( + Rollback::new(ridp.next_id()), + Item { script: "core:kick_bomb".into(), - }) - .insert(IdleKickBomb { spawner: entity }) - .insert(Name::new("Item: Kick Bomb")) - .insert(AnimatedSprite { + }, + IdleKickBomb { spawner: entity }, + Name::new("Item: Kick Bomb"), + AnimatedSprite { start: 0, end: 0, atlas: atlas_handle.inner.clone(), repeat: false, ..default() - }) - .insert(map_element_handle.clone_weak()) - .insert_bundle(VisibilityBundle::default()) - .insert(MapRespawnPoint(transform.translation)) - .insert_bundle(TransformBundle { + }, + map_element_handle.clone_weak(), + VisibilityBundle::default(), + MapRespawnPoint(transform.translation), + TransformBundle { local: *transform, ..default() - }) - .insert(KinematicBody { + }, + KinematicBody { size: *body_size, offset: *body_offset, gravity: 1.0, @@ -104,7 +105,8 @@ fn pre_update_in_game( can_rotate: *can_rotate, bouncyness: *bouncyness, ..default() - }); + }, + )); } } } @@ -127,7 +129,7 @@ fn update_idle_kick_bombs( ), Without, >, - mut ridp: ResMut, + mut ridp: ResMut, element_assets: ResMut>, effects: Res>, ) { @@ -209,35 +211,35 @@ fn update_idle_kick_bombs( let pos = player_transform.translation + (*grab_offset * horizontal_flip_factor).extend(0.0); - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(Name::new("Lit Kick Bomb")) - .insert(MapRespawnPoint(pos)) - .insert(Transform::from_translation(pos)) - .insert(GlobalTransform::default()) - .insert(Visibility::default()) - .insert(ComputedVisibility::default()) - .insert(AnimatedSprite { + commands.spawn(( + Rollback::new(ridp.next_id()), + Name::new("Lit Kick Bomb"), + MapRespawnPoint(pos), + Transform::from_translation(pos), + GlobalTransform::default(), + Visibility::default(), + ComputedVisibility::default(), + AnimatedSprite { atlas: atlas_handle.inner.clone(), start: 3, end: 5, repeat: true, fps: 8.0, ..default() - }) - .insert(meta_handle.clone_weak()) - .insert(body.clone()) - .insert(LitKickBomb { + }, + meta_handle.clone_weak(), + body.clone(), + LitKickBomb { spawner: kick_bomb.spawner, fuse_sound: effects.play(fuse_sound_handle.clone_weak()).handle(), ..default() - }) - .insert(KinematicBody { + }, + KinematicBody { velocity: *throw_velocity * horizontal_flip_factor + player_body.velocity, is_deactivated: false, ..body.clone() - }); + }, + )); } } } @@ -261,7 +263,7 @@ fn update_lit_kick_bombs( ), Without, >, - mut ridp: ResMut, + mut ridp: ResMut, element_assets: ResMut>, player_inputs: Res, effects: Res>, @@ -374,22 +376,21 @@ fn update_lit_kick_bombs( }) .insert(Lifetime::new(*damage_region_lifetime)); // Spawn the explosion sprite entity - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(spawn_transform) - .insert(GlobalTransform::default()) - .insert(Visibility::default()) - .insert(ComputedVisibility::default()) - .insert(AnimatedSprite { + commands.spawn(( + Rollback::new(ridp.next_id()), + spawn_transform, + GlobalTransform::default(), + ComputedVisibility::default(), + AnimatedSprite { start: 0, end: *explosion_frames, atlas: explosion_atlas_handle.inner.clone(), repeat: false, fps: *explosion_fps, ..default() - }) - .insert(Lifetime::new(*explosion_lifetime)); + }, + Lifetime::new(*explosion_lifetime), + )); } } } diff --git a/src/map/elements/mine.rs b/src/map/elements/mine.rs index 877188fc91..c0fe888b52 100644 --- a/src/map/elements/mine.rs +++ b/src/map/elements/mine.rs @@ -3,7 +3,7 @@ //! This module is inconsistently named with the rest of the modules ( i.e. has an `_item` suffix ) //! because `crate` is a Rust keyword. -use crate::player::PlayerKillCommand; +use crate::{networking::RollbackIdWrapper, player::PlayerKillCommand}; use super::*; @@ -60,7 +60,7 @@ fn pre_update_in_game( (Entity, &Sort, &Handle, &Transform), Without, >, - mut ridp: ResMut, + mut ridp: ResMut, element_assets: ResMut>, ) { // Hydrate any newly-spawned crates @@ -77,36 +77,36 @@ fn pre_update_in_game( { commands.entity(entity).insert(MapElementHydrated); - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(Item { + commands.spawn(( + Rollback::new(ridp.next_id()), + Item { script: "core:mine".into(), - }) - .insert(IdleMine { spawner: entity }) - .insert(Name::new("Item: Mine")) - .insert(AnimatedSprite { + }, + IdleMine { spawner: entity }, + Name::new("Item: Mine"), + AnimatedSprite { start: 0, end: 0, atlas: atlas_handle.inner.clone(), repeat: false, ..default() - }) - .insert(map_element_handle.clone_weak()) - .insert_bundle(VisibilityBundle::default()) - .insert(MapRespawnPoint(transform.translation)) - .insert_bundle(TransformBundle { + }, + map_element_handle.clone_weak(), + VisibilityBundle::default(), + MapRespawnPoint(transform.translation), + TransformBundle { local: *transform, ..default() - }) - .insert(KinematicBody { + }, + KinematicBody { size: *body_size, offset: *body_offset, gravity: 1.0, has_mass: true, has_friction: true, ..default() - }); + }, + )); } } } @@ -129,7 +129,7 @@ fn update_idle_mines( ), Without, >, - mut ridp: ResMut, + mut ridp: ResMut, element_assets: ResMut>, ) { let mut items = grenades.iter_mut().collect::>(); @@ -182,30 +182,30 @@ fn update_idle_mines( // Spawn a new, thrown mine let pos = player_transform.translation + (*grab_offset * horizontal_flip_factor).extend(0.0); - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(Name::new("Mine ( Thrown )")) - .insert(MapRespawnPoint(pos)) - .insert(Transform::from_translation(pos)) - .insert(GlobalTransform::default()) - .insert(Visibility::default()) - .insert(ComputedVisibility::default()) - .insert(AnimatedSprite { + commands.spawn(( + Rollback::new(ridp.next_id()), + Name::new("Mine ( Thrown )"), + MapRespawnPoint(pos), + Transform::from_translation(pos), + GlobalTransform::default(), + Visibility::default(), + ComputedVisibility::default(), + AnimatedSprite { atlas: atlas_handle.inner.clone(), ..default() - }) - .insert(meta_handle.clone_weak()) - .insert(body.clone()) - .insert(ThrownMine { + }, + meta_handle.clone_weak(), + body.clone(), + ThrownMine { spawner: crate_item.spawner, ..default() - }) - .insert(KinematicBody { + }, + KinematicBody { velocity: *throw_velocity * horizontal_flip_factor + player_body.velocity, is_deactivated: false, ..body.clone() - }); + }, + )); } } @@ -251,7 +251,7 @@ fn update_thrown_mines( ), Without, >, - mut ridp: ResMut, + mut ridp: ResMut, element_assets: ResMut>, player_inputs: Res, effects: Res>, @@ -315,36 +315,35 @@ fn update_thrown_mines( .remove::(); // Spawn the damage region entity - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(*transform) - .insert(GlobalTransform::default()) - .insert(Visibility::default()) - .insert(ComputedVisibility::default()) - .insert(DamageRegion { + commands.spawn(( + Rollback::new(ridp.next_id()), + *transform, + GlobalTransform::default(), + Visibility::default(), + ComputedVisibility::default(), + DamageRegion { size: *damage_region_size, - }) - .insert(Lifetime::new(*damage_region_lifetime)); + }, + Lifetime::new(*damage_region_lifetime), + )); + // Spawn the explosion sprite entity - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(*transform) - .insert(GlobalTransform::default()) - .insert(Visibility::default()) - .insert(ComputedVisibility::default()) - .insert(AnimatedSprite { + commands.spawn(( + Rollback::new(ridp.next_id()), + *transform, + GlobalTransform::default(), + Visibility::default(), + ComputedVisibility::default(), + AnimatedSprite { start: 0, end: *explosion_anim_frames, atlas: explosion_atlas_handle.inner.clone(), repeat: false, fps: *explosion_anim_fps, ..default() - }) - .insert(Lifetime::new( - *explosion_anim_fps * *explosion_anim_frames as f32, - )); + }, + Lifetime::new(*explosion_anim_fps * *explosion_anim_frames as f32), + )); } } } diff --git a/src/map/elements/player_spawner.rs b/src/map/elements/player_spawner.rs index 2f5c3b2c26..6c85333203 100644 --- a/src/map/elements/player_spawner.rs +++ b/src/map/elements/player_spawner.rs @@ -1,4 +1,4 @@ -use crate::{metadata::BuiltinElementKind, utils::Sort}; +use crate::{metadata::BuiltinElementKind, networking::RollbackIdWrapper, utils::Sort}; use super::*; @@ -20,8 +20,8 @@ impl Plugin for PlayerSpawnerPlugin { #[reflect(Component, Default)] pub struct PlayerSpawner; -#[derive(Component, Reflect, Default, Deref, DerefMut)] -#[reflect(Component, Default)] +#[derive(Resource, Reflect, Default, Deref, DerefMut)] +#[reflect(Resource, Default)] pub struct CurrentPlayerSpawner(pub usize); fn pre_update_in_game( @@ -33,7 +33,7 @@ fn pre_update_in_game( (Entity, &Sort, &Transform, &Handle), Without, >, - mut ridp: ResMut, + mut ridp: ResMut, mut current_spawner: ResMut, element_assets: Res>, ) { @@ -67,11 +67,11 @@ fn pre_update_in_game( let mut spawn_location = spawn_point.translation; spawn_location.z += i as f32 * 0.1; - commands - .spawn() - .insert(PlayerIdx(i)) - .insert(Transform::from_translation(spawn_location)) - .insert(Rollback::new(ridp.next_id())); + commands.spawn(( + PlayerIdx(i), + Transform::from_translation(spawn_location), + Rollback::new(ridp.next_id()), + )); } } } diff --git a/src/map/elements/stomp_boots.rs b/src/map/elements/stomp_boots.rs index 9b285eac5a..5efa3fab7f 100644 --- a/src/map/elements/stomp_boots.rs +++ b/src/map/elements/stomp_boots.rs @@ -5,7 +5,7 @@ use std::cmp::Ordering; -use crate::{physics::collisions::Rect, player::PlayerKillCommand}; +use crate::{networking::RollbackIdWrapper, physics::collisions::Rect, player::PlayerKillCommand}; use super::*; @@ -35,7 +35,7 @@ fn pre_update_in_game( (Entity, &Sort, &Handle, &Transform), Without, >, - mut ridp: ResMut, + mut ridp: ResMut, element_assets: ResMut>, ) { // Hydrate any newly-spawned crates @@ -52,35 +52,35 @@ fn pre_update_in_game( { commands.entity(entity).insert(MapElementHydrated); - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(Item { + commands.spawn(( + Rollback::new(ridp.next_id()), + Item { script: "core:stomp_boots".into(), - }) - .insert(Name::new("Item: Stomp Boots")) - .insert(IdleStompBoots { spawner: entity }) - .insert(AnimatedSprite { + }, + Name::new("Item: Stomp Boots"), + IdleStompBoots { spawner: entity }, + AnimatedSprite { start: 0, end: 0, atlas: map_icon_handle.clone_weak(), repeat: false, ..default() - }) - .insert(map_element_handle.clone_weak()) - .insert_bundle(VisibilityBundle::default()) - .insert_bundle(TransformBundle { + }, + map_element_handle.clone_weak(), + VisibilityBundle::default(), + TransformBundle { local: *transform, ..default() - }) - .insert(KinematicBody { + }, + KinematicBody { size: *body_size, offset: *body_offset, gravity: 1.0, has_mass: true, has_friction: true, ..default() - }); + }, + )); } } } diff --git a/src/map/elements/sword.rs b/src/map/elements/sword.rs index c375ad6efd..f378d640ef 100644 --- a/src/map/elements/sword.rs +++ b/src/map/elements/sword.rs @@ -1,3 +1,5 @@ +use crate::networking::RollbackIdWrapper; + use super::*; pub struct SwordPlugin; @@ -31,7 +33,7 @@ fn pre_update_in_game( (Entity, &Sort, &Handle, &Transform), Without, >, - mut ridp: ResMut, + mut ridp: ResMut, element_assets: Res>, ) { // Hydrate any newly-spawned swords @@ -43,37 +45,39 @@ fn pre_update_in_game( if let BuiltinElementKind::Sword { atlas_handle, .. } = &map_element.builtin { commands.entity(entity).insert(MapElementHydrated); - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(Item { + commands.spawn(( + Rollback::new(ridp.next_id()), + Item { script: "core:sword".into(), - }) - .insert(Name::new("Item: Sword")) - .insert(SwordState::default()) - .insert(AnimatedSprite { + }, + Name::new("Item: Sword"), + SwordState::default(), + AnimatedSprite { start: 0, end: 0, atlas: atlas_handle.inner.clone(), repeat: false, fps: ATTACK_FPS, ..default() - }) - .insert_bundle(VisibilityBundle::default()) - .insert(MapRespawnPoint(transform.translation)) - .insert_bundle(TransformBundle { - local: *transform, - ..default() - }) - .insert(map_element_handle.clone()) - .insert(KinematicBody { - size: Vec2::new(64.0, 16.0), - offset: Vec2::new(0.0, 38.0), - gravity: 1.0, - has_mass: true, - has_friction: true, - ..default() - }); + }, + ( + VisibilityBundle::default(), + MapRespawnPoint(transform.translation), + TransformBundle { + local: *transform, + ..default() + }, + map_element_handle.clone(), + KinematicBody { + size: Vec2::new(64.0, 16.0), + offset: Vec2::new(0.0, 38.0), + gravity: 1.0, + has_mass: true, + has_friction: true, + ..default() + }, + ), + )); } } } @@ -95,7 +99,7 @@ fn update_in_game( ), Without, >, - mut ridp: ResMut, + mut ridp: ResMut, player_inputs: Res, effects: Res>, element_assets: Res>, @@ -103,14 +107,14 @@ fn update_in_game( // Helper to spawn damage regions let mut spawn_damage_region = |commands: &mut Commands, pos: Vec2, size: Vec2, owner: Entity| { - commands - .spawn() - .insert(Rollback::new(ridp.next_id())) - .insert(Transform::from_translation(pos.extend(0.0))) - .insert(GlobalTransform::default()) - .insert(DamageRegion { size }) - .insert(DamageRegionOwner(owner)) - .insert(Lifetime::new(2.0 / 60.0)); + commands.spawn(( + Rollback::new(ridp.next_id()), + Transform::from_translation(pos.extend(0.0)), + GlobalTransform::default(), + DamageRegion { size }, + DamageRegionOwner(owner), + Lifetime::new(2.0 / 60.0), + )); }; for ( diff --git a/src/map/grid.rs b/src/map/grid.rs index bf5a05d7ab..53d29645d8 100644 --- a/src/map/grid.rs +++ b/src/map/grid.rs @@ -1,8 +1,5 @@ use bevy_prototype_lyon::prelude::tess::{ - geom::{ - euclid::{Point2D, Size2D}, - Rect, - }, + geom::euclid::{Point2D, Rect, Size2D}, path::traits::PathBuilder, }; diff --git a/src/metadata.rs b/src/metadata.rs index 8c0259efa4..9c40286e26 100644 --- a/src/metadata.rs +++ b/src/metadata.rs @@ -19,7 +19,6 @@ pub use settings::*; pub use ui::*; pub struct MetadataPlugin; - impl Plugin for MetadataPlugin { fn build(&self, app: &mut App) { app.add_plugin(MapMetadataPlugin) @@ -27,7 +26,10 @@ impl Plugin for MetadataPlugin { } } -#[derive(HasLoadProgress, TypeUuid, Deserialize, Clone, Debug)] +#[derive(Resource, Deref, DerefMut)] +pub struct GameHandle(pub Handle); + +#[derive(HasLoadProgress, TypeUuid, Deserialize, Clone, Debug, Resource)] #[serde(deny_unknown_fields)] #[uuid = "b14f1630-64d0-4bb7-ba3d-e7b83f8a7f62"] pub struct GameMeta { diff --git a/src/networking.rs b/src/networking.rs index 2009409e72..88add17bfd 100644 --- a/src/networking.rs +++ b/src/networking.rs @@ -22,6 +22,9 @@ impl Plugin for NetworkingPlugin { } } +#[derive(Resource, Deref, DerefMut, Clone, Debug, Default)] +pub struct RollbackIdWrapper(pub RollbackIdProvider); + /// TODO: Map changes aren't working on network games for now, so this isn't properly used/working. fn listen_for_map_changes( mut commands: Commands, @@ -29,7 +32,7 @@ fn listen_for_map_changes( mut reset_manager: ResetManager, mut session_manager: SessionManager, mut menu_page: ResMut, - mut ridp: ResMut, + mut ridp: ResMut, ) { while let Some(message) = client.recv_reliable() { match message.kind { @@ -39,10 +42,7 @@ fn listen_for_map_changes( *menu_page = MenuPage::Home; reset_manager.reset_world(); - commands - .spawn() - .insert(map_handle) - .insert(Rollback::new(ridp.next_id())); + commands.spawn((map_handle, Rollback::new(ridp.next_id()))); commands.insert_resource(NextState(GameState::InGame)); session_manager.start_session(); } diff --git a/src/networking/client.rs b/src/networking/client.rs index bd7e8042eb..c406be3210 100644 --- a/src/networking/client.rs +++ b/src/networking/client.rs @@ -105,7 +105,7 @@ pub async fn open_connection( } /// Networking client. Can be cloned to get another handle to the same network client. -#[derive(Clone)] +#[derive(Clone, Resource)] pub struct NetClient(Arc); struct NetClientInner { diff --git a/src/networking/proto.rs b/src/networking/proto.rs index 2c8c7e32ca..0f5f09a446 100644 --- a/src/networking/proto.rs +++ b/src/networking/proto.rs @@ -40,7 +40,7 @@ pub struct RecvUnreliableGameMessage { /// A resource indicating which player this game client represents, and how many players there are /// in the match.j -#[derive(Serialize, Deserialize, Debug, Clone)] +#[derive(Serialize, Deserialize, Debug, Clone, Resource)] pub struct ClientMatchInfo { pub player_idx: usize, pub player_count: usize, diff --git a/src/physics/debug.rs b/src/physics/debug.rs index 3244d38e30..5c9301ba35 100644 --- a/src/physics/debug.rs +++ b/src/physics/debug.rs @@ -14,7 +14,7 @@ use super::{collisions::Collider, KinematicBody, PhysicsStages}; pub struct PhysicsDebugRenderPlugin; /// Resource used to configure debug rendering -#[derive(Default)] +#[derive(Default, Resource)] pub struct PhysicsDebugRenderConfig { pub enabled: bool, } @@ -195,8 +195,7 @@ struct ColliderRect { mod geom { use bevy_prototype_lyon::prelude::tess::{ - geom::euclid::{Point2D, Size2D}, - math::Rect, + geom::euclid::{Point2D, Rect, Size2D}, path::traits::PathBuilder, }; diff --git a/src/platform.rs b/src/platform.rs index 444d13d28e..106608f590 100644 --- a/src/platform.rs +++ b/src/platform.rs @@ -50,6 +50,7 @@ pub fn load_storage( type StorageData = HashMap; /// Resource for accessing platform specific persistent storage apis through a simple interface. +#[derive(Resource)] pub struct Storage { /// The in-memory storage data that we operate on when getting and setting values. data: Option, diff --git a/src/player/input.rs b/src/player/input.rs index b7196e9af1..9e55fe252b 100644 --- a/src/player/input.rs +++ b/src/player/input.rs @@ -33,10 +33,11 @@ impl Plugin for PlayerInputPlugin { /// /// The resource is removed every time it is read, so it will only be present in the world when /// there is an intent to change the pause state. +#[derive(Resource)] pub struct WantsGamePause(pub bool); /// A buffer holding the player inputs until they are read by the game simulation. -#[derive(Reflect, Default)] +#[derive(Reflect, Default, Resource)] pub struct LocalPlayerInputBuffer { /// The buffers for each player. Non-local players will have empty buffers. pub players: [DensePlayerControl; MAX_PLAYERS], @@ -110,7 +111,7 @@ pub enum PlayerAction { } /// The inputs for each player in this simulation frame. -#[derive(Reflect, Clone, Debug, Component)] +#[derive(Reflect, Clone, Debug, Component, Resource)] #[reflect(Default, Resource)] pub struct PlayerInputs { /// This will be `true` if _all_ of the inputs for all players for this frame have been @@ -234,10 +235,13 @@ impl From for u32 { } } +#[derive(Resource, Default, Deref, DerefMut, Clone, Debug)] +pub struct Inputs(pub Vec<(DensePlayerControl, InputStatus)>); + /// Updates the [`PlayerInputs`] resource from input collected from GGRS. fn update_user_input( mut commands: Commands, - inputs: Res>, + inputs: Res, mut player_inputs: ResMut, ) { player_inputs.is_confirmed = inputs diff --git a/src/random.rs b/src/random.rs index 39da7acc98..73db29fc30 100644 --- a/src/random.rs +++ b/src/random.rs @@ -10,7 +10,7 @@ impl Plugin for RandomPlugin { } } -#[derive(Reflect, Component, Serialize, Deserialize, Debug, Deref, DerefMut)] +#[derive(Reflect, Component, Serialize, Deserialize, Debug, Deref, DerefMut, Resource)] #[reflect_value(Component, Resource, Default, Serialize, Deserialize)] pub struct GlobalRng(AtomicRng); diff --git a/src/ui.rs b/src/ui.rs index 4443f3cead..430f359b83 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -6,12 +6,18 @@ use bevy::{ utils::{HashMap, HashSet}, window::WindowId, }; -use bevy_egui::{egui, EguiContext, EguiInput, EguiPlugin, EguiSettings, EguiSystem}; +use bevy_egui::{ + egui, EguiContext, EguiPlugin, EguiRenderInputContainer, EguiSettings, EguiSystem, +}; use iyes_loopless::prelude::*; use leafwing_input_manager::{plugin::InputManagerSystem, prelude::ActionState}; use self::input::MenuAction; -use crate::{assets::EguiFont, camera::GameCamera, metadata::GameMeta}; +use crate::{ + assets::{EguiFont, EguiFontDefinitions}, + camera::GameCamera, + metadata::GameMeta, +}; pub mod input; pub mod widgets; @@ -91,7 +97,7 @@ pub fn widget( /// A UI widget may have multiple instances. We need to ensure the local state of these instances is /// not shared. This hashmap allows us to dynamically store instance states. #[derive(Default)] -struct StateInstances { +struct StateInstances { instances: HashMap>, } @@ -120,7 +126,7 @@ impl From<&str> for WidgetId { /// /// This is used to figure out which widget to focus on next when you press a direction on the /// gamepad, for instance. -#[derive(Debug, Clone, Default)] +#[derive(Debug, Clone, Default, Resource)] pub struct WidgetAdjacencies { pub map: HashMap, /// These widgets will have the focus change when pressing directional inputs @@ -178,7 +184,7 @@ impl<'a> WidgetAdjacencyEntry<'a> { } } -#[derive(Default, Deref, DerefMut)] +#[derive(Default, Deref, DerefMut, Resource)] pub struct DisableMenuInput(pub bool); fn handle_menu_input( @@ -186,11 +192,10 @@ fn handle_menu_input( mut windows: ResMut, input: Query<&ActionState>, keyboard: Res>, - mut egui_inputs: ResMut>, + mut egui_inputs: ResMut, adjacencies: Res, mut egui_ctx: ResMut, ) { - use bevy::window::WindowMode; let input = input.single(); // Handle fullscreen toggling @@ -292,7 +297,7 @@ fn handle_menu_input( fn update_egui_fonts( mut font_queue: Local>>, mut egui_ctx: ResMut, - egui_font_definitions: Option>, + egui_font_definitions: Option>, game: Option>, mut events: EventReader>, assets: Res>, diff --git a/src/ui/debug_tools.rs b/src/ui/debug_tools.rs index b7f69c0217..061b08d0f9 100644 --- a/src/ui/debug_tools.rs +++ b/src/ui/debug_tools.rs @@ -4,7 +4,6 @@ use bevy::{ }; use bevy_egui::*; use bevy_fluent::Localization; -use bevy_inspector_egui::WorldInspectorParams; use crate::{localization::LocalizationExt, physics::debug::PhysicsDebugRenderConfig}; @@ -35,19 +34,18 @@ impl Plugin for DebugToolsPlugin { // } // } -#[derive(Default, Deref, DerefMut)] +#[derive(Default, Deref, DerefMut, Resource)] struct ShowFameTimeDiagnostics(pub bool); /// System that renders the debug tools window which can be toggled by pressing F12 fn debug_tools_window( // mut show_network_visualizer: ResMut, mut visible: Local, + input: Res>, + localization: Res, mut egui_context: ResMut, mut physics_debug_render: ResMut, mut show_frame_diagnostics: ResMut, - localization: Res, - input: Res>, - mut inspector: ResMut, ) { let ctx = egui_context.ctx_mut(); diff --git a/src/ui/editor.rs b/src/ui/editor.rs index 59144ef7b4..33b5280107 100644 --- a/src/ui/editor.rs +++ b/src/ui/editor.rs @@ -11,6 +11,7 @@ use crate::{ localization::LocalizationExt, map::MapGridView, metadata::{GameMeta, MapLayerKind, MapLayerMeta, MapMeta}, + networking::RollbackIdWrapper, player::input::PlayerInputs, prelude::*, session::SessionManager, @@ -41,6 +42,7 @@ impl Plugin for EditorPlugin { } } +#[derive(Resource)] struct EditorState { pub show_grid: bool, pub current_layer_idx: usize, @@ -148,7 +150,7 @@ struct EditorTopBar<'w, 's> { ResetManager<'w, 's>, ), >, - rids: ResMut<'w, RollbackIdProvider>, + rids: ResMut<'w, RollbackIdWrapper>, show_map_export_window: Local<'s, bool>, localization: Res<'w, Localization>, map_meta: Query<'w, 's, &'static MapMeta>, @@ -246,9 +248,7 @@ impl<'w, 's> WidgetSystem for EditorTopBar<'w, 's> { params .camera_commands_resetcontroller .p1() - .spawn() - .insert(handle) - .insert(Rollback::new(params.rids.next_id())); + .spawn((handle, Rollback::new(params.rids.next_id()))); params.session_manager.start_session(); } } @@ -609,7 +609,7 @@ fn create_layer(params: &mut EditorRightToolbar) { let (map_entity, mut map): (Entity, Mut) = params.map.single_mut(); let layer_idx = map.layers.len(); - let layer_entity = params.commands.spawn().id(); + let layer_entity = params.commands.spawn_empty().id(); map.layers.push(MapLayerMeta { id: layer_info.name.clone(), kind: layer_info.kind.clone(), @@ -837,7 +837,7 @@ fn map_open_dialog(ui: &mut egui::Ui, params: &mut EditorCentralPanel) { ) { if ui.button(&map_name).clicked() { - params.commands.spawn().insert(map_handle); + params.commands.spawn(map_handle); params.session_manager.start_session(); *params.show_map_open = false; } @@ -940,7 +940,7 @@ fn create_map(params: &mut EditorCentralPanel) { background_layers: default(), }; - params.commands.spawn().insert(meta); + params.commands.spawn(meta); *params.show_map_open = false; *params.show_map_create = false; } diff --git a/src/ui/main_menu.rs b/src/ui/main_menu.rs index 5ddc952145..24d6b22461 100644 --- a/src/ui/main_menu.rs +++ b/src/ui/main_menu.rs @@ -81,11 +81,12 @@ pub fn setup_main_menu( let height = game.camera_height as f32; let width = height * ratio; commands - .spawn() - .insert(Name::new("Menu Background Parent")) - .insert_bundle(VisibilityBundle::default()) - .insert_bundle(TransformBundle::default()) - .insert(MainMenuBackground) + .spawn(( + Name::new("Menu Background Parent"), + VisibilityBundle::default(), + TransformBundle::default(), + MainMenuBackground, + )) .with_children(|parent| { parent .spawn_bundle(SpriteBundle { @@ -133,7 +134,7 @@ pub fn clean_up_main_menu( } /// Which page of the menu we are on -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Resource)] pub enum MenuPage { Home, Settings, diff --git a/src/ui/main_menu/map_select.rs b/src/ui/main_menu/map_select.rs index 2c696bbe3a..4078453a9f 100644 --- a/src/ui/main_menu/map_select.rs +++ b/src/ui/main_menu/map_select.rs @@ -1,4 +1,3 @@ -use bevy_ggrs::RollbackIdProvider; use bones_matchmaker_proto::TargetClient; use crate::{ @@ -6,6 +5,7 @@ use crate::{ networking::{ client::NetClient, proto::{match_setup::MatchSetupMessage, ReliableGameMessageKind}, + RollbackIdWrapper, }, player::input::WantsGamePause, ui::pause_menu::PauseMenuPage, @@ -24,7 +24,7 @@ pub struct MapSelectMenu<'w, 's> { commands: Commands<'w, 's>, localization: Res<'w, Localization>, map_assets: Res<'w, Assets>, - rids: ResMut<'w, RollbackIdProvider>, + rids: ResMut<'w, RollbackIdWrapper>, reset_manager: ResetManager<'w, 's>, #[system_param(ignore)] _phantom: PhantomData<(&'w (), &'s ())>, @@ -135,7 +135,7 @@ impl<'w, 's> WidgetSystem for MapSelectMenu<'w, 's> { *params.pause_page = PauseMenuPage::Default; *params.menu_page = MenuPage::Home; params.reset_manager.reset_world(); - params.commands.spawn().insert(map_handle.clone_weak()); + params.commands.spawn(map_handle.clone_weak()); params.commands.insert_resource(WantsGamePause(false)); params .commands @@ -168,9 +168,7 @@ fn handle_match_setup_messages(params: &mut MapSelectMenu) { params.reset_manager.reset_world(); params .commands - .spawn() - .insert(map_handle) - .insert(Rollback::new(params.rids.next_id())); + .spawn((map_handle, Rollback::new(params.rids.next_id()))); params .commands .insert_resource(NextState(GameState::InGame)); diff --git a/src/ui/main_menu/player_select.rs b/src/ui/main_menu/player_select.rs index 9211faa435..6c2103b076 100644 --- a/src/ui/main_menu/player_select.rs +++ b/src/ui/main_menu/player_select.rs @@ -14,7 +14,7 @@ use crate::{ use super::*; -#[derive(Default)] +#[derive(Default, Resource)] pub struct PlayerSelectState { player_slots: [PlayerSlot; MAX_PLAYERS], } diff --git a/src/ui/main_menu/settings.rs b/src/ui/main_menu/settings.rs index 9423082467..2492280529 100644 --- a/src/ui/main_menu/settings.rs +++ b/src/ui/main_menu/settings.rs @@ -8,7 +8,7 @@ mod networking; mod sound; /// Which settings tab we are on -#[derive(Clone, Copy, PartialEq, Eq)] +#[derive(Clone, Copy, PartialEq, Eq, Resource)] pub enum SettingsTab { Controls, #[allow(unused)] // TODO: Just for now until we get sound settings setup @@ -22,7 +22,7 @@ impl Default for SettingsTab { } } -#[derive(Default, Deref, DerefMut)] +#[derive(Default, Deref, DerefMut, Resource)] pub struct ModifiedSettings(pub Option); #[derive(SystemParam)] diff --git a/src/ui/pause_menu.rs b/src/ui/pause_menu.rs index de6f896832..ed3da9c586 100644 --- a/src/ui/pause_menu.rs +++ b/src/ui/pause_menu.rs @@ -78,7 +78,7 @@ fn unpause_system( } } -#[derive(Default, Eq, PartialEq, Copy, Clone)] +#[derive(Default, Eq, PartialEq, Copy, Clone, Resource)] pub enum PauseMenuPage { #[default] Default, @@ -180,7 +180,7 @@ pub fn pause_menu_default( reset_controller.reset_world(); if let Some(handle) = map_handle { - commands.spawn().insert(handle); + commands.spawn(handle); } session_manager.start_session();