From df1460a12dcff357b22a2e63db0186529969648d Mon Sep 17 00:00:00 2001 From: Martin Indra Date: Tue, 7 Mar 2023 15:18:49 +0100 Subject: [PATCH] Upgrade to Bevy v0.10 Relates to #324. --- CONTRIBUTING.md | 2 +- Cargo.lock | 1265 +++++++++-------- Cargo.toml | 7 +- crates/behaviour/Cargo.toml | 1 - crates/behaviour/src/chase.rs | 7 +- crates/behaviour/src/lib.rs | 2 +- crates/camera/Cargo.toml | 1 - crates/camera/src/camera.rs | 33 +- crates/camera/src/distance.rs | 7 +- crates/camera/src/lib.rs | 4 +- crates/combat/Cargo.toml | 1 - crates/combat/src/attack.rs | 13 +- crates/combat/src/laser.rs | 9 +- crates/combat/src/lib.rs | 6 +- crates/combat/src/trail.rs | 1 - crates/conf/Cargo.toml | 1 - crates/conf/src/plugin.rs | 1 - crates/controller/Cargo.toml | 1 - crates/controller/src/commands/executor.rs | 9 +- crates/controller/src/commands/handlers.rs | 78 +- crates/controller/src/commands/mod.rs | 2 +- crates/controller/src/draft.rs | 19 +- crates/controller/src/hud/interaction.rs | 5 +- crates/controller/src/hud/menu.rs | 7 +- crates/controller/src/hud/minimap/draw.rs | 2 +- crates/controller/src/hud/minimap/fill.rs | 17 +- .../controller/src/hud/minimap/interaction.rs | 20 +- crates/controller/src/hud/minimap/nodes.rs | 4 +- crates/controller/src/hud/mod.rs | 2 +- crates/controller/src/hud/panel.rs | 1 - crates/controller/src/hud/selection.rs | 1 - crates/controller/src/mouse/input.rs | 28 +- crates/controller/src/mouse/mod.rs | 4 +- crates/controller/src/mouse/pointer.rs | 13 +- crates/controller/src/selection/area.rs | 11 +- .../controller/src/selection/bookkeeping.rs | 7 +- crates/controller/src/selection/mod.rs | 4 +- crates/core/Cargo.toml | 1 - crates/core/src/cleanup.rs | 1 - crates/core/src/events.rs | 1 - crates/core/src/gamestate.rs | 1 - crates/core/src/stages.rs | 2 +- crates/core/src/visibility.rs | 15 +- crates/gui/Cargo.toml | 1 - crates/gui/src/focus.rs | 2 +- crates/gui/src/lib.rs | 2 +- crates/gui/src/text.rs | 1 - crates/gui/src/textbox.rs | 2 +- crates/gui/src/toast.rs | 11 +- crates/index/Cargo.toml | 1 - crates/index/src/lib.rs | 2 +- crates/index/src/systems.rs | 13 +- crates/loader/Cargo.toml | 1 - crates/loader/src/map.rs | 1 - crates/lobby_client/Cargo.toml | 1 - crates/lobby_client/src/client.rs | 4 +- crates/lobby_client/src/systems.rs | 1 - crates/menu/Cargo.toml | 1 - crates/menu/src/aftergame.rs | 1 - crates/menu/src/create.rs | 13 +- crates/menu/src/gamelisting.rs | 5 +- crates/menu/src/lib.rs | 4 +- crates/menu/src/mainmenu.rs | 1 - crates/menu/src/mapselection.rs | 1 - crates/menu/src/menu.rs | 9 +- crates/menu/src/requests.rs | 1 - crates/menu/src/signin.rs | 9 +- crates/menu/src/singleplayer.rs | 1 - crates/movement/Cargo.toml | 1 - crates/movement/src/altitude.rs | 10 +- crates/movement/src/kinematics.rs | 79 +- crates/movement/src/movement.rs | 7 +- crates/movement/src/obstacles.rs | 27 +- crates/movement/src/pathing.rs | 25 +- crates/movement/src/repulsion.rs | 158 +- crates/objects/Cargo.toml | 1 - crates/objects/src/cache.rs | 1 - crates/pathing/Cargo.toml | 1 - crates/pathing/src/fplugin.rs | 20 +- crates/pathing/src/pplugin.rs | 23 +- crates/signs/Cargo.toml | 1 - crates/signs/src/bars.rs | 13 +- crates/signs/src/markers.rs | 5 +- crates/spawner/Cargo.toml | 1 - crates/spawner/src/counter.rs | 1 - crates/spawner/src/destroyer.rs | 5 +- crates/spawner/src/draft.rs | 9 +- crates/spawner/src/gameend.rs | 1 - crates/spawner/src/lib.rs | 4 +- crates/spawner/src/spawner.rs | 1 - crates/terrain/Cargo.toml | 1 - crates/terrain/src/marker.rs | 1 - crates/terrain/src/plugin.rs | 1 - src/main.rs | 13 +- 94 files changed, 1065 insertions(+), 1051 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c5c95eee8..c017f0d35 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -79,7 +79,7 @@ When the complexity grows, split the system and use events for inter-system communication. -* Label struct names end with `Label` (for example `CameraLabel`). Event struct +* SystemSet enum names end with `Set` (for example `CameraSet`). Event struct names end with `Event` (for example `DoubleClickEvent`). ### Crate Structure diff --git a/Cargo.lock b/Cargo.lock index ee3929fc6..3eee7c2ae 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18,6 +18,59 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" +[[package]] +name = "accesskit" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "704d532b1cd3d912bb37499c55a81ac748cc1afa737eedd100ba441acdd47d38" + +[[package]] +name = "accesskit_consumer" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48ba8b23cfca3944012ee2e5c71c02077a400e034c720eed6bd927cb6b4d1fd9" +dependencies = [ + "accesskit", +] + +[[package]] +name = "accesskit_macos" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc50af17818440f580a894536c4c5a95ff9e4bad59f19ee68757ca959d001813" +dependencies = [ + "accesskit", + "accesskit_consumer", + "objc2", + "once_cell", +] + +[[package]] +name = "accesskit_windows" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaf5b3c3828397ee832ba4a72fb1a4ace10f781e31885f774cbd531014059115" +dependencies = [ + "accesskit", + "accesskit_consumer", + "arrayvec", + "once_cell", + "paste", + "windows 0.44.0", +] + +[[package]] +name = "accesskit_winit" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eb880d83a5502edd311bdb3af1cf7113b250c9c2d92fbdd05342c7b9f38bf51" +dependencies = [ + "accesskit", + "accesskit_macos", + "accesskit_windows", + "winit", +] + [[package]] name = "actix-codec" version = "0.5.0" @@ -66,7 +119,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rand", - "sha1 0.10.5", + "sha1", "smallvec", "tracing", "zstd", @@ -212,6 +265,15 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "addr2line" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +dependencies = [ + "gimli", +] + [[package]] name = "adler" version = "1.0.2" @@ -261,14 +323,14 @@ dependencies = [ [[package]] name = "alsa" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5915f52fe2cf65e83924d037b6c5290b7cee097c6b5c8700746e6168a343fd6b" +checksum = "8512c9117059663fb5606788fbca3619e2a91dac0e3fe516242eab1fa6be5e44" dependencies = [ "alsa-sys", "bitflags", "libc", - "nix 0.23.2", + "nix 0.24.3", ] [[package]] @@ -282,23 +344,35 @@ dependencies = [ ] [[package]] -name = "android_log-sys" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85965b6739a430150bdd138e2374a98af0c3ee0d030b3bb7fc3bddff58d0102e" - -[[package]] -name = "android_logger" -version = "0.11.3" +name = "android-activity" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8619b80c242aa7bd638b5c7ddd952addeecb71f69c75e33f1d47b2804f8f883a" +checksum = "7c77a0045eda8b888c76ea473c2b0515ba6f471d318f8927c5c72240937035a6" dependencies = [ - "android_log-sys", - "env_logger", + "android-properties", + "bitflags", + "cc", + "jni-sys", + "libc", "log", - "once_cell", + "ndk", + "ndk-context", + "ndk-sys", + "num_enum", ] +[[package]] +name = "android-properties" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" + +[[package]] +name = "android_log-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85965b6739a430150bdd138e2374a98af0c3ee0d030b3bb7fc3bddff58d0102e" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -360,7 +434,7 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" dependencies = [ - "concurrent-queue 2.1.0", + "concurrent-queue", "event-listener", "futures-core", ] @@ -386,7 +460,7 @@ checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b" dependencies = [ "async-lock", "async-task", - "concurrent-queue 2.1.0", + "concurrent-queue", "fastrand", "futures-lite", "slab", @@ -415,7 +489,7 @@ checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794" dependencies = [ "async-lock", "autocfg", - "concurrent-queue 2.1.0", + "concurrent-queue", "futures-lite", "libc", "log", @@ -493,7 +567,7 @@ dependencies = [ "filetime", "libc", "pin-project", - "redox_syscall", + "redox_syscall 0.2.16", "xattr", ] @@ -545,10 +619,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] -name = "base-x" -version = "0.2.11" +name = "backtrace" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" +checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide 0.6.2", + "object", + "rustc-demangle", +] [[package]] name = "base64" @@ -576,18 +659,30 @@ checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf" [[package]] name = "bevy" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dae99b246505811f5bc19d2de1e406ec5d2816b421d58fa223779eb576f472c9" +checksum = "cc88fece4660d68690585668f1a4e18e6dcbab160b08f337b498a96ccde91cfe" dependencies = [ "bevy_internal", ] +[[package]] +name = "bevy_a11y" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a10b25cf04971b9d68271aa54e4601c673509db6edaf1f5359dd91fb3e84cc27" +dependencies = [ + "accesskit", + "bevy_app", + "bevy_derive", + "bevy_ecs", +] + [[package]] name = "bevy_animation" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d43b8073f299eb60ce9e1d60fa293b348590dd57aca8321d6859d9e7aa57d2da" +checksum = "1aabb803571785797c84e106ed63427eaf2cb12832a591923707896ee000bde8" dependencies = [ "bevy_app", "bevy_asset", @@ -603,9 +698,9 @@ dependencies = [ [[package]] name = "bevy_app" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "536e4d0018347478545ed8b6cb6e57b9279ee984868e81b7c0e78e0fb3222e42" +checksum = "960c6e444dc6a25dd51a2196f04872ae9e2e876802b66c391104849ec9225e38" dependencies = [ "bevy_derive", "bevy_ecs", @@ -618,9 +713,9 @@ dependencies = [ [[package]] name = "bevy_asset" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db1bb550168304df69c867c09125e1aae7ff51cf21575396e1598bf293442c4" +checksum = "adea538a3d166c8609621994972c31be591c96f931f160f96e74697d8c24ba45" dependencies = [ "anyhow", "bevy_app", @@ -630,11 +725,11 @@ dependencies = [ "bevy_reflect", "bevy_tasks", "bevy_utils", + "bevy_winit", "crossbeam-channel", "downcast-rs", "fastrand", "js-sys", - "ndk-glue", "notify", "parking_lot 0.12.1", "serde", @@ -646,25 +741,28 @@ dependencies = [ [[package]] name = "bevy_audio" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29a05efc6c23bef37520e44029943c65b7e8a4fe4f5e54cb3f96e63ce0b3d361" +checksum = "0841e98276000dc06e2cf7593ee20b16b84da3bc7faa7b549938cb982b33b0e1" dependencies = [ "anyhow", "bevy_app", "bevy_asset", "bevy_ecs", + "bevy_math", "bevy_reflect", + "bevy_transform", "bevy_utils", + "oboe", "parking_lot 0.12.1", "rodio", ] [[package]] name = "bevy_core" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96299aceb3c8362cb4aa39ff81c7ef758a5f4e768d16b5046a91628eff114ac0" +checksum = "ed29797fa386c6969fa1e4ef9e194a27f89ddb2fa78751fe46838495d374f90f" dependencies = [ "bevy_app", "bevy_ecs", @@ -677,9 +775,9 @@ dependencies = [ [[package]] name = "bevy_core_pipeline" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc128a9860aadf16fb343ae427f2768986fd91dce64d945455acda9759c48014" +checksum = "3129d308df70dee3c46b6bb64e54d2552e7106fd3185d75732ad5e739a830fee" dependencies = [ "bevy_app", "bevy_asset", @@ -697,9 +795,9 @@ dependencies = [ [[package]] name = "bevy_derive" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7baf73c58d41c353c6fd08e6764a2e7420c9f19e8227b391c50981db6d0282a6" +checksum = "cdf11701c01bf4dc7a3fac9f4547f3643d3db4cc1682af40c8c86e2f8734b617" dependencies = [ "bevy_macro_utils", "quote", @@ -708,9 +806,9 @@ dependencies = [ [[package]] name = "bevy_diagnostic" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63bf96ec7980fa25b77ff6c72dfafada477936c0dab76c1edf6c028c0e5fe0e4" +checksum = "576508ffe7ad5124781edd352b79bdc79ffbb6e2f26bad6f722774f7c9fd16c9" dependencies = [ "bevy_app", "bevy_core", @@ -718,13 +816,14 @@ dependencies = [ "bevy_log", "bevy_time", "bevy_utils", + "sysinfo", ] [[package]] name = "bevy_ecs" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c071d7c6bc9801253485e05d0c257284150de755391902746837ba21c0cf74" +checksum = "fdc5b19451128091e8507c9247888359ca0bfa895e7f6ca749ccc55c5463bef6" dependencies = [ "async-channel", "bevy_ecs_macros", @@ -735,16 +834,16 @@ dependencies = [ "downcast-rs", "event-listener", "fixedbitset", - "fxhash", + "rustc-hash", "serde", "thread_local", ] [[package]] name = "bevy_ecs_macros" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c15bd45438eeb681ad74f2d205bb07a5699f98f9524462a30ec764afab2742ce" +checksum = "b1e79757319533bde006a4f30c268223ec6426371297182925932075ccfdae30" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -754,9 +853,9 @@ dependencies = [ [[package]] name = "bevy_encase_derive" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "962b6bb0d30e92ec2e6c29837acce9e55b920733a634e7c3c5fd5a514bea7a24" +checksum = "723d4838d1f88955f348294c0a9d067307f2437725400b0776e9677154914f14" dependencies = [ "bevy_macro_utils", "encase_derive_impl", @@ -764,9 +863,9 @@ dependencies = [ [[package]] name = "bevy_gilrs" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4af552dad82f854b2fae24f36a389fd8ee99d65fe86ae876e854e70d53ff16d9" +checksum = "905e547d213e368f997d08f140f4e893923c7dce4760bf0fb63401232262fa79" dependencies = [ "bevy_app", "bevy_ecs", @@ -777,9 +876,9 @@ dependencies = [ [[package]] name = "bevy_gltf" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e853e346ba412354e02292c7aa5b9a9dccdfa748e273b1b7ebf8f6a172f89712" +checksum = "bb2994d7e47c36bfe36710c4a26d3f36dd8641bfaa2c5d4d0581e001942aab6f" dependencies = [ "anyhow", "base64 0.13.1", @@ -806,9 +905,9 @@ dependencies = [ [[package]] name = "bevy_hierarchy" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd6d50c48c6e1bcb5e08a768b765323292bb3bf3a439b992754c57ffb85b23a" +checksum = "ccd246c862fcaeef3a769f47c6297139f971db0c8fdd6188fe9419ee8873b7e8" dependencies = [ "bevy_app", "bevy_core", @@ -821,9 +920,9 @@ dependencies = [ [[package]] name = "bevy_input" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3378b5171284f4c4c0e8307081718a9fe458f846444616bd82d69110dcabca51" +checksum = "6c809b3df62e1fcbdc6744233ae6c95a67d2cc7e518db43ab81f417d5875ba3b" dependencies = [ "bevy_app", "bevy_ecs", @@ -835,10 +934,11 @@ dependencies = [ [[package]] name = "bevy_internal" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c46014b7e885b1311de06b6039e448454a4db55b8d35464798ba88faa186e11" +checksum = "0a065c7ac81cd7cf3f1b8f15c4a93db5f07274ddaaec145ba7d0393be0c9c413" dependencies = [ + "bevy_a11y", "bevy_animation", "bevy_app", "bevy_asset", @@ -868,14 +968,13 @@ dependencies = [ "bevy_utils", "bevy_window", "bevy_winit", - "ndk-glue", ] [[package]] name = "bevy_log" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c480bac54cf4ae76edc3ae9ae3fa7c5e1b385e7f2111ef5ec3fd00cf3a7998b" +checksum = "47dcb09ec71145c80d88a84181cc1449d30f23c571bdd58c59c10eece82dfaa5" dependencies = [ "android_log-sys", "bevy_app", @@ -889,39 +988,39 @@ dependencies = [ [[package]] name = "bevy_macro_utils" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "022bb69196deeea691b6997414af85bbd7f2b34a8914c4aa7a7ff4dfa44f7677" +checksum = "f24ca3363292f1435641fbafd5c24ce362137dd7d69bee56dcaaa2bc1d512ffe" dependencies = [ "quote", "syn", - "toml", + "toml_edit", ] [[package]] name = "bevy_math" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d434c77ab766c806ed9062ef8a7285b3b02b47df51f188d4496199c3ac062eaf" +checksum = "5e45e46c2ac0a92db3ae622f2ed690928fe2612e7c9470a46d0ed4c2c77e2e95" dependencies = [ - "glam", + "glam 0.23.0", "serde", ] [[package]] name = "bevy_mikktspace" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfb5908d33fd613069be516180b8f138aaaf6e41c36b1fd98c6c29c00c24a13" +checksum = "aaa0358a79823e6f0069b910d90b615d02dad08279b5856d3d1e401472b6379a" dependencies = [ - "glam", + "glam 0.23.0", ] [[package]] name = "bevy_pbr" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "310b1f260a475d81445623e138e1b7245759a42310bc1f84b550a3f4ff8763bf" +checksum = "90230c526ee7257229c1db0fc4aafaa947ea806bb4b0674785930ea59d0cc7f8" dependencies = [ "bevy_app", "bevy_asset", @@ -941,15 +1040,15 @@ dependencies = [ [[package]] name = "bevy_ptr" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ec44f7655039546bc5d34d98de877083473f3e9b2b81d560c528d6d74d3eff4" +checksum = "a96c24da064370917b92c2a84527e6a73b620c50ac5ef8b1af8c04ccf5256a7c" [[package]] name = "bevy_reflect" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6deae303a7f69dc243b2fa35b5e193cc920229f448942080c8eb2dbd9de6d37a" +checksum = "ab880e0eed9df5c99ce1a2f89edc11cdef1bc78413719b29e9ad7e3bc27f4c20" dependencies = [ "bevy_math", "bevy_ptr", @@ -957,7 +1056,7 @@ dependencies = [ "bevy_utils", "downcast-rs", "erased-serde", - "glam", + "glam 0.23.0", "once_cell", "parking_lot 0.12.1", "serde", @@ -967,9 +1066,9 @@ dependencies = [ [[package]] name = "bevy_reflect_derive" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bf4cb9cd5acb4193f890f36cb63679f1502e2de025e66a63b194b8b133d018" +checksum = "3b361b8671bdffe93978270dd770b03b48560c3127fdf9003f98111fb806bb11" dependencies = [ "bevy_macro_utils", "bit-set", @@ -981,11 +1080,12 @@ dependencies = [ [[package]] name = "bevy_render" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e3282a8f8779d2aced93207fbed73f740937c6c2bd27bd84f0799b081c7fca5" +checksum = "52e352868ab1a9ad9fbaa6ff025505e685781ad1790377b2d038afeb9df18214" dependencies = [ "anyhow", + "async-channel", "bevy_app", "bevy_asset", "bevy_core", @@ -998,6 +1098,7 @@ dependencies = [ "bevy_mikktspace", "bevy_reflect", "bevy_render_macros", + "bevy_tasks", "bevy_time", "bevy_transform", "bevy_utils", @@ -1007,25 +1108,27 @@ dependencies = [ "downcast-rs", "encase", "futures-lite", - "hex", "hexasphere", "image 0.24.5", + "ktx2", "naga", "once_cell", "parking_lot 0.12.1", "regex", + "ruzstd", "serde", "smallvec", "thiserror", "thread_local", "wgpu", + "wgpu-hal", ] [[package]] name = "bevy_render_macros" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7acae697776ac05bea523e1725cf2660c91c53abe72c66782ea1e1b9eedb572" +checksum = "570b1d0f38439c5ac8ab75572804c9979b9caa372c49bd00803f60a22a3e1328" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -1035,9 +1138,9 @@ dependencies = [ [[package]] name = "bevy_scene" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea9c66a628c833d53bae54fe94cbc0d3f12c29e9d2e6c3f2356d45ad57db0c8c" +checksum = "3995f756e482e964e0244a5d388e757f272d1dcdc02136730b1c45f4d5eeb516" dependencies = [ "anyhow", "bevy_app", @@ -1057,9 +1160,9 @@ dependencies = [ [[package]] name = "bevy_sprite" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ec01c7db7f698d95bcb70708527c3ae6bcdc78fc247abe74f935cae8f0a1145" +checksum = "14aa41c9480b76d7b3c3f1ed89f95c9d6e2a39d3c3367ca82c122d853ac0463e" dependencies = [ "bevy_app", "bevy_asset", @@ -1082,14 +1185,14 @@ dependencies = [ [[package]] name = "bevy_tasks" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "680b16b53df9c9f24681dd95f4d772d83760bd19adf8bca00f358a3aad997853" +checksum = "3e368e4177fe70d695d5cb67fb7480fa262de79948d9b883a21788b9abf5a85a" dependencies = [ "async-channel", "async-executor", "async-task", - "concurrent-queue 1.2.4", + "concurrent-queue", "futures-lite", "once_cell", "wasm-bindgen-futures", @@ -1097,9 +1200,9 @@ dependencies = [ [[package]] name = "bevy_text" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60c74c1bdaabde7db28f6728aa13bc7b1d744a2201b2bbfd83d2224404c57f5c" +checksum = "33fc934d7cbadbb6dac11547dfb805d3e6b3f0b40f6e66e437fe4b3c7581cc5c" dependencies = [ "ab_glyph", "anyhow", @@ -1120,22 +1223,23 @@ dependencies = [ [[package]] name = "bevy_time" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c38a6d3ea929c7f81e6adf5a6c62cf7e8c40f5106c2174d6057e9d8ea624d" +checksum = "d2f2863cfc08fa38909e047a1bbc2dd71d0836057ed0840c69ace9dff3e0c298" dependencies = [ "bevy_app", "bevy_ecs", "bevy_reflect", "bevy_utils", "crossbeam-channel", + "thiserror", ] [[package]] name = "bevy_transform" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba13c57a040b89767191a6f6d720a635b7792793628bfa41a9e38b7026484aec" +checksum = "de9cda3df545ac889b4f6b702109e51d29d7b4b6f402f2bb9b4d1d9f9c382b63" dependencies = [ "bevy_app", "bevy_ecs", @@ -1146,10 +1250,11 @@ dependencies = [ [[package]] name = "bevy_ui" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60e82ace6156f11fcdf2319102ff8fb8367b82d1e32b7d05d387a1963602f965" +checksum = "dc341d652ba20fac0170a46eff8310829a862f4e52db06164dc6200706768934" dependencies = [ + "bevy_a11y", "bevy_app", "bevy_asset", "bevy_core_pipeline", @@ -1175,23 +1280,37 @@ dependencies = [ [[package]] name = "bevy_utils" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16750aae52cd35bd7b60eb61cee883420b250e11b4a290b8d44b2b2941795739" +checksum = "04d90ce493910ad9af3b4220ea6864c7d1472761086a98230ecac59c8d547e95" dependencies = [ "ahash", + "bevy_utils_proc_macros", "getrandom", "hashbrown", "instant", + "petgraph", + "thiserror", "tracing", "uuid", ] +[[package]] +name = "bevy_utils_proc_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62a42e465c446800c57a5bf65b64f4fa1c1f3a74efc2a64a2a001e4a4f548a2e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "bevy_window" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a44d3f3bd54a2261f4f57f614bf7bccc8d2832761493c0cd7dab81d98cc151e" +checksum = "da8a2c523302ad64768991a7474c6010c76b9eb78323309ef3911521887fd108" dependencies = [ "bevy_app", "bevy_ecs", @@ -1199,24 +1318,29 @@ dependencies = [ "bevy_math", "bevy_reflect", "bevy_utils", - "raw-window-handle 0.5.0", + "raw-window-handle", ] [[package]] name = "bevy_winit" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7b7e647ecd0b3577468da37767dcdd7c26ca9f80da0060b2ec4c77336b6d2e1" +checksum = "8eb6eb9b9790c1ad925d900a3f315abf15b11fb56c6464747a96560e559e1a9c" dependencies = [ + "accesskit_winit", "approx", + "bevy_a11y", "bevy_app", + "bevy_derive", "bevy_ecs", + "bevy_hierarchy", "bevy_input", "bevy_math", "bevy_utils", "bevy_window", "crossbeam-channel", - "raw-window-handle 0.5.0", + "once_cell", + "raw-window-handle", "wasm-bindgen", "web-sys", "winit", @@ -1278,6 +1402,25 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-sys" +version = "0.1.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146" +dependencies = [ + "objc-sys", +] + +[[package]] +name = "block2" +version = "0.2.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42" +dependencies = [ + "block-sys", + "objc2-encode", +] + [[package]] name = "blocking" version = "1.3.0" @@ -1360,12 +1503,6 @@ dependencies = [ "bytes", ] -[[package]] -name = "cache-padded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" - [[package]] name = "cast" version = "0.3.0" @@ -1504,37 +1641,6 @@ dependencies = [ "os_str_bytes", ] -[[package]] -name = "cocoa" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" -dependencies = [ - "bitflags", - "block", - "cocoa-foundation", - "core-foundation", - "core-graphics", - "foreign-types", - "libc", - "objc", -] - -[[package]] -name = "cocoa-foundation" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" -dependencies = [ - "bitflags", - "block", - "core-foundation", - "core-graphics-types", - "foreign-types", - "libc", - "objc", -] - [[package]] name = "codespan-reporting" version = "0.11.1" @@ -1551,6 +1657,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "com-rs" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642" + [[package]] name = "combine" version = "4.6.6" @@ -1561,15 +1673,6 @@ 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.1.0" @@ -1618,10 +1721,16 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" dependencies = [ - "core-foundation-sys", + "core-foundation-sys 0.8.3", "libc", ] +[[package]] +name = "core-foundation-sys" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" + [[package]] name = "core-foundation-sys" version = "0.8.3" @@ -1655,11 +1764,12 @@ dependencies = [ [[package]] name = "coreaudio-rs" -version = "0.10.0" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11894b20ebfe1ff903cbdc52259693389eea03b94918a2def2c30c3bf227ad88" +checksum = "cb17e2d1795b1996419648915df94bc7103c28f7b48062d7acf4652fc371b2ff" dependencies = [ "bitflags", + "core-foundation-sys 0.6.2", "coreaudio-sys", ] @@ -1674,27 +1784,28 @@ dependencies = [ [[package]] name = "cpal" -version = "0.14.2" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f342c1b63e185e9953584ff2199726bf53850d96610a310e3aca09e9405a2d0b" +checksum = "d34fa7b20adf588f73f094cd9b1d944977c686e37a2759ea217ab174f017e10a" dependencies = [ "alsa", - "core-foundation-sys", + "core-foundation-sys 0.8.3", "coreaudio-rs", - "jni", + "dasp_sample", + "jni 0.19.0", "js-sys", "libc", "mach", - "ndk 0.7.0", + "ndk", "ndk-context", "oboe", "once_cell", "parking_lot 0.12.1", - "stdweb", "thiserror", "wasm-bindgen", + "wasm-bindgen-futures", "web-sys", - "windows 0.37.0", + "windows 0.44.0", ] [[package]] @@ -1802,7 +1913,7 @@ dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.7.1", + "memoffset", "scopeguard", ] @@ -1853,9 +1964,9 @@ checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" [[package]] name = "d3d12" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "827914e1f53b1e0e025ecd3d967a7836b7bcb54520f90e21ef8df7b4d88a2759" +checksum = "d8f0de2f5a8e7bd4a9eec0e3c781992a4ce1724f68aec7d7a3715344de8b39da" dependencies = [ "bitflags", "libloading", @@ -1863,39 +1974,10 @@ dependencies = [ ] [[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" +name = "dasp_sample" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core", - "quote", - "syn", -] +checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" [[package]] name = "de_behaviour" @@ -1905,8 +1987,7 @@ dependencies = [ "de_core", "de_objects", "de_pathing", - "glam", - "iyes_loopless", + "glam 0.22.0", "parry3d", ] @@ -1920,7 +2001,6 @@ dependencies = [ "de_map", "de_terrain", "de_uom", - "iyes_loopless", "parry3d", ] @@ -1936,8 +2016,7 @@ dependencies = [ "de_signs", "de_spawner", "de_terrain", - "glam", - "iyes_loopless", + "glam 0.22.0", "parry3d", ] @@ -1953,7 +2032,6 @@ dependencies = [ "de_uom", "dirs", "futures-lite", - "iyes_loopless", "iyes_progress", "serde", "serde_yaml", @@ -1980,11 +2058,10 @@ dependencies = [ "de_spawner", "de_terrain", "enum-map", - "glam", - "iyes_loopless", + "glam 0.22.0", "parry2d", "parry3d", - "wgpu-types", + "wgpu-types 0.14.1", ] [[package]] @@ -1993,8 +2070,7 @@ version = "0.1.0-dev" dependencies = [ "bevy", "enum-map", - "glam", - "iyes_loopless", + "glam 0.22.0", "iyes_progress", "nalgebra", "parry2d", @@ -2024,7 +2100,6 @@ dependencies = [ "de_signs", "de_spawner", "de_terrain", - "iyes_loopless", ] [[package]] @@ -2033,7 +2108,6 @@ version = "0.1.0-dev" dependencies = [ "bevy", "de_core", - "iyes_loopless", ] [[package]] @@ -2045,8 +2119,7 @@ dependencies = [ "criterion", "de_core", "de_objects", - "glam", - "iyes_loopless", + "glam 0.22.0", "nalgebra", "parry2d", "parry3d", @@ -2063,7 +2136,6 @@ dependencies = [ "de_spawner", "de_terrain", "futures-lite", - "iyes_loopless", "iyes_progress", ] @@ -2101,7 +2173,6 @@ dependencies = [ "de_core", "de_lobby_model", "futures-lite", - "iyes_loopless", "iyes_progress", "reqwest", "serde", @@ -2127,7 +2198,7 @@ dependencies = [ "bevy", "de_core", "enum-map", - "glam", + "glam 0.22.0", "parry2d", "serde", "serde_json", @@ -2148,7 +2219,6 @@ dependencies = [ "de_lobby_model", "de_map", "futures-lite", - "iyes_loopless", "thiserror", ] @@ -2162,8 +2232,7 @@ dependencies = [ "de_map", "de_objects", "de_pathing", - "glam", - "iyes_loopless", + "glam 0.22.0", "parry2d", "parry3d", ] @@ -2176,8 +2245,7 @@ dependencies = [ "bevy", "de_core", "enum-map", - "glam", - "iyes_loopless", + "glam 0.22.0", "iyes_progress", "parry2d", "parry3d", @@ -2197,8 +2265,7 @@ dependencies = [ "de_map", "de_objects", "futures-lite", - "glam", - "iyes_loopless", + "glam 0.22.0", "nalgebra", "ntest", "parry2d", @@ -2216,8 +2283,7 @@ dependencies = [ "de_core", "de_objects", "de_terrain", - "glam", - "iyes_loopless", + "glam 0.22.0", ] [[package]] @@ -2231,7 +2297,6 @@ dependencies = [ "de_map", "de_objects", "de_terrain", - "iyes_loopless", "parry2d", "parry3d", ] @@ -2245,9 +2310,8 @@ dependencies = [ "de_core", "de_map", "de_objects", - "glam", + "glam 0.22.0", "itertools", - "iyes_loopless", "iyes_progress", "parry3d", ] @@ -2259,7 +2323,7 @@ dependencies = [ "async-std", "clap 4.1.1", "de_map", - "glam", + "glam 0.22.0", "gltf", "parry3d", ] @@ -2291,7 +2355,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version 0.4.0", + "rustc_version", "syn", ] @@ -2326,12 +2390,6 @@ 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" @@ -2358,30 +2416,30 @@ checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "encase" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48ec50086547d597b5c871a78399ec04a14828a6a5c445a61ed4687c540edec6" +checksum = "e6591f13a63571c4821802eb5b10fd1155b1290bce87086440003841c8c3909b" dependencies = [ "const_panic", "encase_derive", - "glam", + "glam 0.23.0", "thiserror", ] [[package]] name = "encase_derive" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dda93e9714c7683c474f49a461a2ae329471d2bda43c4302d41c6d8339579e92" +checksum = "4f1da6deed1f8b6f5909616ffa695f63a5de54d6a0f084fa715c70c8ed3abac9" dependencies = [ "encase_derive_impl", ] [[package]] name = "encase_derive_impl" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec27b639e942eb0297513b81cc6d87c50f6c77dc8c37af00a39ed5db3b9657ee" +checksum = "ae489d58959f3c4cdd1250866a05acfb341469affe4fced71aff3ba228be1693" dependencies = [ "proc-macro2", "quote", @@ -2492,7 +2550,7 @@ checksum = "4e884668cd0c7480504233e951174ddc3b382f7c2666e3b7310b5c4e7b0c37f9" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "windows-sys 0.42.0", ] @@ -2725,11 +2783,23 @@ dependencies = [ "windows 0.43.0", ] +[[package]] +name = "gimli" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" + [[package]] name = "glam" version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12f597d56c1bd55a811a1be189459e8fad2bbc272616375602443bdfb37fa774" + +[[package]] +name = "glam" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e4afd9ad95555081e109fe1d21f2a30c691b5f0919c67dfa690a2e1eb6bd51c" dependencies = [ "bytemuck", "serde", @@ -2755,9 +2825,9 @@ dependencies = [ [[package]] name = "glow" -version = "0.11.2" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8bd5877156a19b8ac83a29b2306fe20537429d318f3ff0a1a2119f8d9c61919" +checksum = "4e007a07a24de5ecae94160f141029e9a347282cfe25d1d58d85d845cf3130f1" dependencies = [ "js-sys", "slotmap", @@ -2832,6 +2902,19 @@ dependencies = [ "bitflags", ] +[[package]] +name = "gpu-allocator" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce95f9e2e11c2c6fadfce42b5af60005db06576f231f5c92550fdded43c423e8" +dependencies = [ + "backtrace", + "log", + "thiserror", + "winapi", + "windows 0.44.0", +] + [[package]] name = "gpu-descriptor" version = "0.2.3" @@ -2897,21 +2980,10 @@ dependencies = [ ] [[package]] -name = "hash32-derive" -version = "0.1.1" +name = "hashbrown" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59d2aba832b60be25c1b169146b27c64115470981b128ed84c8db18c1b03c6ff" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ "ahash", "serde", @@ -2926,6 +2998,21 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "hassle-rs" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90601c6189668c7345fc53842cb3f3a3d872203d523be1b3cb44a36a3e62fb85" +dependencies = [ + "bitflags", + "com-rs", + "libc", + "libloading", + "thiserror", + "widestring", + "winapi", +] + [[package]] name = "heapless" version = "0.7.16" @@ -2934,7 +3021,7 @@ checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743" dependencies = [ "atomic-polyfill", "hash32", - "rustc_version 0.4.0", + "rustc_version", "spin 0.9.4", "stable_deref_trait", ] @@ -2974,11 +3061,11 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hexasphere" -version = "8.0.0" +version = "8.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "619ce654558681d7d0a7809e1b20249c7032ff13ee6baa7bb7ff64f7f28a906a" +checksum = "bd41d443f978bfa380a6dad58b62a08c43bcb960631f13e9d015b911eaf73588" dependencies = [ - "glam", + "glam 0.23.0", "once_cell", ] @@ -3074,12 +3161,6 @@ dependencies = [ "tokio-native-tls", ] -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - [[package]] name = "idna" version = "0.3.0" @@ -3175,7 +3256,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7789f7f3c9686f96164f5109d69152de759e76e284f736bd57661c6df5091919" dependencies = [ - "core-foundation-sys", + "core-foundation-sys 0.8.3", "mach", ] @@ -3223,33 +3304,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" [[package]] -name = "iyes_loopless" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c47fd2cbdb1d7f295c25e6bfccfd78a84b6eef3055bc9f01b34ae861721b01ee" +name = "iyes_progress" +version = "0.8.0" +source = "git+https://github.com/NiklasEi/iyes_progress?rev=ab493dba453505cda451c7cc3b3ca0db233e4005#ab493dba453505cda451c7cc3b3ca0db233e4005" dependencies = [ "bevy_app", "bevy_ecs", - "bevy_time", - "bevy_utils", ] [[package]] -name = "iyes_progress" -version = "0.7.1" +name = "jni" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266c468795c5af070ab4c5fa01aca792a8f01f511e76feb9bea3878a1dbee144" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" dependencies = [ - "bevy_app", - "bevy_ecs", - "iyes_loopless", + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", ] [[package]] name = "jni" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" dependencies = [ "cesu8", "combine", @@ -3282,9 +3363,9 @@ checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2" [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" dependencies = [ "wasm-bindgen", ] @@ -3343,6 +3424,15 @@ dependencies = [ "libc", ] +[[package]] +name = "ktx2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87d65e08a9ec02e409d27a0139eaa6b9756b4d81fe7cde71f6941a83730ce838" +dependencies = [ + "bitflags", +] + [[package]] name = "kv-log-macro" version = "1.0.7" @@ -3510,15 +3600,6 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.7.1" @@ -3586,9 +3667,9 @@ dependencies = [ [[package]] name = "naga" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "262d2840e72dbe250e8cf2f522d080988dfca624c4112c096238a4845f591707" +checksum = "5eafe22a23b797c9bc227c6c896419b26b5bb88fa903417a3adaed08778850d5" dependencies = [ "bit-set", "bitflags", @@ -3613,7 +3694,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20bd243ab3dbb395b39ee730402d2e5405e448c75133ec49cc977762c4cba3d1" dependencies = [ "approx", - "glam", + "glam 0.22.0", "matrixmultiply", "nalgebra-macros", "num-complex", @@ -3652,19 +3733,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "ndk" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" -dependencies = [ - "bitflags", - "jni-sys", - "ndk-sys 0.3.0", - "num_enum", - "thiserror", -] - [[package]] name = "ndk" version = "0.7.0" @@ -3673,9 +3741,9 @@ checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" dependencies = [ "bitflags", "jni-sys", - "ndk-sys 0.4.1+23.1.7779620", + "ndk-sys", "num_enum", - "raw-window-handle 0.5.0", + "raw-window-handle", "thiserror", ] @@ -3685,45 +3753,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" -[[package]] -name = "ndk-glue" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0434fabdd2c15e0aab768ca31d5b7b333717f03cf02037d5a0a3ff3c278ed67f" -dependencies = [ - "android_logger", - "libc", - "log", - "ndk 0.7.0", - "ndk-context", - "ndk-macro", - "ndk-sys 0.4.1+23.1.7779620", - "once_cell", - "parking_lot 0.12.1", -] - -[[package]] -name = "ndk-macro" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c" -dependencies = [ - "darling", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "ndk-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" -dependencies = [ - "jni-sys", -] - [[package]] name = "ndk-sys" version = "0.4.1+23.1.7779620" @@ -3735,15 +3764,13 @@ dependencies = [ [[package]] name = "nix" -version = "0.23.2" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ "bitflags", - "cc", "cfg-if", "libc", - "memoffset 0.6.5", ] [[package]] @@ -3786,6 +3813,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "ntapi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc51db7b362b205941f71232e56c625156eb9a929f8cf74a428fd5bc094a4afc" +dependencies = [ + "winapi", +] + [[package]] name = "ntest" version = "0.9.0" @@ -3954,6 +3990,32 @@ dependencies = [ "objc_exception", ] +[[package]] +name = "objc-sys" +version = "0.2.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" + +[[package]] +name = "objc2" +version = "0.3.0-beta.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe31e5425d3d0b89a15982c024392815da40689aceb34bad364d58732bcfd649" +dependencies = [ + "block2", + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2-encode" +version = "2.0.0-pre.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512" +dependencies = [ + "objc-sys", +] + [[package]] name = "objc_exception" version = "0.1.2" @@ -3963,14 +4025,23 @@ dependencies = [ "cc", ] +[[package]] +name = "object" +version = "0.30.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +dependencies = [ + "memchr", +] + [[package]] name = "oboe" -version = "0.4.6" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27f63c358b4fa0fbcfefd7c8be5cfc39c08ce2389f5325687e7762a48d30a5c1" +checksum = "8868cc237ee02e2d9618539a23a8d228b9bb3fc2e7a5b11eed3831de77c395d0" dependencies = [ - "jni", - "ndk 0.6.0", + "jni 0.20.0", + "ndk", "ndk-context", "num-derive", "num-traits", @@ -3979,9 +4050,9 @@ dependencies = [ [[package]] name = "oboe-sys" -version = "0.4.5" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3370abb7372ed744232c12954d920d1a40f1c4686de9e79e800021ef492294bd" +checksum = "7f44155e7fb718d3cfddcf70690b2b51ac4412f347cd9e4fbe511abe9cd7b5f2" dependencies = [ "cc", ] @@ -4058,6 +4129,18 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978aa494585d3ca4ad74929863093e87cac9790d81fe7aba2b3dc2890643a0fc" +[[package]] +name = "orbclient" +version = "0.3.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba683f1641c11041c59d5d93689187abcab3c1349dc6d9d70c550c9f9360802f" +dependencies = [ + "cfg-if", + "redox_syscall 0.2.16", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "os_str_bytes" version = "6.4.1" @@ -4115,7 +4198,7 @@ dependencies = [ "cfg-if", "instant", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", "winapi", ] @@ -4128,7 +4211,7 @@ checksum = "ba1ef8814b5c993410bb3adfad7a5ed269563e4a2f90c41f5d85be7fb47133bf" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", "windows-sys 0.42.0", ] @@ -4455,15 +4538,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63e935c45e09cc6dcf00d2f0b2d630a58f4095320223d47fc68918722f0538b6" -[[package]] -name = "raw-window-handle" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41" -dependencies = [ - "cty", -] - [[package]] name = "raw-window-handle" version = "0.5.0" @@ -4516,6 +4590,15 @@ dependencies = [ "bitflags", ] +[[package]] +name = "redox_syscall" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb02a9aee8e8c7ad8d86890f1e16b49e0bbbffc9961ff3788c31d57c98bcbf03" +dependencies = [ + "bitflags", +] + [[package]] name = "redox_users" version = "0.4.3" @@ -4523,7 +4606,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ "getrandom", - "redox_syscall", + "redox_syscall 0.2.16", "thiserror", ] @@ -4628,9 +4711,9 @@ checksum = "e5864e7ef1a6b7bcf1d6ca3f655e65e724ed3b52546a0d0a663c991522f552ea" [[package]] name = "rodio" -version = "0.16.0" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb10b653d5ec0e9411a2e7d46e2c7f4046fd87d35b9955bd73ba4108d69072b5" +checksum = "bdf1d4dea18dff2e9eb6dca123724f8b60ef44ad74a9ad283cdfe025df7e73fa" dependencies = [ "cpal", "lewton", @@ -4659,19 +4742,16 @@ dependencies = [ ] [[package]] -name = "rustc-hash" -version = "1.1.0" +name = "rustc-demangle" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" [[package]] -name = "rustc_version" -version = "0.2.3" +name = "rustc-hash" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver 0.9.0", -] +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc_version" @@ -4679,7 +4759,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.16", + "semver", ] [[package]] @@ -4717,6 +4797,16 @@ dependencies = [ "base64 0.21.0", ] +[[package]] +name = "ruzstd" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cada0ef59efa6a5f4dc5e491f93d9f31e3fc7758df421ff1de8a706338e1100" +dependencies = [ + "byteorder", + "twox-hash", +] + [[package]] name = "ryu" version = "1.0.12" @@ -4780,7 +4870,7 @@ checksum = "645926f31b250a2dca3c232496c2d898d91036e45ca0e97e0e2390c54e11be36" dependencies = [ "bitflags", "core-foundation", - "core-foundation-sys", + "core-foundation-sys 0.8.3", "libc", "security-framework-sys", ] @@ -4791,31 +4881,16 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" dependencies = [ - "core-foundation-sys", + "core-foundation-sys 0.8.3", "libc", ] -[[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" version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" -[[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.152" @@ -4872,15 +4947,6 @@ 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" version = "0.10.5" @@ -4892,12 +4958,6 @@ dependencies = [ "digest", ] -[[package]] -name = "sha1_smol" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" - [[package]] name = "sha2" version = "0.10.6" @@ -5161,55 +5221,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "stdweb" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" -dependencies = [ - "discard", - "rustc_version 0.2.3", - "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 0.6.1", - "syn", -] - -[[package]] -name = "stdweb-internal-runtime" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" - [[package]] name = "stringprep" version = "0.1.2" @@ -5249,17 +5260,29 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sysinfo" +version = "0.28.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e847e2de7a137c8c2cede5095872dbb00f4f9bf34d061347e36b43322acd56" +dependencies = [ + "cfg-if", + "core-foundation-sys 0.8.3", + "libc", + "ntapi", + "once_cell", + "winapi", +] + [[package]] name = "taffy" -version = "0.1.0" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec27dea659b100d489dffa57cf0efc6d7bfefb119af817b92cc14006c0b214e3" +checksum = "4be5ed3e3f6e4ba56bbad8c6e53360fab3a4f418e14adb9f5dd7816625273d07" dependencies = [ "arrayvec", - "hash32", - "hash32-derive", "num-traits", - "typenum", + "slotmap", ] [[package]] @@ -5271,7 +5294,7 @@ dependencies = [ "cfg-if", "fastrand", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "remove_dir_all", "winapi", ] @@ -5446,6 +5469,23 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" + +[[package]] +name = "toml_edit" +version = "0.19.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a1eb0622d28f4b9c90adc4ea4b2b46b47663fde9ac5fafcb14a1369d5508825" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + [[package]] name = "tower-service" version = "0.3.2" @@ -5538,6 +5578,16 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0609f771ad9c6155384897e1df4d948e692667cc0588548b68eb44d052b27633" +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "static_assertions", +] + [[package]] name = "typenum" version = "1.16.0" @@ -5698,9 +5748,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -5708,9 +5758,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" dependencies = [ "bumpalo", "log", @@ -5723,9 +5773,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.33" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" dependencies = [ "cfg-if", "js-sys", @@ -5735,9 +5785,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5745,9 +5795,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" dependencies = [ "proc-macro2", "quote", @@ -5758,15 +5808,26 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" + +[[package]] +name = "wayland-scanner" +version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" +dependencies = [ + "proc-macro2", + "quote", + "xml-rs", +] [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" dependencies = [ "js-sys", "wasm-bindgen", @@ -5802,16 +5863,18 @@ dependencies = [ [[package]] name = "wgpu" -version = "0.14.2" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81f643110d228fd62a60c5ed2ab56c4d5b3704520bd50561174ec4ec74932937" +checksum = "d745a1b6d91d85c33defbb29f0eee0450e1d2614d987e14bf6baf26009d132d7" dependencies = [ "arrayvec", + "cfg-if", "js-sys", "log", "naga", "parking_lot 0.12.1", - "raw-window-handle 0.5.0", + "profiling", + "raw-window-handle", "smallvec", "static_assertions", "wasm-bindgen", @@ -5819,38 +5882,37 @@ dependencies = [ "web-sys", "wgpu-core", "wgpu-hal", - "wgpu-types", + "wgpu-types 0.15.1", ] [[package]] name = "wgpu-core" -version = "0.14.2" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6000d1284ef8eec6076fd5544a73125fd7eb9b635f18dceeb829d826f41724ca" +checksum = "7131408d940e335792645a98f03639573b0480e9e2e7cddbbab74f7c6d9f3fff" dependencies = [ "arrayvec", "bit-vec", "bitflags", - "cfg_aliases", "codespan-reporting", "fxhash", "log", "naga", "parking_lot 0.12.1", "profiling", - "raw-window-handle 0.5.0", + "raw-window-handle", "smallvec", "thiserror", "web-sys", "wgpu-hal", - "wgpu-types", + "wgpu-types 0.15.1", ] [[package]] name = "wgpu-hal" -version = "0.14.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cc320a61acb26be4f549c9b1b53405c10a223fbfea363ec39474c32c348d12f" +checksum = "37a7816f00690eca4540579ad861ee9b646d938b467ce83caa5ffb8b1d8180f6" dependencies = [ "android_system_properties", "arrayvec", @@ -5864,9 +5926,12 @@ dependencies = [ "fxhash", "glow", "gpu-alloc", + "gpu-allocator", "gpu-descriptor", + "hassle-rs", "js-sys", "khronos-egl", + "libc", "libloading", "log", "metal", @@ -5875,13 +5940,13 @@ dependencies = [ "parking_lot 0.12.1", "profiling", "range-alloc", - "raw-window-handle 0.5.0", + "raw-window-handle", "renderdoc-sys", "smallvec", "thiserror", "wasm-bindgen", "web-sys", - "wgpu-types", + "wgpu-types 0.15.1", "winapi", ] @@ -5894,6 +5959,17 @@ dependencies = [ "bitflags", ] +[[package]] +name = "wgpu-types" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a321d5436275e62be2d1ebb87991486fb3a561823656beb5410571500972cc65" +dependencies = [ + "bitflags", + "js-sys", + "web-sys", +] + [[package]] name = "wide" version = "0.7.5" @@ -5904,6 +5980,12 @@ dependencies = [ "safe_arch", ] +[[package]] +name = "widestring" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" + [[package]] name = "winapi" version = "0.3.9" @@ -5937,43 +6019,50 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.37.0" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" +checksum = "04662ed0e3e5630dfa9b26e4cb823b817f1a9addda855d973a9458c236556244" 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", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] name = "windows" -version = "0.43.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04662ed0e3e5630dfa9b26e4cb823b817f1a9addda855d973a9458c236556244" +checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.1", + "windows-implement", + "windows-interface", + "windows-targets", ] [[package]] -name = "windows-sys" -version = "0.36.1" +name = "windows-implement" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce87ca8e3417b02dc2a8a22769306658670ec92d78f1bd420d6310a67c245c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +checksum = "853f69a591ecd4f810d29f17e902d40e349fb05b0b11fff63b08b826bfe39c7f" dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -5983,31 +6072,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.1", + "windows_x86_64_msvc", ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.1" +name = "windows-sys" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets", +] [[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" +name = "windows-targets" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] [[package]] -name = "windows_aarch64_msvc" -version = "0.37.0" +name = "windows_aarch64_gnullvm" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" [[package]] name = "windows_aarch64_msvc" @@ -6015,54 +6116,18 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" -[[package]] -name = "windows_i686_gnu" -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.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" -[[package]] -name = "windows_i686_msvc" -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.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" -[[package]] -name = "windows_x86_64_gnu" -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.1" @@ -6075,18 +6140,6 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" -[[package]] -name = "windows_x86_64_msvc" -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.1" @@ -6095,12 +6148,13 @@ checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" [[package]] name = "winit" -version = "0.27.5" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb796d6fbd86b2fd896c9471e6f04d39d750076ebe5680a3958f00f5ab97657c" +checksum = "9d38e7dc904dda347b54dbec3b2d4bf534794f4fb4e6df0be91a264f4f2ed1cf" dependencies = [ + "android-activity", "bitflags", - "cocoa", + "cfg_aliases", "core-foundation", "core-graphics", "dispatch", @@ -6108,20 +6162,29 @@ dependencies = [ "libc", "log", "mio", - "ndk 0.7.0", - "ndk-glue", - "objc", + "ndk", + "objc2", "once_cell", - "parking_lot 0.12.1", + "orbclient", "percent-encoding", - "raw-window-handle 0.4.3", - "raw-window-handle 0.5.0", + "raw-window-handle", + "redox_syscall 0.3.4", "wasm-bindgen", + "wayland-scanner", "web-sys", - "windows-sys 0.36.1", + "windows-sys 0.45.0", "x11-dl", ] +[[package]] +name = "winnow" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee7b2c67f962bf5042bfd8b6a916178df33a26eec343ae064cb8e069f638fa6f" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.10.1" @@ -6157,6 +6220,12 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" +[[package]] +name = "xml-rs" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" + [[package]] name = "zstd" version = "0.11.2+zstd.1.5.2" diff --git a/Cargo.toml b/Cargo.toml index c34b0f958..b6db19870 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,7 +48,6 @@ de_terrain.workspace = true # Other bevy.workspace = true -iyes_loopless.workspace = true [workspace] members = ["crates/*"] @@ -94,7 +93,7 @@ approx = "0.5.1" async-compat = "0.2.1" async-std = "1.11" async-tar = "0.4.2" -bevy = "0.9" +bevy = "0.10" clap = { version = "4.0", features = ["derive"] } criterion = "0.4" dirs = "4.0.0" @@ -103,8 +102,8 @@ futures-lite = "1.11" glam = "0.22" gltf = "1.0" itertools = "0.10.5" -iyes_loopless = "0.9.1" -iyes_progress = { version = "0.7.1", features = [ "iyes_loopless" ] } +# TODO: use a released version +iyes_progress = { git = "https://github.com/NiklasEi/iyes_progress", rev = "ab493dba453505cda451c7cc3b3ca0db233e4005" } nalgebra = { version = "0.31.0", features = ["convert-glam022"] } ntest = "0.9.0" parry2d = "0.11.0" diff --git a/crates/behaviour/Cargo.toml b/crates/behaviour/Cargo.toml index f7537d320..6dcc91ad0 100644 --- a/crates/behaviour/Cargo.toml +++ b/crates/behaviour/Cargo.toml @@ -19,6 +19,5 @@ de_pathing.workspace = true # Other bevy.workspace = true -iyes_loopless.workspace = true glam.workspace = true parry3d.workspace = true diff --git a/crates/behaviour/src/chase.rs b/crates/behaviour/src/chase.rs index a014678a4..cc3fdac61 100644 --- a/crates/behaviour/src/chase.rs +++ b/crates/behaviour/src/chase.rs @@ -1,7 +1,6 @@ use bevy::prelude::*; use de_core::{gamestate::GameState, projection::ToFlat, stages::GameStage}; use de_pathing::{PathQueryProps, PathTarget, UpdateEntityPath}; -use iyes_loopless::prelude::*; pub(crate) struct ChasePlugin; @@ -12,7 +11,7 @@ impl Plugin for ChasePlugin { GameStage::PreUpdate, handle_chase_events .run_in_state(GameState::Playing) - .label(ChaseLabel::ChaseTargetEvent), + .in_set(ChaseLabel::ChaseTargetEvent), ) .add_system_set_to_stage( GameStage::Update, @@ -21,8 +20,8 @@ impl Plugin for ChasePlugin { } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub enum ChaseLabel { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub enum ChaseSet { ChaseTargetEvent, } diff --git a/crates/behaviour/src/lib.rs b/crates/behaviour/src/lib.rs index 83f07d11f..1a8321c4b 100644 --- a/crates/behaviour/src/lib.rs +++ b/crates/behaviour/src/lib.rs @@ -2,7 +2,7 @@ use bevy::{app::PluginGroupBuilder, prelude::PluginGroup}; use chase::ChasePlugin; -pub use chase::{ChaseLabel, ChaseTarget, ChaseTargetComponent, ChaseTargetEvent}; +pub use chase::{ChaseSet, ChaseTarget, ChaseTargetComponent, ChaseTargetEvent}; mod chase; diff --git a/crates/camera/Cargo.toml b/crates/camera/Cargo.toml index 345d0d9cf..ea4e1ae46 100644 --- a/crates/camera/Cargo.toml +++ b/crates/camera/Cargo.toml @@ -21,5 +21,4 @@ de_terrain.workspace = true # Other bevy.workspace = true -iyes_loopless.workspace = true parry3d.workspace = true diff --git a/crates/camera/src/camera.rs b/crates/camera/src/camera.rs index aafcd1b75..d3b981f31 100644 --- a/crates/camera/src/camera.rs +++ b/crates/camera/src/camera.rs @@ -9,7 +9,6 @@ use de_core::{ use de_map::size::MapBounds; use de_terrain::{TerrainCollider, MAX_ELEVATION}; use de_uom::{InverseSecond, Metre, Quantity, Radian, Second}; -use iyes_loopless::prelude::*; use parry3d::{math::Vector, query::Ray}; /// Camera moves horizontally at speed `distance * CAMERA_HORIZONTAL_SPEED`. @@ -52,55 +51,55 @@ impl Plugin for CameraPlugin { GameStage::PreMovement, update_focus .run_in_state(GameState::Playing) - .label(InternalCameraLabel::UpdateFocus), + .in_set(InternalCameraSet::UpdateFocus), ) .add_system_to_stage( GameStage::Input, handle_horizontal_events .run_in_state(GameState::Playing) - .label(CameraLabel::MoveHorizontallEvent), + .in_set(CameraSet::MoveHorizontallEvent), ) .add_system_to_stage( GameStage::Input, handle_zoom_events .run_in_state(GameState::Playing) - .label(CameraLabel::ZoomEvent), + .in_set(CameraSet::ZoomEvent), ) .add_system_to_stage( GameStage::Input, handle_rotate_events .run_in_state(GameState::Playing) - .label(CameraLabel::RotateEvent), + .in_set(CameraSet::RotateEvent), ) .add_system_to_stage( GameStage::Input, handle_tilt_events .run_in_state(GameState::Playing) - .label(CameraLabel::TiltEvent), + .in_set(CameraSet::TiltEvent), ) .add_system_to_stage( GameStage::PreMovement, process_move_focus_events .run_in_state(GameState::Playing) - .label(InternalCameraLabel::MoveFocus) - .after(InternalCameraLabel::UpdateFocus), + .in_set(InternalCameraSet::MoveFocus) + .after(InternalCameraSet::UpdateFocus), ) .add_system_to_stage( GameStage::PreMovement, update_translation_handler .run_in_state(GameState::Playing) - .after(InternalCameraLabel::MoveFocus), + .after(InternalCameraSet::MoveFocus), ) .add_system_to_stage( GameStage::Movement, zoom.run_in_state(GameState::Playing) - .label(InternalCameraLabel::Zoom), + .in_set(InternalCameraSet::Zoom), ) .add_system_to_stage( GameStage::Movement, pivot .run_in_state(GameState::Playing) - .label(InternalCameraLabel::Pivot), + .in_set(InternalCameraSet::Pivot), ) .add_system_to_stage( GameStage::Movement, @@ -108,22 +107,22 @@ impl Plugin for CameraPlugin { .run_in_state(GameState::Playing) // Zooming changes camera focus point so do it // after other types of camera movement. - .after(InternalCameraLabel::Zoom) - .after(InternalCameraLabel::Pivot), + .after(InternalCameraSet::Zoom) + .after(InternalCameraSet::Pivot), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub enum CameraLabel { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub enum CameraSet { MoveHorizontallEvent, RotateEvent, TiltEvent, ZoomEvent, } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -enum InternalCameraLabel { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +enum InternalCameraSet { UpdateFocus, Zoom, Pivot, diff --git a/crates/camera/src/distance.rs b/crates/camera/src/distance.rs index 5e754119c..95e6e0d4e 100644 --- a/crates/camera/src/distance.rs +++ b/crates/camera/src/distance.rs @@ -4,7 +4,6 @@ use de_core::{ stages::GameStage, state::AppState, }; -use iyes_loopless::prelude::*; pub(crate) struct DistancePlugin; @@ -18,14 +17,14 @@ impl Plugin for DistancePlugin { .with_system( update .run_in_state(AppState::InGame) - .label(DistanceLabels::Update), + .in_set(DistanceSet::Update), ), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub enum DistanceLabels { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub enum DistanceSet { Update, } diff --git a/crates/camera/src/lib.rs b/crates/camera/src/lib.rs index 69219cd31..14b35cc97 100644 --- a/crates/camera/src/lib.rs +++ b/crates/camera/src/lib.rs @@ -1,11 +1,11 @@ use bevy::{app::PluginGroupBuilder, prelude::*}; use camera::CameraPlugin; pub use camera::{ - CameraLabel, MoveCameraHorizontallyEvent, MoveFocusEvent, RotateCameraEvent, TiltCameraEvent, + CameraSet, MoveCameraHorizontallyEvent, MoveFocusEvent, RotateCameraEvent, TiltCameraEvent, ZoomCameraEvent, }; use distance::DistancePlugin; -pub use distance::{CameraDistance, DistanceLabels}; +pub use distance::{CameraDistance, DistanceSet}; mod camera; mod distance; diff --git a/crates/combat/Cargo.toml b/crates/combat/Cargo.toml index 97dfd7f83..4115a9954 100644 --- a/crates/combat/Cargo.toml +++ b/crates/combat/Cargo.toml @@ -23,6 +23,5 @@ de_signs.workspace = true # Other bevy.workspace = true -iyes_loopless.workspace = true glam.workspace = true parry3d.workspace = true diff --git a/crates/combat/src/attack.rs b/crates/combat/src/attack.rs index bc1a62a2b..8caf1fe4a 100644 --- a/crates/combat/src/attack.rs +++ b/crates/combat/src/attack.rs @@ -1,14 +1,13 @@ use std::{cmp::Ordering, collections::BinaryHeap}; use bevy::prelude::*; -use de_behaviour::{ChaseLabel, ChaseTarget, ChaseTargetComponent, ChaseTargetEvent}; +use de_behaviour::{ChaseSet, ChaseTarget, ChaseTargetComponent, ChaseTargetEvent}; use de_core::{gamestate::GameState, objects::ObjectType, stages::GameStage}; use de_objects::{ColliderCache, LaserCannon, ObjectCache}; -use iyes_loopless::prelude::*; use parry3d::query::Ray; use crate::laser::LaserFireEvent; -use crate::{sightline::LineOfSight, AttackingLabels}; +use crate::{sightline::LineOfSight, AttackingSet}; /// Multiple of cannon range. The attacking entities will try to stay as close /// or further from attacked targets. @@ -26,7 +25,7 @@ impl Plugin for AttackPlugin { GameStage::PreUpdate, attack .run_in_state(GameState::Playing) - .before(ChaseLabel::ChaseTargetEvent), + .before(ChaseSet::ChaseTargetEvent), ) .add_system_set_to_stage( GameStage::Update, @@ -34,13 +33,13 @@ impl Plugin for AttackPlugin { .with_system( update .run_in_state(GameState::Playing) - .label(AttackingLabels::Update), + .in_set(AttackingSet::Update), ) .with_system( aim_and_fire .run_in_state(GameState::Playing) - .after(AttackingLabels::Update) - .before(AttackingLabels::Fire), + .after(AttackingSet::Update) + .before(AttackingSet::Fire), ), ); } diff --git a/crates/combat/src/laser.rs b/crates/combat/src/laser.rs index 1f6a6f196..91d7363d5 100644 --- a/crates/combat/src/laser.rs +++ b/crates/combat/src/laser.rs @@ -2,11 +2,10 @@ use bevy::prelude::*; use de_core::{gamestate::GameState, stages::GameStage}; use de_objects::Health; use de_signs::UpdateBarValueEvent; -use de_spawner::SpawnerLabels; -use iyes_loopless::prelude::*; +use de_spawner::SpawnerSet; use parry3d::query::Ray; -use crate::{sightline::LineOfSight, trail::TrailEvent, AttackingLabels}; +use crate::{sightline::LineOfSight, trail::TrailEvent, AttackingSet}; pub(crate) struct LaserPlugin; @@ -15,8 +14,8 @@ impl Plugin for LaserPlugin { app.add_event::().add_system_to_stage( GameStage::Update, fire.run_in_state(GameState::Playing) - .label(AttackingLabels::Fire) - .before(SpawnerLabels::Destroyer), + .in_set(AttackingSet::Fire) + .before(SpawnerSet::Destroyer), ); } } diff --git a/crates/combat/src/lib.rs b/crates/combat/src/lib.rs index b430cae59..41f88c9e2 100644 --- a/crates/combat/src/lib.rs +++ b/crates/combat/src/lib.rs @@ -2,7 +2,7 @@ pub use attack::AttackEvent; use attack::AttackPlugin; use bevy::{ app::PluginGroupBuilder, - prelude::{PluginGroup, SystemLabel}, + prelude::{PluginGroup, SystemSet}, }; use laser::LaserPlugin; use trail::TrailPlugin; @@ -23,8 +23,8 @@ impl PluginGroup for CombatPluginGroup { } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -enum AttackingLabels { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +enum AttackingSet { Update, Fire, } diff --git a/crates/combat/src/trail.rs b/crates/combat/src/trail.rs index a5aad5086..12f470513 100644 --- a/crates/combat/src/trail.rs +++ b/crates/combat/src/trail.rs @@ -14,7 +14,6 @@ use bevy::{ use de_core::{ cleanup::DespawnOnGameExit, gamestate::GameState, stages::GameStage, state::AppState, }; -use iyes_loopless::prelude::*; use parry3d::query::Ray; const TRAIL_LIFESPAN: Duration = Duration::from_millis(500); diff --git a/crates/conf/Cargo.toml b/crates/conf/Cargo.toml index 2e8b29e11..13c6542ae 100644 --- a/crates/conf/Cargo.toml +++ b/crates/conf/Cargo.toml @@ -23,7 +23,6 @@ async-std.workspace = true bevy.workspace = true dirs.workspace = true futures-lite.workspace = true -iyes_loopless.workspace = true iyes_progress.workspace = true serde.workspace = true serde_yaml.workspace = true diff --git a/crates/conf/src/plugin.rs b/crates/conf/src/plugin.rs index c98636ccc..b0b120605 100644 --- a/crates/conf/src/plugin.rs +++ b/crates/conf/src/plugin.rs @@ -7,7 +7,6 @@ use bevy::{ use de_core::{log_full_error, state::AppState}; use de_gui::ToastEvent; use futures_lite::future; -use iyes_loopless::prelude::*; use iyes_progress::prelude::*; use crate::{io::load_conf, Configuration}; diff --git a/crates/controller/Cargo.toml b/crates/controller/Cargo.toml index 91320b1d3..a55fad29f 100644 --- a/crates/controller/Cargo.toml +++ b/crates/controller/Cargo.toml @@ -32,7 +32,6 @@ ahash.workspace = true bevy.workspace = true enum-map.workspace = true glam.workspace = true -iyes_loopless.workspace = true parry2d.workspace = true parry3d.workspace = true wgpu-types.workspace = true diff --git a/crates/controller/src/commands/executor.rs b/crates/controller/src/commands/executor.rs index 68450f436..3bcc45b47 100644 --- a/crates/controller/src/commands/executor.rs +++ b/crates/controller/src/commands/executor.rs @@ -4,7 +4,6 @@ use de_combat::AttackEvent; use de_core::{gamestate::GameState, objects::MovableSolid, stages::GameStage}; use de_pathing::{PathQueryProps, PathTarget, UpdateEntityPath}; use glam::Vec2; -use iyes_loopless::prelude::*; use crate::selection::Selected; @@ -20,19 +19,19 @@ impl Plugin for ExecutorPlugin { .with_system( send_selected_system .run_in_state(GameState::Playing) - .label(CommandsLabel::SendSelected), + .in_set(CommandsSet::SendSelected), ) .with_system( attack_system .run_in_state(GameState::Playing) - .label(CommandsLabel::Attack), + .in_set(CommandsSet::Attack), ), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub(crate) enum CommandsLabel { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub(crate) enum CommandsSet { SendSelected, Attack, } diff --git a/crates/controller/src/commands/handlers.rs b/crates/controller/src/commands/handlers.rs index 8aaa9af36..ebf779b7f 100644 --- a/crates/controller/src/commands/handlers.rs +++ b/crates/controller/src/commands/handlers.rs @@ -8,9 +8,10 @@ use bevy::{ ButtonState, }, prelude::*, + window::PrimaryWindow, }; use de_camera::{ - CameraLabel, MoveCameraHorizontallyEvent, RotateCameraEvent, TiltCameraEvent, ZoomCameraEvent, + CameraSet, MoveCameraHorizontallyEvent, RotateCameraEvent, TiltCameraEvent, ZoomCameraEvent, }; use de_conf::Configuration; use de_core::{ @@ -24,18 +25,17 @@ use de_core::{ }; use de_spawner::{Draft, ObjectCounter}; use enum_map::enum_map; -use iyes_loopless::prelude::*; -use super::{keyboard::KeyCondition, CommandsLabel, GroupAttackEvent, SendSelectedEvent}; +use super::{keyboard::KeyCondition, CommandsSet, GroupAttackEvent, SendSelectedEvent}; use crate::{ - draft::{DiscardDraftsEvent, DraftLabels, NewDraftEvent, SpawnDraftsEvent}, - hud::{GameMenuLabel, ToggleGameMenu, UpdateSelectionBoxEvent}, + draft::{DiscardDraftsEvent, DraftSet, NewDraftEvent, SpawnDraftsEvent}, + hud::{GameMenuSet, ToggleGameMenu, UpdateSelectionBoxEvent}, mouse::{ - DragUpdateType, MouseClicked, MouseDoubleClicked, MouseDragged, MouseLabels, Pointer, - PointerLabels, + DragUpdateType, MouseClicked, MouseDoubleClicked, MouseDragged, MouseSet, Pointer, + PointerSet, }, selection::{ - AreaSelectLabels, SelectEvent, SelectInRectEvent, Selected, SelectionLabels, SelectionMode, + AreaSelectSet, SelectEvent, SelectInRectEvent, Selected, SelectionMode, SelectionSet, }, }; @@ -58,8 +58,8 @@ impl HandlersPlugin { place_draft(building_type) .run_in_state(GameState::Playing) .run_if(KeyCondition::single(key).build()) - .before(DraftLabels::New) - .after(PointerLabels::Update), + .before(DraftSet::New) + .after(PointerSet::Update), ) }) } @@ -74,64 +74,64 @@ impl Plugin for HandlersPlugin { right_click_handler .run_in_state(GameState::Playing) .run_if(on_click(MouseButton::Right)) - .after(PointerLabels::Update) - .after(MouseLabels::Buttons) - .before(CommandsLabel::SendSelected) - .before(CommandsLabel::Attack), + .after(PointerSet::Update) + .after(MouseSet::Buttons) + .before(CommandsSet::SendSelected) + .before(CommandsSet::Attack), ) .with_system( left_click_handler .run_in_state(GameState::Playing) .run_if(on_click(MouseButton::Left)) - .label(HandlersLabel::LeftClick) - .before(SelectionLabels::Update) - .before(DraftLabels::Spawn) - .after(PointerLabels::Update) - .after(MouseLabels::Buttons), + .in_set(HandlersSet::LeftClick) + .before(SelectionSet::Update) + .before(DraftSet::Spawn) + .after(PointerSet::Update) + .after(MouseSet::Buttons), ) .with_system( double_click_handler .run_in_state(GameState::Playing) .run_if(on_double_click(MouseButton::Left)) - .before(SelectionLabels::Update) - .before(DraftLabels::Spawn) - .after(PointerLabels::Update) - .after(MouseLabels::Buttons) - .after(HandlersLabel::LeftClick), + .before(SelectionSet::Update) + .before(DraftSet::Spawn) + .after(PointerSet::Update) + .after(MouseSet::Buttons) + .after(HandlersSet::LeftClick), ) .with_system( move_camera_arrows_system .run_in_state(GameState::Playing) - .before(CameraLabel::MoveHorizontallEvent), + .before(CameraSet::MoveHorizontallEvent), ) .with_system( move_camera_mouse_system .run_in_state(GameState::Playing) - .before(CameraLabel::MoveHorizontallEvent), + .before(CameraSet::MoveHorizontallEvent), ) .with_system( zoom_camera .run_in_state(GameState::Playing) - .before(CameraLabel::ZoomEvent), + .before(CameraSet::ZoomEvent), ) .with_system( pivot_camera .run_in_state(GameState::Playing) - .before(CameraLabel::RotateEvent) - .before(CameraLabel::TiltEvent), + .before(CameraSet::RotateEvent) + .before(CameraSet::TiltEvent), ) .with_system( handle_escape .run_in_state(GameState::Playing) .run_if(KeyCondition::single(KeyCode::Escape).build()) - .before(GameMenuLabel::Toggle) - .before(DraftLabels::Discard), + .before(GameMenuSet::Toggle) + .before(DraftSet::Discard), ) .with_system( select_all .run_in_state(GameState::Playing) .run_if(KeyCondition::single(KeyCode::A).with_ctrl().build()) - .before(SelectionLabels::Update), + .before(SelectionSet::Update), ) .with_system( select_all_visible @@ -142,21 +142,21 @@ impl Plugin for HandlersPlugin { .with_shift() .build(), ) - .before(AreaSelectLabels::SelectInArea), + .before(AreaSelectSet::SelectInArea), ) .with_system( update_drags .run_in_state(GameState::Playing) - .before(AreaSelectLabels::SelectInArea) - .after(MouseLabels::Buttons), + .before(AreaSelectSet::SelectInArea) + .after(MouseSet::Buttons), ), ) .add_system_set_to_stage(GameStage::Input, Self::place_draft_systems()); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub(crate) enum HandlersLabel { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub(crate) enum HandlersSet { LeftClick, } @@ -255,11 +255,11 @@ fn move_camera_arrows_system( } fn move_camera_mouse_system( - windows: Res, + window_query: Query<&Window, With>, mut was_moving: Local, mut move_events: EventWriter, ) { - let window = windows.get_primary().unwrap(); + let window = window_query.single(); let Some(cursor) = window.cursor_position() else { if *was_moving { *was_moving = false; diff --git a/crates/controller/src/commands/mod.rs b/crates/controller/src/commands/mod.rs index b0c543ce9..252163d44 100644 --- a/crates/controller/src/commands/mod.rs +++ b/crates/controller/src/commands/mod.rs @@ -2,7 +2,7 @@ //! actions. use bevy::prelude::*; -pub(crate) use executor::{CommandsLabel, GroupAttackEvent, SendSelectedEvent}; +pub(crate) use executor::{CommandsSet, GroupAttackEvent, SendSelectedEvent}; use self::{executor::ExecutorPlugin, handlers::HandlersPlugin}; diff --git a/crates/controller/src/draft.rs b/crates/controller/src/draft.rs index 64e321328..92e1ea797 100644 --- a/crates/controller/src/draft.rs +++ b/crates/controller/src/draft.rs @@ -8,9 +8,8 @@ use de_core::{ state::AppState, }; use de_spawner::{Draft, DraftBundle, SpawnBundle}; -use iyes_loopless::prelude::*; -use crate::mouse::{Pointer, PointerLabels}; +use crate::mouse::{Pointer, PointerSet}; pub(crate) struct DraftPlugin; @@ -22,32 +21,28 @@ impl Plugin for DraftPlugin { .add_system_set_to_stage( GameStage::Input, SystemSet::new() - .with_system( - spawn - .run_in_state(AppState::InGame) - .label(DraftLabels::Spawn), - ) + .with_system(spawn.run_in_state(AppState::InGame).in_set(DraftSet::Spawn)) .with_system( new_drafts .run_in_state(AppState::InGame) - .label(DraftLabels::New), + .in_set(DraftSet::New), ) .with_system( discard_drafts .run_in_state(AppState::InGame) - .label(DraftLabels::Discard), + .in_set(DraftSet::Discard), ) .with_system( move_drafts .run_in_state(GameState::Playing) - .after(PointerLabels::Update), + .after(PointerSet::Update), ), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub(crate) enum DraftLabels { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub(crate) enum DraftSet { Spawn, New, Discard, diff --git a/crates/controller/src/hud/interaction.rs b/crates/controller/src/hud/interaction.rs index 4e650d8a0..e6f47ee0e 100644 --- a/crates/controller/src/hud/interaction.rs +++ b/crates/controller/src/hud/interaction.rs @@ -1,6 +1,7 @@ use bevy::{ ecs::{query::ReadOnlyWorldQuery, system::SystemParam}, prelude::*, + window::PrimaryWindow, }; use glam::Vec3Swizzles; @@ -28,7 +29,7 @@ where ), F, >, - windows: Res<'w, Windows>, + window_query: Query<'w, 's, &'static Window, With>, } impl<'w, 's, F> HudNodes<'w, 's, F> @@ -45,7 +46,7 @@ where /// The returned point is between (0, 0) (top-left corner) and (1, 1) /// (bottom-right corner). pub(crate) fn relative_position(&self, point: Vec2) -> Option { - let window = self.windows.get_primary().unwrap(); + let window = self.window_query.single(); // This is because screen y starts on bottom, GlobalTransform on top. let point = Vec2::new(point.x, window.height() - point.y); diff --git a/crates/controller/src/hud/menu.rs b/crates/controller/src/hud/menu.rs index c23519b33..11dc3d461 100644 --- a/crates/controller/src/hud/menu.rs +++ b/crates/controller/src/hud/menu.rs @@ -3,7 +3,6 @@ use core::fmt; use bevy::prelude::*; use de_core::{gamestate::GameState, stages::GameStage, state::AppState}; use de_gui::{ButtonCommands, GuiCommands, OuterStyle}; -use iyes_loopless::prelude::*; use super::interaction::InteractionBlocker; @@ -20,15 +19,15 @@ impl Plugin for MenuPlugin { .with_system( toggle_system .run_in_state(GameState::Playing) - .label(GameMenuLabel::Toggle), + .in_set(GameMenuSet::Toggle), ) .with_system(button_system.run_in_state(GameState::Playing)), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub(crate) enum GameMenuLabel { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub(crate) enum GameMenuSet { Toggle, } diff --git a/crates/controller/src/hud/minimap/draw.rs b/crates/controller/src/hud/minimap/draw.rs index 6c9154e61..3ea34765e 100644 --- a/crates/controller/src/hud/minimap/draw.rs +++ b/crates/controller/src/hud/minimap/draw.rs @@ -13,7 +13,7 @@ pub(super) struct DrawingParam<'w, 's> { impl<'w, 's> DrawingParam<'w, 's> { pub(super) fn drawing(&mut self) -> Drawing { - let image = self.images.get_mut(&self.query.single().0).unwrap(); + let image = self.images.get_mut(&self.query.single().texture).unwrap(); let size = UVec2::new( image.texture_descriptor.size.width, image.texture_descriptor.size.height, diff --git a/crates/controller/src/hud/minimap/fill.rs b/crates/controller/src/hud/minimap/fill.rs index 9244dc99a..4d626e8c2 100644 --- a/crates/controller/src/hud/minimap/fill.rs +++ b/crates/controller/src/hud/minimap/fill.rs @@ -8,7 +8,6 @@ use de_core::{ use de_map::size::MapBounds; use de_objects::{IchnographyCache, ObjectCache}; use de_terrain::TerrainCollider; -use iyes_loopless::prelude::*; use parry2d::{ bounding_volume::Aabb, math::Point, @@ -34,34 +33,32 @@ impl Plugin for FillPlugin { .with_system( clear_system .run_in_state(GameState::Playing) - .label(FillLabel::Clear), + .in_set(FillSet::Clear), ) .with_system( draw_entities_system .run_in_state(GameState::Playing) - .label(FillLabel::DrawEntities) - .after(FillLabel::Clear), + .in_set(FillSet::DrawEntities) + .after(FillSet::Clear), ) .with_system( draw_camera_system .run_in_state(GameState::Playing) - .after(FillLabel::DrawEntities), + .after(FillSet::DrawEntities), ), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -enum FillLabel { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +enum FillSet { Clear, DrawEntities, } #[derive(SystemParam)] -struct UiCoords<'w, 's> { +struct UiCoords<'w> { bounds: Res<'w, MapBounds>, - #[system_param(ignore)] - marker: PhantomData<&'s ()>, } impl<'w, 's> UiCoords<'w, 's> { diff --git a/crates/controller/src/hud/minimap/interaction.rs b/crates/controller/src/hud/minimap/interaction.rs index 4210d542b..def8f8596 100644 --- a/crates/controller/src/hud/minimap/interaction.rs +++ b/crates/controller/src/hud/minimap/interaction.rs @@ -3,15 +3,15 @@ use std::fmt; use bevy::{ input::{mouse::MouseButtonInput, ButtonState}, prelude::*, + window::PrimaryWindow, }; use de_camera::MoveFocusEvent; use de_core::{gamestate::GameState, stages::GameStage}; use de_map::size::MapBounds; -use iyes_loopless::prelude::*; use super::nodes::MinimapNode; use crate::{ - commands::{CommandsLabel, SendSelectedEvent}, + commands::{CommandsSet, SendSelectedEvent}, hud::HudNodes, }; @@ -26,25 +26,25 @@ impl Plugin for InteractionPlugin { .with_system( click_handler .run_in_state(GameState::Playing) - .label(InteractionLabel::ClickHandler), + .in_set(InteractionSet::ClickHandler), ) .with_system( move_camera_system .run_in_state(GameState::Playing) - .after(InteractionLabel::ClickHandler), + .after(InteractionSet::ClickHandler), ) .with_system( send_units_system .run_in_state(GameState::Playing) - .after(InteractionLabel::ClickHandler) - .before(CommandsLabel::SendSelected), + .after(InteractionSet::ClickHandler) + .before(CommandsSet::SendSelected), ), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -enum InteractionLabel { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +enum InteractionSet { ClickHandler, } @@ -76,13 +76,13 @@ impl fmt::Debug for MinimapClickEvent { } fn click_handler( - windows: Res, + window_query: Query<&Window, With>, mut input_events: EventReader, hud: HudNodes>, bounds: Res, mut click_events: EventWriter, ) { - let Some(cursor) = windows.get_primary().unwrap().cursor_position() else { return }; + let Some(cursor) = window_query.single().cursor_position() else { return }; for event in input_events.iter() { if event.state != ButtonState::Released { continue; diff --git a/crates/controller/src/hud/minimap/nodes.rs b/crates/controller/src/hud/minimap/nodes.rs index 22e0fec42..482ce3aac 100644 --- a/crates/controller/src/hud/minimap/nodes.rs +++ b/crates/controller/src/hud/minimap/nodes.rs @@ -1,6 +1,5 @@ use bevy::{prelude::*, render::texture::TextureFormatPixelInfo}; use de_core::{cleanup::DespawnOnGameExit, gamestate::GameState, stages::GameStage}; -use iyes_loopless::prelude::*; use wgpu_types::{Extent3d, TextureDimension, TextureFormat}; use crate::hud::{interaction::InteractionBlocker, HUD_COLOR}; @@ -78,7 +77,8 @@ fn update_resolution( } let image = images.add(new_image(resolution)); - commands.entity(entity).insert(UiImage(image)); + // TODO isn't it flipped? + commands.entity(entity).insert(UiImage::new(image)); } /// Creates a new minimap image. diff --git a/crates/controller/src/hud/mod.rs b/crates/controller/src/hud/mod.rs index 0883cc6ac..2bc350108 100644 --- a/crates/controller/src/hud/mod.rs +++ b/crates/controller/src/hud/mod.rs @@ -7,7 +7,7 @@ mod panel; mod selection; pub(crate) use interaction::HudNodes; -pub(crate) use menu::{GameMenuLabel, ToggleGameMenu}; +pub(crate) use menu::{GameMenuSet, ToggleGameMenu}; pub(crate) use selection::UpdateSelectionBoxEvent; use self::{ diff --git a/crates/controller/src/hud/panel.rs b/crates/controller/src/hud/panel.rs index 2abacf71c..ce6b3aac5 100644 --- a/crates/controller/src/hud/panel.rs +++ b/crates/controller/src/hud/panel.rs @@ -1,6 +1,5 @@ use bevy::prelude::*; use de_core::{cleanup::DespawnOnGameExit, gamestate::GameState}; -use iyes_loopless::prelude::*; use super::{interaction::InteractionBlocker, HUD_COLOR}; diff --git a/crates/controller/src/hud/selection.rs b/crates/controller/src/hud/selection.rs index 657b55d89..ba1aa710b 100644 --- a/crates/controller/src/hud/selection.rs +++ b/crates/controller/src/hud/selection.rs @@ -2,7 +2,6 @@ use bevy::prelude::*; use de_core::{ cleanup::DespawnOnGameExit, gamestate::GameState, screengeom::ScreenRect, stages::GameStage, }; -use iyes_loopless::prelude::*; const SELECTION_BOX_COLOR: Color = Color::rgba(0., 0.5, 0.8, 0.2); diff --git a/crates/controller/src/mouse/input.rs b/crates/controller/src/mouse/input.rs index aa1bc5435..57e59cb2c 100644 --- a/crates/controller/src/mouse/input.rs +++ b/crates/controller/src/mouse/input.rs @@ -2,9 +2,9 @@ use ahash::AHashMap; use bevy::{ input::{mouse::MouseButtonInput, ButtonState}, prelude::*, + window::PrimaryWindow, }; use de_core::{gamestate::GameState, screengeom::ScreenRect, stages::GameStage, state::AppState}; -use iyes_loopless::prelude::*; use crate::hud::HudNodes; @@ -26,32 +26,32 @@ impl Plugin for InputPlugin { .with_system( update_position .run_in_state(GameState::Playing) - .label(MouseLabels::Position), + .in_set(MouseSet::Position), ) .with_system( update_drags .run_in_state(GameState::Playing) - .label(MouseLabels::Drags) - .after(MouseLabels::Position), + .in_set(MouseSet::Drags) + .after(MouseSet::Position), ) .with_system( update_buttons .run_in_state(GameState::Playing) - .label(MouseLabels::SingeButton) - .after(MouseLabels::Drags), + .in_set(MouseSet::SingeButton) + .after(MouseSet::Drags), ) .with_system( check_double_click .run_in_state(GameState::Playing) - .label(MouseLabels::Buttons) - .after(MouseLabels::SingeButton), + .in_set(MouseSet::Buttons) + .after(MouseSet::SingeButton), ), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub(crate) enum MouseLabels { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub(crate) enum MouseSet { Position, Drags, SingeButton, @@ -241,8 +241,12 @@ fn cleanup(mut commands: Commands) { commands.remove_resource::(); } -fn update_position(windows: Res, hud: HudNodes, mut mouse: ResMut) { - let window = windows.get_primary().unwrap(); +fn update_position( + window_query: Query<&Window, With>, + hud: HudNodes, + mut mouse: ResMut, +) { + let window = window_query.single(); let position = window .cursor_position() .filter(|&position| !hud.contains_point(position)) diff --git a/crates/controller/src/mouse/mod.rs b/crates/controller/src/mouse/mod.rs index b89bc350a..6370fd833 100644 --- a/crates/controller/src/mouse/mod.rs +++ b/crates/controller/src/mouse/mod.rs @@ -1,10 +1,10 @@ use bevy::prelude::*; use input::InputPlugin; pub(crate) use input::{ - DragUpdateType, MouseClicked, MouseDoubleClicked, MouseDragged, MouseLabels, MousePosition, + DragUpdateType, MouseClicked, MouseDoubleClicked, MouseDragged, MousePosition, MouseSet, }; use pointer::PointerPlugin; -pub(crate) use pointer::{Pointer, PointerLabels}; +pub(crate) use pointer::{Pointer, PointerSet}; mod input; mod pointer; diff --git a/crates/controller/src/mouse/pointer.rs b/crates/controller/src/mouse/pointer.rs index 11e6695f2..b89be98eb 100644 --- a/crates/controller/src/mouse/pointer.rs +++ b/crates/controller/src/mouse/pointer.rs @@ -4,10 +4,9 @@ use de_index::SpatialQuery; use de_signs::UpdateBarVisibilityEvent; use de_terrain::TerrainCollider; use glam::Vec3; -use iyes_loopless::prelude::*; use crate::{ - mouse::{MouseLabels, MousePosition}, + mouse::{MousePosition, MouseSet}, ray::ScreenRay, POINTER_BAR_ID, }; @@ -22,20 +21,20 @@ impl Plugin for PointerPlugin { GameStage::Input, pointer_update_system .run_in_state(GameState::Playing) - .label(PointerLabels::Update) - .after(MouseLabels::Position), + .in_set(PointerSet::Update) + .after(MouseSet::Position), ) .add_system_to_stage( GameStage::Input, update_bar_visibility .run_in_state(GameState::Playing) - .after(PointerLabels::Update), + .after(PointerSet::Update), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub(crate) enum PointerLabels { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub(crate) enum PointerSet { Update, } diff --git a/crates/controller/src/selection/area.rs b/crates/controller/src/selection/area.rs index 6b4d27edd..ae677f295 100644 --- a/crates/controller/src/selection/area.rs +++ b/crates/controller/src/selection/area.rs @@ -7,11 +7,10 @@ use de_core::{ stages::GameStage, }; use de_objects::{ColliderCache, ObjectCache}; -use iyes_loopless::prelude::*; use crate::{ frustum::ScreenFrustum, - selection::{SelectEvent, SelectionLabels, SelectionMode}, + selection::{SelectEvent, SelectionMode, SelectionSet}, }; pub(super) struct AreaPlugin; @@ -24,15 +23,15 @@ impl Plugin for AreaPlugin { SystemSet::new().with_system( select_in_area .run_in_state(GameState::Playing) - .label(AreaSelectLabels::SelectInArea) - .before(SelectionLabels::Update), + .in_set(AreaSelectSet::SelectInArea) + .before(SelectionSet::Update), ), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub(crate) enum AreaSelectLabels { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub(crate) enum AreaSelectSet { SelectInArea, } diff --git a/crates/controller/src/selection/bookkeeping.rs b/crates/controller/src/selection/bookkeeping.rs index 52467ce11..60d69b481 100644 --- a/crates/controller/src/selection/bookkeeping.rs +++ b/crates/controller/src/selection/bookkeeping.rs @@ -3,7 +3,6 @@ use bevy::{ecs::system::SystemParam, prelude::*}; use de_core::{gamestate::GameState, stages::GameStage}; use de_signs::UpdateBarVisibilityEvent; use de_terrain::CircleMarker; -use iyes_loopless::prelude::*; use crate::SELECTION_BAR_ID; @@ -15,13 +14,13 @@ impl Plugin for BookkeepingPlugin { GameStage::Input, update_selection .run_in_state(GameState::Playing) - .label(SelectionLabels::Update), + .in_set(SelectionSet::Update), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub(crate) enum SelectionLabels { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub(crate) enum SelectionSet { Update, } diff --git a/crates/controller/src/selection/mod.rs b/crates/controller/src/selection/mod.rs index 5c3a5a9d5..a7cd98dfd 100644 --- a/crates/controller/src/selection/mod.rs +++ b/crates/controller/src/selection/mod.rs @@ -1,8 +1,8 @@ use area::AreaPlugin; -pub(crate) use area::{AreaSelectLabels, SelectInRectEvent}; +pub(crate) use area::{AreaSelectSet, SelectInRectEvent}; use bevy::prelude::*; use bookkeeping::BookkeepingPlugin; -pub(crate) use bookkeeping::{SelectEvent, Selected, SelectionLabels, SelectionMode}; +pub(crate) use bookkeeping::{SelectEvent, Selected, SelectionMode, SelectionSet}; mod area; mod bookkeeping; diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml index 97970a2cb..4305a4e41 100644 --- a/crates/core/Cargo.toml +++ b/crates/core/Cargo.toml @@ -14,7 +14,6 @@ categories.workspace = true [dependencies] serde.workspace = true bevy.workspace = true -iyes_loopless.workspace = true iyes_progress.workspace = true glam.workspace = true nalgebra.workspace = true diff --git a/crates/core/src/cleanup.rs b/crates/core/src/cleanup.rs index 17e115e64..5e1d3c77e 100644 --- a/crates/core/src/cleanup.rs +++ b/crates/core/src/cleanup.rs @@ -1,5 +1,4 @@ use bevy::prelude::*; -use iyes_loopless::prelude::*; use crate::state::AppState; diff --git a/crates/core/src/events.rs b/crates/core/src/events.rs index e1e8ef69e..71386460f 100644 --- a/crates/core/src/events.rs +++ b/crates/core/src/events.rs @@ -7,7 +7,6 @@ use bevy::{ }, prelude::*, }; -use iyes_loopless::prelude::*; use crate::gamestate::GameState; diff --git a/crates/core/src/gamestate.rs b/crates/core/src/gamestate.rs index ddcb52e8a..af446ac00 100644 --- a/crates/core/src/gamestate.rs +++ b/crates/core/src/gamestate.rs @@ -1,5 +1,4 @@ use bevy::prelude::*; -use iyes_loopless::prelude::*; use iyes_progress::prelude::*; use crate::state::AppState; diff --git a/crates/core/src/stages.rs b/crates/core/src/stages.rs index 7c1d7317f..1e69c0006 100644 --- a/crates/core/src/stages.rs +++ b/crates/core/src/stages.rs @@ -1,4 +1,4 @@ -use bevy::prelude::{App, CoreStage, Plugin, StageLabel, SystemStage}; +use bevy::prelude::{App, Plugin}; pub struct StagesPlugin; diff --git a/crates/core/src/visibility.rs b/crates/core/src/visibility.rs index 42d1c2a30..dd273e1a8 100644 --- a/crates/core/src/visibility.rs +++ b/crates/core/src/visibility.rs @@ -1,5 +1,4 @@ use bevy::prelude::*; -use iyes_loopless::prelude::*; use crate::{stages::GameStage, state::AppState}; @@ -11,13 +10,13 @@ impl Plugin for VisibilityPlugin { GameStage::PostUpdate, update .run_in_state(AppState::InGame) - .label(VisibilityLabels::Update), + .in_set(VisibilitySet::Update), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub enum VisibilityLabels { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub enum VisibilitySet { Update, } @@ -25,7 +24,7 @@ pub enum VisibilityLabels { /// "visible" flag is set to true and none of "invisible" flag is true. The /// individual flags can be controlled independently. /// -/// The system [`VisibilityLabels::Update`] executed during +/// The system [`VisibilitySet::Update`] executed during /// [`GameStage::PostUpdate`] automatically updates /// [`bevy::render::prelude::Visibility`] of entities with this component. #[derive(Component, Default)] @@ -64,7 +63,11 @@ impl VisibilityFlags { fn update(mut entities: Query<(&VisibilityFlags, &mut Visibility), Changed>) { for (flags, mut visibility) in entities.iter_mut() { - visibility.is_visible = flags.visible(); + *visibility = if flags.visible() { + Visibility::Inherited + } else { + Visibility::Hidden + }; } } diff --git a/crates/gui/Cargo.toml b/crates/gui/Cargo.toml index bcee82928..24fb70826 100644 --- a/crates/gui/Cargo.toml +++ b/crates/gui/Cargo.toml @@ -17,4 +17,3 @@ de_core.workspace = true # Other bevy.workspace = true -iyes_loopless.workspace = true diff --git a/crates/gui/src/focus.rs b/crates/gui/src/focus.rs index d50a4f74d..e71f72d2a 100644 --- a/crates/gui/src/focus.rs +++ b/crates/gui/src/focus.rs @@ -87,7 +87,7 @@ pub(super) struct UiFocus { fn focus_system( mut focus: ResMut, - removals: RemovedComponents, + mut removals: RemovedComponents, mouse: Res>, touch: Res, interactions: Query<(Entity, &Interaction), Changed>, diff --git a/crates/gui/src/lib.rs b/crates/gui/src/lib.rs index 415bddb96..bf820c722 100644 --- a/crates/gui/src/lib.rs +++ b/crates/gui/src/lib.rs @@ -14,7 +14,7 @@ use text::TextPlugin; use textbox::TextBoxPlugin; pub use textbox::{TextBoxCommands, TextBoxQuery}; use toast::ToastPlugin; -pub use toast::{ToastEvent, ToastLabel}; +pub use toast::{ToastEvent, ToastSet}; mod button; mod commands; diff --git a/crates/gui/src/text.rs b/crates/gui/src/text.rs index c4a54bf34..5d647f3b1 100644 --- a/crates/gui/src/text.rs +++ b/crates/gui/src/text.rs @@ -1,5 +1,4 @@ use bevy::prelude::*; -use iyes_loopless::prelude::*; pub(crate) struct TextPlugin; diff --git a/crates/gui/src/textbox.rs b/crates/gui/src/textbox.rs index 51bb83120..82306f919 100644 --- a/crates/gui/src/textbox.rs +++ b/crates/gui/src/textbox.rs @@ -54,7 +54,7 @@ impl<'w, 's> TextBoxCommands<'w, 's> for GuiCommands<'w, 's> { .with_children(|builder| { builder.spawn( TextBundle::from_section("", text_style) - .with_text_alignment(TextAlignment::CENTER_LEFT), + .with_text_alignment(TextAlignment::Left), ); }); diff --git a/crates/gui/src/toast.rs b/crates/gui/src/toast.rs index 85d96db1e..9ba490b5b 100644 --- a/crates/gui/src/toast.rs +++ b/crates/gui/src/toast.rs @@ -2,7 +2,6 @@ use std::{collections::VecDeque, time::Duration}; use bevy::prelude::*; use de_core::state::AppState; -use iyes_loopless::prelude::*; use crate::text::TextProps; @@ -17,24 +16,24 @@ impl Plugin for ToastPlugin { .add_event::() .add_system_set( SystemSet::new() - .with_system(process_events.label(ToastLabel::ProcessEvents)) + .with_system(process_events.in_set(ToastSet::ProcessEvents)) .with_system( spawn_and_despawn .run_not_in_state(AppState::AppLoading) - .after(ToastLabel::ProcessEvents), + .after(ToastSet::ProcessEvents), ), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub enum ToastLabel { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub enum ToastSet { ProcessEvents, } /// Send this event to briefly display a UI toast. /// -/// The events are processed by a system labeled [`ToastLabel::ProcessEvents`]. +/// The events are processed by a system labeled [`ToastSet::ProcessEvents`]. pub struct ToastEvent(String); impl ToastEvent { diff --git a/crates/index/Cargo.toml b/crates/index/Cargo.toml index 5c5b3a1d7..18dc75e45 100644 --- a/crates/index/Cargo.toml +++ b/crates/index/Cargo.toml @@ -19,7 +19,6 @@ de_objects.workspace = true # Other bevy.workspace = true glam.workspace = true -iyes_loopless.workspace = true parry3d.workspace = true parry2d.workspace = true ahash.workspace = true diff --git a/crates/index/src/lib.rs b/crates/index/src/lib.rs index 72e2983c2..b82506c0d 100644 --- a/crates/index/src/lib.rs +++ b/crates/index/src/lib.rs @@ -20,7 +20,7 @@ use systems::IndexPlugin; pub use self::{ collider::{ColliderWithCache, LocalCollider, QueryCollider}, index::{EntityIndex, RayEntityIntersection, SpatialQuery}, - systems::IndexLabel, + systems::IndexSet, }; /// Size (in world-space) of a single square tile where entities are kept. diff --git a/crates/index/src/systems.rs b/crates/index/src/systems.rs index 0deedbb7d..3a7a8c4d3 100644 --- a/crates/index/src/systems.rs +++ b/crates/index/src/systems.rs @@ -9,7 +9,6 @@ use de_core::{ state::AppState, }; use de_objects::{ColliderCache, ObjectCache}; -use iyes_loopless::prelude::*; use parry3d::math::Isometry; use super::index::EntityIndex; @@ -49,25 +48,25 @@ impl Plugin for IndexPlugin { GameStage::PostUpdate, insert .run_in_state(GameState::Playing) - .label(IndexLabel::Index), + .in_set(IndexSet::Index), ) .add_system_to_stage( GameStage::PostUpdate, remove .run_in_state(GameState::Playing) - .label(IndexLabel::Index), + .in_set(IndexSet::Index), ) .add_system_to_stage( GameStage::PostMovement, update .run_in_state(GameState::Playing) - .label(IndexLabel::Index), + .in_set(IndexSet::Index), ); } } -#[derive(SystemLabel)] -pub enum IndexLabel { +#[derive(SystemSet)] +pub enum IndexSet { Index, } @@ -105,7 +104,7 @@ fn insert( } } -fn remove(mut index: ResMut, removed: RemovedComponents) { +fn remove(mut index: ResMut, mut removed: RemovedComponents) { for entity in removed.iter() { index.remove(entity); } diff --git a/crates/loader/Cargo.toml b/crates/loader/Cargo.toml index 127621410..408c1e878 100644 --- a/crates/loader/Cargo.toml +++ b/crates/loader/Cargo.toml @@ -21,6 +21,5 @@ de_camera.workspace = true # Other bevy.workspace = true -iyes_loopless.workspace = true iyes_progress.workspace = true futures-lite.workspace = true diff --git a/crates/loader/src/map.rs b/crates/loader/src/map.rs index fb9131be3..2eb3073a5 100644 --- a/crates/loader/src/map.rs +++ b/crates/loader/src/map.rs @@ -21,7 +21,6 @@ use de_map::{ use de_spawner::SpawnBundle; use de_terrain::TerrainBundle; use futures_lite::future; -use iyes_loopless::prelude::*; use iyes_progress::prelude::*; pub(crate) struct MapLoaderPlugin; diff --git a/crates/lobby_client/Cargo.toml b/crates/lobby_client/Cargo.toml index e9da374db..f0382d391 100644 --- a/crates/lobby_client/Cargo.toml +++ b/crates/lobby_client/Cargo.toml @@ -23,7 +23,6 @@ anyhow.workspace = true async-compat.workspace = true bevy.workspace = true futures-lite.workspace = true -iyes_loopless.workspace = true iyes_progress.workspace = true reqwest.workspace = true serde.workspace = true diff --git a/crates/lobby_client/src/client.rs b/crates/lobby_client/src/client.rs index 60c3aaf96..8db456012 100644 --- a/crates/lobby_client/src/client.rs +++ b/crates/lobby_client/src/client.rs @@ -15,11 +15,9 @@ use crate::requestable::LobbyRequestCreator; const USER_AGENT: &str = concat!("DigitalExtinction/", env!("CARGO_PKG_VERSION")); #[derive(SystemParam)] -pub(super) struct AuthenticatedClient<'w, 's> { +pub(super) struct AuthenticatedClient<'w> { auth: Res<'w, Authentication>, client: Option>, - #[system_param(ignore)] - _marker: PhantomData<&'s ()>, } impl<'w, 's> AuthenticatedClient<'w, 's> { diff --git a/crates/lobby_client/src/systems.rs b/crates/lobby_client/src/systems.rs index 77bedaac7..f5215832d 100644 --- a/crates/lobby_client/src/systems.rs +++ b/crates/lobby_client/src/systems.rs @@ -2,7 +2,6 @@ use bevy::prelude::*; use de_conf::Configuration; use de_core::state::AppState; use de_lobby_model::Token; -use iyes_loopless::prelude::*; use iyes_progress::prelude::*; use crate::{ diff --git a/crates/menu/Cargo.toml b/crates/menu/Cargo.toml index 0cab052b7..4414d2b4d 100644 --- a/crates/menu/Cargo.toml +++ b/crates/menu/Cargo.toml @@ -23,5 +23,4 @@ de_map.workspace = true async-std.workspace = true bevy.workspace = true futures-lite.workspace = true -iyes_loopless.workspace = true thiserror.workspace = true diff --git a/crates/menu/src/aftergame.rs b/crates/menu/src/aftergame.rs index ac93cf98d..cf7e0ea4a 100644 --- a/crates/menu/src/aftergame.rs +++ b/crates/menu/src/aftergame.rs @@ -1,7 +1,6 @@ use bevy::prelude::*; use de_core::gresult::GameResult; use de_gui::{GuiCommands, LabelCommands, OuterStyle}; -use iyes_loopless::prelude::*; use crate::{menu::Menu, MenuState}; diff --git a/crates/menu/src/create.rs b/crates/menu/src/create.rs index abd2496a7..56c7e7a66 100644 --- a/crates/menu/src/create.rs +++ b/crates/menu/src/create.rs @@ -6,7 +6,6 @@ use de_gui::{ use de_lobby_client::CreateGameRequest; use de_lobby_model::{GameConfig, GameMap, Validatable}; use de_map::hash::MapHash; -use iyes_loopless::prelude::*; use crate::{ mapselection::{MapSelectedEvent, SelectMapEvent}, @@ -26,25 +25,25 @@ impl Plugin for CreateGamePlugin { .add_system( button_system .run_in_state(MenuState::GameCreation) - .label(CreateLabel::Buttons), + .in_set(CreateSet::Buttons), ) .add_system( map_selected_system .run_in_state(MenuState::GameCreation) - .label(CreateLabel::MapSelected), + .in_set(CreateSet::MapSelected), ) .add_system( create_game_system .run_in_state(MenuState::GameCreation) - .after(CreateLabel::Buttons) - .after(CreateLabel::MapSelected), + .after(CreateSet::Buttons) + .after(CreateSet::MapSelected), ) .add_system(response_system.run_in_state(MenuState::GameCreation)); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub(crate) enum CreateLabel { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub(crate) enum CreateSet { Buttons, MapSelected, } diff --git a/crates/menu/src/gamelisting.rs b/crates/menu/src/gamelisting.rs index ba9a9043f..e20f1b0cd 100644 --- a/crates/menu/src/gamelisting.rs +++ b/crates/menu/src/gamelisting.rs @@ -1,10 +1,9 @@ use std::time::Duration; use bevy::{prelude::*, time::Stopwatch}; -use de_gui::{ButtonCommands, GuiCommands, LabelCommands, OuterStyle, ToastEvent, ToastLabel}; +use de_gui::{ButtonCommands, GuiCommands, LabelCommands, OuterStyle, ToastEvent, ToastSet}; use de_lobby_client::{ListGamesRequest, RequestEvent, ResponseEvent}; use de_lobby_model::GamePartial; -use iyes_loopless::prelude::*; use crate::{menu::Menu, MenuState}; @@ -20,7 +19,7 @@ impl Plugin for GameListingPlugin { .add_system( list_games_system .run_in_state(MenuState::GameListing) - .before(ToastLabel::ProcessEvents), + .before(ToastSet::ProcessEvents), ) .add_system(button_system.run_in_state(MenuState::GameListing)); } diff --git a/crates/menu/src/lib.rs b/crates/menu/src/lib.rs index 85d2c1f62..b1807e2fe 100644 --- a/crates/menu/src/lib.rs +++ b/crates/menu/src/lib.rs @@ -3,9 +3,7 @@ use bevy::{app::PluginGroupBuilder, prelude::*}; use create::CreateGamePlugin; use de_core::{gresult::GameResult, state::AppState}; use gamelisting::GameListingPlugin; -use iyes_loopless::prelude::*; -use iyes_loopless::state::NextState; -use mainmenu::MainMenuPlugin; +use mainmenu::MaignMenuPlugin; use mapselection::MapSelectionPlugin; use menu::MenuPlugin; use signin::SignInPlugin; diff --git a/crates/menu/src/mainmenu.rs b/crates/menu/src/mainmenu.rs index 3b306d7fb..3aab517c3 100644 --- a/crates/menu/src/mainmenu.rs +++ b/crates/menu/src/mainmenu.rs @@ -1,6 +1,5 @@ use bevy::{app::AppExit, prelude::*}; use de_gui::{ButtonCommands, GuiCommands, OuterStyle}; -use iyes_loopless::prelude::*; use crate::{menu::Menu, MenuState}; diff --git a/crates/menu/src/mapselection.rs b/crates/menu/src/mapselection.rs index 84efc0486..60dc5fac3 100644 --- a/crates/menu/src/mapselection.rs +++ b/crates/menu/src/mapselection.rs @@ -12,7 +12,6 @@ use de_map::{ meta::MapMetadata, }; use futures_lite::future; -use iyes_loopless::prelude::*; use thiserror::Error; pub(crate) struct MapSelectionPlugin; diff --git a/crates/menu/src/menu.rs b/crates/menu/src/menu.rs index c1289d789..f0e661ecb 100644 --- a/crates/menu/src/menu.rs +++ b/crates/menu/src/menu.rs @@ -1,7 +1,6 @@ use bevy::prelude::*; use de_core::state::AppState; use de_gui::{ButtonCommands, GuiCommands, OuterStyle}; -use iyes_loopless::{prelude::*, state::StateTransitionStageLabel}; use crate::MenuState; @@ -18,7 +17,7 @@ impl Plugin for MenuPlugin { .add_exit_system(AppState::InMenu, cleanup) .add_system_to_stage( MenuStage::PreTransition, - state_transition.run_if_resource_exists::(), + state_transition.run_if(resource_exists::()), ) .add_system(button_system.run_in_state(AppState::InMenu)); } @@ -67,7 +66,11 @@ fn state_transition( commands.entity(menu.root_node()).despawn_descendants(); let mut corner_visibility = visibility.get_mut(menu.corner_node()).unwrap(); - corner_visibility.is_visible = state.0 != MenuState::MainMenu; + *corner_visibility = if state.0 == MenuState::MainMenu { + Visibility::Hidden + } else { + Visibility::Inherited + }; } } diff --git a/crates/menu/src/requests.rs b/crates/menu/src/requests.rs index 51b34fde3..d7beabb6b 100644 --- a/crates/menu/src/requests.rs +++ b/crates/menu/src/requests.rs @@ -3,7 +3,6 @@ use std::marker::PhantomData; use bevy::{ecs::system::SystemParam, prelude::*}; use de_core::state::AppState; use de_lobby_client::{LobbyRequest, RequestEvent, ResponseEvent, Result}; -use iyes_loopless::prelude::*; pub(crate) struct RequestsPlugin where diff --git a/crates/menu/src/signin.rs b/crates/menu/src/signin.rs index 106da1cbb..8f2cfa710 100644 --- a/crates/menu/src/signin.rs +++ b/crates/menu/src/signin.rs @@ -1,11 +1,10 @@ use bevy::prelude::*; use de_gui::{ ButtonCommands, GuiCommands, LabelCommands, OuterStyle, SetFocusEvent, TextBoxCommands, - TextBoxQuery, ToastEvent, ToastLabel, + TextBoxQuery, ToastEvent, ToastSet, }; use de_lobby_client::{Authentication, LobbyRequest, SignInRequest, SignUpRequest}; use de_lobby_model::{User, UserWithPassword, UsernameAndPassword}; -use iyes_loopless::prelude::*; use crate::{ menu::Menu, @@ -23,18 +22,18 @@ impl Plugin for SignInPlugin { .add_exit_system(MenuState::SignIn, cleanup) .add_system( button_system - .run_if_resource_exists::() + .run_if(resource_exists::()) .run_in_state(MenuState::SignIn), ) .add_system( response_system:: .run_in_state(MenuState::SignIn) - .before(ToastLabel::ProcessEvents), + .before(ToastSet::ProcessEvents), ) .add_system( response_system:: .run_in_state(MenuState::SignIn) - .before(ToastLabel::ProcessEvents), + .before(ToastSet::ProcessEvents), ) .add_system(auth_system.run_in_state(MenuState::SignIn)); } diff --git a/crates/menu/src/singleplayer.rs b/crates/menu/src/singleplayer.rs index cf494dca5..30e09d20e 100644 --- a/crates/menu/src/singleplayer.rs +++ b/crates/menu/src/singleplayer.rs @@ -2,7 +2,6 @@ use async_std::path::PathBuf; use bevy::prelude::*; use de_core::{gconfig::GameConfig, player::Player, state::AppState}; use de_gui::{ButtonCommands, GuiCommands, OuterStyle, ToastEvent}; -use iyes_loopless::prelude::*; use crate::{ mapselection::{MapSelectedEvent, SelectMapEvent}, diff --git a/crates/movement/Cargo.toml b/crates/movement/Cargo.toml index 487634816..c5a3e8c9d 100644 --- a/crates/movement/Cargo.toml +++ b/crates/movement/Cargo.toml @@ -21,7 +21,6 @@ de_index.workspace = true # Other bevy.workspace = true -iyes_loopless.workspace = true parry3d.workspace = true parry2d.workspace = true glam.workspace = true diff --git a/crates/movement/src/altitude.rs b/crates/movement/src/altitude.rs index e114e8579..0d233d6c2 100644 --- a/crates/movement/src/altitude.rs +++ b/crates/movement/src/altitude.rs @@ -6,7 +6,6 @@ use de_core::{ state::AppState, }; use de_objects::ObjectCache; -use iyes_loopless::prelude::*; use crate::{ movement::DesiredVelocity, @@ -27,15 +26,15 @@ impl Plugin for AltitudePlugin { SystemSet::new().with_system( update .run_in_state(GameState::Playing) - .label(AltitudeLabels::Update) + .in_set(AltitudeSet::Update) .after(RepulsionLables::Apply), ), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub(crate) enum AltitudeLabels { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub(crate) enum AltitudeSet { Update, } @@ -70,8 +69,7 @@ fn update( &Transform, )>, ) { - objects.par_for_each_mut( - 512, + objects.par_iter_mut().for_each_mut( |(&object_type, mut horizontal, mut climbing, transform)| { let Some(flight) = cache.get(object_type).flight() else { return }; let height = transform.translation.y; diff --git a/crates/movement/src/kinematics.rs b/crates/movement/src/kinematics.rs index 7a1968fcc..7c1b2d82a 100644 --- a/crates/movement/src/kinematics.rs +++ b/crates/movement/src/kinematics.rs @@ -5,11 +5,10 @@ use de_core::{ gamestate::GameState, objects::MovableSolid, projection::ToAltitude, stages::GameStage, state::AppState, }; -use iyes_loopless::prelude::*; use crate::{ - altitude::{AltitudeLabels, DesiredClimbing}, - movement::{DesiredVelocity, MovementLabels, ObjectVelocity}, + altitude::{AltitudeSet, DesiredClimbing}, + movement::{DesiredVelocity, MovementSet, ObjectVelocity}, repulsion::{RepulsionLables, RepulsionVelocity}, G_ACCELERATION, MAX_ANGULAR_SPEED, MAX_H_SPEED, MAX_V_ACCELERATION, MAX_V_SPEED, }; @@ -27,17 +26,17 @@ impl Plugin for KinematicsPlugin { SystemSet::new().with_system( kinematics .run_in_state(GameState::Playing) - .label(KinematicsLabels::Kinematics) - .before(MovementLabels::UpdateTransform) + .in_set(KinematicsSet::Kinematics) + .before(MovementSet::UpdateTransform) .after(RepulsionLables::Apply) - .after(AltitudeLabels::Update), + .after(AltitudeSet::Update), ), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -enum KinematicsLabels { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +enum KinematicsSet { Kinematics, } @@ -115,37 +114,39 @@ fn kinematics( ) { let time_delta = time.delta_seconds(); - objects.par_for_each_mut(512, |(movement, climbing, mut kinematics, mut velocity)| { - let desired_h_velocity = movement.velocity(); - let desired_heading = if desired_h_velocity == Vec2::ZERO { - kinematics.heading() - } else { - desired_h_velocity.y.atan2(desired_h_velocity.x) - }; - - let heading_diff = normalize_angle(desired_heading - kinematics.heading()); - let max_heading_delta = MAX_ANGULAR_SPEED * time_delta; - let heading_delta = heading_diff.clamp(-max_heading_delta, max_heading_delta); - kinematics.update_heading(heading_delta); - - let max_h_speed_delta = MAX_H_SPEED * time_delta; - let h_speed_delta = if (heading_diff - heading_delta).abs() > FRAC_PI_4 { - // Slow down if not going in roughly good direction. - -kinematics.horizontal_speed() - } else { - desired_h_velocity.length() - kinematics.horizontal_speed() - } - .clamp(-max_h_speed_delta, max_h_speed_delta); - kinematics.update_horizontal_speed(h_speed_delta); - - let v_speed_delta = (climbing.speed() - kinematics.vertical_speed()).clamp( - -time_delta * G_ACCELERATION, - time_delta * MAX_V_ACCELERATION, - ); - kinematics.update_vertical_speed(v_speed_delta); - - velocity.update(kinematics.compute_velocity(), kinematics.heading()); - }); + objects + .par_iter_mut() + .for_each_mut(|(movement, climbing, mut kinematics, mut velocity)| { + let desired_h_velocity = movement.velocity(); + let desired_heading = if desired_h_velocity == Vec2::ZERO { + kinematics.heading() + } else { + desired_h_velocity.y.atan2(desired_h_velocity.x) + }; + + let heading_diff = normalize_angle(desired_heading - kinematics.heading()); + let max_heading_delta = MAX_ANGULAR_SPEED * time_delta; + let heading_delta = heading_diff.clamp(-max_heading_delta, max_heading_delta); + kinematics.update_heading(heading_delta); + + let max_h_speed_delta = MAX_H_SPEED * time_delta; + let h_speed_delta = if (heading_diff - heading_delta).abs() > FRAC_PI_4 { + // Slow down if not going in roughly good direction. + -kinematics.horizontal_speed() + } else { + desired_h_velocity.length() - kinematics.horizontal_speed() + } + .clamp(-max_h_speed_delta, max_h_speed_delta); + kinematics.update_horizontal_speed(h_speed_delta); + + let v_speed_delta = (climbing.speed() - kinematics.vertical_speed()).clamp( + -time_delta * G_ACCELERATION, + time_delta * MAX_V_ACCELERATION, + ); + kinematics.update_vertical_speed(v_speed_delta); + + velocity.update(kinematics.compute_velocity(), kinematics.heading()); + }); } fn normalize_angle(mut angle: f32) -> f32 { diff --git a/crates/movement/src/movement.rs b/crates/movement/src/movement.rs index 03cd5aa91..ab851a384 100644 --- a/crates/movement/src/movement.rs +++ b/crates/movement/src/movement.rs @@ -7,7 +7,6 @@ use de_core::{ }; use de_map::size::MapBounds; use de_objects::EXCLUSION_OFFSET; -use iyes_loopless::prelude::*; use crate::MAX_ALTITUDE; @@ -24,14 +23,14 @@ impl Plugin for MovementPlugin { SystemSet::new().with_system( update_transform .run_in_state(GameState::Playing) - .label(MovementLabels::UpdateTransform), + .in_set(MovementSet::UpdateTransform), ), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub(crate) enum MovementLabels { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub(crate) enum MovementSet { UpdateTransform, } diff --git a/crates/movement/src/obstacles.rs b/crates/movement/src/obstacles.rs index d9c119035..1eb007a1d 100644 --- a/crates/movement/src/obstacles.rs +++ b/crates/movement/src/obstacles.rs @@ -7,7 +7,6 @@ use de_core::{ }; use de_index::SpatialQuery; use de_objects::{IchnographyCache, ObjectCache}; -use iyes_loopless::prelude::*; use parry3d::{bounding_volume::Aabb, math::Point}; use crate::{cache::DecayingCache, disc::Disc}; @@ -32,18 +31,18 @@ impl Plugin for ObstaclesPlugin { .with_system( update_nearby:: .run_in_state(GameState::Playing) - .label(ObstaclesLables::UpdateNearby), + .in_set(ObstaclesLables::UpdateNearby), ) .with_system( update_nearby:: .run_in_state(GameState::Playing) - .label(ObstaclesLables::UpdateNearby), + .in_set(ObstaclesLables::UpdateNearby), ), ); } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] pub(crate) enum ObstaclesLables { UpdateNearby, } @@ -82,13 +81,15 @@ fn update_nearby( mut objects: Query<(Entity, &Transform, &mut DecayingCache)>, space: SpatialQuery>, ) { - objects.par_for_each_mut(512, |(entity, transform, mut cache)| { - cache.clear(); - let half_extent = Vec3::splat(NEARBY_HALF_EXTENT); - let mins = transform.translation - half_extent; - let maxs = transform.translation + half_extent; - let region = Aabb::new(Point::from(mins), Point::from(maxs)); - cache.extend(space.query_aabb(®ion, Some(entity))); - cache.decay(time.delta_seconds()); - }); + objects + .par_iter_mut() + .for_each_mut(|(entity, transform, mut cache)| { + cache.clear(); + let half_extent = Vec3::splat(NEARBY_HALF_EXTENT); + let mins = transform.translation - half_extent; + let maxs = transform.translation + half_extent; + let region = Aabb::new(Point::from(mins), Point::from(maxs)); + cache.extend(space.query_aabb(®ion, Some(entity))); + cache.decay(time.delta_seconds()); + }); } diff --git a/crates/movement/src/pathing.rs b/crates/movement/src/pathing.rs index f4a4a7cd8..b042c1c05 100644 --- a/crates/movement/src/pathing.rs +++ b/crates/movement/src/pathing.rs @@ -1,7 +1,6 @@ use bevy::prelude::*; use de_core::{gamestate::GameState, projection::ToFlat, stages::GameStage, state::AppState}; use de_pathing::ScheduledPath; -use iyes_loopless::prelude::*; use crate::{ movement::{add_desired_velocity, DesiredVelocity}, @@ -25,7 +24,7 @@ impl Plugin for PathingPlugin { SystemSet::new().with_system( follow_path .run_in_state(GameState::Playing) - .label(PathingLabels::FollowPath), + .in_set(PathingSet::FollowPath), ), ); } @@ -33,8 +32,8 @@ impl Plugin for PathingPlugin { pub(crate) struct PathVelocity; -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub(crate) enum PathingLabels { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub(crate) enum PathingSet { FollowPath, } @@ -63,12 +62,14 @@ fn follow_path( &mut DesiredVelocity, )>, ) { - objects.par_for_each_mut(512, |(transform, mut path, mut movement)| { - let location = transform.translation.to_flat(); - let remaining = path.destination().distance(location); - let advancement = path.advance(location, MAX_H_SPEED * 0.5); - let direction = (advancement - location).normalize(); - let desired_speed = MAX_H_SPEED.min((2. * remaining * MAX_H_ACCELERATION).sqrt()); - movement.update(desired_speed * direction); - }); + objects + .par_iter_mut() + .for_each_mut(|(transform, mut path, mut movement)| { + let location = transform.translation.to_flat(); + let remaining = path.destination().distance(location); + let advancement = path.advance(location, MAX_H_SPEED * 0.5); + let direction = (advancement - location).normalize(); + let desired_speed = MAX_H_SPEED.min((2. * remaining * MAX_H_ACCELERATION).sqrt()); + movement.update(desired_speed * direction); + }); } diff --git a/crates/movement/src/repulsion.rs b/crates/movement/src/repulsion.rs index 5542ce4df..fdd278cf1 100644 --- a/crates/movement/src/repulsion.rs +++ b/crates/movement/src/repulsion.rs @@ -8,7 +8,6 @@ use de_core::{ }; use de_map::size::MapBounds; use de_objects::{IchnographyCache, ObjectCache, EXCLUSION_OFFSET}; -use iyes_loopless::prelude::*; use parry2d::{math::Isometry, na::Unit, query::PointQuery}; use crate::{ @@ -16,7 +15,7 @@ use crate::{ disc::Disc, movement::{add_desired_velocity, DesiredVelocity}, obstacles::{MovableObstacles, ObstaclesLables, StaticObstacles}, - pathing::{PathVelocity, PathingLabels}, + pathing::{PathVelocity, PathingSet}, MAX_H_ACCELERATION, MAX_H_SPEED, }; @@ -43,27 +42,27 @@ impl Plugin for RepulsionPlugin { .with_system( repel_static .run_in_state(GameState::Playing) - .label(RepulsionLables::RepelStatic) + .in_set(RepulsionLables::RepelStatic) .after(ObstaclesLables::UpdateNearby) - .after(PathingLabels::FollowPath), + .after(PathingSet::FollowPath), ) .with_system( repel_movable .run_in_state(GameState::Playing) - .label(RepulsionLables::RepelMovable) + .in_set(RepulsionLables::RepelMovable) .after(ObstaclesLables::UpdateNearby) - .after(PathingLabels::FollowPath), + .after(PathingSet::FollowPath), ) .with_system( repel_bounds .run_in_state(GameState::Playing) - .label(RepulsionLables::RepelBounds) - .after(PathingLabels::FollowPath), + .in_set(RepulsionLables::RepelBounds) + .after(PathingSet::FollowPath), ) .with_system( apply .run_in_state(GameState::Playing) - .label(RepulsionLables::Apply) + .in_set(RepulsionLables::Apply) .after(RepulsionLables::RepelStatic) .after(RepulsionLables::RepelMovable) .after(RepulsionLables::RepelBounds), @@ -72,7 +71,7 @@ impl Plugin for RepulsionPlugin { } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] pub(crate) enum RepulsionLables { RepelStatic, RepelMovable, @@ -171,44 +170,46 @@ fn repel_static( )>, obstacles: Query<(&ObjectType, &Transform), With>, ) { - objects.par_for_each_mut(512, |(movement, disc, static_obstacles, mut repulsion)| { - if movement.stationary() { - return; - } + objects + .par_iter_mut() + .for_each_mut(|(movement, disc, static_obstacles, mut repulsion)| { + if movement.stationary() { + return; + } - for &entity in static_obstacles.entities() { - let (&object_type, transform) = obstacles.get(entity).unwrap(); + for &entity in static_obstacles.entities() { + let (&object_type, transform) = obstacles.get(entity).unwrap(); - let angle = transform.rotation.to_euler(EulerRot::YXZ).0; - let isometry = Isometry::new(transform.translation.to_flat().into(), angle); - let local_point = isometry.inverse_transform_point(&From::from(disc.center())); + let angle = transform.rotation.to_euler(EulerRot::YXZ).0; + let isometry = Isometry::new(transform.translation.to_flat().into(), angle); + let local_point = isometry.inverse_transform_point(&From::from(disc.center())); - let footprint = cache.get_ichnography(object_type).convex_hull(); - let projection = footprint.project_local_point(&local_point, true); + let footprint = cache.get_ichnography(object_type).convex_hull(); + let projection = footprint.project_local_point(&local_point, true); - let mut diff = projection.point - local_point; - let mut distance = diff.norm(); - if projection.is_inside { - diff *= -1.; - distance *= -1.; - } - distance -= disc.radius(); - - if distance > MAX_REPULSION_DISTANCE { - continue; - } + let mut diff = projection.point - local_point; + let mut distance = diff.norm(); + if projection.is_inside { + diff *= -1.; + distance *= -1.; + } + distance -= disc.radius(); - let direction = match Unit::try_new(diff, parry2d::math::DEFAULT_EPSILON) { - Some(direction) => { - let feature_id = footprint.support_feature_id_toward(&direction); - let local_normal = footprint.feature_normal(feature_id).unwrap(); - Vec2::from(isometry.transform_vector(&local_normal)) + if distance > MAX_REPULSION_DISTANCE { + continue; } - None => Vec2::X, - }; - repulsion.add(direction, distance - MIN_STATIC_OBJECT_DISTANCE); - } - }); + + let direction = match Unit::try_new(diff, parry2d::math::DEFAULT_EPSILON) { + Some(direction) => { + let feature_id = footprint.support_feature_id_toward(&direction); + let local_normal = footprint.feature_normal(feature_id).unwrap(); + Vec2::from(isometry.transform_vector(&local_normal)) + } + None => Vec2::X, + }; + repulsion.add(direction, distance - MIN_STATIC_OBJECT_DISTANCE); + } + }); } fn repel_movable( @@ -220,50 +221,54 @@ fn repel_movable( )>, obstacles: Query<&Disc>, ) { - objects.par_for_each_mut(512, |(movement, disc, movable_obstacles, mut repulsion)| { - if movement.stationary() { - return; - } + objects + .par_iter_mut() + .for_each_mut(|(movement, disc, movable_obstacles, mut repulsion)| { + if movement.stationary() { + return; + } - for &entity in movable_obstacles.entities() { - let other_disc = obstacles.get(entity).unwrap(); - let diff = other_disc.center() - disc.center(); - let mut distance = diff.length(); - let direction = if distance <= parry2d::math::DEFAULT_EPSILON { - Vec2::X - } else { - diff / distance - }; - distance -= disc.radius() + other_disc.radius(); - if distance < MAX_REPULSION_DISTANCE { - repulsion.add(direction, distance - MIN_MOVABLE_OBJECT_DISTANCE); + for &entity in movable_obstacles.entities() { + let other_disc = obstacles.get(entity).unwrap(); + let diff = other_disc.center() - disc.center(); + let mut distance = diff.length(); + let direction = if distance <= parry2d::math::DEFAULT_EPSILON { + Vec2::X + } else { + diff / distance + }; + distance -= disc.radius() + other_disc.radius(); + if distance < MAX_REPULSION_DISTANCE { + repulsion.add(direction, distance - MIN_MOVABLE_OBJECT_DISTANCE); + } } - } - }); + }); } fn repel_bounds( bounds: Res, mut objects: Query<(&DesiredVelocity, &Disc, &mut Repulsion)>, ) { - objects.par_for_each_mut(512, |(movement, disc, mut repulsion)| { - if movement.stationary() { - return; - } + objects + .par_iter_mut() + .for_each_mut(|(movement, disc, mut repulsion)| { + if movement.stationary() { + return; + } - let projection = bounds - .aabb() - .project_local_point(&From::from(disc.center()), false); - debug_assert!(projection.is_inside); + let projection = bounds + .aabb() + .project_local_point(&From::from(disc.center()), false); + debug_assert!(projection.is_inside); - let diff = Vec2::from(projection.point) - disc.center(); - let diff_norm = diff.length(); - let distance = diff_norm - disc.radius(); + let diff = Vec2::from(projection.point) - disc.center(); + let diff_norm = diff.length(); + let distance = diff_norm - disc.radius(); - if distance < MAX_REPULSION_DISTANCE { - repulsion.add(diff / diff_norm, distance - EXCLUSION_OFFSET); - } - }); + if distance < MAX_REPULSION_DISTANCE { + repulsion.add(diff / diff_norm, distance - EXCLUSION_OFFSET); + } + }); } fn apply( @@ -273,8 +278,7 @@ fn apply( &mut DesiredVelocity, )>, ) { - objects.par_for_each_mut( - 512, + objects.par_iter_mut().for_each_mut( |(mut repulsion, path_velocity, mut repulsion_velocity)| { let velocity = repulsion.apply(path_velocity.velocity()); repulsion_velocity.update(velocity.clamp_length_max(MAX_H_SPEED)); diff --git a/crates/objects/Cargo.toml b/crates/objects/Cargo.toml index 7c27dc4c2..af6006df6 100644 --- a/crates/objects/Cargo.toml +++ b/crates/objects/Cargo.toml @@ -17,7 +17,6 @@ de_core.workspace = true # Other bevy.workspace = true -iyes_loopless.workspace = true iyes_progress.workspace = true glam.workspace = true parry2d.workspace = true diff --git a/crates/objects/src/cache.rs b/crates/objects/src/cache.rs index 7b3960e9a..807fad106 100644 --- a/crates/objects/src/cache.rs +++ b/crates/objects/src/cache.rs @@ -10,7 +10,6 @@ use de_core::{ state::AppState, }; use enum_map::{enum_map, EnumMap}; -use iyes_loopless::prelude::*; use iyes_progress::prelude::*; use crate::{ diff --git a/crates/pathing/Cargo.toml b/crates/pathing/Cargo.toml index c6c0ca112..5852811dc 100644 --- a/crates/pathing/Cargo.toml +++ b/crates/pathing/Cargo.toml @@ -26,7 +26,6 @@ ahash.workspace = true approx.workspace = true rstar.workspace = true tinyvec.workspace = true -iyes_loopless.workspace = true spade.workspace = true futures-lite.workspace = true diff --git a/crates/pathing/src/fplugin.rs b/crates/pathing/src/fplugin.rs index 9f82a191e..aba3bda54 100644 --- a/crates/pathing/src/fplugin.rs +++ b/crates/pathing/src/fplugin.rs @@ -13,7 +13,6 @@ use de_core::{ use de_map::size::MapBounds; use de_objects::{IchnographyCache, ObjectCache}; use futures_lite::future; -use iyes_loopless::prelude::*; use crate::{exclusion::ExclusionArea, finder::PathFinder, triangulation::triangulate}; @@ -50,32 +49,32 @@ impl Plugin for FinderPlugin { GameStage::PostUpdate, check_removed .run_in_state(AppState::InGame) - .label(FinderLabel::CheckRemoved), + .in_set(FinderSet::CheckRemoved), ) .add_system_to_stage( GameStage::PostUpdate, check_updated .run_in_state(GameState::Playing) - .label(FinderLabel::CheckUpdated), + .in_set(FinderSet::CheckUpdated), ) .add_system_to_stage( GameStage::PostUpdate, update .run_in_state(GameState::Playing) - .after(FinderLabel::CheckUpdated) - .after(FinderLabel::CheckRemoved), + .after(FinderSet::CheckUpdated) + .after(FinderSet::CheckRemoved), ) .add_system_to_stage( GameStage::PreMovement, check_update_result .run_in_state(GameState::Playing) - .label(FinderLabel::UpdateFinder), + .in_set(FinderSet::UpdateFinder), ); } } -#[derive(SystemLabel)] -pub(crate) enum FinderLabel { +#[derive(SystemSet)] +pub(crate) enum FinderSet { UpdateFinder, CheckRemoved, CheckUpdated, @@ -173,7 +172,10 @@ fn cleanup(mut commands: Commands) { commands.remove_resource::(); } -fn check_removed(mut state: ResMut, removed: RemovedComponents) { +fn check_removed( + mut state: ResMut, + mut removed: RemovedComponents, +) { if removed.iter().next().is_some() { state.invalidate(); } diff --git a/crates/pathing/src/pplugin.rs b/crates/pathing/src/pplugin.rs index d8e9bbb9e..85f0d5ba0 100644 --- a/crates/pathing/src/pplugin.rs +++ b/crates/pathing/src/pplugin.rs @@ -8,10 +8,9 @@ use de_core::{ state::AppState, }; use futures_lite::future; -use iyes_loopless::prelude::*; use crate::{ - fplugin::{FinderLabel, FinderRes, PathFinderUpdated}, + fplugin::{FinderRes, FinderSet, PathFinderUpdated}, path::{Path, ScheduledPath}, PathQueryProps, PathTarget, }; @@ -41,15 +40,15 @@ impl Plugin for PathingPlugin { GameStage::PreMovement, update_existing_paths .run_in_state(GameState::Playing) - .label(PathingLabel::UpdateExistingPaths) - .after(FinderLabel::UpdateFinder), + .in_set(PathingSet::UpdateExistingPaths) + .after(FinderSet::UpdateFinder), ) .add_system_to_stage( GameStage::PreMovement, update_requested_paths .run_in_state(GameState::Playing) - .label(PathingLabel::UpdateRequestedPaths) - .after(PathingLabel::UpdateExistingPaths), + .in_set(PathingSet::UpdateRequestedPaths) + .after(PathingSet::UpdateExistingPaths), ) .add_system_to_stage( GameStage::PreMovement, @@ -58,16 +57,16 @@ impl Plugin for PathingPlugin { // This is needed to avoid race condition in PathTarget // removal which would happen if path was not-found before // this system is run. - .before(PathingLabel::UpdateRequestedPaths) + .before(PathingSet::UpdateRequestedPaths) // This system removes finished tasks from UpdatePathsState // and inserts Scheduledpath components. When this happen, // the tasks is no longer available however the component // is not available as well until the end of the stage. // - // System PathingLabel::UpdateExistingPaths needs to detect + // System PathingSet::UpdateExistingPaths needs to detect // that a path is either already scheduled or being // computed. Thus this system must run after it. - .after(PathingLabel::UpdateExistingPaths), + .after(PathingSet::UpdateExistingPaths), ) .add_system_to_stage( GameStage::PostMovement, @@ -76,8 +75,8 @@ impl Plugin for PathingPlugin { } } -#[derive(SystemLabel)] -enum PathingLabel { +#[derive(SystemSet)] +enum PathingSet { UpdateRequestedPaths, UpdateExistingPaths, } @@ -250,7 +249,7 @@ fn check_path_results( fn remove_path_targets( mut commands: Commands, targets: Query<&PathTarget>, - removed: RemovedComponents, + mut removed: RemovedComponents, ) { for entity in removed.iter() { if let Ok(target) = targets.get(entity) { diff --git a/crates/signs/Cargo.toml b/crates/signs/Cargo.toml index 02bec4301..7b9cb69c2 100644 --- a/crates/signs/Cargo.toml +++ b/crates/signs/Cargo.toml @@ -21,4 +21,3 @@ de_terrain.workspace = true # Other bevy.workspace = true glam.workspace = true -iyes_loopless.workspace = true diff --git a/crates/signs/src/bars.rs b/crates/signs/src/bars.rs index fcb80d510..bad831a08 100644 --- a/crates/signs/src/bars.rs +++ b/crates/signs/src/bars.rs @@ -10,15 +10,14 @@ use bevy::{ }, }, }; -use de_camera::{CameraDistance, DistanceLabels}; +use de_camera::{CameraDistance, DistanceSet}; use de_core::{ objects::{Active, ObjectType}, stages::GameStage, state::AppState, - visibility::{VisibilityFlags, VisibilityLabels}, + visibility::{VisibilityFlags, VisibilitySet}, }; use de_objects::{ColliderCache, ObjectCache}; -use iyes_loopless::prelude::*; use crate::{DISTANCE_FLAG_BIT, MAX_VISIBILITY_DISTANCE}; @@ -46,13 +45,13 @@ impl Plugin for BarsPlugin { .with_system( update_visibility_events .run_in_state(AppState::InGame) - .before(VisibilityLabels::Update), + .before(VisibilitySet::Update), ) .with_system( update_visibility_distance .run_in_state(AppState::InGame) - .before(VisibilityLabels::Update) - .after(DistanceLabels::Update), + .before(VisibilitySet::Update) + .after(DistanceSet::Update), ), ); } @@ -211,7 +210,7 @@ fn spawn( mesh: mesh.mesh(), material, transform, - visibility: Visibility { is_visible: false }, + visibility: Visibility::Hidden, ..Default::default() }, NotShadowCaster, diff --git a/crates/signs/src/markers.rs b/crates/signs/src/markers.rs index 4e2cb0a06..6863757a9 100644 --- a/crates/signs/src/markers.rs +++ b/crates/signs/src/markers.rs @@ -1,8 +1,7 @@ use bevy::prelude::*; -use de_camera::{CameraDistance, DistanceLabels}; +use de_camera::{CameraDistance, DistanceSet}; use de_core::{stages::GameStage, state::AppState}; use de_terrain::CircleMarker; -use iyes_loopless::prelude::*; use crate::{DISTANCE_FLAG_BIT, MAX_VISIBILITY_DISTANCE}; @@ -14,7 +13,7 @@ impl Plugin for MarkersPlugin { GameStage::PostUpdate, update_distance .run_in_state(AppState::InGame) - .after(DistanceLabels::Update), + .after(DistanceSet::Update), ); } } diff --git a/crates/spawner/Cargo.toml b/crates/spawner/Cargo.toml index 4a991c447..8c33c9ec4 100644 --- a/crates/spawner/Cargo.toml +++ b/crates/spawner/Cargo.toml @@ -22,6 +22,5 @@ de_terrain.workspace = true # Other ahash.workspace = true bevy.workspace = true -iyes_loopless.workspace = true parry2d.workspace = true parry3d.workspace = true diff --git a/crates/spawner/src/counter.rs b/crates/spawner/src/counter.rs index 82bdad2d9..c20c108d4 100644 --- a/crates/spawner/src/counter.rs +++ b/crates/spawner/src/counter.rs @@ -8,7 +8,6 @@ use de_core::{ player::{Player, PlayerRange}, state::AppState, }; -use iyes_loopless::prelude::*; pub(crate) struct CounterPlugin; diff --git a/crates/spawner/src/destroyer.rs b/crates/spawner/src/destroyer.rs index 660f97880..44e771485 100644 --- a/crates/spawner/src/destroyer.rs +++ b/crates/spawner/src/destroyer.rs @@ -1,9 +1,8 @@ use bevy::prelude::*; use de_core::{objects::ObjectType, player::Player, stages::GameStage, state::AppState}; use de_objects::Health; -use iyes_loopless::prelude::*; -use crate::{ObjectCounter, SpawnerLabels}; +use crate::{ObjectCounter, SpawnerSet}; pub(crate) struct DestroyerPlugin; @@ -13,7 +12,7 @@ impl Plugin for DestroyerPlugin { GameStage::Update, destroy .run_in_state(AppState::InGame) - .label(SpawnerLabels::Destroyer), + .in_set(SpawnerSet::Destroyer), ); } } diff --git a/crates/spawner/src/draft.rs b/crates/spawner/src/draft.rs index c0590e036..532c5de72 100644 --- a/crates/spawner/src/draft.rs +++ b/crates/spawner/src/draft.rs @@ -13,10 +13,9 @@ use de_core::{ stages::GameStage, state::AppState, }; -use de_index::{ColliderWithCache, IndexLabel, QueryCollider, SpatialQuery}; +use de_index::{ColliderWithCache, IndexSet, QueryCollider, SpatialQuery}; use de_map::size::MapBounds; use de_objects::{ColliderCache, ObjectCache, EXCLUSION_OFFSET}; -use iyes_loopless::prelude::*; use parry2d::{ bounding_volume::{Aabb, BoundingVolume}, math::Vector, @@ -43,19 +42,19 @@ impl Plugin for DraftPlugin { GameStage::PostUpdate, update_draft .run_in_state(GameState::Playing) - .after(IndexLabel::Index), + .after(IndexSet::Index), ) .add_system_to_stage( GameStage::PostUpdate, check_draft_loaded .run_in_state(GameState::Playing) - .after(IndexLabel::Index), + .after(IndexSet::Index), ) .add_system_to_stage( GameStage::PostUpdate, update_draft_colour .run_in_state(GameState::Playing) - .after(IndexLabel::Index), + .after(IndexSet::Index), ); } } diff --git a/crates/spawner/src/gameend.rs b/crates/spawner/src/gameend.rs index 261f48e29..7d46c735c 100644 --- a/crates/spawner/src/gameend.rs +++ b/crates/spawner/src/gameend.rs @@ -3,7 +3,6 @@ use de_core::{ gamestate::GameState, gconfig::GameConfig, gresult::GameResult, stages::GameStage, state::AppState, }; -use iyes_loopless::prelude::*; use crate::ObjectCounter; diff --git a/crates/spawner/src/lib.rs b/crates/spawner/src/lib.rs index 04b76db50..ec489c5f7 100644 --- a/crates/spawner/src/lib.rs +++ b/crates/spawner/src/lib.rs @@ -29,7 +29,7 @@ impl PluginGroup for SpawnerPluginGroup { } } -#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemLabel)] -pub enum SpawnerLabels { +#[derive(Copy, Clone, Hash, Debug, PartialEq, Eq, SystemSet)] +pub enum SpawnerSet { Destroyer, } diff --git a/crates/spawner/src/spawner.rs b/crates/spawner/src/spawner.rs index 77975c9b3..3c9dfdda7 100644 --- a/crates/spawner/src/spawner.rs +++ b/crates/spawner/src/spawner.rs @@ -10,7 +10,6 @@ use de_core::{ }; use de_objects::{IchnographyCache, InitialHealths, ObjectCache}; use de_terrain::CircleMarker; -use iyes_loopless::prelude::*; use crate::ObjectCounter; diff --git a/crates/terrain/Cargo.toml b/crates/terrain/Cargo.toml index 0f54f7b69..7f4c6336c 100644 --- a/crates/terrain/Cargo.toml +++ b/crates/terrain/Cargo.toml @@ -19,7 +19,6 @@ de_objects.workspace = true # Other bevy.workspace = true -iyes_loopless.workspace = true iyes_progress.workspace = true glam.workspace = true parry3d.workspace = true diff --git a/crates/terrain/src/marker.rs b/crates/terrain/src/marker.rs index c74d9842e..908056645 100644 --- a/crates/terrain/src/marker.rs +++ b/crates/terrain/src/marker.rs @@ -12,7 +12,6 @@ use de_core::{ }; use de_objects::{ColliderCache, ObjectCache}; use glam::Vec3A; -use iyes_loopless::prelude::*; use crate::shader::{Circle, TerrainMaterial, CIRCLE_CAPACITY}; diff --git a/crates/terrain/src/plugin.rs b/crates/terrain/src/plugin.rs index 1ca668661..05aa15b99 100644 --- a/crates/terrain/src/plugin.rs +++ b/crates/terrain/src/plugin.rs @@ -7,7 +7,6 @@ use bevy::{ }, }; use de_core::{gamestate::GameState, stages::GameStage, state::AppState}; -use iyes_loopless::prelude::*; use iyes_progress::prelude::*; use crate::{shader::TerrainMaterial, terrain::Terrain}; diff --git a/src/main.rs b/src/main.rs index 7f24e3db1..104e414a9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,5 @@ #[cfg(not(target_os = "macos"))] -use bevy::window::CursorGrabMode; +use bevy::window::{CursorGrabMode, PrimaryWindow}; use bevy::{ diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin}, prelude::*, @@ -22,20 +22,19 @@ use de_pathing::PathingPluginGroup; use de_signs::SignsPluginGroup; use de_spawner::SpawnerPluginGroup; use de_terrain::TerrainPluginGroup; -use iyes_loopless::prelude::*; const CARGO_PKG_VERSION: &str = env!("CARGO_PKG_VERSION"); const GIT_SHA: &str = env!("GIT_SHA"); fn main() { let mut app = App::new(); - app.insert_resource(Msaa { samples: 4 }) + app.insert_resource(Msaa::Sample4) .add_plugins(DefaultPlugins.set(WindowPlugin { - window: WindowDescriptor { + window: Some(Window { title: "Digital Extinction".to_string(), mode: WindowMode::BorderlessFullscreen, ..Default::default() - }, + }), ..default() })) .add_plugin(LogDiagnosticsPlugin::default()) @@ -82,7 +81,7 @@ impl Plugin for GamePlugin { } #[cfg(not(target_os = "macos"))] -fn cursor_grab_system(mut windows: ResMut) { - let window = windows.get_primary_mut().unwrap(); +fn cursor_grab_system(mut window_query: Query<&mut Window, With>) { + let window = windows.single_mut(); window.set_cursor_grab_mode(CursorGrabMode::Confined); }