diff --git a/CHANGELOG.md b/CHANGELOG.md index b828af7..090aae5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ the format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) ## unreleased +### changed + +- upgrade to bevy 0.18 + # 0.6.0 (2026-02-09) ### changed diff --git a/Cargo.lock b/Cargo.lock index 9325b31..8429aa2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -322,18 +322,18 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bevy" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3ee8652fe0577fd8a99054e147740850140d530be8e044a9be4e23a3e8a24" +checksum = "ec689b5a79452b6f777b889bbff22d3216b82a8d2ab7814d4a0eb571e9938d97" dependencies = [ "bevy_internal", ] [[package]] name = "bevy_a11y" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6702a82db1b383641fc7c503451847cdafb57076c203cd3bfe549d3eeef474c3" +checksum = "ef69b6d2dec07cbf407c63f6987e1746e4b735a9beea51f4bfc25ad49e344f75" dependencies = [ "accesskit", "bevy_app", @@ -344,18 +344,18 @@ dependencies = [ [[package]] name = "bevy_android" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42b2d9435e9fe8d7107bb795a6140277872ad5b992cb3934f8d28cfd11040f6f" +checksum = "008133458cfe0d43a8870bfc4c5a729467cc5d9246611462add38bcf45ed896f" dependencies = [ "android-activity", ] [[package]] name = "bevy_animation" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfaf3ea6d435f4736b3deb60958270443501f5795c7964b1b504abd3be970b4f" +checksum = "13c852457843456c695ed22562969c83c3823454c3c40d359f92415371208ee7" dependencies = [ "bevy_animation_macros", "bevy_app", @@ -386,9 +386,9 @@ dependencies = [ [[package]] name = "bevy_animation_macros" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d577eae7246a1cda461df1b63188619fc6a3c619adba2a8e5a79e9aa51f64671" +checksum = "ac120bfd5a74e05f96013817d28318dc716afaa68864af069c7ffc3ccaf9d153" dependencies = [ "bevy_macro_utils", "quote", @@ -397,9 +397,9 @@ dependencies = [ [[package]] name = "bevy_anti_alias" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15820535cc88bc280f55635eb3ea58df2703a434a0cc2343472eaa7e607fb27b" +checksum = "b418087f7c36a62c9886b55be6278e7b3d21c9943b107953aa2068000956a736" dependencies = [ "bevy_app", "bevy_asset", @@ -419,9 +419,9 @@ dependencies = [ [[package]] name = "bevy_app" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e4fc5dfe9d1d9b8233e1878353b5e66a3f5910c2131d3abf68f9a4116b2d433" +checksum = "2271a0123a7cc355c3fe98754360c75aa84b29f2a6b1a9f8c00aac427570d174" dependencies = [ "bevy_derive", "bevy_ecs", @@ -442,17 +442,19 @@ dependencies = [ [[package]] name = "bevy_asset" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357787dbfaba3f73fd185e15d6df70605bddaa774f2ebbcab1aaa031f21fb6c2" +checksum = "b1f7361669d1426a3359cb92f890ef9c62bd6e6b67f0190d2c5279d25ce24168" dependencies = [ "async-broadcast", + "async-channel", "async-fs", "async-lock", "atomicow", "bevy_android", "bevy_app", "bevy_asset_macros", + "bevy_diagnostic", "bevy_ecs", "bevy_platform", "bevy_reflect", @@ -467,8 +469,8 @@ dependencies = [ "either", "futures-io", "futures-lite", + "futures-util", "js-sys", - "parking_lot", "ron", "serde", "stackfuture", @@ -482,9 +484,9 @@ dependencies = [ [[package]] name = "bevy_asset_macros" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afa09271d4ca0bf31fda3a9ad57273775d448a05c4046d9367f71d29968d85b4" +checksum = "288e1edf17069afe2e02a0c0e7e5936b3d22a67c7d2dc9201a27e4451875f909" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -494,9 +496,9 @@ dependencies = [ [[package]] name = "bevy_audio" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d79e56e072001524100b00e38cfdea302d9fdabbff48109fc67b528b27a237bb" +checksum = "e3cbecfc6c5d3860f224f56d3152b14aa313168d35c16e847f5a0202a992c3af" dependencies = [ "bevy_app", "bevy_asset", @@ -512,9 +514,9 @@ dependencies = [ [[package]] name = "bevy_camera" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8af1d5a57fde6e577e7b1db58996afb381618294be75a37b3070a20d309678b0" +checksum = "48c7e1f2a5da1755cd58e45c762f4ea2d72cef6c480f9c8ddbadbd2a4380c616" dependencies = [ "bevy_app", "bevy_asset", @@ -538,9 +540,9 @@ dependencies = [ [[package]] name = "bevy_color" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49504fac6b9897f03b4bdc0189c04ef1ba0a9b37926343aa520a71619e90e116" +checksum = "74727302424d7ffc23528a974dbb44a34708662926e1a3bfc5040493f858886e" dependencies = [ "bevy_math", "bevy_reflect", @@ -554,15 +556,16 @@ dependencies = [ [[package]] name = "bevy_core_pipeline" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6af7e735685a652a8dba41b886f1330faeb57d4c61398917b7e49b09a7a1c3c1" +checksum = "a9e6bf0ba878bb5dd00ad4d70875b08eb11367829668c70d95785f5483ddb1cb" dependencies = [ "bevy_app", "bevy_asset", "bevy_camera", "bevy_color", "bevy_derive", + "bevy_diagnostic", "bevy_ecs", "bevy_image", "bevy_math", @@ -583,20 +586,49 @@ dependencies = [ [[package]] name = "bevy_derive" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9396b256b366a43d7f61d1f230cdab0a512fb4712cbf7d688f3d6fce4c5ea8a" +checksum = "70b6a05c31f54c83d681f1b8699bbaf581f06b25a40c9a6bb815625f731f5ba9" dependencies = [ "bevy_macro_utils", "quote", "syn", ] +[[package]] +name = "bevy_dev_tools" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3183daa165acce210c50c170c47433c90b1d55932ead9734ebca14b7cd242c4" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_diagnostic", + "bevy_ecs", + "bevy_image", + "bevy_input", + "bevy_math", + "bevy_picking", + "bevy_reflect", + "bevy_render", + "bevy_shader", + "bevy_state", + "bevy_text", + "bevy_time", + "bevy_transform", + "bevy_ui", + "bevy_ui_render", + "bevy_window", + "tracing", +] + [[package]] name = "bevy_diagnostic" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cdb0ed0c8423570fbbb7c4fc2719a203dd40928fefff45f76ef0889685a446" +checksum = "aca4caa8a9014a435dca382b1bdebaee4363e9be69882c598fc4ff4d7cd56e6a" dependencies = [ "atomic-waker", "bevy_app", @@ -612,9 +644,9 @@ dependencies = [ [[package]] name = "bevy_ecs" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7dd5229dd00d00e70ac6b2fc0a139961252f6ce07d3d268cfcac0da86d5bde4" +checksum = "24637a7c8643cab493f4085cda6bde4895f0e0816699c59006f18819da2ca0b8" dependencies = [ "arrayvec", "bevy_ecs_macros", @@ -640,9 +672,9 @@ dependencies = [ [[package]] name = "bevy_ecs_macros" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4d83bdd2285af4867e76c691406e0a4b55611b583d0c45b6ac7bcec1b45fd48" +checksum = "6eb14c18ca71e11c69fbae873c2db129064efac6d52e48d0127d37bfba1acfa8" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -652,9 +684,9 @@ dependencies = [ [[package]] name = "bevy_encase_derive" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7179e985f3f1b99265cb87fe194db3b00aee8e2914888d621ff9826e1417ee19" +checksum = "0f89146a8fcbfe47310fc929ee762dd3b08d4de3e3371c601529cfa8eeb861de" dependencies = [ "bevy_macro_utils", "encase_derive_impl", @@ -662,9 +694,9 @@ dependencies = [ [[package]] name = "bevy_gilrs" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a39dd8fdfe93314d47355ab3c58da40b648908a368bc536872f75fad4e8f3755" +checksum = "6c76417261ff3cd7ecda532b58514224aee06e76fbd87636c3a80695be7c8192" dependencies = [ "bevy_app", "bevy_ecs", @@ -678,50 +710,67 @@ dependencies = [ [[package]] name = "bevy_gizmos" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ebb9e3ca4938b48e5111151ce4b08f0e6fc207b854db08fa2d8de15ecabe8f8" +checksum = "bc78a5699580c2dce078f4c099028d26525a5a38e8eb587a31854c660a3c5ff7" dependencies = [ "bevy_app", "bevy_asset", "bevy_camera", "bevy_color", - "bevy_core_pipeline", "bevy_ecs", "bevy_gizmos_macros", - "bevy_image", "bevy_light", "bevy_math", - "bevy_mesh", - "bevy_pbr", "bevy_reflect", - "bevy_render", - "bevy_shader", - "bevy_sprite_render", "bevy_time", "bevy_transform", "bevy_utils", - "bytemuck", - "tracing", ] [[package]] name = "bevy_gizmos_macros" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92c4b3c3aac86f0db85d4f708883ebdc735c3f88ac5b84c033874fcdd3540a9d" +checksum = "60bb92e0ef80ff7c59429133244765515db3d313fae77ee67ffe94dab5b2725d" dependencies = [ "bevy_macro_utils", "quote", "syn", ] +[[package]] +name = "bevy_gizmos_render" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fde3172a31f81033b4f497dd9df84476f527fadb00936ede380fb646c402eb" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_core_pipeline", + "bevy_ecs", + "bevy_gizmos", + "bevy_image", + "bevy_math", + "bevy_mesh", + "bevy_pbr", + "bevy_render", + "bevy_shader", + "bevy_sprite_render", + "bevy_transform", + "bevy_utils", + "bytemuck", + "tracing", +] + [[package]] name = "bevy_gltf" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3479fbaf897320a3ee30c1626b4a1bee0be874ca27699c3b2f3494891d103d9b" +checksum = "08372f222676dba313061fc71128209b82f9711e7c5cba222b5c34bf1c5c70fe" dependencies = [ + "async-lock", "base64", "bevy_animation", "bevy_app", @@ -753,9 +802,9 @@ dependencies = [ [[package]] name = "bevy_image" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d546bbe2486bfa14971517e7ef427a9384749817c201d3afc60de0325cf52f11" +checksum = "809101ebe678a76c4c5ba3ecad255cde9be3ae0af591cf0143ba2c157afb55e9" dependencies = [ "bevy_app", "bevy_asset", @@ -782,9 +831,9 @@ dependencies = [ [[package]] name = "bevy_input" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca955b99f4dc2059e9c8574f8d95a5dd5002809fda80d062a94a553c571a467" +checksum = "9c2853993baf27b963a417d3603a73e02e39c5041913cd1ba7211b0a3037b191" dependencies = [ "bevy_app", "bevy_ecs", @@ -799,9 +848,9 @@ dependencies = [ [[package]] name = "bevy_input_focus" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de4d1d0e833e31beba1f28a77152b35f946e8c45df364ec4969d58788ab9de7f" +checksum = "05fc0fae5e4e081180f7f7bf8023a2b97dad13dcb5fa79eba50cda5bb95699a9" dependencies = [ "bevy_app", "bevy_ecs", @@ -816,9 +865,9 @@ dependencies = [ [[package]] name = "bevy_internal" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5e645f9e1a24c9667c768b6233beaf4e241739d8ca4fbba59435cc27aabad5" +checksum = "57463815630ea71221c0b8e7bff72d816a3071a89507c45f9e2686fbb5e1956b" dependencies = [ "bevy_a11y", "bevy_android", @@ -831,10 +880,12 @@ dependencies = [ "bevy_color", "bevy_core_pipeline", "bevy_derive", + "bevy_dev_tools", "bevy_diagnostic", "bevy_ecs", "bevy_gilrs", "bevy_gizmos", + "bevy_gizmos_render", "bevy_gltf", "bevy_image", "bevy_input", @@ -868,9 +919,9 @@ dependencies = [ [[package]] name = "bevy_light" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47093733280976ebd595f6e25f76603d5067ca4eb7544e59ecb0dd2fc5147810" +checksum = "4f9968b8f8a6a766a88b66144474c39d1415edc277d042fec1526eae85e1f8b4" dependencies = [ "bevy_app", "bevy_asset", @@ -889,9 +940,9 @@ dependencies = [ [[package]] name = "bevy_log" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a2d4ea086ac4663ab9dfb056c7b85eee39e18f7e3e9a4ae6e39897eaa155c5" +checksum = "406304a9b867a2de98c3edf0cc9e5a608fad1a1ddc567e15e72c186a8273ef51" dependencies = [ "android_log-sys", "bevy_app", @@ -907,11 +958,10 @@ dependencies = [ [[package]] name = "bevy_macro_utils" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62d984f9f8bd0f0d9fb020492a955e641e30e7a425f3588bf346cb3e61fec3c3" +checksum = "0b7272fca0bf30d8ca2571a803598856104b63e5c596d52850f811ed37c5e1e3" dependencies = [ - "parking_lot", "proc-macro2", "quote", "syn", @@ -920,11 +970,12 @@ dependencies = [ [[package]] name = "bevy_math" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fa74ae5d968749cc073da991757d3c7e3504ac6dbaac5f8c2a54b9d19b0b7ed" +checksum = "6a815c514b8a6f7b11508cdc8b3a4bf0761e96a14227af40aa93cb1160989ce0" dependencies = [ "approx", + "arrayvec", "bevy_reflect", "derive_more", "glam", @@ -933,16 +984,15 @@ dependencies = [ "rand", "rand_distr", "serde", - "smallvec", "thiserror 2.0.17", "variadics_please", ] [[package]] name = "bevy_mesh" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd9a0ea86abbd17655bc6f9f8d94461dfcd0322431f752fc03748df8b335eff2" +checksum = "aacf09d0ffd1a15baf8d201c4a34b918912a506395c2817aa55ab3d3776c09f2" dependencies = [ "bevy_app", "bevy_asset", @@ -971,9 +1021,9 @@ checksum = "7ef8e4b7e61dfe7719bb03c884dc270cd46a82efb40f93e9933b990c5c190c59" [[package]] name = "bevy_pbr" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c514b950cda849aa64e9b076a235913577370275125a34a478758505a19d776" +checksum = "69cc361c65035f7e531b592d99bce95b6ab3f643cae2abe97dfa7681363159a6" dependencies = [ "bevy_app", "bevy_asset", @@ -985,6 +1035,7 @@ dependencies = [ "bevy_ecs", "bevy_image", "bevy_light", + "bevy_log", "bevy_math", "bevy_mesh", "bevy_platform", @@ -1007,9 +1058,9 @@ dependencies = [ [[package]] name = "bevy_picking" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b371779713b40dea83b24cdb95054fe999fe8372351a317c4fb768859ac5f010" +checksum = "e4d10bb2a776087e1d8a9b87e8deb091d25bcedbe6160c613df2dc5fe069c3c5" dependencies = [ "bevy_app", "bevy_asset", @@ -1031,14 +1082,13 @@ dependencies = [ [[package]] name = "bevy_platform" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4691af6d7cfd1b5deb2fc926a43a180a546cdc3fe1e5a013fcee60db9bb2c81f" +checksum = "9b29ea749a8e85f98186ab662f607b885b97c804bb14cdb0cdf838164496d474" dependencies = [ "critical-section", "foldhash 0.2.0", "futures-channel", - "getrandom", "hashbrown 0.16.1", "js-sys", "portable-atomic", @@ -1052,9 +1102,9 @@ dependencies = [ [[package]] name = "bevy_post_process" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b857972f5d56b43b0dce2c843b75b64d5fbbd0f6177f6ecccd75e7e41f72deb" +checksum = "e8e1116cbc35637f267a29c7d2fe376e020f2b4402d6b525d328bae9c10460c7" dependencies = [ "bevy_app", "bevy_asset", @@ -1082,15 +1132,15 @@ dependencies = [ [[package]] name = "bevy_ptr" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17d24d7906c7de556033168b3485de36c59049fbaef0c2c44c715a23e0329b10" +checksum = "4f98cbc6d34bbdb58240b72ed1731931b4991a893b3a3238bb7c42ae054aa676" [[package]] name = "bevy_reflect" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5472b91928c0f3e4e3988c0d036b00719f19520f53a0c3f8c2af72f00e693c5" +checksum = "2b2a977e2b8dba65b6e9c11039c5f9ef108be428f036b3d1cac13ad86ec59f9c" dependencies = [ "assert_type_match", "bevy_platform", @@ -1103,6 +1153,7 @@ dependencies = [ "erased-serde", "foldhash 0.2.0", "glam", + "indexmap", "inventory", "petgraph", "serde", @@ -1116,9 +1167,9 @@ dependencies = [ [[package]] name = "bevy_reflect_derive" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "083784255162fa39960aa3cf3c23af0e515db2daa7f2e796ae34df993f4d3f6c" +checksum = "067af30072b1611fda1a577f1cb678b8ea2c9226133068be808dd49aac30cef0" dependencies = [ "bevy_macro_utils", "indexmap", @@ -1130,9 +1181,9 @@ dependencies = [ [[package]] name = "bevy_render" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44117cbc9448b5a3118eb9c65bd9ec4c574be996148793be2443257daae6eb05" +checksum = "d6b2c9a276646bde8ba58a7e15711b459fb4a5cdf46c47059b7a310f97a70d9c" dependencies = [ "async-channel", "bevy_app", @@ -1161,6 +1212,7 @@ dependencies = [ "downcast-rs 2.0.2", "encase", "fixedbitset", + "glam", "image", "indexmap", "js-sys", @@ -1179,9 +1231,9 @@ dependencies = [ [[package]] name = "bevy_render_macros" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9557b7b6b06b1b70c147581f4f410c2de73b6f6f0e82915887020f953bacb5a" +checksum = "03e16b8cac95b87021399ed19f6ab79c0b1e03101a448e3a0240934f78f66a56" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -1191,9 +1243,9 @@ dependencies = [ [[package]] name = "bevy_scene" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf6efd31fdd1e05724c95900bb1055716c8e3633b05fa731ee75db4241c17d" +checksum = "0046bb071ee358619f2fa9409ccced47375502b098b4107ec3385f3a1acf6600" dependencies = [ "bevy_app", "bevy_asset", @@ -1205,6 +1257,7 @@ dependencies = [ "bevy_transform", "bevy_utils", "derive_more", + "ron", "serde", "thiserror 2.0.17", "uuid", @@ -1212,9 +1265,9 @@ dependencies = [ [[package]] name = "bevy_shader" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a655de9f64e113a6e37be76401fb0d6cb84ed7cc4f891e70af4e39d26e9080c3" +checksum = "4a14cb0991b2482a66b94728cbcf7482d1b74364be017197396435d3d542b8d3" dependencies = [ "bevy_asset", "bevy_platform", @@ -1229,9 +1282,9 @@ dependencies = [ [[package]] name = "bevy_sprite" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52b9a80aadf102ef0b012ceba5326253638c891994c303479e9973092e4e1c8b" +checksum = "b2b3921ce1a8ce801c29d9552cbc204548bfeb16b9b829045c9e82b5917d99cc" dependencies = [ "bevy_app", "bevy_asset", @@ -1254,9 +1307,9 @@ dependencies = [ [[package]] name = "bevy_sprite_render" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eec49a2a9185526f9828559a40b6f66d4c2dbae2df8ea2936d88ba449a5e86a" +checksum = "ed40642fa0e1330df65b6a1bf0b14aa32fcd9d7f3306e08e0784c10362bd6265" dependencies = [ "bevy_app", "bevy_asset", @@ -1286,9 +1339,9 @@ dependencies = [ [[package]] name = "bevy_state" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e8556a55d548844fc067fac6657b62f8073c94bd7e13c86aa7573f4c2a67b3" +checksum = "9453325ca0c185a043f4515158daa15a8ab19139a60fd1edaf87fbe896cb7f83" dependencies = [ "bevy_app", "bevy_ecs", @@ -1302,9 +1355,9 @@ dependencies = [ [[package]] name = "bevy_state_macros" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda45913b1d6470c6b751656e72fb3f25ca6b5b7b2ee055b294aaed1eb7e5ba" +checksum = "d733081e57e49b3c43bdf3766d1de74c7df32e0f4db20c20437c85b1d18908de" dependencies = [ "bevy_macro_utils", "quote", @@ -1313,9 +1366,9 @@ dependencies = [ [[package]] name = "bevy_tasks" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcbbfa5a58a16c4228434d3018c23fde3d78dcd76ec5f5b2b482a21f4b158dd3" +checksum = "990ffedd374dd2c4fe8f0fd4bcefd5617d1ee59164b6c3fcc356a69b48e26e8e" dependencies = [ "async-channel", "async-executor", @@ -1332,9 +1385,9 @@ dependencies = [ [[package]] name = "bevy_text" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc144cc6a30ed44a88e342c22d9e3a66a0993a74f792ae07ba79318efb41a86d" +checksum = "ecbb6eeaa9a63d1f8aae8c0d79f8d5e14c584a962a4ef9f69115fd7d10941101" dependencies = [ "bevy_app", "bevy_asset", @@ -1358,9 +1411,9 @@ dependencies = [ [[package]] name = "bevy_time" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32835c3dbe082fbbe7d4f2f37f655073421f2882d4320ac2d59f922474260de4" +checksum = "e4c68b78e7ca1cc10c811cd1ded8350f53f2be11eb46946879a74c684026bff7" dependencies = [ "bevy_app", "bevy_ecs", @@ -1373,9 +1426,9 @@ dependencies = [ [[package]] name = "bevy_transform" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41fabfeaa53f51ff5ccf4d87e66836293159d50d21f6d3e16c93efb7c30f969" +checksum = "b30e3957de42c2f7d88dfe8428e739b74deab8932d2a8bbb9d4eefbd64b6aa34" dependencies = [ "bevy_app", "bevy_ecs", @@ -1391,9 +1444,9 @@ dependencies = [ [[package]] name = "bevy_ui" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa0fe27b8c641c2537480774dfd9198d56779371b04dd76618db39da4e7c7483" +checksum = "889c6892e9c5c308ab225a1322d07fb2358ccf39493526cda4d5f083d717773d" dependencies = [ "accesskit", "bevy_a11y", @@ -1405,6 +1458,7 @@ dependencies = [ "bevy_ecs", "bevy_image", "bevy_input", + "bevy_input_focus", "bevy_math", "bevy_picking", "bevy_platform", @@ -1424,9 +1478,9 @@ dependencies = [ [[package]] name = "bevy_ui_render" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1d2e783bb5f0b748e6360a0055421d5c934b43830b205a84996a75e54330cd7" +checksum = "b649395e32a4761d4f17aeff37170a4421c94a14c505645397b8ee8510eb19e9" dependencies = [ "bevy_app", "bevy_asset", @@ -1455,9 +1509,9 @@ dependencies = [ [[package]] name = "bevy_utils" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "789d04f88c764877a4552e07745b402dbc45f5d0545e6d102558f2f1752a1d89" +checksum = "e258c44d869f9c41ac0f88a16815c67f2569eb9fff4716828a40273d127b6f84" dependencies = [ "bevy_platform", "disqualified", @@ -1466,9 +1520,9 @@ dependencies = [ [[package]] name = "bevy_window" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae54ec7a0fc344278592a688a01b57b32182abc3ca7d47040773c4cbc2e15e0" +checksum = "869a56f1da2544641734018e1f1caa660299cd6e3af794f3fa0df72293d8eed2" dependencies = [ "bevy_app", "bevy_asset", @@ -1485,9 +1539,9 @@ dependencies = [ [[package]] name = "bevy_winit" -version = "0.17.3" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feeaa46d3c4480323e690de8a4ca7f914c074af1f5f70ee3246392992dbf4a0c" +checksum = "8142a3749fc491eeae481c30bb3830cf5a71d2fa3dba4d450a42792f6d39eb2d" dependencies = [ "accesskit", "accesskit_winit", @@ -1874,6 +1928,15 @@ dependencies = [ "libc", ] +[[package]] +name = "core_maths" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30" +dependencies = [ + "libm", +] + [[package]] name = "coreaudio-rs" version = "0.11.3" @@ -1896,21 +1959,22 @@ dependencies = [ [[package]] name = "cosmic-text" -version = "0.14.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da46a9d5a8905cc538a4a5bceb6a4510de7a51049c5588c0114efce102bcbbe8" +checksum = "c4cadaea21e24c49c0c82116f2b465ae6a49d63c90e428b0f8d9ae1f638ac91f" dependencies = [ "bitflags 2.10.0", "fontdb", + "harfrust", + "linebender_resource_handle", "log", "rangemap", "rustc-hash 1.1.0", - "rustybuzz", "self_cell", + "skrifa 0.39.0", "smol_str", "swash", "sys-locale", - "ttf-parser 0.21.1", "unicode-bidi", "unicode-linebreak", "unicode-script", @@ -2109,30 +2173,29 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "encase" -version = "0.11.2" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02ba239319a4f60905966390f5e52799d868103a533bb7e27822792332504ddd" +checksum = "6e3e0ff2ee0b7aa97428308dd9e1e42369cb22f5fb8dc1c55546637443a60f1e" dependencies = [ "const_panic", "encase_derive", - "glam", "thiserror 2.0.17", ] [[package]] name = "encase_derive" -version = "0.11.2" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5223d6c647f09870553224f6e37261fe5567bc5a4f4cf13ed337476e79990f2f" +checksum = "a4d90c5d7d527c6cb8a3b114efd26a6304d9ab772656e73d8f4e32b1f3d601a2" dependencies = [ "encase_derive_impl", ] [[package]] name = "encase_derive_impl" -version = "0.11.2" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1796db3d892515842ca2dfb11124c4bb4a9e58d9f2c5c1072e5bca1b2334507b" +checksum = "c8bad72d8308f7a382de2391ec978ddd736e0103846b965d7e2a63a75768af30" dependencies = [ "proc-macro2", "quote", @@ -2277,16 +2340,16 @@ dependencies = [ [[package]] name = "fontdb" -version = "0.16.2" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3" +checksum = "457e789b3d1202543297a350643cf459f836cade38934e7a4cf6a39e7cde2905" dependencies = [ "fontconfig-parser", "log", "memmap2", "slotmap", "tinyvec", - "ttf-parser 0.20.0", + "ttf-parser", ] [[package]] @@ -2350,6 +2413,36 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-macro", + "futures-task", + "pin-project-lite", + "pin-utils", +] + [[package]] name = "gethostname" version = "1.1.0" @@ -2426,6 +2519,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd47b05dddf0005d850e5644cae7f2b14ac3df487979dbfff3b56f20b1a6ae46" dependencies = [ "bytemuck", + "encase", "libm", "rand", "serde_core", @@ -2547,9 +2641,9 @@ dependencies = [ [[package]] name = "grid" -version = "0.15.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36119f3a540b086b4e436bb2b588cf98a68863470e0e880f4d0842f112a3183a" +checksum = "f9e2d4c0a8296178d8802098410ca05d86b17a10bb5ab559b3fb404c1f948220" [[package]] name = "guillotiere" @@ -2573,6 +2667,19 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "harfrust" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0caaee032384c10dd597af4579c67dee16650d862a9ccbe1233ff1a379abc07" +dependencies = [ + "bitflags 2.10.0", + "bytemuck", + "core_maths", + "read-fonts 0.36.0", + "smallvec", +] + [[package]] name = "hash32" version = "0.3.1" @@ -2598,15 +2705,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "equivalent", + "foldhash 0.2.0", "serde", "serde_core", ] [[package]] name = "heapless" -version = "0.8.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" +checksum = "2af2455f757db2b292a9b1768c4b70186d443bcb3b316252d6b540aec1cd89ed" dependencies = [ "hash32", "portable-atomic", @@ -2880,6 +2988,12 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "linebender_resource_handle" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a5ff6bcca6c4867b1c4fd4ef63e4db7436ef363e0ad7531d1558856bae64f4" + [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -2998,9 +3112,9 @@ dependencies = [ [[package]] name = "naga" -version = "26.0.0" +version = "27.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "916cbc7cb27db60be930a4e2da243cf4bc39569195f22fd8ee419cd31d5b662c" +checksum = "066cf25f0e8b11ee0df221219010f213ad429855f57c494f995590c861a9a7d8" dependencies = [ "arrayvec", "bit-set", @@ -3009,7 +3123,7 @@ dependencies = [ "cfg_aliases", "codespan-reporting", "half", - "hashbrown 0.15.5", + "hashbrown 0.16.1", "hexf-parse", "indexmap", "libm", @@ -3025,9 +3139,9 @@ dependencies = [ [[package]] name = "naga_oil" -version = "0.19.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b586d3cf5c9b7e13fe2af6e114406ff70773fd80881960378933b63e76f37dd" +checksum = "310c347db1b30e69581f3b84dc9a5c311ed583f67851b39b77953cb7a066c97f" dependencies = [ "codespan-reporting", "data-encoding", @@ -3494,7 +3608,7 @@ version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b" dependencies = [ - "ttf-parser 0.25.1", + "ttf-parser", ] [[package]] @@ -3577,6 +3691,12 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + [[package]] name = "piper" version = "0.2.4" @@ -3793,6 +3913,17 @@ dependencies = [ "font-types", ] +[[package]] +name = "read-fonts" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eaa2941a4c05443ee3a7b26ab076a553c343ad5995230cc2b1d3e993bdc6345" +dependencies = [ + "bytemuck", + "core_maths", + "font-types", +] + [[package]] name = "rectangle-pack" version = "0.4.2" @@ -3864,14 +3995,15 @@ dependencies = [ [[package]] name = "ron" -version = "0.10.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beceb6f7bf81c73e73aeef6dd1356d9a1b2b4909e1f0fc3e59b034f9572d7b7f" +checksum = "fd490c5b18261893f14449cbd28cb9c0b637aebf161cd77900bfdedaff21ec32" dependencies = [ - "base64", "bitflags 2.10.0", + "once_cell", "serde", "serde_derive", + "typeid", "unicode-ident", ] @@ -3925,23 +4057,6 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" -[[package]] -name = "rustybuzz" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c" -dependencies = [ - "bitflags 2.10.0", - "bytemuck", - "libm", - "smallvec", - "ttf-parser 0.21.1", - "unicode-bidi-mirroring", - "unicode-ccc", - "unicode-properties", - "unicode-script", -] - [[package]] name = "ruzstd" version = "0.8.2" @@ -4074,7 +4189,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c31071dedf532758ecf3fed987cdb4bd9509f900e026ab684b4ecb81ea49841" dependencies = [ "bytemuck", - "read-fonts", + "read-fonts 0.35.0", +] + +[[package]] +name = "skrifa" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c9eb0b904a04d09bd68c65d946617b8ff733009999050f3b851c32fb3cfb60e" +dependencies = [ + "bytemuck", + "read-fonts 0.36.0", ] [[package]] @@ -4189,7 +4314,7 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47846491253e976bdd07d0f9cc24b7daf24720d11309302ccbbc6e6b6e53550a" dependencies = [ - "skrifa", + "skrifa 0.37.0", "yazi", "zeno", ] @@ -4230,9 +4355,9 @@ dependencies = [ [[package]] name = "taffy" -version = "0.7.7" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4f4d046dd956a47a7e1a2947083d7ac3e6aa3cfaaead36173ceaa5ab11878c" +checksum = "41ba83ebaf2954d31d05d67340fd46cebe99da2b7133b0dd68d70c65473a437b" dependencies = [ "arrayvec", "grid", @@ -4473,23 +4598,14 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "ttf-parser" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" - -[[package]] -name = "ttf-parser" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8" - [[package]] name = "ttf-parser" version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" +dependencies = [ + "core_maths", +] [[package]] name = "twox-hash" @@ -4515,18 +4631,6 @@ version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" -[[package]] -name = "unicode-bidi-mirroring" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86" - -[[package]] -name = "unicode-ccc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656" - [[package]] name = "unicode-ident" version = "1.0.22" @@ -4539,12 +4643,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" -[[package]] -name = "unicode-properties" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" - [[package]] name = "unicode-script" version = "0.5.7" @@ -4817,16 +4915,16 @@ dependencies = [ [[package]] name = "wgpu" -version = "26.0.1" +version = "27.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70b6ff82bbf6e9206828e1a3178e851f8c20f1c9028e74dd3a8090741ccd5798" +checksum = "bfe68bac7cde125de7a731c3400723cadaaf1703795ad3f4805f187459cd7a77" dependencies = [ "arrayvec", "bitflags 2.10.0", "cfg-if", "cfg_aliases", "document-features", - "hashbrown 0.15.5", + "hashbrown 0.16.1", "js-sys", "log", "naga", @@ -4844,17 +4942,18 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "26.0.1" +version = "27.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f62f1053bd28c2268f42916f31588f81f64796e2ff91b81293515017ca8bd9" +checksum = "27a75de515543b1897b26119f93731b385a19aea165a1ec5f0e3acecc229cae7" dependencies = [ "arrayvec", "bit-set", "bit-vec", "bitflags 2.10.0", + "bytemuck", "cfg_aliases", "document-features", - "hashbrown 0.15.5", + "hashbrown 0.16.1", "indexmap", "log", "naga", @@ -4875,36 +4974,36 @@ dependencies = [ [[package]] name = "wgpu-core-deps-apple" -version = "26.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18ae5fbde6a4cbebae38358aa73fcd6e0f15c6144b67ef5dc91ded0db125dbdf" +checksum = "0772ae958e9be0c729561d5e3fd9a19679bcdfb945b8b1a1969d9bfe8056d233" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-wasm" -version = "26.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03b9f9e1a50686d315fc6debe4980cc45cd37b0e919351917df494e8fdc8885" +checksum = "9b1027dcf3b027a877e44819df7ceb0e2e98578830f8cd34cd6c3c7c2a7a50b7" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-windows-linux-android" -version = "26.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "720a5cb9d12b3d337c15ff0e24d3e97ed11490ff3f7506e7f3d98c68fa5d6f14" +checksum = "71197027d61a71748e4120f05a9242b2ad142e3c01f8c1b47707945a879a03c3" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-hal" -version = "26.0.6" +version = "27.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d0e67224cc7305b3b4eb2cc57ca4c4c3afc665c1d1bee162ea806e19c47bdd" +checksum = "5b21cb61c57ee198bc4aff71aeadff4cbb80b927beb912506af9c780d64313ce" dependencies = [ "android_system_properties", "arrayvec", @@ -4921,7 +5020,7 @@ dependencies = [ "gpu-alloc", "gpu-allocator", "gpu-descriptor", - "hashbrown 0.15.5", + "hashbrown 0.16.1", "js-sys", "khronos-egl", "libc", @@ -4931,6 +5030,7 @@ dependencies = [ "naga", "ndk-sys 0.6.0+11769913", "objc", + "once_cell", "ordered-float", "parking_lot", "portable-atomic", @@ -4950,9 +5050,9 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "26.0.0" +version = "27.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca7a8d8af57c18f57d393601a1fb159ace8b2328f1b6b5f80893f7d672c9ae2" +checksum = "afdcf84c395990db737f2dd91628706cb31e86d72e53482320d368e52b5da5eb" dependencies = [ "bitflags 2.10.0", "bytemuck", diff --git a/Cargo.toml b/Cargo.toml index bcd2e3b..ea5c567 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,16 +11,16 @@ repository = "https://github.com/databasedav/jonmo" documentation = "https://docs.rs/jonmo" [dependencies] -bevy_app = { version = "0.17", default-features = false } -bevy_derive = { version = "0.17", default-features = false } -bevy_diagnostic = { version = "0.17", default-features = false } -bevy_ecs = { version = "0.17", default-features = false } -bevy_platform = { version = "0.17", default-features = false } -bevy_log = { version = "0.17", default-features = false, optional = true } -bevy_time = { version = "0.17", default-features = false, optional = true } +bevy_app = { version = "0.18", default-features = false } +bevy_derive = { version = "0.18", default-features = false } +bevy_diagnostic = { version = "0.18", default-features = false } +bevy_ecs = { version = "0.18", default-features = false } +bevy_platform = { version = "0.18", default-features = false } +bevy_log = { version = "0.18", default-features = false, optional = true } +bevy_time = { version = "0.18", default-features = false, optional = true } enclose = "1.2" dyn-clone = "1.0" -apply = "0.3" +apply = "=0.3.0" # locked because last released in 2020 cfg-if = "1.0" document-features = { version = "0.2", optional = true } @@ -64,7 +64,7 @@ web = [ deployed_wasm_example = [] [dev-dependencies] -bevy = { version = "0.17", features = ["track_location"] } +bevy = { version = "0.18", features = ["track_location"] } rand = "0.9" test-log = { version = "0.2", default-features = false, features = ["trace"] } diff --git a/README.md b/README.md index 065409e..52571aa 100644 --- a/README.md +++ b/README.md @@ -92,9 +92,9 @@ fn counter_button(counter_holder: LazyEntity, color: Color, label: &'static str, width: Val::Px(45.0), justify_content: JustifyContent::Center, align_items: AlignItems::Center, + border_radius: BorderRadius::MAX, ..default() }, - BorderRadius::MAX, BackgroundColor(color), )) .observe(move |_: On>, mut counters: Query<&mut Counter>| { diff --git a/examples/counter.rs b/examples/counter.rs index 98ed967..bd4934b 100644 --- a/examples/counter.rs +++ b/examples/counter.rs @@ -103,9 +103,9 @@ fn counter_button(counter_holder: LazyEntity, color: Color, label: &'static str, width: Val::Px(45.0), justify_content: JustifyContent::Center, align_items: AlignItems::Center, + border_radius: BorderRadius::MAX, ..default() }, - BorderRadius::MAX, BackgroundColor(color), )) // Attach observers to the entity diff --git a/examples/filters.rs b/examples/filters.rs index d629aa8..4e8187f 100644 --- a/examples/filters.rs +++ b/examples/filters.rs @@ -204,11 +204,13 @@ fn maybe_insert_random_sorted(builder: jonmo::Builder) -> jonmo::Builder { fn text_node(text: &'static str) -> jonmo::Builder { jonmo::Builder::from(( - Node::default(), + Node { + border_radius: BorderRadius::all(Val::Px(GAP)), + ..default() + }, Text::new(text), TextColor(Color::WHITE), TextLayout::new_with_justify(Justify::Center), - BorderRadius::all(Val::Px(GAP)), )) } @@ -311,7 +313,10 @@ fn shape_toggles(row_parent: LazyEntity) -> jonmo::Builder { ..default() }) .child(shape_toggle(row_parent.clone(), Shape::Square)) - .child(shape_toggle(row_parent.clone(), Shape::Circle).insert(BorderRadius::MAX)) + .child( + shape_toggle(row_parent.clone(), Shape::Circle) + .with_component::(|mut node| node.border_radius = BorderRadius::MAX), + ) } fn color_toggles(row_parent: LazyEntity) -> jonmo::Builder { @@ -330,9 +335,9 @@ fn color_toggles(row_parent: LazyEntity) -> jonmo::Builder { width: Val::Px(15.), height: Val::Px(15.), border: UiRect::all(Val::Px(1.)), + border_radius: BorderRadius::all(Val::Px(GAP)), ..default() }, - BorderRadius::all(Val::Px(GAP)), BackgroundColor(color.into()), BorderColor::all(Color::BLACK), )) @@ -358,11 +363,11 @@ fn button(text: &'static str, offset: f32) -> jonmo::Builder { height: Val::Px((ITEM_SIZE / 2) as f32), justify_content: JustifyContent::Center, border: UiRect::all(Val::Px(1.)), + border_radius: BorderRadius::all(Val::Px(GAP)), ..default() }, BackgroundColor(bevy::color::palettes::basic::GRAY.into()), BorderColor::all(Color::WHITE), - BorderRadius::all(Val::Px(GAP)), )) .child( text_node(text) @@ -482,13 +487,13 @@ fn item(index: impl Signal>, Data { number, color, shape }: width: Val::Px(ITEM_SIZE as f32), align_items: AlignItems::Center, justify_content: JustifyContent::Center, + border_radius: match shape { + Shape::Square => BorderRadius::default(), + Shape::Circle => BorderRadius::MAX, + }, ..default() }, BackgroundColor(color.into()), - match shape { - Shape::Square => BorderRadius::default(), - Shape::Circle => BorderRadius::MAX, - }, )) .component_signal(index.map_in(|index| index.map(Index))) .observe( diff --git a/examples/letters.rs b/examples/letters.rs index 794c95c..0fc8297 100644 --- a/examples/letters.rs +++ b/examples/letters.rs @@ -179,17 +179,15 @@ fn sum_container() -> jonmo::Builder { } fn save_card(save_char: char, active_save_signal: impl Signal + Clone) -> jonmo::Builder { - jonmo::Builder::from(( - Node { - width: Val::Px(100.), - height: Val::Px(100.), - justify_content: JustifyContent::Center, - align_items: AlignItems::Center, - padding: UiRect::all(Val::Px(GAP * 2.)), - ..default() - }, - BorderRadius::all(Val::Px(GAP * 2.)), - )) + jonmo::Builder::from((Node { + width: Val::Px(100.), + height: Val::Px(100.), + justify_content: JustifyContent::Center, + align_items: AlignItems::Center, + padding: UiRect::all(Val::Px(GAP * 2.)), + border_radius: BorderRadius::all(Val::Px(GAP * 2.)), + ..default() + },)) .observe(move |_click: On>, mut active_save: ResMut| { active_save.0 = save_char; }) @@ -213,24 +211,24 @@ fn save_card(save_char: char, active_save_signal: impl Signal fn text_node() -> jonmo::Builder { jonmo::Builder::from(( - Node::default(), + Node { + border_radius: BorderRadius::all(Val::Px(GAP)), + ..default() + }, TextColor(Color::WHITE), TextLayout::new_with_justify(Justify::Center), - BorderRadius::all(Val::Px(GAP)), )) } fn letter(letter: char, data: impl Signal + Clone) -> jonmo::Builder { - jonmo::Builder::from(( - Node { - flex_direction: FlexDirection::Column, - row_gap: Val::Px(GAP * 2.), - padding: UiRect::all(Val::Px(GAP * 2.)), - width: Val::Px(100.), - ..default() - }, - BorderRadius::all(Val::Px(GAP * 2.)), - )) + jonmo::Builder::from((Node { + flex_direction: FlexDirection::Column, + row_gap: Val::Px(GAP * 2.), + padding: UiRect::all(Val::Px(GAP * 2.)), + width: Val::Px(100.), + border_radius: BorderRadius::all(Val::Px(GAP * 2.)), + ..default() + },)) .component_signal( data.clone() .map_in(|LetterData { pressed, .. }| pressed) diff --git a/src/builder.rs b/src/builder.rs index 676bdbc..e456761 100644 --- a/src/builder.rs +++ b/src/builder.rs @@ -453,7 +453,7 @@ impl Builder { let mut parent = world.entity_mut(parent); // Bevy's `remove_children` finds the entity and removes it from its // current position, correctly shifting subsequent children. - parent.remove_children(&[moved_entity]); + parent.detach_children(&[moved_entity]); let parent_entity = parent.id(); // The new insertion index must be calculated with the offset from any @@ -498,7 +498,7 @@ impl Builder { /// /// # Errors /// - /// Returns [`EntityMutableFetchError::EntityDoesNotExist`] if the entity does not exist in the + /// Returns [`EntityMutableFetchError::NotSpawned`] if the entity does not exist in the /// world. pub fn spawn_on_entity(self, world: &mut World, entity: Entity) -> Result<(), EntityMutableFetchError> { let mut entity_mut = world.get_entity_mut(entity)?; diff --git a/src/graph.rs b/src/graph.rs index 5f244b8..8632fdc 100644 --- a/src/graph.rs +++ b/src/graph.rs @@ -64,7 +64,6 @@ use alloc::collections::VecDeque; use bevy_app::PostUpdate; use bevy_derive::Deref; use bevy_ecs::{ - entity_disabling::Internal, lifecycle::HookContext, prelude::*, query::{QueryData, QueryFilter}, @@ -641,7 +640,7 @@ fn rebuild_levels(world: &mut World, state: &mut SignalGraphState) { state.by_schedule.clear(); state.signal_schedules.clear(); - let mut all_signals_state = SystemState::, Allow)>>::new(world); + let mut all_signals_state = SystemState::>>::new(world); let all_signals: HashSet = all_signals_state.get(world).iter().map(SignalSystem).collect(); let result = compute_signal_levels( diff --git a/src/signal.rs b/src/signal.rs index c8ebfb8..b6d462d 100644 --- a/src/signal.rs +++ b/src/signal.rs @@ -14,7 +14,7 @@ use super::{ utils::{LazyEntity, ancestor_map}, }; use crate::prelude::clone; -use bevy_ecs::{entity_disabling::Internal, prelude::*, schedule::ScheduleLabel, system::SystemState}; +use bevy_ecs::{prelude::*, schedule::ScheduleLabel, system::SystemState}; cfg_if::cfg_if! { if #[cfg(feature = "tracing")] { use core::fmt; @@ -1896,11 +1896,11 @@ pub trait SignalExt: Signal { // The output signal (reader). Reads from state and propagates. Has no upstream dependencies; // triggered manually by the forwarder. let reader_system = *from_system::<::Item, _, _, _>( - clone!((reader_entity) move |In(_), mut query: Query<&mut FlattenState<::Item>, Allow>| { - query.get_mut(*reader_entity).unwrap().value.take() - }), - ) - .register(world); + clone!((reader_entity) move |In(_), mut query: Query<&mut FlattenState<::Item>>| { + query.get_mut(*reader_entity).unwrap().value.take() + }), + ) + .register(world); reader_entity.set(*reader_system); world .entity_mut(*reader_system) @@ -2066,7 +2066,7 @@ pub trait SignalExt: Signal { // dependencies; triggered manually by the forwarder. let output_signal_entity = LazyEntity::new(); let output_signal = *from_system::>, _, _, _>( - clone!((output_signal_entity) move |In(_), mut q: Query<&mut SwitcherQueue, Allow>| { + clone!((output_signal_entity) move |In(_), mut q: Query<&mut SwitcherQueue>| { let mut queue = q.get_mut(*output_signal_entity).unwrap(); if queue.0.is_empty() { None @@ -2117,7 +2117,7 @@ pub trait SignalExt: Signal { *active_forwarder = Some(new_forwarder_handle); // Synchronously send the initial `Replace` diff. - let mut upstreams = SystemState::>>::new(world); + let mut upstreams = SystemState::>::new(world); let upstreams = upstreams.get(world); let upstreams = UpstreamIter::new(&upstreams, new_signal).collect::>(); for signal in [new_signal].into_iter().chain(upstreams.into_iter()) { @@ -2195,7 +2195,7 @@ pub trait SignalExt: Signal { // dependencies; triggered manually by the forwarder. let output_signal_entity = LazyEntity::new(); let output_signal = *from_system::>, _, _, _>( - clone!((output_signal_entity) move |In(_), mut q: Query<&mut SwitcherQueue, Allow>| { + clone!((output_signal_entity) move |In(_), mut q: Query<&mut SwitcherQueue>| { let mut queue = q.get_mut(*output_signal_entity).unwrap(); if queue.0.is_empty() { None @@ -2247,7 +2247,7 @@ pub trait SignalExt: Signal { *active_forwarder = Some(new_forwarder_handle); // Synchronously send the initial `Replace` diff. - let mut upstreams = SystemState::>>::new(world); + let mut upstreams = SystemState::>::new(world); let upstreams = upstreams.get(world); let upstreams = UpstreamIter::new(&upstreams, new_signal).collect::>(); for signal in [new_signal].into_iter().chain(upstreams.into_iter()) { diff --git a/src/signal_map.rs b/src/signal_map.rs index c49ad60..7245fae 100644 --- a/src/signal_map.rs +++ b/src/signal_map.rs @@ -20,7 +20,7 @@ use super::{ }; use crate::prelude::clone; use alloc::collections::BTreeMap; -use bevy_ecs::{entity_disabling::Internal, prelude::*, schedule::ScheduleLabel}; +use bevy_ecs::{prelude::*, schedule::ScheduleLabel}; use bevy_platform::{ prelude::*, sync::{Arc, LazyLock, Mutex}, @@ -1320,7 +1320,7 @@ impl MutableBTreeMap { let was_initially_empty = self_.read(&*world).is_empty(); let replay_entity = LazyEntity::new(); - let replay_system = clone!((self_, replay_entity) move |In(upstream_diffs): In>>, replay_onces: Query<&ReplayOnce, Allow>, mutable_btree_map_datas: Query<&MutableBTreeMapData>, mut has_replayed: Local| { + let replay_system = clone!((self_, replay_entity) move |In(upstream_diffs): In>>, replay_onces: Query<&ReplayOnce>, mutable_btree_map_datas: Query<&MutableBTreeMapData>, mut has_replayed: Local| { if replay_onces.contains(*replay_entity) { let first_replay = !core::mem::replace(&mut *has_replayed, true); if first_replay && was_initially_empty { diff --git a/src/signal_vec.rs b/src/signal_vec.rs index 2100163..d6c8663 100644 --- a/src/signal_vec.rs +++ b/src/signal_vec.rs @@ -19,9 +19,7 @@ use super::{ }; use crate::prelude::clone; use bevy_derive::{Deref, DerefMut}; -use bevy_ecs::{ - change_detection::Mut, entity_disabling::Internal, prelude::*, schedule::ScheduleLabel, system::SystemId, -}; +use bevy_ecs::{change_detection::Mut, prelude::*, schedule::ScheduleLabel, system::SystemId}; use bevy_platform::{ collections::HashMap, prelude::*, @@ -1661,7 +1659,7 @@ pub trait SignalVecExt: SignalVec { let self_entity = *entity; let Some(item_index) = world - .query_filtered::<&FilterSignalIndex, Allow>() + .query::<&FilterSignalIndex>() .get(world, self_entity) .ok() .map(|idx| idx.0) @@ -1669,7 +1667,7 @@ pub trait SignalVecExt: SignalVec { return; }; let Ok(mut filter_signal_data) = world - .query_filtered::<&mut FilterSignalData, Allow>() + .query::<&mut FilterSignalData>() .get_mut(world, parent) else { return; @@ -2089,7 +2087,7 @@ pub trait SignalVecExt: SignalVec { let create_index_signal = clone!((processor_entity_handle) move | key: usize | -> BoxedSignal> { signal::from_system( - clone!((processor_entity_handle) move |In(_), query: Query<&EnumerateState, Allow>| { + clone!((processor_entity_handle) move |In(_), query: Query<&EnumerateState>| { Some( query .get(*processor_entity_handle) @@ -2736,7 +2734,7 @@ pub trait SignalVecExt: SignalVec { signal::from_system( clone!( (state_entity_handle) move |In(_), - query: Query<&IntersperseState, Allow>| { + query: Query<&IntersperseState>| { Some( query .get(*state_entity_handle) @@ -4269,7 +4267,7 @@ impl MutableVec { let was_initially_empty = self_.read(&*world).is_empty(); let replay_entity = LazyEntity::new(); - let replay_system = clone!((self_, replay_entity) move |In(upstream_diffs): In>>, replay_onces: Query<&ReplayOnce, Allow>, mutable_vec_datas: Query<&MutableVecData>, mut has_replayed: Local| { + let replay_system = clone!((self_, replay_entity) move |In(upstream_diffs): In>>, replay_onces: Query<&ReplayOnce>, mutable_vec_datas: Query<&MutableVecData>, mut has_replayed: Local| { if replay_onces.contains(*replay_entity) { let first_replay = !core::mem::replace(&mut *has_replayed, true); if first_replay && was_initially_empty { @@ -4524,10 +4522,7 @@ pub(crate) fn trigger_replay(world: &mut } pub(crate) fn trigger_replays(world: &mut World) { - let triggers: Vec = world - .query_filtered::, Allow)>() - .iter(world) - .collect(); + let triggers: Vec = world.query_filtered::>().iter(world).collect(); for entity in triggers { trigger_replay::(world, entity); }