diff --git a/Cargo.lock b/Cargo.lock index 0b66885..6c1e8cc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 4 [[package]] name = "ab_glyph" -version = "0.2.31" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e074464580a518d16a7126262fffaaa47af89d4099d4cb403f8ed938ba12ee7d" +checksum = "01c0457472c38ea5bd1c3b5ada5e368271cb550be7a4ca4a0b4634e9913f6cc2" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -20,9 +20,9 @@ checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" [[package]] name = "accesskit" -version = "0.18.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "becf0eb5215b6ecb0a739c31c21bd83c4f326524c9b46b7e882d77559b60a529" +checksum = "cf203f9d3bd8f29f98833d1fbef628df18f759248a547e7e01cfbf63cda36a99" dependencies = [ "enumn", "serde", @@ -30,20 +30,19 @@ dependencies = [ [[package]] name = "accesskit_consumer" -version = "0.27.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0bf66a7bf0b7ea4fd7742d50b64782a88f99217cf246b3f93b4162528dde520" +checksum = "db81010a6895d8707f9072e6ce98070579b43b717193d2614014abd5cb17dd43" dependencies = [ "accesskit", "hashbrown 0.15.5", - "immutable-chunkmap", ] [[package]] name = "accesskit_macos" -version = "0.19.0" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09e230718177753b4e4ad9e1d9f6cfc2f4921212d4c1c480b253f526babb258d" +checksum = "a0089e5c0ac0ca281e13ea374773898d9354cc28d15af9f0f7394d44a495b575" dependencies = [ "accesskit", "accesskit_consumer", @@ -55,24 +54,23 @@ dependencies = [ [[package]] name = "accesskit_windows" -version = "0.25.0" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65178f3df98a51e4238e584fcb255cb1a4f9111820848eeddd37663be40a625f" +checksum = "d2d63dd5041e49c363d83f5419a896ecb074d309c414036f616dc0b04faca971" dependencies = [ "accesskit", "accesskit_consumer", "hashbrown 0.15.5", - "paste", "static_assertions", - "windows 0.58.0", - "windows-core 0.58.0", + "windows 0.61.3", + "windows-core 0.61.2", ] [[package]] name = "accesskit_winit" -version = "0.25.0" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d941bb8c414caba6e206de669c7dc0dbeb305640ea890772ee422a40e6b89f" +checksum = "c8cfabe59d0eaca7412bfb1f70198dd31e3b0496fee7e15b066f9c36a1a140a0" dependencies = [ "accesskit", "accesskit_macos", @@ -81,15 +79,6 @@ dependencies = [ "winit", ] -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - [[package]] name = "adler2" version = "2.0.1" @@ -103,8 +92,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "const-random", - "getrandom 0.3.3", + "getrandom", "once_cell", "version_check", "zerocopy", @@ -112,22 +100,13 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] -[[package]] -name = "aligned-vec" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc890384c8602f339876ded803c97ad529f3842aba97f6392b3dba0dd171769b" -dependencies = [ - "equator", -] - [[package]] name = "allocator-api2" version = "0.2.21" @@ -141,7 +120,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed7572b7ba83a31e20d1b48970ee402d2e3e0537dcfe0a3ff4d6eb7508617d43" dependencies = [ "alsa-sys", - "bitflags 2.9.4", + "bitflags 2.10.0", "cfg-if", "libc", ] @@ -163,14 +142,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" dependencies = [ "android-properties", - "bitflags 2.9.4", + "bitflags 2.10.0", "cc", "cesu8", "jni", "jni-sys", "libc", "log", - "ndk", + "ndk 0.9.0", "ndk-context", "ndk-sys 0.6.0+11769913", "num_enum", @@ -220,9 +199,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.20" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", @@ -235,9 +214,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" @@ -250,22 +229,22 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.10" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -291,12 +270,6 @@ version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" -[[package]] -name = "apply" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f47b57fc4521e3cae26a4d45b5227f8fadee4c345be0fefd8d5d1711afb8aeb9" - [[package]] name = "approx" version = "0.5.1" @@ -306,12 +279,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" - [[package]] name = "arboard" version = "3.6.1" @@ -321,28 +288,17 @@ dependencies = [ "clipboard-win", "image", "log", - "objc2 0.6.2", - "objc2-app-kit 0.3.1", + "objc2 0.6.3", + "objc2-app-kit 0.3.2", "objc2-core-foundation", "objc2-core-graphics", - "objc2-foundation 0.3.1", - "parking_lot 0.12.4", + "objc2-foundation 0.3.2", + "parking_lot 0.12.5", "percent-encoding", "windows-sys 0.60.2", "x11rb", ] -[[package]] -name = "arg_enum_proc_macro" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - [[package]] name = "arrayref" version = "0.3.9" @@ -378,7 +334,7 @@ checksum = "f548ad2c4031f2902e3edc1f29c29e835829437de49562d8eb5dc5584d3a1043" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -443,16 +399,16 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix 1.1.2", + "rustix 1.1.3", "slab", - "windows-sys 0.61.0", + "windows-sys 0.61.2", ] [[package]] name = "async-lock" -version = "3.4.1" +version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" +checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" dependencies = [ "event-listener", "event-listener-strategy", @@ -493,37 +449,29 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" -[[package]] -name = "av1-grain" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3efb2ca85bc610acfa917b5aaa36f3fcbebed5b3182d7f877b02531c4b80c8" -dependencies = [ - "anyhow", - "arrayvec", - "log", - "nom 7.1.3", - "num-rational", - "v_frame", -] - [[package]] name = "avian3d" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0feaf6ed522e3e55130d820bfa2a3f3395092cbee2c986cfc1a464b60b50b4ca" +checksum = "e09c07567e520b22bd6890a055877cd584fc3fd4317e4a0ba599f4833a4b61bc" dependencies = [ + "approx", "avian_derive", - "bevy 0.16.1", + "bevy", "bevy_heavy", - "bevy_math 0.16.1", + "bevy_math", "bevy_transform_interpolation", - "bitflags 2.9.4", + "bitflags 2.10.0", "derive_more", + "disqualified", + "glam_matrix_extras", "itertools 0.13.0", "nalgebra", "parry3d", "parry3d-f64", + "slab", + "smallvec", + "thiserror 2.0.17", "thread_local", ] @@ -536,49 +484,47 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "avian_pickup" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc77dbbc2a334640d9ecbf165cb8737db0654b3b813b96b6526dc4aa452f0c5d" +checksum = "1892b9526f9b1d876022bf4de6ba25f5cf4f9055c3798b8c6c0d7b10d38e91ba" dependencies = [ "avian3d", - "bevy 0.16.1", - "rand 0.8.5", -] - -[[package]] -name = "avif-serialize" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47c8fbc0f831f4519fe8b810b6a7a91410ec83031b8233f730a0480029f6a23f" -dependencies = [ - "arrayvec", + "bevy_app", + "bevy_ecs", + "bevy_log", + "bevy_math", + "bevy_platform", + "bevy_reflect", + "bevy_time", + "bevy_transform", + "bevy_utils", + "rand", ] [[package]] -name = "backtrace" -version = "0.3.75" +name = "avian_rerecast" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +checksum = "788b18d13efb52f03edf536090a6445ed60f899cb069912b27c35d5dc9bfb046" dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", + "avian3d", + "bevy_app", + "bevy_ecs", + "bevy_math", + "bevy_rerecast_core", + "bevy_transform", ] [[package]] -name = "base64" -version = "0.21.7" +name = "az" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" [[package]] name = "base64" @@ -618,135 +564,120 @@ checksum = "1795ebc740ea791ffbe6685e0688ab1effec16c2864e0476db40bfdf0c02cb3d" [[package]] name = "bevy" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2a21c9f3306676077a88700bb8f354be779cf9caba9c21e94da9e696751af4" -dependencies = [ - "bevy_internal 0.15.1", -] - -[[package]] -name = "bevy" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8369c16b7c017437021341521f8b4a0d98e1c70113fb358c3258ae7d661d79" +checksum = "76d3ee8652fe0577fd8a99054e147740850140d530be8e044a9be4e23a3e8a24" dependencies = [ - "bevy_internal 0.16.1", + "bevy_internal", ] [[package]] name = "bevy-inspector-egui" -version = "0.31.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4971e763f289921fd4616418628458bec26a6fc13fe4299c0e4066f39d7ceaa2" +checksum = "d3692cbc0a76398ee01dde2c49951c8a92c5373c58e8720a0909e9504d21e9ab" dependencies = [ "bevy-inspector-egui-derive", - "bevy_app 0.16.1", + "bevy_app", "bevy_asset", + "bevy_camera", "bevy_color", "bevy_core_pipeline", - "bevy_ecs 0.16.1", - "bevy_egui", + "bevy_ecs", + "bevy_egui 0.38.1", "bevy_image", - "bevy_log 0.16.1", - "bevy_math 0.16.1", + "bevy_light", + "bevy_log", + "bevy_math", + "bevy_mesh", "bevy_pbr", "bevy_platform", - "bevy_reflect 0.16.1", + "bevy_reflect", "bevy_render", "bevy_state", - "bevy_time 0.16.1", - "bevy_utils 0.16.1", + "bevy_time", + "bevy_utils", "bevy_window", "bytemuck", "disqualified", - "egui", + "egui 0.33.3", "fuzzy-matcher", "image", + "opener", "smallvec", - "uuid 1.18.1", + "uuid 1.19.0", "winit", ] [[package]] name = "bevy-inspector-egui-derive" -version = "0.31.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2656316165dbe2af6b3acaa763332f5dbdd12f809d59f5bf4304e0642a8005c9" +checksum = "f9569b1caad44483de562c6115c773d4311374d1740f5e6e69413d92206363c3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "bevy-tnua" -version = "0.24.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed533302dfcef51b63d60c2731e0c64bf835ca3e287da686b411869afddee0e" +checksum = "569a06296255af27bfb307dcc1cb879fa52a398324c4264d545bbc5330f26426" dependencies = [ - "bevy 0.16.1", + "bevy", + "bevy-tnua-macros", "bevy-tnua-physics-integration-layer", - "thiserror 2.0.16", + "serde", + "thiserror 2.0.17", ] [[package]] name = "bevy-tnua-avian3d" -version = "0.5.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8767dfb15ed696e07750470145240ca007e5276c367f68b9a3895955e92cbb66" +checksum = "3fc60d461db6763898cef4478eb3e44970353c7f70e649d3c75757462f30043a" dependencies = [ "avian3d", - "bevy 0.16.1", + "bevy", "bevy-tnua-physics-integration-layer", ] [[package]] -name = "bevy-tnua-physics-integration-layer" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914d26cf060dd50852d66fe31edf385fd5b9ea7f57a9ca5ddd9ba628b4157747" -dependencies = [ - "bevy 0.16.1", -] - -[[package]] -name = "bevy-trait-query" -version = "0.16.0" +name = "bevy-tnua-macros" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0536fb7ec58a26201bd1a30b89267bb100ee0dcb12edc6c472b3bc38f45f1447" +checksum = "0c798511265ca8d1a9bf32a4ecbdfeab2363560cded168e8a7f073d0c4965b22" dependencies = [ - "bevy-trait-query-impl", - "bevy_app 0.16.1", - "bevy_ecs 0.16.1", - "tracing", + "convert_case", + "proc-macro2", + "quote", + "syn 2.0.114", ] [[package]] -name = "bevy-trait-query-impl" -version = "0.16.0" +name = "bevy-tnua-physics-integration-layer" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d62739c868c0dcbf469df5235b738be46510dd6fc8fc7f2240106ba6610d0754" +checksum = "dc71ba69d5343b67d9421bb51cb6b021b3c137450fb49277b9550df7793c14f6" dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.106", + "bevy", ] [[package]] name = "bevy-yoleck" -version = "0.26.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653c82c189bce13a9366883a3f07ccc79a77a9e4708323fe76052fd94c53c60a" +checksum = "218dc4beeb01afd923fe9ff44099898d333d9e4fcc9ae8d03d2ebc070628a1da" dependencies = [ - "bevy 0.16.1", + "bevy", "bevy-yoleck-macros", - "bevy_egui", + "bevy_egui 0.37.1", "serde", "serde_json", - "thiserror 2.0.16", - "uuid 1.18.1", + "thiserror 2.0.17", + "uuid 1.19.0", ] [[package]] @@ -757,94 +688,116 @@ checksum = "8ed721396209f8172af6a86b5397b5be9784776f57f6a22107051c9caf07d586" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "bevy_a11y" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3561712cf49074d89e9989bfc2e6c6add5d33288f689db9a0c333300d2d004" +checksum = "6702a82db1b383641fc7c503451847cdafb57076c203cd3bfe549d3eeef474c3" dependencies = [ "accesskit", - "bevy_app 0.16.1", - "bevy_derive 0.16.1", - "bevy_ecs 0.16.1", - "bevy_reflect 0.16.1", + "bevy_app", + "bevy_derive", + "bevy_ecs", + "bevy_reflect", "serde", ] +[[package]] +name = "bevy_android" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42b2d9435e9fe8d7107bb795a6140277872ad5b992cb3934f8d28cfd11040f6f" +dependencies = [ + "android-activity", +] + [[package]] name = "bevy_animation" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49796627726d0b9a722ad9a0127719e7c1868f474d6575ec0f411e8299c4d7bb" +checksum = "bfaf3ea6d435f4736b3deb60958270443501f5795c7964b1b504abd3be970b4f" dependencies = [ - "bevy_app 0.16.1", + "bevy_animation_macros", + "bevy_app", "bevy_asset", "bevy_color", - "bevy_derive 0.16.1", - "bevy_ecs 0.16.1", - "bevy_log 0.16.1", - "bevy_math 0.16.1", + "bevy_derive", + "bevy_ecs", + "bevy_math", "bevy_mesh", "bevy_platform", - "bevy_reflect 0.16.1", - "bevy_render", - "bevy_time 0.16.1", - "bevy_transform 0.16.1", - "bevy_utils 0.16.1", + "bevy_reflect", + "bevy_time", + "bevy_transform", + "bevy_utils", "blake3", "derive_more", "downcast-rs 2.0.2", "either", - "petgraph 0.7.1", - "ron", + "petgraph", + "ron 0.10.1", "serde", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "thread_local", "tracing", - "uuid 1.18.1", + "uuid 1.19.0", ] [[package]] -name = "bevy_app" -version = "0.15.1" +name = "bevy_animation_macros" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "454a8cfd134864dcdcba6ee56fb958531b981021bba6bb2037c9e3df6046603c" +checksum = "d577eae7246a1cda461df1b63188619fc6a3c619adba2a8e5a79e9aa51f64671" dependencies = [ - "bevy_derive 0.15.3", - "bevy_ecs 0.15.1", - "bevy_reflect 0.15.1", - "bevy_tasks 0.15.3", - "bevy_utils 0.15.3", - "console_error_panic_hook", - "ctrlc", - "derive_more", - "downcast-rs 1.2.1", - "wasm-bindgen", - "web-sys", + "bevy_macro_utils", + "quote", + "syn 2.0.114", +] + +[[package]] +name = "bevy_anti_alias" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15820535cc88bc280f55635eb3ea58df2703a434a0cc2343472eaa7e607fb27b" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_core_pipeline", + "bevy_derive", + "bevy_diagnostic", + "bevy_ecs", + "bevy_image", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_shader", + "bevy_utils", + "tracing", ] [[package]] name = "bevy_app" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4491cc4c718ae76b4c6883df58b94cc88b32dcd894ea8d5b603c7c7da72ca967" +checksum = "8e4fc5dfe9d1d9b8233e1878353b5e66a3f5910c2131d3abf68f9a4116b2d433" dependencies = [ - "bevy_derive 0.16.1", - "bevy_ecs 0.16.1", + "bevy_derive", + "bevy_ecs", "bevy_platform", - "bevy_reflect 0.16.1", - "bevy_tasks 0.16.1", - "bevy_utils 0.16.1", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", "cfg-if", "console_error_panic_hook", "ctrlc", "downcast-rs 2.0.2", "log", - "thiserror 2.0.16", + "thiserror 2.0.17", "variadics_please", "wasm-bindgen", "web-sys", @@ -852,23 +805,23 @@ dependencies = [ [[package]] name = "bevy_asset" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f56111d9b88d8649f331a667d9d72163fb26bd09518ca16476d238653823db1e" +checksum = "357787dbfaba3f73fd185e15d6df70605bddaa774f2ebbcab1aaa031f21fb6c2" dependencies = [ "async-broadcast", "async-fs", "async-lock", "atomicow", - "bevy_app 0.16.1", + "bevy_android", + "bevy_app", "bevy_asset_macros", - "bevy_ecs 0.16.1", + "bevy_ecs", "bevy_platform", - "bevy_reflect 0.16.1", - "bevy_tasks 0.16.1", - "bevy_utils 0.16.1", - "bevy_window", - "bitflags 2.9.4", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "bitflags 2.10.0", "blake3", "crossbeam-channel", "derive_more", @@ -878,13 +831,13 @@ dependencies = [ "futures-io", "futures-lite", "js-sys", - "parking_lot 0.12.4", - "ron", + "parking_lot 0.12.5", + "ron 0.10.1", "serde", "stackfuture", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", - "uuid 1.18.1", + "uuid 1.19.0", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -892,113 +845,145 @@ dependencies = [ [[package]] name = "bevy_asset_loader" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653857e8685ba3c6f237a7aa67620ae440c87e975f8a843ef098c90c49b9dde6" +checksum = "472306c894bee7f562442dffbcd8e10c8c48ec0239e8b4af9c13c240340ab2ab" dependencies = [ "anyhow", - "bevy 0.16.1", + "bevy_app", + "bevy_asset", "bevy_asset_loader_derive", "bevy_common_assets", + "bevy_ecs", + "bevy_image", + "bevy_log", + "bevy_math", + "bevy_platform", + "bevy_reflect", + "bevy_render", + "bevy_sprite", + "bevy_state", + "bevy_utils", "path-slash", "serde", ] [[package]] name = "bevy_asset_loader_derive" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea90451960d44a9908e95de892511dead119b909da68e56b92527efcfac8691" +checksum = "228284d057a86657530cc0a96176b699b031cfba4bbe303f1b92938a5d66f831" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "bevy_asset_macros" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4cca3e67c0ec760d8889d42293d987ce5da92eaf9c592bf5d503728a63b276d" +checksum = "afa09271d4ca0bf31fda3a9ad57273775d448a05c4046d9367f71d29968d85b4" dependencies = [ - "bevy_macro_utils 0.16.1", + "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] -name = "bevy_atmosphere" -version = "0.13.0" +name = "bevy_audio" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "961ca082cd26a7063a2c641bd349745ffc160b3ab60d0d063a159c4e585fb445" +checksum = "d79e56e072001524100b00e38cfdea302d9fdabbff48109fc67b528b27a237bb" dependencies = [ - "bevy 0.16.1", - "bevy_atmosphere_macros", - "cfg-if", + "bevy_app", + "bevy_asset", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_transform", + "coreaudio-sys", + "cpal 0.15.3", + "rodio", + "tracing", ] [[package]] -name = "bevy_atmosphere_macros" -version = "0.8.0" +name = "bevy_camera" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "116aa3996275b0e6b88f5aa52e492fd0328c694be0eb70906b2befb6751de894" +checksum = "8af1d5a57fde6e577e7b1db58996afb381618294be75a37b3070a20d309678b0" dependencies = [ - "bevy_macro_utils 0.16.1", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.106", + "bevy_app", + "bevy_asset", + "bevy_color", + "bevy_derive", + "bevy_ecs", + "bevy_image", + "bevy_math", + "bevy_mesh", + "bevy_reflect", + "bevy_transform", + "bevy_utils", + "bevy_window", + "derive_more", + "downcast-rs 2.0.2", + "serde", + "smallvec", + "thiserror 2.0.17", + "wgpu-types", ] [[package]] name = "bevy_color" -version = "0.16.2" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c101cbe1e26b8d701eb77263b14346e2e0cbbd2a6e254b9b1aead814e5ca8d3" +checksum = "49504fac6b9897f03b4bdc0189c04ef1ba0a9b37926343aa520a71619e90e116" dependencies = [ - "bevy_math 0.16.1", - "bevy_reflect 0.16.1", + "bevy_math", + "bevy_reflect", "bytemuck", "derive_more", "encase", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "wgpu-types", ] [[package]] name = "bevy_common_assets" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a18527525acb0a131ecad38eecbd0e578aefb55959304a37ab44b474b67734b" +checksum = "bf2d95660d90ec38e1259afa5fe95c5b9f72d822d4dfd2dbfa6ef4c176d3078f" dependencies = [ "anyhow", - "bevy 0.16.1", + "bevy", "csv", - "ron", + "ron 0.11.0", "serde", - "thiserror 1.0.69", + "thiserror 2.0.17", ] [[package]] name = "bevy_console" -version = "0.14.1" -source = "git+https://github.com/Katsutoshii/bevy-console.git?branch=bevy-0.16.0#f316dc31de65a90b7db520a0ed745cb468e9bdc2" +version = "0.16.0" +source = "git+https://github.com/Zrocket/bevy-console.git#1a805cb53d20e7454950c86d22b9398b1e7ad0c6" dependencies = [ "ansi-parser", - "bevy 0.16.1", + "bevy", "bevy_console_derive", - "bevy_egui", + "bevy_egui 0.38.1", "clap", "shlex", "strip-ansi-escapes", + "trie-rs", ] [[package]] name = "bevy_console_derive" version = "0.5.0" -source = "git+https://github.com/Katsutoshii/bevy-console.git?branch=bevy-0.16.0#f316dc31de65a90b7db520a0ed745cb468e9bdc2" +source = "git+https://github.com/Zrocket/bevy-console.git#1a805cb53d20e7454950c86d22b9398b1e7ad0c6" dependencies = [ "better-bae", "proc-macro2", @@ -1006,99 +991,58 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "bevy_core" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ff28118f5ae3193f7f6cab30d4fd4246ba1802776910ab256dc7c20e8696381" -dependencies = [ - "bevy_app 0.15.1", - "bevy_ecs 0.15.1", - "bevy_reflect 0.15.1", - "bevy_tasks 0.15.3", - "bevy_utils 0.15.3", - "uuid 1.18.1", -] - [[package]] name = "bevy_core_pipeline" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed46363cad80dc00f08254c3015232bd6f640738403961c6d63e7ecfc61625" +checksum = "6af7e735685a652a8dba41b886f1330faeb57d4c61398917b7e49b09a7a1c3c1" dependencies = [ - "bevy_app 0.16.1", + "bevy_app", "bevy_asset", + "bevy_camera", "bevy_color", - "bevy_derive 0.16.1", - "bevy_diagnostic 0.16.1", - "bevy_ecs 0.16.1", + "bevy_derive", + "bevy_ecs", "bevy_image", - "bevy_math 0.16.1", + "bevy_math", "bevy_platform", - "bevy_reflect 0.16.1", + "bevy_reflect", "bevy_render", - "bevy_transform 0.16.1", - "bevy_utils 0.16.1", + "bevy_shader", + "bevy_transform", + "bevy_utils", "bevy_window", - "bitflags 2.9.4", - "bytemuck", + "bitflags 2.10.0", "nonmax", "radsort", - "serde", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] [[package]] name = "bevy_derive" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d94761ce947b0a2402fd949fe1e7a5b1535293130ba4cd9893be6295d4680a" -dependencies = [ - "bevy_macro_utils 0.15.3", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "bevy_derive" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b837bf6c51806b10ebfa9edf1844ad80a3a0760d6c5fac4e90761df91a8901a" +checksum = "f9396b256b366a43d7f61d1f230cdab0a512fb4712cbf7d688f3d6fce4c5ea8a" dependencies = [ - "bevy_macro_utils 0.16.1", + "bevy_macro_utils", "quote", - "syn 2.0.106", -] - -[[package]] -name = "bevy_diagnostic" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21fe41b22fdf47bf11f0a3ca3e61975b003e86fa44d87e070f2dc7e752dd99f5" -dependencies = [ - "bevy_app 0.15.1", - "bevy_core", - "bevy_ecs 0.15.1", - "bevy_tasks 0.15.3", - "bevy_time 0.15.1", - "bevy_utils 0.15.3", - "const-fnv1a-hash", + "syn 2.0.114", ] [[package]] name = "bevy_diagnostic" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48797366f312a8f31e237d08ce3ee70162591282d2bfe7c5ad8be196fb263e55" +checksum = "d1cdb0ed0c8423570fbbb7c4fc2719a203dd40928fefff45f76ef0889685a446" dependencies = [ - "bevy_app 0.16.1", - "bevy_ecs 0.16.1", + "atomic-waker", + "bevy_app", + "bevy_ecs", "bevy_platform", - "bevy_tasks 0.16.1", - "bevy_time 0.16.1", - "bevy_utils 0.16.1", + "bevy_tasks", + "bevy_time", "const-fnv1a-hash", "log", "serde", @@ -1107,105 +1051,122 @@ dependencies = [ [[package]] name = "bevy_ecs" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b747210d7db09dfacc237707d4fd31c8b43d7744cd5e5829e2c4ca86b9e47baf" -dependencies = [ - "bevy_ecs_macros 0.15.3", - "bevy_ptr 0.15.3", - "bevy_reflect 0.15.1", - "bevy_tasks 0.15.3", - "bevy_utils 0.15.3", - "bitflags 2.9.4", - "concurrent-queue", - "derive_more", - "disqualified", - "fixedbitset 0.5.7", - "nonmax", - "petgraph 0.6.5", - "serde", - "smallvec", -] - -[[package]] -name = "bevy_ecs" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c2bf6521aae57a0ec3487c4bfb59e36c4a378e834b626a4bea6a885af2fdfe7" +checksum = "a7dd5229dd00d00e70ac6b2fc0a139961252f6ce07d3d268cfcac0da86d5bde4" dependencies = [ "arrayvec", - "bevy_ecs_macros 0.16.1", + "bevy_ecs_macros", "bevy_platform", - "bevy_ptr 0.16.1", - "bevy_reflect 0.16.1", - "bevy_tasks 0.16.1", - "bevy_utils 0.16.1", - "bitflags 2.9.4", + "bevy_ptr", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "bitflags 2.10.0", "bumpalo", "concurrent-queue", "derive_more", - "disqualified", - "fixedbitset 0.5.7", + "fixedbitset", "indexmap", "log", "nonmax", "serde", + "slotmap", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "variadics_please", ] [[package]] name = "bevy_ecs_macros" -version = "0.15.3" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f453adf07712b39826bc5845e5b0887ce03204ee8359bbe6b40a9afda60564a1" +checksum = "c4d83bdd2285af4867e76c691406e0a4b55611b583d0c45b6ac7bcec1b45fd48" dependencies = [ - "bevy_macro_utils 0.15.3", + "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] -name = "bevy_ecs_macros" -version = "0.16.1" +name = "bevy_egui" +version = "0.37.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38748d6f3339175c582d751f410fb60a93baf2286c3deb7efebb0878dce7f413" +checksum = "9fb0e8ece8ab22670307b166a1737a64eb82d4b63e1db927994ed5cf67a55fb0" dependencies = [ - "bevy_macro_utils 0.16.1", - "proc-macro2", - "quote", - "syn 2.0.106", + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_core_pipeline", + "bevy_derive", + "bevy_ecs", + "bevy_image", + "bevy_input", + "bevy_log", + "bevy_math", + "bevy_mesh", + "bevy_platform", + "bevy_reflect", + "bevy_render", + "bevy_shader", + "bevy_time", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bevy_winit", + "bytemuck", + "crossbeam-channel", + "egui 0.32.3", + "encase", + "getrandom", + "image", + "itertools 0.14.0", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "wgpu-types", + "winit", ] [[package]] name = "bevy_egui" -version = "0.34.1" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3d58a8afdb6100bca50251043a85320391742cae125d559f6cca3a16b84cdd" +checksum = "dadb9d5008b404675548c5b0da4e2b2440fb7b91ac789f79185041b9538c73d0" dependencies = [ "arboard", - "bevy_app 0.16.1", + "bevy_app", "bevy_asset", - "bevy_derive 0.16.1", - "bevy_ecs 0.16.1", + "bevy_camera", + "bevy_color", + "bevy_core_pipeline", + "bevy_derive", + "bevy_ecs", "bevy_image", - "bevy_input 0.16.1", - "bevy_log 0.16.1", - "bevy_math 0.16.1", + "bevy_input", + "bevy_log", + "bevy_math", + "bevy_mesh", "bevy_picking", "bevy_platform", - "bevy_reflect 0.16.1", + "bevy_reflect", "bevy_render", - "bevy_time 0.16.1", + "bevy_shader", + "bevy_time", + "bevy_transform", + "bevy_ui_render", + "bevy_utils", "bevy_window", "bevy_winit", "bytemuck", "crossbeam-channel", - "egui", + "egui 0.33.3", "encase", + "getrandom", "image", + "itertools 0.14.0", "js-sys", "thread_local", "wasm-bindgen", @@ -1218,142 +1179,169 @@ dependencies = [ [[package]] name = "bevy_encase_derive" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8148f4edee470a2ea5cad010184c492a4c94c36d7a7158ea28e134ea87f274ab" +checksum = "7179e985f3f1b99265cb87fe194db3b00aee8e2914888d621ff9826e1417ee19" dependencies = [ - "bevy_macro_utils 0.16.1", + "bevy_macro_utils", "encase_derive_impl", ] [[package]] -name = "bevy_gilrs" -version = "0.16.1" +name = "bevy_feathers" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97efef87c631949e67d06bb5d7dfd2a5f936b3b379afb6b1485b08edbb219b87" +checksum = "bf1e96dab6ae98afae284dc579f6053b18504777ab2dd11f85c7c0b70aaa3da9" dependencies = [ - "bevy_app 0.16.1", - "bevy_ecs 0.16.1", - "bevy_input 0.16.1", - "bevy_platform", - "bevy_time 0.16.1", - "bevy_utils 0.16.1", - "gilrs", - "thiserror 2.0.16", - "tracing", + "accesskit", + "bevy_a11y", + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_ecs", + "bevy_input_focus", + "bevy_log", + "bevy_math", + "bevy_picking", + "bevy_platform", + "bevy_reflect", + "bevy_render", + "bevy_shader", + "bevy_text", + "bevy_ui", + "bevy_ui_render", + "bevy_ui_widgets", + "bevy_window", + "smol_str", +] + +[[package]] +name = "bevy_flycam" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bcf7c519a030ecb02ff62780f086aa57ab1b888997ca04d56dd6e322a359401" +dependencies = [ + "bevy", +] + +[[package]] +name = "bevy_gilrs" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a39dd8fdfe93314d47355ab3c58da40b648908a368bc536872f75fad4e8f3755" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_input", + "bevy_platform", + "bevy_time", + "gilrs", + "thiserror 2.0.17", + "tracing", ] [[package]] name = "bevy_gizmos" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7823154a9682128c261d8bddb3a4d7192a188490075c527af04520c2f0f8aad6" +checksum = "7ebb9e3ca4938b48e5111151ce4b08f0e6fc207b854db08fa2d8de15ecabe8f8" dependencies = [ - "bevy_app 0.16.1", + "bevy_app", "bevy_asset", + "bevy_camera", "bevy_color", "bevy_core_pipeline", - "bevy_ecs 0.16.1", + "bevy_ecs", "bevy_gizmos_macros", "bevy_image", - "bevy_math 0.16.1", + "bevy_light", + "bevy_math", + "bevy_mesh", "bevy_pbr", - "bevy_reflect 0.16.1", + "bevy_reflect", "bevy_render", - "bevy_sprite", - "bevy_time 0.16.1", - "bevy_transform 0.16.1", - "bevy_utils 0.16.1", + "bevy_shader", + "bevy_sprite_render", + "bevy_time", + "bevy_transform", + "bevy_utils", "bytemuck", "tracing", ] [[package]] name = "bevy_gizmos_macros" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f378f3b513218ddc78254bbe76536d9de59c1429ebd0c14f5d8f2a25812131ad" +checksum = "92c4b3c3aac86f0db85d4f708883ebdc735c3f88ac5b84c033874fcdd3540a9d" dependencies = [ - "bevy_macro_utils 0.16.1", - "proc-macro2", + "bevy_macro_utils", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "bevy_gltf" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a080237c0b8842ccc15a06d3379302c68580eeea4497b1c7387e470eda1f07" +checksum = "3479fbaf897320a3ee30c1626b4a1bee0be874ca27699c3b2f3494891d103d9b" dependencies = [ - "base64 0.22.1", + "base64", "bevy_animation", - "bevy_app 0.16.1", + "bevy_app", "bevy_asset", + "bevy_camera", "bevy_color", - "bevy_core_pipeline", - "bevy_ecs 0.16.1", + "bevy_ecs", "bevy_image", - "bevy_math 0.16.1", + "bevy_light", + "bevy_math", "bevy_mesh", "bevy_pbr", "bevy_platform", - "bevy_reflect 0.16.1", + "bevy_reflect", "bevy_render", "bevy_scene", - "bevy_tasks 0.16.1", - "bevy_transform 0.16.1", - "bevy_utils 0.16.1", - "fixedbitset 0.5.7", + "bevy_tasks", + "bevy_transform", + "fixedbitset", "gltf", "itertools 0.14.0", "percent-encoding", "serde", "serde_json", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] [[package]] name = "bevy_heavy" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ccc861fea2ff58c67f4df119512e204050bd7631a3a9c65e1a5e9d162cce28" -dependencies = [ - "bevy_math 0.16.1", - "bevy_reflect 0.16.1", -] - -[[package]] -name = "bevy_hierarchy" -version = "0.15.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9aab2cd1684d30f2eedf953b6377a6416fd6b482f8145b6c05f4684bd60c3e" +checksum = "a7c0651daa331c326e1460cb19ee5bf497ed2810982dafca8784db44725f5c4b" dependencies = [ - "bevy_app 0.15.1", - "bevy_core", - "bevy_ecs 0.15.1", - "bevy_reflect 0.15.1", - "bevy_utils 0.15.3", - "disqualified", - "smallvec", + "bevy_math", + "bevy_reflect", + "glam_matrix_extras", ] [[package]] name = "bevy_image" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e6e900cfecadbc3149953169e36b9e26f922ed8b002d62339d8a9dc6129328" +checksum = "d546bbe2486bfa14971517e7ef427a9384749817c201d3afc60de0325cf52f11" dependencies = [ - "bevy_app 0.16.1", + "bevy_app", "bevy_asset", "bevy_color", - "bevy_math 0.16.1", + "bevy_ecs", + "bevy_math", "bevy_platform", - "bevy_reflect 0.16.1", - "bevy_utils 0.16.1", - "bitflags 2.9.4", + "bevy_reflect", + "bevy_utils", + "bitflags 2.10.0", "bytemuck", "futures-lite", "guillotiere", @@ -1363,153 +1351,153 @@ dependencies = [ "rectangle-pack", "ruzstd", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "wgpu-types", ] [[package]] name = "bevy_input" -version = "0.15.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9bbf39c1d2d33350e03354a67bebee5c21973c5203b1456a9a4b90a5e6f8e75" +checksum = "8ca955b99f4dc2059e9c8574f8d95a5dd5002809fda80d062a94a553c571a467" dependencies = [ - "bevy_app 0.15.1", - "bevy_core", - "bevy_ecs 0.15.1", - "bevy_math 0.15.1", - "bevy_reflect 0.15.1", - "bevy_utils 0.15.3", - "derive_more", - "smol_str", -] - -[[package]] -name = "bevy_input" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d6b6516433f6f7d680f648d04eb1866bb3927a1782d52f74831b62042f3cd1" -dependencies = [ - "bevy_app 0.16.1", - "bevy_ecs 0.16.1", - "bevy_math 0.16.1", + "bevy_app", + "bevy_ecs", + "bevy_math", "bevy_platform", - "bevy_reflect 0.16.1", - "bevy_utils 0.16.1", + "bevy_reflect", "derive_more", "log", "serde", "smol_str", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "bevy_input_focus" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e2d079fda74d1416e0a57dac29ea2b79ff77f420cd6b87f833d3aa29a46bc4d" +checksum = "de4d1d0e833e31beba1f28a77152b35f946e8c45df364ec4969d58788ab9de7f" dependencies = [ - "bevy_app 0.16.1", - "bevy_ecs 0.16.1", - "bevy_input 0.16.1", - "bevy_math 0.16.1", - "bevy_reflect 0.16.1", + "bevy_app", + "bevy_ecs", + "bevy_input", + "bevy_math", + "bevy_picking", + "bevy_reflect", "bevy_window", "log", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "bevy_internal" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd7fc4db9a1793ee71f79abb15e7a8fcfe4e2081e5f18ed91b802bf6cf30e088" -dependencies = [ - "bevy_app 0.15.1", - "bevy_core", - "bevy_derive 0.15.3", - "bevy_diagnostic 0.15.1", - "bevy_ecs 0.15.1", - "bevy_hierarchy", - "bevy_input 0.15.1", - "bevy_log 0.15.1", - "bevy_math 0.15.1", - "bevy_ptr 0.15.3", - "bevy_reflect 0.15.1", - "bevy_tasks 0.15.3", - "bevy_time 0.15.1", - "bevy_transform 0.15.1", - "bevy_utils 0.15.3", -] - -[[package]] -name = "bevy_internal" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "857da8785678fde537d02944cd20dec9cafb7d4c447efe15f898dc60e733cacd" +checksum = "8f5e645f9e1a24c9667c768b6233beaf4e241739d8ca4fbba59435cc27aabad5" dependencies = [ "bevy_a11y", + "bevy_android", "bevy_animation", - "bevy_app 0.16.1", + "bevy_anti_alias", + "bevy_app", "bevy_asset", + "bevy_audio", + "bevy_camera", "bevy_color", "bevy_core_pipeline", - "bevy_derive 0.16.1", - "bevy_diagnostic 0.16.1", - "bevy_ecs 0.16.1", + "bevy_derive", + "bevy_diagnostic", + "bevy_ecs", + "bevy_feathers", "bevy_gilrs", "bevy_gizmos", "bevy_gltf", "bevy_image", - "bevy_input 0.16.1", + "bevy_input", "bevy_input_focus", - "bevy_log 0.16.1", - "bevy_math 0.16.1", + "bevy_light", + "bevy_log", + "bevy_math", + "bevy_mesh", "bevy_pbr", "bevy_picking", "bevy_platform", - "bevy_ptr 0.16.1", - "bevy_reflect 0.16.1", + "bevy_post_process", + "bevy_ptr", + "bevy_reflect", "bevy_render", "bevy_scene", + "bevy_shader", "bevy_sprite", + "bevy_sprite_render", "bevy_state", - "bevy_tasks 0.16.1", + "bevy_tasks", "bevy_text", - "bevy_time 0.16.1", - "bevy_transform 0.16.1", + "bevy_time", + "bevy_transform", "bevy_ui", - "bevy_utils 0.16.1", + "bevy_ui_render", + "bevy_ui_widgets", + "bevy_utils", "bevy_window", "bevy_winit", ] [[package]] -name = "bevy_log" -version = "0.15.1" +name = "bevy_landmass" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774238dcf70a0ef4d82aa2860b24b1cffdd4633f3694d3bcbfbb05c4f17ae4fe" +checksum = "81b1eb1c3b8aedee04ce0c44b256e58168cb2c612353beff2d64b303d122679b" dependencies = [ - "android_log-sys", - "bevy_app 0.15.1", - "bevy_ecs 0.15.1", - "bevy_utils 0.15.3", - "tracing-log", - "tracing-oslog", - "tracing-subscriber", - "tracing-wasm", + "bevy_app", + "bevy_asset", + "bevy_color", + "bevy_ecs", + "bevy_gizmos", + "bevy_log", + "bevy_math", + "bevy_mesh", + "bevy_platform", + "bevy_reflect", + "bevy_time", + "bevy_transform", + "landmass", +] + +[[package]] +name = "bevy_light" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47093733280976ebd595f6e25f76603d5067ca4eb7544e59ecb0dd2fc5147810" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_ecs", + "bevy_image", + "bevy_math", + "bevy_mesh", + "bevy_platform", + "bevy_reflect", + "bevy_transform", + "bevy_utils", + "tracing", ] [[package]] name = "bevy_log" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a61ee8aef17a974f5ca481dcedf0c2bd52670e231d4c4bc9ddef58328865f9" +checksum = "b1a2d4ea086ac4663ab9dfb056c7b85eee39e18f7e3e9a4ae6e39897eaa155c5" dependencies = [ "android_log-sys", - "bevy_app 0.16.1", - "bevy_ecs 0.16.1", - "bevy_utils 0.16.1", + "bevy_app", + "bevy_ecs", + "bevy_platform", + "bevy_utils", "tracing", "tracing-log", "tracing-oslog", @@ -1519,277 +1507,246 @@ dependencies = [ [[package]] name = "bevy_macro_utils" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb6ded1ddc124ea214f6a2140e47a78d1fe79b0638dad39419cdeef2e1133f1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", - "toml_edit 0.22.27", -] - -[[package]] -name = "bevy_macro_utils" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052eeebcb8e7e072beea5031b227d9a290f8a7fbbb947573ab6ec81df0fb94be" +checksum = "62d984f9f8bd0f0d9fb020492a955e641e30e7a425f3588bf346cb3e61fec3c3" dependencies = [ - "parking_lot 0.12.4", + "parking_lot 0.12.5", "proc-macro2", "quote", - "syn 2.0.106", - "toml_edit 0.22.27", + "syn 2.0.114", + "toml_edit", ] [[package]] name = "bevy_math" -version = "0.15.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edec18d90e6bab27b5c6131ee03172ece75b7edd0abe4e482a26d6db906ec357" -dependencies = [ - "bevy_reflect 0.15.1", - "derive_more", - "glam", - "itertools 0.13.0", - "rand 0.8.5", - "rand_distr", - "serde", - "smallvec", -] - -[[package]] -name = "bevy_math" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68553e0090fe9c3ba066c65629f636bd58e4ebd9444fdba097b91af6cd3e243f" +checksum = "5fa74ae5d968749cc073da991757d3c7e3504ac6dbaac5f8c2a54b9d19b0b7ed" dependencies = [ "approx", - "bevy_reflect 0.16.1", + "bevy_reflect", "derive_more", - "glam", + "glam 0.30.10", "itertools 0.14.0", "libm", - "rand 0.8.5", + "rand", "rand_distr", "serde", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "variadics_please", ] [[package]] name = "bevy_mesh" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10399c7027001edbc0406d7d0198596b1f07206c1aae715274106ba5bdcac40" +checksum = "cd9a0ea86abbd17655bc6f9f8d94461dfcd0322431f752fc03748df8b335eff2" dependencies = [ + "bevy_app", "bevy_asset", - "bevy_derive 0.16.1", - "bevy_ecs 0.16.1", + "bevy_derive", + "bevy_ecs", "bevy_image", - "bevy_math 0.16.1", + "bevy_math", "bevy_mikktspace", "bevy_platform", - "bevy_reflect 0.16.1", - "bevy_transform 0.16.1", - "bevy_utils 0.16.1", - "bitflags 2.9.4", + "bevy_reflect", + "bevy_transform", + "bitflags 2.10.0", "bytemuck", + "derive_more", "hexasphere", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "wgpu-types", ] [[package]] name = "bevy_mikktspace" -version = "0.16.1" +version = "0.17.0-dev" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb60c753b968a2de0fd279b76a3d19517695e771edb4c23575c7f92156315de" -dependencies = [ - "glam", -] +checksum = "7ef8e4b7e61dfe7719bb03c884dc270cd46a82efb40f93e9933b990c5c190c59" [[package]] name = "bevy_pbr" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5e0b4eb871f364a0d217f70f6c41d7fdc6f9f931fa1abbf222180c03d0ae410" +checksum = "4c514b950cda849aa64e9b076a235913577370275125a34a478758505a19d776" dependencies = [ - "bevy_app 0.16.1", + "bevy_app", "bevy_asset", + "bevy_camera", "bevy_color", "bevy_core_pipeline", - "bevy_derive 0.16.1", - "bevy_diagnostic 0.16.1", - "bevy_ecs 0.16.1", + "bevy_derive", + "bevy_diagnostic", + "bevy_ecs", "bevy_image", - "bevy_math 0.16.1", + "bevy_light", + "bevy_math", + "bevy_mesh", "bevy_platform", - "bevy_reflect 0.16.1", + "bevy_reflect", "bevy_render", - "bevy_transform 0.16.1", - "bevy_utils 0.16.1", - "bevy_window", - "bitflags 2.9.4", + "bevy_shader", + "bevy_transform", + "bevy_utils", + "bitflags 2.10.0", "bytemuck", "derive_more", - "fixedbitset 0.5.7", + "fixedbitset", "nonmax", "offset-allocator", - "radsort", "smallvec", "static_assertions", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] [[package]] name = "bevy_picking" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ed04757938655ed8094ea1efb533f99063a8b22abffc22010c694d291522850" +checksum = "b371779713b40dea83b24cdb95054fe999fe8372351a317c4fb768859ac5f010" dependencies = [ - "bevy_app 0.16.1", + "bevy_app", "bevy_asset", - "bevy_derive 0.16.1", - "bevy_ecs 0.16.1", - "bevy_input 0.16.1", - "bevy_math 0.16.1", + "bevy_camera", + "bevy_derive", + "bevy_ecs", + "bevy_input", + "bevy_math", "bevy_mesh", "bevy_platform", - "bevy_reflect 0.16.1", - "bevy_render", - "bevy_time 0.16.1", - "bevy_transform 0.16.1", - "bevy_utils 0.16.1", + "bevy_reflect", + "bevy_time", + "bevy_transform", "bevy_window", "crossbeam-channel", "tracing", - "uuid 1.18.1", + "uuid 1.19.0", ] [[package]] name = "bevy_platform" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7573dc824a1b08b4c93fdbe421c53e1e8188e9ca1dd74a414455fe571facb47" +checksum = "4691af6d7cfd1b5deb2fc926a43a180a546cdc3fe1e5a013fcee60db9bb2c81f" dependencies = [ - "cfg-if", "critical-section", - "foldhash", - "getrandom 0.2.16", - "hashbrown 0.15.5", + "foldhash 0.2.0", + "futures-channel", + "getrandom", + "hashbrown 0.16.1", + "js-sys", "portable-atomic", "portable-atomic-util", "serde", "spin", + "wasm-bindgen", + "wasm-bindgen-futures", "web-time", ] [[package]] -name = "bevy_ptr" -version = "0.15.3" +name = "bevy_post_process" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89fe0b0b919146939481a3a7c38864face2c6d0fd2c73ab3d430dc693ecd9b11" +checksum = "6b857972f5d56b43b0dce2c843b75b64d5fbbd0f6177f6ecccd75e7e41f72deb" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_core_pipeline", + "bevy_derive", + "bevy_ecs", + "bevy_image", + "bevy_math", + "bevy_platform", + "bevy_reflect", + "bevy_render", + "bevy_shader", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bitflags 2.10.0", + "nonmax", + "radsort", + "smallvec", + "thiserror 2.0.17", + "tracing", +] [[package]] name = "bevy_ptr" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df7370d0e46b60e071917711d0860721f5347bc958bf325975ae6913a5dfcf01" - -[[package]] -name = "bevy_reflect" -version = "0.15.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab3264acc3b6f48bc23fbd09fdfea6e5d9b7bfec142e4f3333f532acf195bca" -dependencies = [ - "assert_type_match", - "bevy_ptr 0.15.3", - "bevy_reflect_derive 0.15.1", - "bevy_utils 0.15.3", - "derive_more", - "disqualified", - "downcast-rs 1.2.1", - "erased-serde", - "glam", - "serde", - "smallvec", - "smol_str", -] +checksum = "17d24d7906c7de556033168b3485de36c59049fbaef0c2c44c715a23e0329b10" [[package]] name = "bevy_reflect" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daeb91a63a1a4df00aa58da8cc4ddbd4b9f16ab8bb647c5553eb156ce36fa8c2" +checksum = "b5472b91928c0f3e4e3988c0d036b00719f19520f53a0c3f8c2af72f00e693c5" dependencies = [ "assert_type_match", "bevy_platform", - "bevy_ptr 0.16.1", - "bevy_reflect_derive 0.16.1", - "bevy_utils 0.16.1", + "bevy_ptr", + "bevy_reflect_derive", + "bevy_utils", "derive_more", "disqualified", "downcast-rs 2.0.2", "erased-serde", - "foldhash", - "glam", - "petgraph 0.7.1", + "foldhash 0.2.0", + "glam 0.30.10", + "inventory", + "petgraph", "serde", "smallvec", "smol_str", - "thiserror 2.0.16", - "uuid 1.18.1", + "thiserror 2.0.17", + "uuid 1.19.0", "variadics_please", "wgpu-types", ] [[package]] name = "bevy_reflect_derive" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f83876a322130ab38a47d5dcf75258944bf76b3387d1acdb3750920fda63e2" -dependencies = [ - "bevy_macro_utils 0.15.3", - "proc-macro2", - "quote", - "syn 2.0.106", - "uuid 1.18.1", -] - -[[package]] -name = "bevy_reflect_derive" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ddadc55fe16b45faaa54ab2f9cb00548013c74812e8b018aa172387103cce6" +checksum = "083784255162fa39960aa3cf3c23af0e515db2daa7f2e796ae34df993f4d3f6c" dependencies = [ - "bevy_macro_utils 0.16.1", + "bevy_macro_utils", + "indexmap", "proc-macro2", "quote", - "syn 2.0.106", - "uuid 1.18.1", + "syn 2.0.114", + "uuid 1.19.0", ] [[package]] name = "bevy_remote" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7d073f6104c48d7c0468f682b3b2a00ee709001c3cf2778e0555afdb1305eb0" +checksum = "e33d2fe54b564ba3924425e9c80f306d4ee8d4c0d1827636e0472cbd5378354a" dependencies = [ "anyhow", "async-channel", "async-io", - "bevy_app 0.16.1", - "bevy_derive 0.16.1", - "bevy_ecs 0.16.1", + "bevy_app", + "bevy_asset", + "bevy_derive", + "bevy_ecs", + "bevy_log", "bevy_platform", - "bevy_reflect 0.16.1", - "bevy_tasks 0.16.1", - "bevy_utils 0.16.1", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", "http-body-util", "hyper", "serde", @@ -1799,49 +1756,46 @@ dependencies = [ [[package]] name = "bevy_render" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef91fed1f09405769214b99ebe4390d69c1af5cdd27967deae9135c550eb1667" +checksum = "44117cbc9448b5a3118eb9c65bd9ec4c574be996148793be2443257daae6eb05" dependencies = [ "async-channel", - "bevy_app 0.16.1", + "bevy_app", "bevy_asset", + "bevy_camera", "bevy_color", - "bevy_derive 0.16.1", - "bevy_diagnostic 0.16.1", - "bevy_ecs 0.16.1", + "bevy_derive", + "bevy_diagnostic", + "bevy_ecs", "bevy_encase_derive", "bevy_image", - "bevy_math 0.16.1", + "bevy_math", "bevy_mesh", "bevy_platform", - "bevy_reflect 0.16.1", + "bevy_reflect", "bevy_render_macros", - "bevy_tasks 0.16.1", - "bevy_time 0.16.1", - "bevy_transform 0.16.1", - "bevy_utils 0.16.1", + "bevy_shader", + "bevy_tasks", + "bevy_time", + "bevy_transform", + "bevy_utils", "bevy_window", - "bitflags 2.9.4", + "bitflags 2.10.0", "bytemuck", - "codespan-reporting", "derive_more", "downcast-rs 2.0.2", "encase", - "fixedbitset 0.5.7", - "futures-lite", + "fixedbitset", "image", "indexmap", "js-sys", - "ktx2", "naga", - "naga_oil", "nonmax", "offset-allocator", "send_wrapper", - "serde", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "variadics_please", "wasm-bindgen", @@ -1851,58 +1805,137 @@ dependencies = [ [[package]] name = "bevy_render_macros" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abd42cf6c875bcf38da859f8e731e119a6aff190d41dd0a1b6000ad57cf2ed3d" +checksum = "f9557b7b6b06b1b70c147581f4f410c2de73b6f6f0e82915887020f953bacb5a" dependencies = [ - "bevy_macro_utils 0.16.1", + "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] -name = "bevy_scene" -version = "0.16.1" +name = "bevy_rerecast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ccef48966acc1bf493275aa537bebb4f1e648c88fbe13bcfafdc58683945325" +dependencies = [ + "bevy_app", + "bevy_math", + "bevy_rerecast_core", + "bevy_rerecast_editor_integration", +] + +[[package]] +name = "bevy_rerecast_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1866e2ec0adcd4982e199917eafa62a286fecb9111ade1b6636f7ff4aa5b5bd9" +dependencies = [ + "anyhow", + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_derive", + "bevy_ecs", + "bevy_gizmos", + "bevy_light", + "bevy_math", + "bevy_mesh", + "bevy_pbr", + "bevy_platform", + "bevy_reflect", + "bevy_render", + "bevy_tasks", + "bevy_transform", + "bevy_utils", + "bincode", + "glam 0.30.10", + "rerecast", + "serde", + "thiserror 2.0.17", + "tracing", +] + +[[package]] +name = "bevy_rerecast_editor_integration" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c52ca165200995fe8afd2a1a6c03e4ffee49198a1d4653d32240ea7f217d4ab" +checksum = "895d4328efe2de84d213229b3c664fc89d0ea3cc8881a8501e71f0b21eee856e" dependencies = [ - "bevy_app 0.16.1", + "anyhow", + "base64", + "bevy_app", "bevy_asset", - "bevy_derive 0.16.1", - "bevy_ecs 0.16.1", + "bevy_camera", + "bevy_color", + "bevy_derive", + "bevy_ecs", + "bevy_image", + "bevy_math", + "bevy_mesh", + "bevy_pbr", "bevy_platform", - "bevy_reflect 0.16.1", + "bevy_reflect", + "bevy_remote", "bevy_render", - "bevy_transform 0.16.1", - "bevy_utils 0.16.1", + "bevy_rerecast_core", + "bevy_tasks", + "bevy_transform", + "bincode", + "flate2", + "rerecast", + "serde", + "serde_json", + "thiserror 2.0.17", + "tracing", + "wgpu-types", +] + +[[package]] +name = "bevy_scene" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcf6efd31fdd1e05724c95900bb1055716c8e3633b05fa731ee75db4241c17d" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_derive", + "bevy_ecs", + "bevy_platform", + "bevy_reflect", + "bevy_transform", + "bevy_utils", "derive_more", "serde", - "thiserror 2.0.16", - "uuid 1.18.1", + "thiserror 2.0.17", + "uuid 1.19.0", ] [[package]] name = "bevy_seedling" -version = "0.5.5" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "709c4f8ea820d35adcae04315234e468f2f95b1cb58a856747fc3e27e994b131" +checksum = "cb0d2bb3af43e45ea318865e49cf2c33e32f32a986fcaf6d7a4e73a093ce1766" dependencies = [ - "bevy_app 0.16.1", + "bevy_app", "bevy_asset", - "bevy_ecs 0.16.1", - "bevy_log 0.16.1", - "bevy_math 0.16.1", + "bevy_ecs", + "bevy_log", + "bevy_math", "bevy_platform", - "bevy_reflect 0.16.1", + "bevy_reflect", "bevy_seedling_macros", - "bevy_time 0.16.1", - "bevy_transform 0.16.1", + "bevy_time", + "bevy_transform", "ebur128", "firewheel", "firewheel-ircam-hrtf", "portable-atomic", - "rand 0.8.5", + "rand", "smallvec", "symphonia", "symphonium", @@ -1910,37 +1943,54 @@ dependencies = [ [[package]] name = "bevy_seedling_macros" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cce53e9e4a603c3ec9bdc930a939739036093e07433dcdb5350b75bee18585f" +checksum = "71af121c6c880413f48ce79a217312bb951d2b07cbd3f654dc93211c12bd7c05" dependencies = [ - "bevy_macro_utils 0.16.1", + "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", +] + +[[package]] +name = "bevy_shader" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a655de9f64e113a6e37be76401fb0d6cb84ed7cc4f891e70af4e39d26e9080c3" +dependencies = [ + "bevy_asset", + "bevy_platform", + "bevy_reflect", + "naga", + "naga_oil", + "serde", + "thiserror 2.0.17", + "tracing", + "wgpu-types", ] [[package]] name = "bevy_simple_text_input" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85acdf186fcf5b5cab71832cfbb09e16f640af373a85340674abca761b720f07" +checksum = "f1f8709040643f0b7b24991193fcc7a348b54b0465dcbb3fec55e96ecdfa97f2" dependencies = [ - "bevy 0.16.1", + "bevy", ] [[package]] name = "bevy_skein" -version = "0.2.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b8ebfc2105db1ea6c2b7c0add4059846061c8a72194172b3a78404a95d53b9" +checksum = "a00c196f77c534a5dfef52f15c3910fc310f39c3bf09c0ffd9e9eb6ff85b569d" dependencies = [ - "bevy_app 0.16.1", - "bevy_ecs 0.16.1", + "bevy_app", + "bevy_ecs", "bevy_gltf", - "bevy_log 0.16.1", + "bevy_log", "bevy_platform", - "bevy_reflect 0.16.1", + "bevy_reflect", "bevy_remote", "bevy_scene", "serde", @@ -1950,159 +2000,162 @@ dependencies = [ [[package]] name = "bevy_sprite" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ccae7bab2cb956fb0434004c359e432a3a1a074a6ef4eb471f1fb099f0b620b" +checksum = "52b9a80aadf102ef0b012ceba5326253638c891994c303479e9973092e4e1c8b" dependencies = [ - "bevy_app 0.16.1", + "bevy_app", "bevy_asset", + "bevy_camera", "bevy_color", - "bevy_core_pipeline", - "bevy_derive 0.16.1", - "bevy_ecs 0.16.1", + "bevy_derive", + "bevy_ecs", "bevy_image", - "bevy_math 0.16.1", + "bevy_math", + "bevy_mesh", "bevy_picking", - "bevy_platform", - "bevy_reflect 0.16.1", - "bevy_render", - "bevy_transform 0.16.1", - "bevy_utils 0.16.1", + "bevy_reflect", + "bevy_text", + "bevy_transform", "bevy_window", - "bitflags 2.9.4", - "bytemuck", - "derive_more", - "fixedbitset 0.5.7", - "nonmax", "radsort", "tracing", + "wgpu-types", ] [[package]] name = "bevy_sprite3d" -version = "5.0.0" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66683d51a25c4f28089bda87ece5ccf8ef2c71334fd9a9eba78b352d5f4bed51" +dependencies = [ + "bevy", +] + +[[package]] +name = "bevy_sprite_render" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aab6a643739da6d576c28d7e20f78aa4dc00406eefcf92f1a5e1f30fad367079" +checksum = "5eec49a2a9185526f9828559a40b6f66d4c2dbae2df8ea2936d88ba449a5e86a" dependencies = [ - "bevy 0.16.1", + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_core_pipeline", + "bevy_derive", + "bevy_ecs", + "bevy_image", + "bevy_math", + "bevy_mesh", + "bevy_platform", + "bevy_reflect", + "bevy_render", + "bevy_shader", + "bevy_sprite", + "bevy_text", + "bevy_transform", + "bevy_utils", + "bitflags 2.10.0", + "bytemuck", + "derive_more", + "fixedbitset", + "nonmax", + "tracing", ] [[package]] name = "bevy_state" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "155d3cd97b900539008cdcaa702f88b724d94b08977b8e591a32536ce66faa8c" +checksum = "05e8556a55d548844fc067fac6657b62f8073c94bd7e13c86aa7573f4c2a67b3" dependencies = [ - "bevy_app 0.16.1", - "bevy_ecs 0.16.1", + "bevy_app", + "bevy_ecs", "bevy_platform", - "bevy_reflect 0.16.1", + "bevy_reflect", "bevy_state_macros", - "bevy_utils 0.16.1", + "bevy_utils", "log", "variadics_please", ] [[package]] name = "bevy_state_macros" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2481c1304fd2a1851a0d4cb63a1ce6421ae40f3f0117cbc9882963ee4c9bb609" +checksum = "bcda45913b1d6470c6b751656e72fb3f25ca6b5b7b2ee055b294aaed1eb7e5ba" dependencies = [ - "bevy_macro_utils 0.16.1", - "proc-macro2", + "bevy_macro_utils", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] -name = "bevy_tasks" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028630ddc355563bd567df1076db3515858aa26715ddf7467d2086f9b40e5ab1" +name = "bevy_sun_move" +version = "0.2.0" +source = "git+https://github.com/GuillaumeDelorme/bevy_sun_move?branch=bevy-0.17-update#3fb2efc6f05f5470ebbf4c4a2c3bcd4593ae14c8" dependencies = [ - "async-executor", - "futures-channel", - "futures-lite", - "pin-project", - "wasm-bindgen-futures", + "bevy", + "rand", ] [[package]] name = "bevy_tasks" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b674242641cab680688fc3b850243b351c1af49d4f3417a576debd6cca8dcf5" +checksum = "bcbbfa5a58a16c4228434d3018c23fde3d78dcd76ec5f5b2b482a21f4b158dd3" dependencies = [ "async-channel", "async-executor", + "async-io", "async-task", "atomic-waker", "bevy_platform", - "cfg-if", "concurrent-queue", "crossbeam-queue", "derive_more", - "futures-channel", "futures-lite", "heapless", "pin-project", - "wasm-bindgen-futures", ] [[package]] name = "bevy_text" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d76c85366159f5f54110f33321c76d8429cfd8f39638f26793a305dae568b60" +checksum = "fc144cc6a30ed44a88e342c22d9e3a66a0993a74f792ae07ba79318efb41a86d" dependencies = [ - "bevy_app 0.16.1", + "bevy_app", "bevy_asset", "bevy_color", - "bevy_derive 0.16.1", - "bevy_ecs 0.16.1", + "bevy_derive", + "bevy_ecs", "bevy_image", - "bevy_log 0.16.1", - "bevy_math 0.16.1", + "bevy_log", + "bevy_math", "bevy_platform", - "bevy_reflect 0.16.1", - "bevy_render", - "bevy_sprite", - "bevy_transform 0.16.1", - "bevy_utils 0.16.1", - "bevy_window", - "cosmic-text 0.13.2", + "bevy_reflect", + "bevy_utils", + "cosmic-text", "serde", "smallvec", "sys-locale", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", - "unicode-bidi", + "wgpu-types", ] [[package]] name = "bevy_time" -version = "0.15.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3108ed1ef864bc40bc859ba4c9c3844213c7be3674f982203cf5d87c656848" +checksum = "32835c3dbe082fbbe7d4f2f37f655073421f2882d4320ac2d59f922474260de4" dependencies = [ - "bevy_app 0.15.1", - "bevy_ecs 0.15.1", - "bevy_reflect 0.15.1", - "bevy_utils 0.15.3", - "crossbeam-channel", -] - -[[package]] -name = "bevy_time" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc98eb356c75be04fbbc77bb3d8ffa24c8bacd99f76111cee23d444be6ac8c9c" -dependencies = [ - "bevy_app 0.16.1", - "bevy_ecs 0.16.1", + "bevy_app", + "bevy_ecs", "bevy_platform", - "bevy_reflect 0.16.1", + "bevy_reflect", "crossbeam-channel", "log", "serde", @@ -2110,166 +2163,172 @@ dependencies = [ [[package]] name = "bevy_transform" -version = "0.15.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "056fabcedbf0503417af69447d47a983e18c7cfb5e6b6728636be3ec285cbcfa" +checksum = "b41fabfeaa53f51ff5ccf4d87e66836293159d50d21f6d3e16c93efb7c30f969" dependencies = [ - "bevy_app 0.15.1", - "bevy_ecs 0.15.1", - "bevy_hierarchy", - "bevy_math 0.15.1", - "bevy_reflect 0.15.1", - "derive_more", -] - -[[package]] -name = "bevy_transform" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df218e440bb9a19058e1b80a68a031c887bcf7bd3a145b55f361359a2fa3100d" -dependencies = [ - "bevy_app 0.16.1", - "bevy_ecs 0.16.1", - "bevy_log 0.16.1", - "bevy_math 0.16.1", - "bevy_reflect 0.16.1", - "bevy_tasks 0.16.1", - "bevy_utils 0.16.1", + "bevy_app", + "bevy_ecs", + "bevy_log", + "bevy_math", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", "derive_more", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "bevy_transform_interpolation" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c7c6c4e6a3d5415b3a29a17bd20c17cd0e2f068b96b24e263316d58d5346ea" +checksum = "284738382605476667bbe80cf0959f4dffb61adbdb0149e22e67f4dbf97a5bc2" dependencies = [ - "bevy 0.16.1", + "bevy", ] [[package]] name = "bevy_ui" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a4d2ba51865bc3039af29a26b4f52c48b54cc758369f52004caf4b6f03770" +checksum = "aa0fe27b8c641c2537480774dfd9198d56779371b04dd76618db39da4e7c7483" dependencies = [ "accesskit", "bevy_a11y", - "bevy_app 0.16.1", + "bevy_app", "bevy_asset", + "bevy_camera", "bevy_color", - "bevy_core_pipeline", - "bevy_derive 0.16.1", - "bevy_ecs 0.16.1", + "bevy_derive", + "bevy_ecs", "bevy_image", - "bevy_input 0.16.1", - "bevy_math 0.16.1", + "bevy_input", + "bevy_math", "bevy_picking", "bevy_platform", - "bevy_reflect 0.16.1", - "bevy_render", + "bevy_reflect", "bevy_sprite", "bevy_text", - "bevy_transform 0.16.1", - "bevy_utils 0.16.1", + "bevy_transform", + "bevy_utils", "bevy_window", - "bytemuck", "derive_more", - "nonmax", "serde", "smallvec", "taffy", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", + "uuid 1.19.0", ] [[package]] -name = "bevy_utils" -version = "0.15.3" +name = "bevy_ui_render" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63c2174d43a0de99f863c98a472370047a2bfa7d1e5cec8d9d647fb500905d9d" +checksum = "d1d2e783bb5f0b748e6360a0055421d5c934b43830b205a84996a75e54330cd7" dependencies = [ - "ahash", - "bevy_utils_proc_macros", - "getrandom 0.2.16", - "hashbrown 0.14.5", - "thread_local", + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_core_pipeline", + "bevy_derive", + "bevy_ecs", + "bevy_image", + "bevy_math", + "bevy_mesh", + "bevy_platform", + "bevy_reflect", + "bevy_render", + "bevy_shader", + "bevy_sprite", + "bevy_sprite_render", + "bevy_text", + "bevy_transform", + "bevy_ui", + "bevy_utils", + "bytemuck", + "derive_more", "tracing", - "web-time", ] [[package]] -name = "bevy_utils" -version = "0.16.1" +name = "bevy_ui_widgets" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94f7a8905a125d2017e8561beefb7f2f5e67e93ff6324f072ad87c5fd6ec3b99" +checksum = "d101911f24ad248701104490114e6933bdf016b2cca849cdb970ea62562b10ef" dependencies = [ - "bevy_platform", - "thread_local", + "accesskit", + "bevy_a11y", + "bevy_app", + "bevy_ecs", + "bevy_input", + "bevy_input_focus", + "bevy_log", + "bevy_math", + "bevy_picking", + "bevy_reflect", + "bevy_ui", ] [[package]] -name = "bevy_utils_proc_macros" -version = "0.15.3" +name = "bevy_utils" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94847541f6dd2e28f54a9c2b0e857da5f2631e2201ebc25ce68781cdcb721391" +checksum = "789d04f88c764877a4552e07745b402dbc45f5d0545e6d102558f2f1752a1d89" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", + "bevy_platform", + "disqualified", + "thread_local", ] [[package]] name = "bevy_window" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df7e8ad0c17c3cc23ff5566ae2905c255e6986037fb041f74c446216f5c38431" +checksum = "8ae54ec7a0fc344278592a688a01b57b32182abc3ca7d47040773c4cbc2e15e0" dependencies = [ - "android-activity", - "bevy_app 0.16.1", - "bevy_ecs 0.16.1", - "bevy_input 0.16.1", - "bevy_math 0.16.1", + "bevy_app", + "bevy_asset", + "bevy_ecs", + "bevy_image", + "bevy_input", + "bevy_math", "bevy_platform", - "bevy_reflect 0.16.1", - "bevy_utils 0.16.1", + "bevy_reflect", "log", "raw-window-handle", "serde", - "smol_str", ] [[package]] name = "bevy_winit" -version = "0.16.1" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a5e7f00c6b3b6823df5ec2a5e9067273607208919bc8c211773ebb9643c87f0" +checksum = "feeaa46d3c4480323e690de8a4ca7f914c074af1f5f70ee3246392992dbf4a0c" dependencies = [ "accesskit", "accesskit_winit", "approx", "bevy_a11y", - "bevy_app 0.16.1", + "bevy_android", + "bevy_app", "bevy_asset", - "bevy_derive 0.16.1", - "bevy_ecs 0.16.1", + "bevy_derive", + "bevy_ecs", "bevy_image", - "bevy_input 0.16.1", + "bevy_input", "bevy_input_focus", - "bevy_log 0.16.1", - "bevy_math 0.16.1", + "bevy_log", + "bevy_math", "bevy_platform", - "bevy_reflect 0.16.1", - "bevy_tasks 0.16.1", - "bevy_utils 0.16.1", + "bevy_reflect", + "bevy_tasks", "bevy_window", "bytemuck", "cfg-if", - "crossbeam-channel", - "raw-window-handle", - "serde", + "js-sys", "tracing", "wasm-bindgen", "web-sys", @@ -2279,28 +2338,29 @@ dependencies = [ [[package]] name = "bevy_yarnspinner" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ada714ebb1c93510d685fb6535524a77d61559062d6049e54a78116175135c9" +checksum = "8662fc05b4eede5d10ade44362505bcc6035f5e189f75b9d54052466d53c5cf4" dependencies = [ "anyhow", - "bevy 0.16.1", + "bevy", "csv", "glob", - "rand 0.8.5", + "rand", "serde", "sha2", "variadics_please", "yarnspinner", + "yarnspinner_internal_shared", ] [[package]] name = "bevy_yarnspinner_example_dialogue_view" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c54f74acc169468a5fac4d1259c6709c4daf69a6fbc2f706eab6398dd24740" +checksum = "01834ea874ea33b4fd36f4729915ab80a5d8f87a656c134838a11e34456a87a6" dependencies = [ - "bevy 0.16.1", + "bevy", "bevy_yarnspinner", "unicode-segmentation", ] @@ -2312,77 +2372,89 @@ dependencies = [ "anyhow", "avian3d", "avian_pickup", - "bevy 0.16.1", + "avian_rerecast", + "bevy", "bevy-inspector-egui", "bevy-tnua", "bevy-tnua-avian3d", "bevy-tnua-physics-integration-layer", - "bevy-trait-query", "bevy-yoleck", "bevy_asset_loader", - "bevy_atmosphere", "bevy_console", - "bevy_egui", + "bevy_egui 0.38.1", + "bevy_flycam", + "bevy_landmass", + "bevy_rerecast", "bevy_seedling", "bevy_simple_text_input", "bevy_skein", "bevy_sprite3d", + "bevy_sun_move", "bevy_yarnspinner", "bevy_yarnspinner_example_dialogue_view", "big-brain", "clap", - "jonmo", + "itertools 0.14.0", + "landmass", + "landmass_rerecast", "lazy_static", "leafwing-input-manager", "moonshine-kind", "nom 8.0.0", - "oxidized_navigation", - "rand 0.9.2", + "polyanya", + "rand", "ratatui", "serde", "soft_ratatui", "standard-dist", + "tracing", ] [[package]] name = "big-brain" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29d8a41f82d02bdcef3acf04548c74ef1a5f09299d7c8c7e78f551b5fa7bd824" +version = "0.23.0" +source = "git+https://codeberg.org/zkat/big-brain.git#12ffd46498f4703dd80b0121c9b964b413f887ee" dependencies = [ - "bevy 0.15.1", + "bevy", "big-brain-derive", ] [[package]] name = "big-brain-derive" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94e1b69faa3c972ae11f8e9e8da1cc076361fffa68d42fb7740d51cc6d419fa4" +version = "0.23.0" +source = "git+https://codeberg.org/zkat/big-brain.git#12ffd46498f4703dd80b0121c9b964b413f887ee" dependencies = [ "proc-macro2", "quote", "syn 1.0.109", ] +[[package]] +name = "bincode" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" +dependencies = [ + "serde", + "unty", +] + [[package]] name = "bindgen" -version = "0.70.1" +version = "0.72.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "cexpr", "clang-sys", "itertools 0.13.0", - "log", - "prettyplease", "proc-macro2", "quote", "regex", - "rustc-hash 1.1.0", + "rustc-hash 2.1.1", "shlex", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -2415,12 +2487,6 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" -[[package]] -name = "bit_field" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6" - [[package]] name = "bitflags" version = "1.3.2" @@ -2429,30 +2495,26 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.4" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" dependencies = [ - "serde", + "bytemuck", + "serde_core", ] -[[package]] -name = "bitstream-io" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2" - [[package]] name = "blake3" -version = "1.8.2" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" +checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if", "constant_time_eq", + "cpufeatures", ] [[package]] @@ -2472,11 +2534,20 @@ dependencies = [ [[package]] name = "block2" -version = "0.5.1" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" +dependencies = [ + "objc2 0.5.2", +] + +[[package]] +name = "block2" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" dependencies = [ - "objc2 0.5.2", + "objc2 0.6.3", ] [[package]] @@ -2493,35 +2564,49 @@ dependencies = [ ] [[package]] -name = "built" -version = "0.7.7" +name = "bstr" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ed6191a7e78c36abdb16ab65341eefd73d64d303fffccdbb00d51e4205967b" +checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" +dependencies = [ + "memchr", + "regex-automata", + "serde", +] [[package]] name = "bumpalo" -version = "3.19.0" +version = "3.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" + +[[package]] +name = "bvh2d" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +checksum = "e2a56b2e919a2fadaedb1fc194ca730d9adbf030e9e9f26bb9e7d3621c4f6622" +dependencies = [ + "glam 0.30.10", +] [[package]] name = "bytemuck" -version = "1.23.2" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.10.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -2538,9 +2623,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" [[package]] name = "calloop" @@ -2548,7 +2633,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "log", "polling", "rustix 0.38.44", @@ -2568,12 +2653,6 @@ dependencies = [ "wayland-client", ] -[[package]] -name = "cassowary" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" - [[package]] name = "castaway" version = "0.2.4" @@ -2585,9 +2664,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.38" +version = "1.2.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f41ae168f955c12fb8960b057d70d0ca153fb83182b57d86380443527be7e9" +checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3" dependencies = [ "find-msvc-tools", "jobserver", @@ -2610,21 +2689,11 @@ dependencies = [ "nom 7.1.3", ] -[[package]] -name = "cfg-expr" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" -dependencies = [ - "smallvec", - "target-lexicon", -] - [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -2645,9 +2714,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.48" +version = "4.5.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae" +checksum = "c6e6ff9dcd79cff5cd969a17a545d79e84ab086e444102a591e288a8aa3ce394" dependencies = [ "clap_builder", "clap_derive", @@ -2655,9 +2724,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.48" +version = "4.5.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9" +checksum = "fa42cf4d2b7a41bc8f663a7cab4031ebafa1bf3875705bfaf8466dc60ab52c00" dependencies = [ "anstream", "anstyle", @@ -2667,21 +2736,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.47" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" +checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "clap_lex" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" [[package]] name = "clipboard-win" @@ -2694,20 +2763,15 @@ dependencies = [ [[package]] name = "codespan-reporting" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" dependencies = [ + "serde", "termcolor", - "unicode-width 0.1.14", + "unicode-width 0.2.2", ] -[[package]] -name = "color_quant" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" - [[package]] name = "colorchoice" version = "1.0.4" @@ -2726,9 +2790,9 @@ dependencies = [ [[package]] name = "compact_str" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32" +checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" dependencies = [ "castaway", "cfg-if", @@ -2764,26 +2828,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32b13ea120a812beba79e34316b3942a857c86ec1593cb34f27bb28272ce2cca" -[[package]] -name = "const-random" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" -dependencies = [ - "const-random-macro", -] - -[[package]] -name = "const-random-macro" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" -dependencies = [ - "getrandom 0.2.16", - "once_cell", - "tiny-keccak", -] - [[package]] name = "const_panic" version = "0.2.15" @@ -2801,9 +2845,9 @@ checksum = "87ca1caa64ef4ed453e68bb3db612e51cf1b2f5b871337f0fcab1c8f87cc3dff" [[package]] name = "constant_time_eq" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" [[package]] name = "constgebra" @@ -2814,6 +2858,15 @@ dependencies = [ "const_soft_float", ] +[[package]] +name = "convert_case" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -2848,7 +2901,7 @@ checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" dependencies = [ "bitflags 1.3.2", "core-foundation 0.9.4", - "core-graphics-types", + "core-graphics-types 0.1.3", "foreign-types", "libc", ] @@ -2864,6 +2917,28 @@ dependencies = [ "libc", ] +[[package]] +name = "core-graphics-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" +dependencies = [ + "bitflags 2.10.0", + "core-foundation 0.10.1", + "libc", +] + +[[package]] +name = "coreaudio-rs" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace" +dependencies = [ + "bitflags 1.3.2", + "core-foundation-sys", + "coreaudio-sys", +] + [[package]] name = "coreaudio-rs" version = "0.13.0" @@ -2879,26 +2954,12 @@ dependencies = [ ] [[package]] -name = "cosmic-text" -version = "0.13.2" +name = "coreaudio-sys" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e418dd4f5128c3e93eab12246391c54a20c496811131f85754dc8152ee207892" +checksum = "ceec7a6067e62d6f931a2baf6f3a751f4a892595bcec1461a3c94ef9949864b6" dependencies = [ - "bitflags 2.9.4", - "fontdb", - "log", - "rangemap", - "rustc-hash 1.1.0", - "rustybuzz", - "self_cell", - "smol_str", - "swash", - "sys-locale", - "ttf-parser 0.21.1", - "unicode-bidi", - "unicode-linebreak", - "unicode-script", - "unicode-segmentation", + "bindgen", ] [[package]] @@ -2907,7 +2968,7 @@ version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da46a9d5a8905cc538a4a5bceb6a4510de7a51049c5588c0114efce102bcbbe8" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "fontdb", "log", "rangemap", @@ -2924,6 +2985,29 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "cpal" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779" +dependencies = [ + "alsa", + "core-foundation-sys", + "coreaudio-rs 0.11.3", + "dasp_sample", + "jni", + "js-sys", + "libc", + "mach2", + "ndk 0.8.0", + "ndk-context", + "oboe", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.54.0", +] + [[package]] name = "cpal" version = "0.16.0" @@ -2931,13 +3015,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cbd307f43cc2a697e2d1f8bc7a1d824b5269e052209e28883e5bc04d095aaa3f" dependencies = [ "alsa", - "coreaudio-rs", + "coreaudio-rs 0.13.0", "dasp_sample", "jni", "js-sys", "libc", "mach2", - "ndk", + "ndk 0.9.0", "ndk-context", "num-derive", "num-traits", @@ -3025,9 +3109,9 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -3035,34 +3119,34 @@ dependencies = [ [[package]] name = "csv" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" +checksum = "52cd9d68cf7efc6ddfaaee42e7288d3a99d613d4b50f76ce9827ae0c6e14f938" dependencies = [ "csv-core", "itoa", "ryu", - "serde", + "serde_core", ] [[package]] name = "csv-core" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d02f3b0da4c6504f86e9cd789d8dbafab48c2321be74e9987593de5a894d93d" +checksum = "704a3c26996a80471189265814dbc2c257598b96b8a7feae2d31ace646bb9782" dependencies = [ "memchr", ] [[package]] name = "ctrlc" -version = "3.5.0" +version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881c5d0a13b2f1498e2306e82cbada78390e152d4b1378fb28a84f4dcd0dc4f3" +checksum = "73736a89c4aff73035ba2ed2e565061954da00d4970fc9ac25dcc85a2a20d790" dependencies = [ - "dispatch", + "dispatch2", "nix", - "windows-sys 0.61.0", + "windows-sys 0.61.2", ] [[package]] @@ -3073,9 +3157,9 @@ checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f" [[package]] name = "darling" -version = "0.20.11" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" dependencies = [ "darling_core", "darling_macro", @@ -3083,27 +3167,26 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.11" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" dependencies = [ - "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "darling_macro" -version = "0.20.11" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ "darling_core", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -3123,28 +3206,39 @@ checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" [[package]] name = "data-encoding" -version = "2.9.0" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" + +[[package]] +name = "deranged" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" +dependencies = [ + "powerfmt", +] [[package]] name = "derive_more" -version = "1.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" dependencies = [ "derive_more-impl", ] [[package]] name = "derive_more-impl" -version = "1.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" dependencies = [ + "convert_case", "proc-macro2", "quote", - "syn 2.0.106", + "rustc_version", + "syn 2.0.114", "unicode-xid", ] @@ -3158,6 +3252,12 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "disjoint" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c37b399c91d093763e38c7a57a740e0005e30e5aff7132e791aada5eef3fed99" + [[package]] name = "dispatch" version = "0.2.0" @@ -3170,8 +3270,10 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" dependencies = [ - "bitflags 2.9.4", - "objc2 0.6.2", + "bitflags 2.10.0", + "block2 0.6.2", + "libc", + "objc2 0.6.3", ] [[package]] @@ -3182,7 +3284,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -3202,13 +3304,23 @@ dependencies = [ [[package]] name = "document-features" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" +checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" dependencies = [ "litrs", ] +[[package]] +name = "dodgy_2d" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d35627725e918aa4593ca54937cd8ef58078d3b9ab0fd060aee60c9bc3a2050e" +dependencies = [ + "glam 0.29.3", + "rand", +] + [[package]] name = "downcast-rs" version = "1.2.1" @@ -3245,6 +3357,16 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15401da73a9ed8c80e3b2d4dc05fe10e7b72d7243b9f614e516a44fa99986e88" +[[package]] +name = "earcutr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79127ed59a85d7687c409e9978547cffb7dc79675355ed22da6b66fd5f6ead01" +dependencies = [ + "itertools 0.11.0", + "num-traits", +] + [[package]] name = "ebur128" version = "0.1.10" @@ -3259,26 +3381,55 @@ dependencies = [ [[package]] name = "ecolor" -version = "0.31.1" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94bdf37f8d5bd9aa7f753573fdda9cf7343afa73dd28d7bfe9593bd9798fc07e" +dependencies = [ + "bytemuck", + "emath 0.32.3", +] + +[[package]] +name = "ecolor" +version = "0.33.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc4feb366740ded31a004a0e4452fbf84e80ef432ecf8314c485210229672fd1" +checksum = "71ddb8ac7643d1dba1bb02110e804406dd459a838efcb14011ced10556711a8e" dependencies = [ "bytemuck", - "emath", + "emath 0.33.3", +] + +[[package]] +name = "egui" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5d0306cd61ca75e29682926d71f2390160247f135965242e904a636f51c0dc" +dependencies = [ + "ahash", + "bitflags 2.10.0", + "emath 0.32.3", + "epaint 0.32.3", + "nohash-hasher", + "profiling", + "smallvec", + "unicode-segmentation", ] [[package]] name = "egui" -version = "0.31.1" +version = "0.33.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd34cec49ab55d85ebf70139cb1ccd29c977ef6b6ba4fe85489d6877ee9ef3" +checksum = "6a9b567d356674e9a5121ed3fedfb0a7c31e059fe71f6972b691bcd0bfc284e3" dependencies = [ "ahash", - "bitflags 2.9.4", - "emath", - "epaint", + "bitflags 2.10.0", + "emath 0.33.3", + "epaint 0.33.3", + "log", "nohash-hasher", "profiling", + "smallvec", + "unicode-segmentation", ] [[package]] @@ -3289,13 +3440,54 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "emath" -version = "0.31.1" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45fd7bc25f769a3c198fe1cf183124bf4de3bd62ef7b4f1eaf6b08711a3af8db" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "emath" +version = "0.33.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e4cadcff7a5353ba72b7fea76bf2122b5ebdbc68e8155aa56dfdea90083fe1b" +checksum = "491bdf728bf25ddd9ad60d4cf1c48588fa82c013a2440b91aa7fc43e34a07c32" dependencies = [ "bytemuck", ] +[[package]] +name = "embedded-graphics" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0649998afacf6d575d126d83e68b78c0ab0e00ca2ac7e9b3db11b4cbe8274ef0" +dependencies = [ + "az", + "byteorder", + "embedded-graphics-core", + "float-cmp", + "micromath", +] + +[[package]] +name = "embedded-graphics-core" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba9ecd261f991856250d2207f6d8376946cd9f412a2165d3b75bc87a0bc7a044" +dependencies = [ + "az", + "byteorder", +] + +[[package]] +name = "embedded-graphics-unicodefonts" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a82ef1580d1bff3e89bd3e68069acb24910b66001aaab1738ce9de8d03d2ab1e" +dependencies = [ + "embedded-graphics", +] + [[package]] name = "ena" version = "0.14.3" @@ -3307,42 +3499,36 @@ dependencies = [ [[package]] name = "encase" -version = "0.10.0" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0a05902cf601ed11d564128448097b98ebe3c6574bd7b6a653a3d56d54aa020" +checksum = "02ba239319a4f60905966390f5e52799d868103a533bb7e27822792332504ddd" dependencies = [ "const_panic", "encase_derive", - "glam", - "thiserror 1.0.69", + "glam 0.30.10", + "thiserror 2.0.17", ] [[package]] name = "encase_derive" -version = "0.10.0" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "181d475b694e2dd56ae919ce7699d344d1fd259292d590c723a50d1189a2ea85" +checksum = "5223d6c647f09870553224f6e37261fe5567bc5a4f4cf13ed337476e79990f2f" dependencies = [ "encase_derive_impl", ] [[package]] name = "encase_derive_impl" -version = "0.10.0" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f97b51c5cc57ef7c5f7a0c57c250251c49ee4c28f819f87ac32f4aceabc36792" +checksum = "1796db3d892515842ca2dfb11124c4bb4a9e58d9f2c5c1072e5bca1b2334507b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] -[[package]] -name = "enclose" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eef75b364b1baff88ff28dc34e4c7c0ebd138abd76f4e58e24e37d9b7f54b8f1" - [[package]] name = "encoding_rs" version = "0.8.35" @@ -3360,51 +3546,55 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "epaint" -version = "0.31.1" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fcc0f5a7c613afd2dee5e4b30c3e6acafb8ad6f0edb06068811f708a67c562" +checksum = "63adcea970b7a13094fe97a36ab9307c35a750f9e24bf00bb7ef3de573e0fddb" dependencies = [ "ab_glyph", "ahash", "bytemuck", - "ecolor", - "emath", - "epaint_default_fonts", + "ecolor 0.32.3", + "emath 0.32.3", + "epaint_default_fonts 0.32.3", "nohash-hasher", - "parking_lot 0.12.4", + "parking_lot 0.12.5", "profiling", ] [[package]] -name = "epaint_default_fonts" -version = "0.31.1" +name = "epaint" +version = "0.33.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7e7a64c02cf7a5b51e745a9e45f60660a286f151c238b9d397b3e923f5082f" +checksum = "009d0dd3c2163823a0abdb899451ecbc78798dec545ee91b43aff1fa790bab62" +dependencies = [ + "ab_glyph", + "ahash", + "bytemuck", + "ecolor 0.33.3", + "emath 0.33.3", + "epaint_default_fonts 0.33.3", + "log", + "nohash-hasher", + "parking_lot 0.12.5", + "profiling", +] [[package]] -name = "equator" -version = "0.4.2" +name = "epaint_default_fonts" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4711b213838dfee0117e3be6ac926007d7f433d7bbe33595975d4190cb07e6fc" -dependencies = [ - "equator-macro", -] +checksum = "1537accc50c9cab5a272c39300bdd0dd5dca210f6e5e8d70be048df9596e7ca2" [[package]] -name = "equator-macro" -version = "0.4.2" +name = "epaint_default_fonts" +version = "0.33.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] +checksum = "5c4fbe202b6578d3d56428fa185cdf114a05e49da05f477b3c7f0fbb221f1862" [[package]] name = "equivalent" @@ -3414,9 +3604,9 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "erased-serde" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" +checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" dependencies = [ "serde", "serde_core", @@ -3430,7 +3620,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.0", + "windows-sys 0.61.2", ] [[package]] @@ -3469,21 +3659,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "exr" -version = "1.73.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0" -dependencies = [ - "bit_field", - "half", - "lebe", - "miniz_oxide", - "rayon-core", - "smallvec", - "zune-inflate", -] - [[package]] name = "extended" version = "0.1.0" @@ -3492,9 +3667,9 @@ checksum = "af9673d8203fcb076b19dfd17e38b3d4ae9f44959416ea532ce72415a6020365" [[package]] name = "fast-interleave" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde4904dff186ac556b65b23da228bc9fd87865c9b2e3c9fdb5c43e068ba0969" +checksum = "a0a5ab837f0983c0a9210d7847931f64e3be67fcb0ab93d625f7845a0132c825" [[package]] name = "fastrand" @@ -3519,7 +3694,7 @@ checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -3531,120 +3706,133 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "fid-rs" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6956a1e60e2d1412b44b4169d44a03dae518f8583d3e10090c912c105e48447" +dependencies = [ + "rayon", +] + [[package]] name = "find-msvc-tools" -version = "0.1.2" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959" +checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41" [[package]] name = "firewheel" -version = "0.7.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51ff40371cc93dd2f452a8388a06e548280c0980f5690e0672c9a009b294faa6" +checksum = "1146bdd48bf4c9a9d569aec8adc6e02181cab3459a3ab68fd13a7c4c446fcc66" dependencies = [ "firewheel-core", "firewheel-cpal", "firewheel-graph", "firewheel-nodes", "firewheel-pool", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "firewheel-core" -version = "0.7.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e5b798b86a94916fbe3d576af0c2272fef8a671088c4469248f3c4916be6a6" +checksum = "eb6648ce22d15743f658c2d1e416f654578ac94cb654bf526d317e8b98b1dc9d" dependencies = [ "arrayvec", - "bevy_ecs 0.16.1", + "bevy_ecs", "bevy_platform", - "bevy_reflect 0.16.1", - "bitflags 2.9.4", + "bevy_reflect", + "bitflags 2.10.0", "firewheel-macros", "fixed-resample", - "glam", + "glam 0.29.3", + "glam 0.30.10", "log", "num-traits", "portable-atomic", "ringbuf", + "rtgc", "smallvec", "symphonium", - "thiserror 2.0.16", + "thiserror 2.0.17", "thunderdome", "wmidi", ] [[package]] name = "firewheel-cpal" -version = "0.7.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebeb5569c961f3092929969d476981bf5ec857314c64be2c289f881a2964a694" +checksum = "fba656f53192cc704a3149485741bde9dae7f7bb5144dd456e9f315bf707fc56" dependencies = [ "bevy_platform", - "cpal", + "cpal 0.16.0", "fast-interleave", "firewheel-core", "firewheel-graph", "fixed-resample", "log", "ringbuf", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "firewheel-graph" -version = "0.7.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ffdf40f80b2f2b25c3cc88bd7e31bedb63772a72ac23b131ef1aeebe14940f1" +checksum = "ca6572d3d543642920fe531d3394c7a9b47d58b90354b05718ae8881f995f53d" dependencies = [ "arrayvec", "bevy_platform", + "bevy_reflect", "firewheel-core", "log", + "num-traits", "ringbuf", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "thunderdome", "triple_buffer", ] [[package]] name = "firewheel-ircam-hrtf" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf82cf002dfa45b4c8db3cee765371f0c69646137681c223ca2124238908cdd4" +checksum = "16ef3ba4e1f227a7247ddc94f5850324010ecf7ecf59ee3af5a2c9fcd326b744" dependencies = [ - "bevy_ecs 0.16.1", - "bevy_reflect 0.16.1", + "bevy_ecs", + "bevy_reflect", "firewheel", - "glam", + "glam 0.30.10", "hrtf", ] [[package]] name = "firewheel-macros" -version = "0.3.0" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3290f005968090639e922ae32af41dc5a913eef768518f96d89da689cba0dfb" +checksum = "4267f39e5142c59aea2dc1e619e6ff684137ce48417cd7889544894e5237048c" dependencies = [ - "bevy_macro_utils 0.16.1", + "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.106", - "toml_edit 0.22.27", + "syn 2.0.114", + "toml_edit", ] [[package]] name = "firewheel-nodes" -version = "0.7.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cbc2b125a31c4ad910d4a891f32e1f31fd367012c674cd509ba1aa9c909b0bd" +checksum = "8b41622146fb72246d8998ec6b69c30fdd99e08f0a13d61d947dee2ed5a027f4" dependencies = [ - "bevy_ecs 0.16.1", + "bevy_ecs", "bevy_platform", - "bevy_reflect 0.16.1", + "bevy_reflect", "firewheel-core", "fixed-resample", "num-traits", @@ -3653,15 +3841,16 @@ dependencies = [ [[package]] name = "firewheel-pool" -version = "0.7.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9e9b4fe2c503d7a374c414f671f06ab09f3d397fc792765b94e3d31ee6defa" +checksum = "659b1b36025a68dc973ceb048a524771dd7b0a1561e71f7e7ab790fe5ca6a8da" dependencies = [ + "bevy_platform", "firewheel-core", "firewheel-graph", "firewheel-nodes", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "thunderdome", ] @@ -3689,12 +3878,6 @@ dependencies = [ "writeable 0.5.5", ] -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - [[package]] name = "fixedbitset" version = "0.5.7" @@ -3703,14 +3886,29 @@ checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flate2" -version = "1.1.2" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" dependencies = [ "crc32fast", "miniz_oxide", ] +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + +[[package]] +name = "float_next_after" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8" + [[package]] name = "fnv" version = "1.0.7" @@ -3723,11 +3921,17 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "font-types" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02a596f5713680923a2080d86de50fe472fb290693cf0f701187a1c8b36996b7" +checksum = "39a654f404bbcbd48ea58c617c2993ee91d1cb63727a37bf2323a4edeed1b8c5" dependencies = [ "bytemuck", ] @@ -3773,7 +3977,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -3845,48 +4049,67 @@ dependencies = [ ] [[package]] -name = "gethostname" -version = "1.0.2" +name = "geo" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc257fdb4038301ce4b9cd1b3b51704509692bb3ff716a410cbd07925d9dae55" +checksum = "2fc1a1678e54befc9b4bcab6cd43b8e7f834ae8ea121118b0fd8c42747675b4a" dependencies = [ - "rustix 1.1.2", - "windows-targets 0.52.6", + "earcutr", + "float_next_after", + "geo-types", + "geographiclib-rs", + "i_overlay", + "log", + "num-traits", + "robust", + "rstar", + "spade", ] [[package]] -name = "getrandom" -version = "0.2.16" +name = "geo-types" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "24f8647af4005fa11da47cd56252c6ef030be8fa97bdbf355e7dfb6348f0a82c" dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "wasm-bindgen", + "approx", + "num-traits", + "rayon", + "rstar", + "serde", ] [[package]] -name = "getrandom" -version = "0.3.3" +name = "geographiclib-rs" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "f611040a2bb37eaa29a78a128d1e92a378a03e0b6e66ae27398d42b1ba9a7841" dependencies = [ - "cfg-if", - "libc", - "r-efi", - "wasi 0.14.7+wasi-0.2.4", + "libm", +] + +[[package]] +name = "gethostname" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" +dependencies = [ + "rustix 1.1.3", + "windows-link 0.2.1", ] [[package]] -name = "gif" -version = "0.13.3" +name = "getrandom" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae047235e33e2829703574b54fdec96bfbad892062d97fed2f76022287de61b" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ - "color_quant", - "weezl", + "cfg-if", + "js-sys", + "libc", + "r-efi", + "wasip2", + "wasm-bindgen", ] [[package]] @@ -3898,15 +4121,15 @@ dependencies = [ "fnv", "gilrs-core", "log", - "uuid 1.18.1", + "uuid 1.19.0", "vec_map", ] [[package]] name = "gilrs-core" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3579883f2f2419e20a55b19ce7cc7bd96b50321ad99082a1637a6c01631ee82" +checksum = "be11a71ac3564f6965839e2ed275bf4fcf5ce16d80d396e1dfdb7b2d80bd587e" dependencies = [ "core-foundation 0.10.1", "inotify", @@ -3916,19 +4139,13 @@ dependencies = [ "libudev-sys", "log", "nix", - "uuid 1.18.1", + "uuid 1.19.0", "vec_map", "wasm-bindgen", "web-sys", - "windows 0.62.0", + "windows 0.62.2", ] -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - [[package]] name = "gl_generator" version = "0.14.0" @@ -3940,16 +4157,117 @@ dependencies = [ "xml-rs", ] +[[package]] +name = "glam" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "333928d5eb103c5d4050533cec0384302db6be8ef7d3cebd30ec6a35350353da" + +[[package]] +name = "glam" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3abb554f8ee44336b72d522e0a7fe86a29e09f839a36022fa869a7dfe941a54b" + +[[package]] +name = "glam" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4126c0479ccf7e8664c36a2d719f5f2c140fbb4f9090008098d2c291fa5b3f16" + +[[package]] +name = "glam" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01732b97afd8508eee3333a541b9f7610f454bb818669e66e90f5f57c93a776" + +[[package]] +name = "glam" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525a3e490ba77b8e326fb67d4b44b4bd2f920f44d4cc73ccec50adc68e3bee34" + +[[package]] +name = "glam" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b8509e6791516e81c1a630d0bd7fbac36d2fa8712a9da8662e716b52d5051ca" + +[[package]] +name = "glam" +version = "0.20.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43e957e744be03f5801a55472f593d43fabdebf25a4585db250f04d86b1675f" + +[[package]] +name = "glam" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "518faa5064866338b013ff9b2350dc318e14cc4fcd6cb8206d7e7c9886c98815" + +[[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" + +[[package]] +name = "glam" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" + +[[package]] +name = "glam" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3" + +[[package]] +name = "glam" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e05e7e6723e3455f4818c7b26e855439f7546cf617ef669d1adedb8669e5cb9" + +[[package]] +name = "glam" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "779ae4bf7e8421cf91c0b3b64e7e8b40b862fba4d393f59150042de7c4965a94" + [[package]] name = "glam" version = "0.29.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8babf46d4c1c9d92deac9f7be466f76dfc4482b6452fc5024b5e8daf6ffeb3ee" + +[[package]] +name = "glam" +version = "0.30.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19fc433e8437a212d1b6f1e68c7824af3aed907da60afa994e7f542d18d12aa9" dependencies = [ + "approx", "bytemuck", "libm", - "rand 0.8.5", - "serde", + "rand", + "serde_core", +] + +[[package]] +name = "glam_matrix_extras" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cb141d04d0bbebc52c325352ae0c930a6d42c77ccd02b7c591a73bd7bc1d859" +dependencies = [ + "bevy_reflect", + "glam 0.30.10", ] [[package]] @@ -3991,7 +4309,7 @@ dependencies = [ "inflections", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -4021,7 +4339,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "gpu-alloc-types", ] @@ -4031,7 +4349,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", ] [[package]] @@ -4052,7 +4370,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "gpu-descriptor-types", "hashbrown 0.15.5", ] @@ -4063,7 +4381,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", ] [[package]] @@ -4084,12 +4402,14 @@ dependencies = [ [[package]] name = "half" -version = "2.6.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ "cfg-if", "crunchy", + "num-traits", + "zerocopy", ] [[package]] @@ -4103,33 +4423,29 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.5" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ - "ahash", "allocator-api2", + "equivalent", + "foldhash 0.1.5", "serde", ] [[package]] name = "hashbrown" -version = "0.15.5" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.2.0", "serde", + "serde_core", ] -[[package]] -name = "hashbrown" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" - [[package]] name = "heapless" version = "0.8.0" @@ -4161,12 +4477,12 @@ checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hexasphere" -version = "15.1.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c9e718d32b6e6b2b32354e1b0367025efdd0b11d6a740b905ddf5db1074679" +checksum = "29a164ceff4500f2a72b1d21beaa8aa8ad83aec2b641844c659b190cb3ea2e0b" dependencies = [ "constgebra", - "glam", + "glam 0.30.10", "tinyvec", ] @@ -4189,12 +4505,11 @@ dependencies = [ [[package]] name = "http" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -4235,9 +4550,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" dependencies = [ "atomic-waker", "bytes", @@ -4254,30 +4569,73 @@ dependencies = [ "tokio", ] +[[package]] +name = "i_float" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "010025c2c532c8d82e42d0b8bb5184afa449fa6f06c709ea9adcb16c49ae405b" +dependencies = [ + "libm", +] + +[[package]] +name = "i_key_sort" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9190f86706ca38ac8add223b2aed8b1330002b5cdbbce28fb58b10914d38fc27" + +[[package]] +name = "i_overlay" +version = "4.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcccbd4e4274e0f80697f5fbc6540fdac533cce02f2081b328e68629cce24f9" +dependencies = [ + "i_float", + "i_key_sort", + "i_shape", + "i_tree", + "rayon", +] + +[[package]] +name = "i_shape" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea154b742f7d43dae2897fcd5ead86bc7b5eefcedd305a7ebf9f69d44d61082" +dependencies = [ + "i_float", +] + +[[package]] +name = "i_tree" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35e6d558e6d4c7b82bc51d9c771e7a927862a161a7d87bf2b0541450e0e20915" + [[package]] name = "icu_collections" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", "potential_utf", - "yoke 0.8.0", + "yoke 0.8.1", "zerofrom", - "zerovec 0.11.4", + "zerovec 0.11.5", ] [[package]] name = "icu_locale_core" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", - "litemap 0.8.0", - "tinystr 0.8.1", - "writeable 0.6.1", - "zerovec 0.11.4", + "litemap 0.8.1", + "tinystr 0.8.2", + "writeable 0.6.2", + "zerovec 0.11.5", ] [[package]] @@ -4316,24 +4674,23 @@ checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", - "icu_provider 2.0.0", + "icu_provider 2.1.1", "smallvec", - "zerovec 0.11.4", + "zerovec 0.11.5", ] [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_plurals" @@ -4357,25 +4714,23 @@ checksum = "a483403238cb7d6a876a77a5f8191780336d80fe7b8b00bfdeb20be6abbfd112" [[package]] name = "icu_properties" -version = "2.0.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" dependencies = [ - "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", - "icu_provider 2.0.0", - "potential_utf", + "icu_provider 2.1.1", "zerotrie", - "zerovec 0.11.4", + "zerovec 0.11.5", ] [[package]] name = "icu_properties_data" -version = "2.0.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" [[package]] name = "icu_provider" @@ -4396,19 +4751,17 @@ dependencies = [ [[package]] name = "icu_provider" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", "icu_locale_core", - "stable_deref_trait", - "tinystr 0.8.1", - "writeable 0.6.1", - "yoke 0.8.0", + "writeable 0.6.2", + "yoke 0.8.1", "zerofrom", "zerotrie", - "zerovec 0.11.4", + "zerovec 0.11.5", ] [[package]] @@ -4419,7 +4772,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -4451,70 +4804,38 @@ dependencies = [ [[package]] name = "image" -version = "0.25.8" +version = "0.25.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7" +checksum = "e6506c6c10786659413faa717ceebcb8f70731c0a60cbae39795fdf114519c1a" dependencies = [ "bytemuck", "byteorder-lite", - "color_quant", - "exr", - "gif", - "image-webp", - "moxcms", - "num-traits", - "png", - "qoi", - "ravif", - "rayon", - "rgb", - "tiff", - "zune-core", - "zune-jpeg", -] - -[[package]] -name = "image-webp" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3" -dependencies = [ - "byteorder-lite", - "quick-error", -] - -[[package]] -name = "imgref" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" - -[[package]] -name = "immutable-chunkmap" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3e98b1520e49e252237edc238a39869da9f3241f2ec19dc788c1d24694d1e4" -dependencies = [ - "arrayvec", + "moxcms", + "num-traits", + "png", + "tiff", ] [[package]] name = "indexmap" -version = "2.11.4" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown 0.16.0", + "hashbrown 0.16.1", "serde", "serde_core", ] [[package]] name = "indoc" -version = "2.0.6" +version = "2.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" +checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" +dependencies = [ + "rustversion", +] [[package]] name = "inflections" @@ -4528,7 +4849,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "inotify-sys", "libc", ] @@ -4544,15 +4865,15 @@ dependencies = [ [[package]] name = "instability" -version = "0.3.9" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435d80800b936787d62688c927b6490e887c7ef5ff9ce922c6c6050fca75eb9a" +checksum = "357b7205c6cd18dd2c86ed312d1e70add149aea98e7ef72b9fdf0270e555c11d" dependencies = [ "darling", "indoc", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -4568,14 +4889,12 @@ dependencies = [ ] [[package]] -name = "interpolate_name" -version = "0.2.4" +name = "inventory" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" +checksum = "bc61209c082fbeb19919bee74b176221b27223e27b65d781eb91af24eb1fb46e" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", + "rustversion", ] [[package]] @@ -4588,22 +4907,11 @@ dependencies = [ "mach2", ] -[[package]] -name = "io-uring" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" -dependencies = [ - "bitflags 2.9.4", - "cfg-if", - "libc", -] - [[package]] name = "is_terminal_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itertools" @@ -4614,6 +4922,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.12.1" @@ -4643,9 +4960,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "jni" @@ -4675,36 +4992,38 @@ version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "getrandom 0.3.3", + "getrandom", "libc", ] [[package]] -name = "jonmo" -version = "0.2.2" +name = "js-sys" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed49be6edcbdf2bdf4ce7528094c1ee81c3463a9fab6f5b5c5ff3e9799b8e0cd" +checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" dependencies = [ - "apply", - "bevy_app 0.16.1", - "bevy_derive 0.16.1", - "bevy_ecs 0.16.1", - "bevy_log 0.16.1", - "bevy_platform", - "bevy_time 0.16.1", - "cfg-if", - "dyn-clone", - "enclose", + "once_cell", + "wasm-bindgen", ] [[package]] -name = "js-sys" -version = "0.3.81" +name = "kasuari" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" +checksum = "8fe90c1150662e858c7d5f945089b7517b0a80d8bf7ba4b1b5ffc984e7230a5b" dependencies = [ - "once_cell", - "wasm-bindgen", + "hashbrown 0.16.1", + "thiserror 2.0.17", +] + +[[package]] +name = "kdtree" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f0a0e9f770b65bac9aad00f97a67ab5c5319effed07f6da385da3c2115e47ba" +dependencies = [ + "num-traits", + "thiserror 1.0.69", ] [[package]] @@ -4726,11 +5045,42 @@ checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" [[package]] name = "ktx2" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87d65e08a9ec02e409d27a0139eaa6b9756b4d81fe7cde71f6941a83730ce838" +checksum = "ff7f53bdf698e7aa7ec916411bbdc8078135da11b66db5182675b2227f6c0d07" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.10.0", +] + +[[package]] +name = "landmass" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6a89496cbf307f53baa9d6a33e9d1eaa461452afb67e9c59ebc6b9a6a0cf28c" +dependencies = [ + "disjoint", + "dodgy_2d", + "geo", + "glam 0.30.10", + "kdtree", + "slotmap", + "thiserror 2.0.17", +] + +[[package]] +name = "landmass_rerecast" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f2a013115cf28749f915f886c14fe4de31ecf385604d31472e83fa84e4e677a" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_ecs", + "bevy_landmass", + "bevy_log", + "bevy_math", + "bevy_platform", + "bevy_rerecast", ] [[package]] @@ -4741,11 +5091,11 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "leafwing-input-manager" -version = "0.17.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ac3ba8262c0e42b22bb917c18ef9dbe773e2b6b279c61a4a520c5d960b5e1a" +checksum = "565d500780e26557b099b5f058d71c32ad6e92a7caac2cf4718d1078d97aa8b5" dependencies = [ - "bevy 0.16.1", + "bevy", "dyn-clone", "dyn-eq", "dyn-hash", @@ -4764,30 +5114,25 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] -name = "lebe" -version = "0.5.3" +name = "lewton" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" +checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030" +dependencies = [ + "byteorder", + "ogg", + "tinyvec", +] [[package]] name = "libc" -version = "0.2.176" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174" - -[[package]] -name = "libfuzzer-sys" -version = "0.4.10" +version = "0.2.180" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5037190e1f70cbeef565bd267599242926f724d3b8a9f510fd7e0b540cfa4404" -dependencies = [ - "arbitrary", - "cc", -] +checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" [[package]] name = "libloading" @@ -4796,7 +5141,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-link 0.2.0", + "windows-link 0.2.1", ] [[package]] @@ -4807,13 +5152,13 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.10" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" +checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "libc", - "redox_syscall 0.5.17", + "redox_syscall 0.7.0", ] [[package]] @@ -4826,6 +5171,15 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "line-clipping" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f4de44e98ddbf09375cbf4d17714d18f39195f4f4894e8524501726fd9a8a4a" +dependencies = [ + "bitflags 2.10.0", +] + [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -4846,48 +5200,47 @@ checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] name = "litemap" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "litrs" -version = "0.4.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" +checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" [[package]] name = "lock_api" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] -name = "loop9" -version = "0.1.5" +name = "louds-rs" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" +checksum = "936de6c22f08e7135a921f8ada907acd0d88880c4f42b5591f634b9f1dd8e07f" dependencies = [ - "imgref", + "fid-rs", ] [[package]] name = "lru" -version = "0.12.5" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" dependencies = [ - "hashbrown 0.15.5", + "hashbrown 0.16.1", ] [[package]] @@ -4927,46 +5280,42 @@ dependencies = [ "rawpointer", ] -[[package]] -name = "maybe-rayon" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" -dependencies = [ - "cfg-if", - "rayon", -] - [[package]] name = "memchr" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "memmap2" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" +checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" dependencies = [ "libc", ] [[package]] name = "metal" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f569fb946490b5743ad69813cb19629130ce9374034abe31614a36402d18f99e" +checksum = "00c15a6f673ff72ddcc22394663290f870fb224c1bfce55734a75c414150e605" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "block", - "core-graphics-types", + "core-graphics-types 0.2.0", "foreign-types", "log", "objc", "paste", ] +[[package]] +name = "micromath" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3c8dda44ff03a2f238717214da50f65d5a53b45cd213a7370424ffdb6fae815" + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -4983,34 +5332,23 @@ dependencies = [ "simd-adler32", ] -[[package]] -name = "mio" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" -dependencies = [ - "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.59.0", -] - [[package]] name = "moonshine-kind" -version = "0.2.3" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9ba96e366e2bb9b5ae32eeb2cd0072e27e04e7afd97128432fefc0990cf36b0" +checksum = "f89bb44c5c539bf5e422d239e6e3cc8aa926db823f01fdfb4df36bbd3c89e097" dependencies = [ - "bevy_ecs 0.16.1", - "bevy_reflect 0.16.1", - "bevy_utils 0.16.1", + "bevy_ecs", + "bevy_reflect", + "bevy_utils", "disqualified", ] [[package]] name = "moxcms" -version = "0.7.5" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd32fa8935aeadb8a8a6b6b351e40225570a37c43de67690383d87ef170cd08" +checksum = "ac9557c559cd6fc9867e122e20d2cbefc9ca29d80d027a8e39310920ed2f0a97" dependencies = [ "num-traits", "pxfm", @@ -5027,55 +5365,71 @@ dependencies = [ [[package]] name = "naga" -version = "24.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e380993072e52eef724eddfcde0ed013b0c023c3f0417336ed041aa9f076994e" +checksum = "916cbc7cb27db60be930a4e2da243cf4bc39569195f22fd8ee419cd31d5b662c" dependencies = [ "arrayvec", "bit-set 0.8.0", - "bitflags 2.9.4", + "bitflags 2.10.0", + "cfg-if", "cfg_aliases", "codespan-reporting", + "half", + "hashbrown 0.15.5", "hexf-parse", "indexmap", + "libm", "log", + "num-traits", + "once_cell", "pp-rs", "rustc-hash 1.1.0", "spirv", - "strum", - "termcolor", - "thiserror 2.0.16", - "unicode-xid", + "thiserror 2.0.17", + "unicode-ident", ] [[package]] name = "naga_oil" -version = "0.17.1" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2464f7395decfd16bb4c33fb0cb3b2c645cc60d051bc7fb652d3720bfb20f18" +checksum = "1b586d3cf5c9b7e13fe2af6e114406ff70773fd80881960378933b63e76f37dd" dependencies = [ - "bit-set 0.5.3", "codespan-reporting", "data-encoding", "indexmap", "naga", - "once_cell", "regex", - "regex-syntax", "rustc-hash 1.1.0", - "thiserror 1.0.69", + "thiserror 2.0.17", "tracing", "unicode-ident", ] [[package]] name = "nalgebra" -version = "0.33.2" +version = "0.34.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b" +checksum = "c4d5b3eff5cd580f93da45e64715e8c20a3996342f1e466599cf7a267a0c2f5f" dependencies = [ "approx", - "glam", + "glam 0.14.0", + "glam 0.15.2", + "glam 0.16.0", + "glam 0.17.3", + "glam 0.18.0", + "glam 0.19.0", + "glam 0.20.5", + "glam 0.21.3", + "glam 0.22.0", + "glam 0.23.0", + "glam 0.24.2", + "glam 0.25.0", + "glam 0.27.0", + "glam 0.28.0", + "glam 0.29.3", + "glam 0.30.10", "matrixmultiply", "nalgebra-macros", "num-complex", @@ -5087,13 +5441,27 @@ dependencies = [ [[package]] name = "nalgebra-macros" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc" +checksum = "973e7178a678cfd059ccec50887658d482ce16b0aa9da3888ddeab5cd5eb4889" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", +] + +[[package]] +name = "ndk" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" +dependencies = [ + "bitflags 2.10.0", + "jni-sys", + "log", + "ndk-sys 0.5.0+25.2.9519653", + "num_enum", + "thiserror 1.0.69", ] [[package]] @@ -5102,7 +5470,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "jni-sys", "log", "ndk-sys 0.6.0+11769913", @@ -5135,19 +5503,13 @@ dependencies = [ "jni-sys", ] -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - [[package]] name = "nix" version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "cfg-if", "cfg_aliases", "libc", @@ -5185,27 +5547,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51" [[package]] -name = "noop_proc_macro" -version = "0.3.0" +name = "normpath" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" +checksum = "bf23ab2b905654b4cb177e30b629937b3868311d4e1cba859f899c041046e69b" +dependencies = [ + "windows-sys 0.61.2", +] [[package]] name = "ntapi" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +checksum = "c70f219e21142367c70c0b30c6a9e3a14d55b4d12a204d897fbec83a0363f081" dependencies = [ "winapi", ] [[package]] name = "nu-ansi-term" -version = "0.50.1" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -5227,6 +5592,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-derive" version = "0.4.2" @@ -5235,7 +5606,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -5270,9 +5641,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" dependencies = [ "num_enum_derive", "rustversion", @@ -5280,14 +5651,14 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" +checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -5317,9 +5688,9 @@ dependencies = [ [[package]] name = "objc2" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561f357ba7f3a2a61563a186a163d0a3a5247e1089524a3981d49adb775078bc" +checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" dependencies = [ "objc2-encode", ] @@ -5330,8 +5701,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.9.4", - "block2", + "bitflags 2.10.0", + "block2 0.5.1", "libc", "objc2 0.5.2", "objc2-core-data", @@ -5342,29 +5713,29 @@ dependencies = [ [[package]] name = "objc2-app-kit" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ - "bitflags 2.9.4", - "objc2 0.6.2", + "bitflags 2.10.0", + "objc2 0.6.3", "objc2-core-graphics", - "objc2-foundation 0.3.1", + "objc2-foundation 0.3.2", ] [[package]] name = "objc2-audio-toolbox" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10cbe18d879e20a4aea544f8befe38bcf52255eb63d3f23eca2842f3319e4c07" +checksum = "6948501a91121d6399b79abaa33a8aa4ea7857fe019f341b8c23ad6e81b79b08" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "libc", - "objc2 0.6.2", + "objc2 0.6.3", "objc2-core-audio", "objc2-core-audio-types", "objc2-core-foundation", - "objc2-foundation 0.3.1", + "objc2-foundation 0.3.2", ] [[package]] @@ -5373,8 +5744,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ - "bitflags 2.9.4", - "block2", + "bitflags 2.10.0", + "block2 0.5.1", "objc2 0.5.2", "objc2-core-location", "objc2-foundation 0.2.2", @@ -5386,31 +5757,31 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" dependencies = [ - "block2", + "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", ] [[package]] name = "objc2-core-audio" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca44961e888e19313b808f23497073e3f6b3c22bb485056674c8b49f3b025c82" +checksum = "e1eebcea8b0dbff5f7c8504f3107c68fc061a3eb44932051c8cf8a68d969c3b2" dependencies = [ "dispatch2", - "objc2 0.6.2", + "objc2 0.6.3", "objc2-core-audio-types", "objc2-core-foundation", ] [[package]] name = "objc2-core-audio-types" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0f1cc99bb07ad2ddb6527ddf83db6a15271bb036b3eb94b801cd44fdc666ee1" +checksum = "5a89f2ec274a0cf4a32642b2991e8b351a404d290da87bb6a9a9d8632490bd1c" dependencies = [ - "bitflags 2.9.4", - "objc2 0.6.2", + "bitflags 2.10.0", + "objc2 0.6.3", ] [[package]] @@ -5419,32 +5790,32 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.9.4", - "block2", + "bitflags 2.10.0", + "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", ] [[package]] name = "objc2-core-foundation" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "dispatch2", - "objc2 0.6.2", + "objc2 0.6.3", ] [[package]] name = "objc2-core-graphics" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989c6c68c13021b5c2d6b71456ebb0f9dc78d752e86a98da7c716f4f9470f5a4" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "dispatch2", - "objc2 0.6.2", + "objc2 0.6.3", "objc2-core-foundation", "objc2-io-surface", ] @@ -5455,7 +5826,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" dependencies = [ - "block2", + "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", "objc2-metal", @@ -5467,7 +5838,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" dependencies = [ - "block2", + "block2 0.5.1", "objc2 0.5.2", "objc2-contacts", "objc2-foundation 0.2.2", @@ -5485,8 +5856,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.9.4", - "block2", + "bitflags 2.10.0", + "block2 0.5.1", "dispatch", "libc", "objc2 0.5.2", @@ -5494,23 +5865,33 @@ dependencies = [ [[package]] name = "objc2-foundation" -version = "0.3.1" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" +dependencies = [ + "bitflags 2.10.0", + "objc2 0.6.3", + "objc2-core-foundation", +] + +[[package]] +name = "objc2-io-kit" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900831247d2fe1a09a683278e5384cfb8c80c79fe6b166f9d14bfdde0ea1b03c" +checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" dependencies = [ - "bitflags 2.9.4", - "objc2 0.6.2", + "libc", "objc2-core-foundation", ] [[package]] name = "objc2-io-surface" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7282e9ac92529fa3457ce90ebb15f4ecbc383e8338060960760fa2cf75420c3c" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" dependencies = [ - "bitflags 2.9.4", - "objc2 0.6.2", + "bitflags 2.10.0", + "objc2 0.6.3", "objc2-core-foundation", ] @@ -5520,7 +5901,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" dependencies = [ - "block2", + "block2 0.5.1", "objc2 0.5.2", "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", @@ -5532,8 +5913,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.9.4", - "block2", + "bitflags 2.10.0", + "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", ] @@ -5544,8 +5925,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.9.4", - "block2", + "bitflags 2.10.0", + "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", "objc2-metal", @@ -5567,8 +5948,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ - "bitflags 2.9.4", - "block2", + "bitflags 2.10.0", + "block2 0.5.1", "objc2 0.5.2", "objc2-cloud-kit", "objc2-core-data", @@ -5588,7 +5969,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" dependencies = [ - "block2", + "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", ] @@ -5599,20 +5980,34 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ - "bitflags 2.9.4", - "block2", + "bitflags 2.10.0", + "block2 0.5.1", "objc2 0.5.2", "objc2-core-location", "objc2-foundation 0.2.2", ] [[package]] -name = "object" -version = "0.36.7" +name = "oboe" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb" dependencies = [ - "memchr", + "jni", + "ndk 0.8.0", + "ndk-context", + "num-derive", + "num-traits", + "oboe-sys", +] + +[[package]] +name = "oboe-sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d" +dependencies = [ + "cc", ] [[package]] @@ -5625,6 +6020,15 @@ dependencies = [ "nonmax", ] +[[package]] +name = "ogg" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e" +dependencies = [ + "byteorder", +] + [[package]] name = "once_cell" version = "1.21.3" @@ -5633,16 +6037,28 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "once_cell_polyfill" -version = "1.70.1" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + +[[package]] +name = "opener" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" +checksum = "cb9024962ab91e00c89d2a14352a8d0fc1a64346bf96f1839b45c09149564e47" +dependencies = [ + "bstr", + "normpath", + "windows-sys 0.60.2", +] [[package]] name = "orbclient" -version = "0.3.48" +version = "0.3.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43" +checksum = "52ad2c6bae700b7aa5d1cc30c59bdd3a1c180b09dbaea51e2ae2b8e1cf211fdd" dependencies = [ + "libc", "libredox", ] @@ -5656,25 +6072,21 @@ dependencies = [ ] [[package]] -name = "owned_ttf_parser" -version = "0.25.1" +name = "ordered-float" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b" +checksum = "7f4779c6901a562440c3786d08192c6fbda7c1c2060edd10006b05ee35d10f2d" dependencies = [ - "ttf-parser 0.25.1", + "num-traits", ] [[package]] -name = "oxidized_navigation" -version = "0.12.0" -source = "git+https://github.com/janhohenheim/oxidized_navigation.git?branch=bevy-0.16#e18b3a318579e9dbe4f414525243982a76c063f0" +name = "owned_ttf_parser" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b" dependencies = [ - "avian3d", - "bevy 0.16.1", - "cfg-if", - "nalgebra", - "parry3d", - "smallvec", + "ttf-parser 0.25.1", ] [[package]] @@ -5696,12 +6108,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", - "parking_lot_core 0.9.11", + "parking_lot_core 0.9.12", ] [[package]] @@ -5720,69 +6132,72 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.11" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.17", + "redox_syscall 0.5.18", "smallvec", - "windows-targets 0.52.6", + "windows-link 0.2.1", ] [[package]] name = "parry3d" -version = "0.17.6" +version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aeb9659a05b1783fb2e9bc94f48225ae5b40817eb45b62569c0e4dd767a6e51" +checksum = "e99471b7b6870f7fe406d5611dd4b4c9b07aa3e5436b1d27e1515f9832bb0c6b" dependencies = [ "approx", "arrayvec", - "bitflags 2.9.4", - "downcast-rs 1.2.1", + "bitflags 2.10.0", + "downcast-rs 2.0.2", "either", "ena", + "foldhash 0.2.0", + "hashbrown 0.16.1", "log", "nalgebra", "num-derive", "num-traits", - "ordered-float", + "ordered-float 5.1.0", "rayon", "rstar", - "rustc-hash 2.1.1", "simba", "slab", "smallvec", "spade", - "thiserror 1.0.69", + "static_assertions", + "thiserror 2.0.17", ] [[package]] name = "parry3d-f64" -version = "0.17.6" +version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4484c8ad93ff03c0e57aa1a4f3ff5406ab6301a1eb838ef6dea90e94f00a6c7" +checksum = "38fe282b81b60a2aee7f24db25ea73b3c82f6451888eeb5936b621adb87aa653" dependencies = [ "approx", "arrayvec", - "bitflags 2.9.4", - "downcast-rs 1.2.1", + "bitflags 2.10.0", + "downcast-rs 2.0.2", "either", "ena", + "foldhash 0.2.0", + "hashbrown 0.16.1", "log", "nalgebra", "num-derive", "num-traits", - "ordered-float", + "ordered-float 5.1.0", "rayon", "rstar", - "rustc-hash 2.1.1", "simba", "slab", "smallvec", "spade", - "thiserror 1.0.69", + "thiserror 2.0.17", ] [[package]] @@ -5798,28 +6213,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" [[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - -[[package]] -name = "petgraph" -version = "0.6.5" +name = "percent-encoding" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = [ - "fixedbitset 0.4.2", - "indexmap", -] +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "petgraph" -version = "0.7.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ - "fixedbitset 0.5.7", + "fixedbitset", + "hashbrown 0.15.5", "indexmap", "serde", "serde_derive", @@ -5842,7 +6248,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -5880,7 +6286,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "crc32fast", "fdeflate", "flate2", @@ -5897,15 +6303,32 @@ dependencies = [ "concurrent-queue", "hermit-abi", "pin-project-lite", - "rustix 1.1.2", - "windows-sys 0.61.0", + "rustix 1.1.3", + "windows-sys 0.61.2", +] + +[[package]] +name = "polyanya" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22713b3da62cf8ce45e53e0e10c4012cb87381216b6fd921f57850cf4b0c0aea" +dependencies = [ + "bvh2d", + "geo", + "glam 0.30.10", + "hashbrown 0.16.1", + "log", + "rerecast", + "smallvec", + "spade", + "thiserror 2.0.17", ] [[package]] name = "portable-atomic" -version = "1.11.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" +checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950" [[package]] name = "portable-atomic-util" @@ -5918,13 +6341,19 @@ dependencies = [ [[package]] name = "potential_utf" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" dependencies = [ - "zerovec 0.11.4", + "zerovec 0.11.5", ] +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "pp-rs" version = "0.2.1" @@ -5949,16 +6378,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn 2.0.106", -] - [[package]] name = "primal-check" version = "0.3.4" @@ -5974,7 +6393,7 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit 0.23.6", + "toml_edit", ] [[package]] @@ -6020,14 +6439,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" dependencies = [ "unicode-ident", ] @@ -6037,19 +6456,6 @@ name = "profiling" version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" -dependencies = [ - "profiling-procmacros", -] - -[[package]] -name = "profiling-procmacros" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" -dependencies = [ - "quote", - "syn 2.0.106", -] [[package]] name = "prost" @@ -6071,27 +6477,18 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "pxfm" -version = "0.1.24" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83f9b339b02259ada5c0f4a389b7fb472f933aa17ce176fd2ad98f28bb401fde" +checksum = "7186d3822593aa4393561d186d1393b3923e9d6163d3fbfd6e825e3e6cf3e6a8" dependencies = [ "num-traits", ] -[[package]] -name = "qoi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" -dependencies = [ - "bytemuck", -] - [[package]] name = "quick-error" version = "2.0.1" @@ -6100,18 +6497,18 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quick-xml" -version = "0.37.5" +version = "0.38.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" +checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c" dependencies = [ "memchr", ] [[package]] name = "quote" -version = "1.0.40" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" dependencies = [ "proc-macro2", ] @@ -6128,35 +6525,14 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "019b4b213425016d7d84a153c4c73afb0946fbb4840e4eece7ba8848b9d6da22" -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", + "rand_chacha", + "rand_core", ] [[package]] @@ -6166,16 +6542,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.16", + "rand_core", ] [[package]] @@ -6184,17 +6551,17 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.3", + "getrandom", ] [[package]] name = "rand_distr" -version = "0.4.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +checksum = "6a8615d50dcf34fa31f7ab52692afec947c4dd0ab803cc87cb3b0b4570ff7463" dependencies = [ "num-traits", - "rand 0.8.5", + "rand", ] [[package]] @@ -6205,78 +6572,58 @@ checksum = "c3d6831663a5098ea164f89cff59c6284e95f4e3c76ce9848d4529f5ccca9bde" [[package]] name = "rangemap" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7e49bb0bf967717f7bd674458b3d6b0c5f48ec7e3038166026a69fc22223" +checksum = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68" [[package]] name = "ratatui" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" +checksum = "d1ce67fb8ba4446454d1c8dbaeda0557ff5e94d39d5e5ed7f10a65eb4c8266bc" dependencies = [ - "bitflags 2.9.4", - "cassowary", - "compact_str", - "indoc", "instability", - "itertools 0.13.0", - "lru", - "paste", - "strum", - "unicode-segmentation", - "unicode-truncate", - "unicode-width 0.2.0", + "ratatui-core", + "ratatui-widgets", ] [[package]] -name = "rav1e" -version = "0.7.1" +name = "ratatui-core" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" +checksum = "5ef8dea09a92caaf73bff7adb70b76162e5937524058a7e5bff37869cbbec293" dependencies = [ - "arbitrary", - "arg_enum_proc_macro", - "arrayvec", - "av1-grain", - "bitstream-io", - "built", - "cfg-if", - "interpolate_name", - "itertools 0.12.1", - "libc", - "libfuzzer-sys", - "log", - "maybe-rayon", - "new_debug_unreachable", - "noop_proc_macro", - "num-derive", - "num-traits", - "once_cell", - "paste", - "profiling", - "rand 0.8.5", - "rand_chacha 0.3.1", - "simd_helpers", - "system-deps", - "thiserror 1.0.69", - "v_frame", - "wasm-bindgen", + "bitflags 2.10.0", + "compact_str", + "hashbrown 0.16.1", + "indoc", + "itertools 0.14.0", + "kasuari", + "lru", + "strum", + "thiserror 2.0.17", + "unicode-segmentation", + "unicode-truncate", + "unicode-width 0.2.2", ] [[package]] -name = "ravif" -version = "0.11.20" +name = "ratatui-widgets" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5825c26fddd16ab9f515930d49028a630efec172e903483c94796cfe31893e6b" +checksum = "d7dbfa023cd4e604c2553483820c5fe8aa9d71a42eea5aa77c6e7f35756612db" dependencies = [ - "avif-serialize", - "imgref", - "loop9", - "quick-error", - "rav1e", - "rayon", - "rgb", + "bitflags 2.10.0", + "hashbrown 0.16.1", + "indoc", + "instability", + "itertools 0.14.0", + "line-clipping", + "ratatui-core", + "strum", + "time", + "unicode-segmentation", + "unicode-width 0.2.2", ] [[package]] @@ -6313,9 +6660,9 @@ dependencies = [ [[package]] name = "read-fonts" -version = "0.29.3" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04ca636dac446b5664bd16c069c00a9621806895b8bb02c2dc68542b23b8f25d" +checksum = "6717cf23b488adf64b9d711329542ba34de147df262370221940dfabc2c91358" dependencies = [ "bytemuck", "font-types", @@ -6356,18 +6703,27 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.17" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.10.0", +] + +[[package]] +name = "redox_syscall" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", ] [[package]] name = "regex" -version = "1.11.2" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -6377,9 +6733,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.10" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -6388,9 +6744,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "renderdoc-sys" @@ -6399,10 +6755,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" [[package]] -name = "rgb" -version = "0.8.52" +name = "rerecast" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce" +checksum = "291c39a5bfe61b695f4737fb1faf5692421aca9afe7852254b83610776bcfff5" +dependencies = [ + "anyhow", + "bevy_reflect", + "bitflags 2.10.0", + "glam 0.30.10", + "serde", + "slotmap", + "thiserror 2.0.17", + "tracing", +] [[package]] name = "ringbuf" @@ -6421,16 +6787,40 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e27ee8bb91ca0adcf0ecb116293afa12d393f9c2b9b9cd54d33e8078fe19839" +[[package]] +name = "rodio" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ceb6607dd738c99bc8cb28eff249b7cd5c8ec88b9db96c0608c1480d140fb1" +dependencies = [ + "cpal 0.15.3", + "lewton", +] + [[package]] name = "ron" -version = "0.8.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" +checksum = "beceb6f7bf81c73e73aeef6dd1356d9a1b2b4909e1f0fc3e59b034f9572d7b7f" dependencies = [ - "base64 0.21.7", - "bitflags 2.9.4", + "base64", + "bitflags 2.10.0", "serde", "serde_derive", + "unicode-ident", +] + +[[package]] +name = "ron" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db09040cc89e461f1a265139777a2bde7f8d8c67c4936f700c63ce3e2904d468" +dependencies = [ + "base64", + "bitflags 2.10.0", + "serde", + "serde_derive", + "unicode-ident", ] [[package]] @@ -6450,6 +6840,15 @@ dependencies = [ "smallvec", ] +[[package]] +name = "rtgc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ff37e188d26f62b595065458583a6a7101a52343b112c10a2b277e7a490247d" +dependencies = [ + "bevy_platform", +] + [[package]] name = "rubato" version = "0.14.1" @@ -6474,12 +6873,6 @@ dependencies = [ "realfft", ] -[[package]] -name = "rustc-demangle" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - [[package]] name = "rustc-hash" version = "1.1.0" @@ -6492,6 +6885,15 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + [[package]] name = "rustfft" version = "6.4.1" @@ -6512,7 +6914,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys 0.4.15", @@ -6521,15 +6923,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys 0.11.0", - "windows-sys 0.61.0", + "windows-sys 0.61.2", ] [[package]] @@ -6544,7 +6946,7 @@ version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "bytemuck", "libm", "smallvec", @@ -6557,18 +6959,18 @@ dependencies = [ [[package]] name = "ruzstd" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3640bec8aad418d7d03c72ea2de10d5c646a598f9883c7babc160d91e3c1b26c" +checksum = "e5ff0cc5e135c8870a775d3320910cd9b564ec036b4dc0b8741629020be63f01" dependencies = [ "twox-hash", ] [[package]] name = "ryu" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" [[package]] name = "safe_arch" @@ -6615,9 +7017,15 @@ dependencies = [ [[package]] name = "self_cell" -version = "1.2.0" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89" + +[[package]] +name = "semver" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" [[package]] name = "send_wrapper" @@ -6627,9 +7035,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ "serde_core", "serde_derive", @@ -6637,22 +7045,22 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -6667,24 +7075,15 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", -] - -[[package]] -name = "serde_spanned" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" -dependencies = [ - "serde", + "zmij", ] [[package]] @@ -6728,24 +7127,15 @@ dependencies = [ [[package]] name = "simd-adler32" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" - -[[package]] -name = "simd_helpers" -version = "0.1.0" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" -dependencies = [ - "quote", -] +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" [[package]] name = "skrifa" -version = "0.31.3" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbeb4ca4399663735553a09dd17ce7e49a0a0203f03b706b39628c4d913a8607" +checksum = "8c31071dedf532758ecf3fed987cdb4bd9509f900e026ab684b4ecb81ea49841" dependencies = [ "bytemuck", "read-fonts", @@ -6759,10 +7149,11 @@ checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "slotmap" -version = "1.0.7" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038" dependencies = [ + "serde", "version_check", ] @@ -6781,7 +7172,7 @@ version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "calloop", "calloop-wayland-source", "cursor-icon", @@ -6824,11 +7215,13 @@ dependencies = [ [[package]] name = "soft_ratatui" -version = "0.0.8" -source = "git+https://github.com/gold-silver-copper/soft_ratatui.git#b46a72fe1c714952171c88b48131623cdfe6055a" +version = "0.1.3" +source = "git+https://github.com/gold-silver-copper/soft_ratatui.git?branch=togit#323f5601dd6618187d38f7c79fc5c86dbc7c7d35" dependencies = [ - "cosmic-text 0.14.2", - "ratatui", + "embedded-graphics", + "embedded-graphics-unicodefonts", + "ratatui-core", + "rustc-hash 2.1.1", ] [[package]] @@ -6845,9 +7238,9 @@ dependencies = [ [[package]] name = "spin" -version = "0.9.8" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" dependencies = [ "portable-atomic", ] @@ -6858,20 +7251,23 @@ version = "0.3.0+sdk-1.3.268.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", ] [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stackfuture" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eae92052b72ef70dafa16eddbabffc77e5ca3574be2f7bc1127b36f0a7ad7f2" +checksum = "115beb9c69db2393ff10b75a1b8587a51716e5551d015001e55320ed279d32f9" +dependencies = [ + "const_panic", +] [[package]] name = "standard-dist" @@ -6920,24 +7316,23 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.26.3" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.26.4" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "rustversion", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -6948,9 +7343,9 @@ checksum = "0193cc4331cfd2f3d2011ef287590868599a2f33c3e69bc22c1a3d3acf9e02fb" [[package]] name = "swash" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f745de914febc7c9ab4388dfaf94bbc87e69f57bb41133a9b0c84d4be49856f3" +checksum = "47846491253e976bdd07d0f9cc24b7daf24720d11309302ccbbc6e6b6e53550a" dependencies = [ "skrifa", "yazi", @@ -6959,49 +7354,24 @@ dependencies = [ [[package]] name = "symphonia" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "815c942ae7ee74737bb00f965fa5b5a2ac2ce7b6c01c0cc169bbeaf7abd5f5a9" +checksum = "5773a4c030a19d9bfaa090f49746ff35c75dfddfa700df7a5939d5e076a57039" dependencies = [ "lazy_static", - "symphonia-bundle-flac", - "symphonia-codec-adpcm", "symphonia-codec-pcm", "symphonia-codec-vorbis", "symphonia-core", - "symphonia-format-mkv", "symphonia-format-ogg", "symphonia-format-riff", "symphonia-metadata", ] -[[package]] -name = "symphonia-bundle-flac" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e34f34298a7308d4397a6c7fbf5b84c5d491231ce3dd379707ba673ab3bd97" -dependencies = [ - "log", - "symphonia-core", - "symphonia-metadata", - "symphonia-utils-xiph", -] - -[[package]] -name = "symphonia-codec-adpcm" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c94e1feac3327cd616e973d5be69ad36b3945f16b06f19c6773fc3ac0b426a0f" -dependencies = [ - "log", - "symphonia-core", -] - [[package]] name = "symphonia-codec-pcm" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f395a67057c2ebc5e84d7bb1be71cce1a7ba99f64e0f0f0e303a03f79116f89b" +checksum = "4e89d716c01541ad3ebe7c91ce4c8d38a7cf266a3f7b2f090b108fb0cb031d95" dependencies = [ "log", "symphonia-core", @@ -7009,9 +7379,9 @@ dependencies = [ [[package]] name = "symphonia-codec-vorbis" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a98765fb46a0a6732b007f7e2870c2129b6f78d87db7987e6533c8f164a9f30" +checksum = "f025837c309cd69ffef572750b4a2257b59552c5399a5e49707cc5b1b85d1c73" dependencies = [ "log", "symphonia-core", @@ -7020,9 +7390,9 @@ dependencies = [ [[package]] name = "symphonia-core" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "798306779e3dc7d5231bd5691f5a813496dc79d3f56bf82e25789f2094e022c3" +checksum = "ea00cc4f79b7f6bb7ff87eddc065a1066f3a43fe1875979056672c9ef948c2af" dependencies = [ "arrayvec", "bitflags 1.3.2", @@ -7032,24 +7402,11 @@ dependencies = [ "rustfft", ] -[[package]] -name = "symphonia-format-mkv" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb43471a100f7882dc9937395bd5ebee8329298e766250b15b3875652fe3d6f" -dependencies = [ - "lazy_static", - "log", - "symphonia-core", - "symphonia-metadata", - "symphonia-utils-xiph", -] - [[package]] name = "symphonia-format-ogg" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ada3505789516bcf00fc1157c67729eded428b455c27ca370e41f4d785bfa931" +checksum = "2b4955c67c1ed3aa8ae8428d04ca8397fbef6a19b2b051e73b5da8b1435639cb" dependencies = [ "log", "symphonia-core", @@ -7059,9 +7416,9 @@ dependencies = [ [[package]] name = "symphonia-format-riff" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f7be232f962f937f4b7115cbe62c330929345434c834359425e043bfd15f50" +checksum = "c2d7c3df0e7d94efb68401d81906eae73c02b40d5ec1a141962c592d0f11a96f" dependencies = [ "extended", "log", @@ -7071,9 +7428,9 @@ dependencies = [ [[package]] name = "symphonia-metadata" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc622b9841a10089c5b18e99eb904f4341615d5aa55bbf4eedde1be721a4023c" +checksum = "36306ff42b9ffe6e5afc99d49e121e0bd62fe79b9db7b9681d48e29fa19e6b16" dependencies = [ "encoding_rs", "lazy_static", @@ -7083,9 +7440,9 @@ dependencies = [ [[package]] name = "symphonia-utils-xiph" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "484472580fa49991afda5f6550ece662237b00c6f562c7d9638d1b086ed010fe" +checksum = "ee27c85ab799a338446b68eec77abf42e1a6f1bb490656e121c6e27bfbab9f16" dependencies = [ "symphonia-core", "symphonia-metadata", @@ -7093,10 +7450,11 @@ dependencies = [ [[package]] name = "symphonium" -version = "0.6.2" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2261d9919d844cf44cc125dd9816c0452776129108214057bd454a92f990f4e" +checksum = "94700d892b055c7c25e2fc5319b43d59434119627a08a5096cdcd0fe5345914f" dependencies = [ + "fast-interleave", "fixed-resample", "log", "symphonia", @@ -7115,9 +7473,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.106" +version = "2.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" dependencies = [ "proc-macro2", "quote", @@ -7132,7 +7490,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -7146,28 +7504,16 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.34.2" +version = "0.37.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b93974b3d3aeaa036504b8eefd4c039dced109171c1ae973f1dc63b2c7e4b2" +checksum = "16607d5caffd1c07ce073528f9ed972d88db15dd44023fa57142963be3feb11f" dependencies = [ "libc", - "memchr", - "ntapi", - "objc2-core-foundation", - "windows 0.57.0", -] - -[[package]] -name = "system-deps" -version = "6.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" -dependencies = [ - "cfg-expr", - "heck 0.5.0", - "pkg-config", - "toml", - "version-compare", + "memchr", + "ntapi", + "objc2-core-foundation", + "objc2-io-kit", + "windows 0.61.3", ] [[package]] @@ -7182,12 +7528,6 @@ dependencies = [ "slotmap", ] -[[package]] -name = "target-lexicon" -version = "0.12.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" - [[package]] name = "termcolor" version = "1.4.1" @@ -7208,11 +7548,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.16", + "thiserror-impl 2.0.17", ] [[package]] @@ -7223,18 +7563,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "thiserror-impl" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -7267,14 +7607,23 @@ dependencies = [ ] [[package]] -name = "tiny-keccak" -version = "2.0.2" +name = "time" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ - "crunchy", + "deranged", + "num-conv", + "powerfmt", + "time-core", ] +[[package]] +name = "time-core" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" + [[package]] name = "tiny-skia" version = "0.11.4" @@ -7313,12 +7662,12 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", - "zerovec 0.11.4", + "zerovec 0.11.5", ] [[package]] @@ -7338,87 +7687,48 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.47.1" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" dependencies = [ - "backtrace", - "io-uring", - "libc", - "mio", "pin-project-lite", - "slab", -] - -[[package]] -name = "toml" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime 0.6.11", - "toml_edit 0.22.27", -] - -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" -dependencies = [ - "serde", ] [[package]] name = "toml_datetime" -version = "0.7.2" +version = "0.7.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.22.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" -dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime 0.6.11", - "winnow", -] - -[[package]] -name = "toml_edit" -version = "0.23.6" +version = "0.23.10+spec-1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3effe7c0e86fdff4f69cdd2ccc1b96f933e24811c5441d44904e8683e27184b" +checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" dependencies = [ "indexmap", - "toml_datetime 0.7.2", + "toml_datetime", "toml_parser", "winnow", ] [[package]] name = "toml_parser" -version = "1.0.3" +version = "1.0.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627" +checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" dependencies = [ "winnow", ] [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -7427,20 +7737,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", "valuable", @@ -7459,24 +7769,21 @@ dependencies = [ [[package]] name = "tracing-oslog" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528bdd1f0e27b5dd9a4ededf154e824b0532731e4af73bb531de46276e0aab1e" +checksum = "d76902d2a8d5f9f55a81155c08971734071968c90f2d9bfe645fe700579b2950" dependencies = [ - "bindgen", "cc", "cfg-if", - "once_cell", - "parking_lot 0.12.4", "tracing-core", "tracing-subscriber", ] [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" dependencies = [ "matchers", "nu-ansi-term", @@ -7511,6 +7818,15 @@ dependencies = [ "strength_reduce", ] +[[package]] +name = "trie-rs" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f88f4b0a1ebd6c3d16be3e45eb0e8089372ccadd88849b7ca162ba64b5e6f6" +dependencies = [ + "louds-rs", +] + [[package]] name = "triple_buffer" version = "8.1.1" @@ -7558,9 +7874,9 @@ checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "typewit" @@ -7588,9 +7904,9 @@ checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656" [[package]] name = "unicode-ident" -version = "1.0.19" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-linebreak" @@ -7600,24 +7916,24 @@ checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" [[package]] name = "unicode-normalization" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" dependencies = [ "tinyvec", ] [[package]] name = "unicode-properties" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" +checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" [[package]] name = "unicode-script" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb421b350c9aff471779e262955939f565ec18b86c15364e6bdf0d662ca7c1f" +checksum = "383ad40bb927465ec0ce7720e033cb4ca06912855fc35db31b5755d0de75b1ee" [[package]] name = "unicode-segmentation" @@ -7627,13 +7943,13 @@ checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-truncate" -version = "1.1.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf" +checksum = "8fbf03860ff438702f3910ca5f28f8dac63c1c11e7efb5012b8b175493606330" dependencies = [ "itertools 0.13.0", "unicode-segmentation", - "unicode-width 0.1.14", + "unicode-width 0.2.2", ] [[package]] @@ -7644,9 +7960,9 @@ checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-width" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" [[package]] name = "unicode-xid" @@ -7654,11 +7970,17 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "unty" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" + [[package]] name = "url" -version = "2.5.7" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna", @@ -7686,24 +8008,13 @@ checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" [[package]] name = "uuid" -version = "1.18.1" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" dependencies = [ - "getrandom 0.3.3", + "getrandom", "js-sys", - "serde", - "wasm-bindgen", -] - -[[package]] -name = "v_frame" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666b7727c8875d6ab5db9533418d7c764233ac9c0cff1d469aec8fa127597be2" -dependencies = [ - "aligned-vec", - "num-traits", + "serde_core", "wasm-bindgen", ] @@ -7721,7 +8032,7 @@ checksum = "41b6d82be61465f97d42bd1d15bf20f3b0a3a0905018f38f9d6f6962055b0b5c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -7730,12 +8041,6 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" -[[package]] -name = "version-compare" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" - [[package]] name = "version_check" version = "0.9.5" @@ -7761,21 +8066,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" - -[[package]] -name = "wasi" -version = "0.14.7+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" -dependencies = [ - "wasip2", -] - [[package]] name = "wasip2" version = "1.0.1+wasi-0.2.4" @@ -7787,9 +8077,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.104" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" +checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" dependencies = [ "cfg-if", "once_cell", @@ -7798,25 +8088,11 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.106", - "wasm-bindgen-shared", -] - [[package]] name = "wasm-bindgen-futures" -version = "0.4.54" +version = "0.4.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" +checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" dependencies = [ "cfg-if", "js-sys", @@ -7827,9 +8103,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.104" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" +checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7837,35 +8113,35 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.104" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" +checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.106", - "wasm-bindgen-backend", + "syn 2.0.114", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.104" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" +checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" dependencies = [ "unicode-ident", ] [[package]] name = "wayland-backend" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35" +checksum = "fee64194ccd96bf648f42a65a7e589547096dfa702f7cadef84347b66ad164f9" dependencies = [ "cc", "downcast-rs 1.2.1", - "rustix 1.1.2", + "rustix 1.1.3", "scoped-tls", "smallvec", "wayland-sys", @@ -7873,12 +8149,12 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.11" +version = "0.31.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d" +checksum = "b8e6faa537fbb6c186cb9f1d41f2f811a4120d1b57ec61f50da451a0c5122bec" dependencies = [ - "bitflags 2.9.4", - "rustix 1.1.2", + "bitflags 2.10.0", + "rustix 1.1.3", "wayland-backend", "wayland-scanner", ] @@ -7889,29 +8165,29 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "cursor-icon", "wayland-backend", ] [[package]] name = "wayland-cursor" -version = "0.31.11" +version = "0.31.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447ccc440a881271b19e9989f75726d60faa09b95b0200a9b7eb5cc47c3eeb29" +checksum = "5864c4b5b6064b06b1e8b74ead4a98a6c45a285fe7a0e784d24735f011fdb078" dependencies = [ - "rustix 1.1.2", + "rustix 1.1.3", "wayland-client", "xcursor", ] [[package]] name = "wayland-protocols" -version = "0.32.9" +version = "0.32.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901" +checksum = "baeda9ffbcfc8cd6ddaade385eaf2393bd2115a69523c735f12242353c3df4f3" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "wayland-backend", "wayland-client", "wayland-scanner", @@ -7919,11 +8195,11 @@ dependencies = [ [[package]] name = "wayland-protocols-plasma" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a07a14257c077ab3279987c4f8bb987851bf57081b93710381daea94f2c2c032" +checksum = "aa98634619300a535a9a97f338aed9a5ff1e01a461943e8346ff4ae26007306b" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7932,11 +8208,11 @@ dependencies = [ [[package]] name = "wayland-protocols-wlr" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd94963ed43cf9938a090ca4f7da58eb55325ec8200c3848963e98dc25b78ec" +checksum = "e9597cdf02cf0c34cd5823786dce6b5ae8598f05c2daf5621b6e178d4f7345f3" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7945,9 +8221,9 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.7" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3" +checksum = "5423e94b6a63e68e439803a3e153a9252d5ead12fd853334e2ad33997e3889e3" dependencies = [ "proc-macro2", "quick-xml", @@ -7956,21 +8232,20 @@ dependencies = [ [[package]] name = "wayland-sys" -version = "0.31.7" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142" +checksum = "1e6dbfc3ac5ef974c92a2235805cc0114033018ae1290a72e474aa8b28cbbdfd" dependencies = [ "dlib", "log", - "once_cell", "pkg-config", ] [[package]] name = "web-sys" -version = "0.3.81" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" +checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" dependencies = [ "js-sys", "wasm-bindgen", @@ -7988,46 +8263,47 @@ dependencies = [ [[package]] name = "webbrowser" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf4f3c0ba838e82b4e5ccc4157003fb8c324ee24c058470ffb82820becbde98" +checksum = "00f1243ef785213e3a32fa0396093424a3a6ea566f9948497e5a2309261a4c97" dependencies = [ "core-foundation 0.10.1", "jni", "log", "ndk-context", - "objc2 0.6.2", - "objc2-foundation 0.3.1", + "objc2 0.6.3", + "objc2-foundation 0.3.2", "url", "web-sys", ] [[package]] name = "weezl" -version = "0.1.10" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" +checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" [[package]] name = "wgpu" -version = "24.0.5" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b0b3436f0729f6cdf2e6e9201f3d39dc95813fad61d826c1ed07918b4539353" +checksum = "70b6ff82bbf6e9206828e1a3178e851f8c20f1c9028e74dd3a8090741ccd5798" dependencies = [ "arrayvec", - "bitflags 2.9.4", + "bitflags 2.10.0", + "cfg-if", "cfg_aliases", "document-features", + "hashbrown 0.15.5", "js-sys", "log", "naga", - "parking_lot 0.12.4", + "portable-atomic", "profiling", "raw-window-handle", "smallvec", "static_assertions", "wasm-bindgen", - "wasm-bindgen-futures", "web-sys", "wgpu-core", "wgpu-hal", @@ -8036,49 +8312,84 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "24.0.5" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f0aa306497a238d169b9dc70659105b4a096859a34894544ca81719242e1499" +checksum = "d5f62f1053bd28c2268f42916f31588f81f64796e2ff91b81293515017ca8bd9" dependencies = [ "arrayvec", + "bit-set 0.8.0", "bit-vec 0.8.0", - "bitflags 2.9.4", + "bitflags 2.10.0", "cfg_aliases", "document-features", + "hashbrown 0.15.5", "indexmap", "log", "naga", "once_cell", - "parking_lot 0.12.4", + "parking_lot 0.12.5", + "portable-atomic", "profiling", "raw-window-handle", "rustc-hash 1.1.0", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", + "wgpu-core-deps-apple", + "wgpu-core-deps-wasm", + "wgpu-core-deps-windows-linux-android", "wgpu-hal", "wgpu-types", ] +[[package]] +name = "wgpu-core-deps-apple" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18ae5fbde6a4cbebae38358aa73fcd6e0f15c6144b67ef5dc91ded0db125dbdf" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-wasm" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03b9f9e1a50686d315fc6debe4980cc45cd37b0e919351917df494e8fdc8885" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-windows-linux-android" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "720a5cb9d12b3d337c15ff0e24d3e97ed11490ff3f7506e7f3d98c68fa5d6f14" +dependencies = [ + "wgpu-hal", +] + [[package]] name = "wgpu-hal" -version = "24.0.4" +version = "26.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f112f464674ca69f3533248508ee30cb84c67cf06c25ff6800685f5e0294e259" +checksum = "a8d0e67224cc7305b3b4eb2cc57ca4c4c3afc665c1d1bee162ea806e19c47bdd" dependencies = [ "android_system_properties", "arrayvec", "ash", "bit-set 0.8.0", - "bitflags 2.9.4", + "bitflags 2.10.0", "block", "bytemuck", + "cfg-if", "cfg_aliases", - "core-graphics-types", + "core-graphics-types 0.2.0", "glow", "glutin_wgl_sys", "gpu-alloc", "gpu-allocator", "gpu-descriptor", + "hashbrown 0.15.5", "js-sys", "khronos-egl", "libc", @@ -8086,18 +8397,18 @@ dependencies = [ "log", "metal", "naga", - "ndk-sys 0.5.0+25.2.9519653", + "ndk-sys 0.6.0+11769913", "objc", - "once_cell", - "ordered-float", - "parking_lot 0.12.4", + "ordered-float 4.6.0", + "parking_lot 0.12.5", + "portable-atomic", + "portable-atomic-util", "profiling", "range-alloc", "raw-window-handle", "renderdoc-sys", - "rustc-hash 1.1.0", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "wasm-bindgen", "web-sys", "wgpu-types", @@ -8107,14 +8418,16 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "24.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50ac044c0e76c03a0378e7786ac505d010a873665e2d51383dcff8dd227dc69c" +checksum = "eca7a8d8af57c18f57d393601a1fb159ace8b2328f1b6b5f80893f7d672c9ae2" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", + "bytemuck", "js-sys", "log", "serde", + "thiserror 2.0.17", "web-sys", ] @@ -8150,7 +8463,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.0", + "windows-sys 0.61.2", ] [[package]] @@ -8171,64 +8484,63 @@ dependencies = [ [[package]] name = "windows" -version = "0.57.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" dependencies = [ - "windows-core 0.57.0", + "windows-core 0.58.0", "windows-targets 0.52.6", ] [[package]] name = "windows" -version = "0.58.0" +version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ - "windows-core 0.58.0", - "windows-targets 0.52.6", + "windows-collections 0.2.0", + "windows-core 0.61.2", + "windows-future 0.2.1", + "windows-link 0.1.3", + "windows-numerics 0.2.0", ] [[package]] name = "windows" -version = "0.62.0" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9579d0e6970fd5250aa29aba5994052385ff55cf7b28a059e484bb79ea842e42" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" dependencies = [ - "windows-collections", - "windows-core 0.62.0", - "windows-future", - "windows-link 0.2.0", - "windows-numerics", + "windows-collections 0.3.2", + "windows-core 0.62.2", + "windows-future 0.3.2", + "windows-numerics 0.3.1", ] [[package]] name = "windows-collections" -version = "0.3.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90dd7a7b86859ec4cdf864658b311545ef19dbcf17a672b52ab7cefe80c336f" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" dependencies = [ - "windows-core 0.62.0", + "windows-core 0.61.2", ] [[package]] -name = "windows-core" -version = "0.54.0" +name = "windows-collections" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" dependencies = [ - "windows-result 0.1.2", - "windows-targets 0.52.6", + "windows-core 0.62.2", ] [[package]] name = "windows-core" -version = "0.57.0" +version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" dependencies = [ - "windows-implement 0.57.0", - "windows-interface 0.57.0", "windows-result 0.1.2", "windows-targets 0.52.6", ] @@ -8248,70 +8560,72 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.62.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57fe7168f7de578d2d8a05b07fd61870d2e73b4020e9f49aa00da8471723497c" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-implement 0.60.0", - "windows-interface 0.59.1", - "windows-link 0.2.0", - "windows-result 0.4.0", - "windows-strings 0.5.0", + "windows-implement 0.60.2", + "windows-interface 0.59.3", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", ] [[package]] -name = "windows-future" -version = "0.3.0" +name = "windows-core" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2194dee901458cb79e1148a4e9aac2b164cc95fa431891e7b296ff0b2f1d8a6" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ - "windows-core 0.62.0", - "windows-link 0.2.0", - "windows-threading", + "windows-implement 0.60.2", + "windows-interface 0.59.3", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", ] [[package]] -name = "windows-implement" -version = "0.57.0" +name = "windows-future" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading 0.1.0", ] [[package]] -name = "windows-implement" -version = "0.58.0" +name = "windows-future" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", + "windows-core 0.62.2", + "windows-link 0.2.1", + "windows-threading 0.2.1", ] [[package]] name = "windows-implement" -version = "0.60.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] -name = "windows-interface" -version = "0.57.0" +name = "windows-implement" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -8322,18 +8636,18 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "windows-interface" -version = "0.59.1" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -8344,18 +8658,28 @@ checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", +] [[package]] name = "windows-numerics" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ce3498fe0aba81e62e477408383196b4b0363db5e0c27646f932676283b43d8" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" dependencies = [ - "windows-core 0.62.0", - "windows-link 0.2.0", + "windows-core 0.62.2", + "windows-link 0.2.1", ] [[package]] @@ -8378,11 +8702,20 @@ dependencies = [ [[package]] name = "windows-result" -version = "0.4.0" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7084dcc306f89883455a206237404d3eaf961e5bd7e0f312f7c91f57eb44167f" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link 0.2.0", + "windows-link 0.2.1", ] [[package]] @@ -8397,11 +8730,20 @@ dependencies = [ [[package]] name = "windows-strings" -version = "0.5.0" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7218c655a553b0bed4426cf54b20d7ba363ef543b52d515b3e48d7fd55318dda" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link 0.2.0", + "windows-link 0.2.1", ] [[package]] @@ -8437,16 +8779,16 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.3", + "windows-targets 0.53.5", ] [[package]] name = "windows-sys" -version = "0.61.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link 0.2.0", + "windows-link 0.2.1", ] [[package]] @@ -8482,28 +8824,37 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.3" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link 0.2.1", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + +[[package]] +name = "windows-threading" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" dependencies = [ "windows-link 0.1.3", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", ] [[package]] name = "windows-threading" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab47f085ad6932defa48855254c758cdd0e2f2d48e62a34118a268d8f345e118" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" dependencies = [ - "windows-link 0.2.0", + "windows-link 0.2.1", ] [[package]] @@ -8520,9 +8871,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" [[package]] name = "windows_aarch64_msvc" @@ -8538,9 +8889,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" [[package]] name = "windows_i686_gnu" @@ -8556,9 +8907,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" [[package]] name = "windows_i686_gnullvm" @@ -8568,9 +8919,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" [[package]] name = "windows_i686_msvc" @@ -8586,9 +8937,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" [[package]] name = "windows_x86_64_gnu" @@ -8604,9 +8955,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" [[package]] name = "windows_x86_64_gnullvm" @@ -8622,9 +8973,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" [[package]] name = "windows_x86_64_msvc" @@ -8640,9 +8991,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winit" @@ -8653,8 +9004,8 @@ dependencies = [ "ahash", "android-activity", "atomic-waker", - "bitflags 2.9.4", - "block2", + "bitflags 2.10.0", + "block2 0.5.1", "bytemuck", "calloop", "cfg_aliases", @@ -8666,7 +9017,7 @@ dependencies = [ "js-sys", "libc", "memmap2", - "ndk", + "ndk 0.9.0", "objc2 0.5.2", "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", @@ -8698,9 +9049,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.13" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" dependencies = [ "memchr", ] @@ -8725,9 +9076,9 @@ checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "writeable" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "x11-dl" @@ -8751,7 +9102,7 @@ dependencies = [ "libc", "libloading", "once_cell", - "rustix 1.1.2", + "rustix 1.1.3", "x11rb-protocol", ] @@ -8773,7 +9124,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "dlib", "log", "once_cell", @@ -8788,17 +9139,17 @@ checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" [[package]] name = "xml-rs" -version = "0.8.27" +version = "0.8.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" +checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" [[package]] name = "yarnspinner" -version = "0.5.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a4da225729a678721e9fde702bf426ed435c688d0151580a5737b682899584e" +checksum = "b0fa6b6ab20b81d405fe20aab864a2330461da98ca9c23fb419a9bdf4ba8dbc1" dependencies = [ - "bevy 0.16.1", + "bevy", "log", "yarnspinner_compiler", "yarnspinner_core", @@ -8807,41 +9158,50 @@ dependencies = [ [[package]] name = "yarnspinner_compiler" -version = "0.5.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12671d2061c653759da38ba9b9d868c6b5169ac5c08d24bda7a2b52197e6d0ed" +checksum = "b56ae150866ab2d6a04dddc4199cea2b4a175756e132109df379ca8b0ade109d" dependencies = [ "annotate-snippets", "antlr-rust", "better_any", - "bevy 0.16.1", + "bevy", "instant", - "rand 0.8.5", + "rand", "regex", "serde", "yarnspinner_core", + "yarnspinner_internal_shared", ] [[package]] name = "yarnspinner_core" -version = "0.5.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d44cad33c28c816dd33cbbb1293601c64b08b8c3faa32e28488c126a9dff82" +checksum = "6fab219d508123c0b231c9cb4f67b2a8ca54776036dc8835c294adcadf6cec5a" dependencies = [ - "bevy 0.16.1", + "bevy", "hashbrown 0.15.5", "prost", "serde", "variadics_please", + "yarnspinner_internal_shared", ] +[[package]] +name = "yarnspinner_internal_shared" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f557dcec770356c5827f42463dd0020d537ef144ec1764086a2375d23c7d86a" + [[package]] name = "yarnspinner_runtime" -version = "0.5.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17a8926c724988817a05967d5d22ae72dc82d5f66dbb5bd9fc73a92a5b29d352" +checksum = "8324923db9dce511a7115bce7d474dd9ed73e4b8aeaba5f4dae21a20e56f9077" dependencies = [ - "bevy 0.16.1", + "bevy", + "bevy_platform", "fixed_decimal", "icu_locid", "icu_plurals", @@ -8852,6 +9212,7 @@ dependencies = [ "unicode-normalization", "unicode-segmentation", "yarnspinner_core", + "yarnspinner_internal_shared", ] [[package]] @@ -8874,13 +9235,12 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", - "yoke-derive 0.8.0", + "yoke-derive 0.8.1", "zerofrom", ] @@ -8892,19 +9252,19 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", "synstructure", ] [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", "synstructure", ] @@ -8916,22 +9276,22 @@ checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524" [[package]] name = "zerocopy" -version = "0.8.27" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.27" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] @@ -8951,18 +9311,18 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", "synstructure", ] [[package]] name = "zerotrie" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" dependencies = [ "displaydoc", - "yoke 0.8.0", + "yoke 0.8.1", "zerofrom", ] @@ -8979,13 +9339,13 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ - "yoke 0.8.0", + "yoke 0.8.1", "zerofrom", - "zerovec-derive 0.11.1", + "zerovec-derive 0.11.2", ] [[package]] @@ -8996,34 +9356,31 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.114", ] [[package]] -name = "zune-core" -version = "0.4.12" +name = "zmij" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" +checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8" [[package]] -name = "zune-inflate" -version = "0.2.54" +name = "zune-core" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" -dependencies = [ - "simd-adler32", -] +checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" [[package]] name = "zune-jpeg" diff --git a/Cargo.toml b/Cargo.toml index 5b415c4..c2ef0d7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,38 +8,58 @@ edition = "2024" [dependencies] anyhow = "1.0.98" #bevy = { version = "0.15.0", features = ["jpeg"] } -bevy = { version = "0.16.0", default-features = false, features = [ - "jpeg", - "animation", - "bevy_asset", - "bevy_color", - "bevy_core_pipeline", - "bevy_gilrs", - "bevy_gizmos", - "bevy_gltf", - "bevy_mesh_picking_backend", - "bevy_pbr", - "bevy_picking", - "bevy_render", - "bevy_scene", - "bevy_sprite", - "bevy_sprite_picking_backend", - "bevy_state", - "bevy_text", - "bevy_ui", - "bevy_ui_picking_backend", - "bevy_window", - "bevy_winit", - "custom_cursor", - "default_font", - "hdr", - "multi_threaded", - "png", - "smaa_luts", - "sysinfo_plugin", - "tonemapping_luts", - "webgl2", - "x11", +bevy = { version = "0.17", default-features = false, features = [ + "std", + "async_executor", + "android-game-activity", + "android_shared_stdcxx", + "animation", + "bevy_asset", + "bevy_color", + "bevy_core_pipeline", + "bevy_post_process", + "bevy_anti_alias", + "bevy_gilrs", + "bevy_gizmos", + "bevy_gltf", + "bevy_input_focus", + "bevy_log", + "bevy_mesh_picking_backend", + "bevy_pbr", + "bevy_picking", + "bevy_render", + "bevy_scene", + "bevy_image", + "experimental_bevy_feathers", + "bevy_mesh", + "bevy_camera", + "bevy_light", + "bevy_shader", + "bevy_sprite", + "bevy_sprite_picking_backend", + "bevy_sprite_render", + "bevy_state", + "bevy_text", + "bevy_ui", + "bevy_ui_picking_backend", + "bevy_ui_render", + "bevy_window", + "bevy_winit", + "custom_cursor", + "default_font", + "hdr", + "ktx2", + "multi_threaded", + "png", + "reflect_auto_register", + "smaa_luts", + "sysinfo_plugin", + "tonemapping_luts", + "webgl2", + "x11", + "wayland", + "debug", + "zstd_rust", ] } clap = { version = "*", features = ["derive"] } lazy_static = "*" @@ -54,37 +74,43 @@ nom = "*" # #bevy_mod_picking = "*" #bevy_mod_ui_texture_atlas_image = "0.4.1" -# bevy 0.16 ready -oxidized_navigation = { git = "https://github.com/janhohenheim/oxidized_navigation.git", branch = "bevy-0.16", default-features = false, features = ["debug_draw", "avian"] } -jonmo = "0.2.2" -bevy_seedling = "0.5.5" - -soft_ratatui = { git = "https://github.com/gold-silver-copper/soft_ratatui.git" } -ratatui = { version = "0.29.0", default-features = false } # bevy 0.17 in progress -bevy_sprite3d = "5.0" -bevy_yarnspinner = "0.5" -bevy_yarnspinner_example_dialogue_view = "0.5.0" +bevy_yarnspinner = "0.6" +bevy_yarnspinner_example_dialogue_view = "0.6.0" +bevy_asset_loader = {version = "0.24.0-rc.1", features = ["2d", "standard_dynamic_assets"]} # bevy 0.17 ready -bevy_atmosphere = "0.13" -bevy-tnua-physics-integration-layer = "0.8" -bevy-tnua-avian3d = "0.5.0" -bevy-tnua = "0.24" -big-brain = "0.22.0" -moonshine-kind = "0.2.3" -bevy_console = { git = "https://github.com/Katsutoshii/bevy-console.git", branch = "bevy-0.16.0" } -bevy_asset_loader = {version = "0.23", features = ["2d", "standard_dynamic_assets"]} -bevy-yoleck = "0.26" -bevy-inspector-egui = "0.31" -bevy_egui = "0.34" -avian_pickup = "0.2" -leafwing-input-manager = "0.17" -avian3d = { version = "0.3.0", features = ["collider-from-mesh"] } -bevy_skein = "0.2.1" -bevy_simple_text_input = "0.11" -bevy-trait-query = "0.16" +bevy_seedling = "0.6" +soft_ratatui = { git = "https://github.com/gold-silver-copper/soft_ratatui.git", branch ="togit", features = ["embedded-graphics", "unicodefonts"] } +ratatui = { version = "0.30.0", default-features = false } +avian_pickup = "0.3" +#bevy-tnua-avian3d = "0.7" +bevy-tnua-avian3d = "0.9" +bevy-tnua = "0.28" +#bevy-tnua-physics-integration-layer = "0.10" +bevy-tnua-physics-integration-layer = "0.11" +avian3d = { version = "0.4", features = ["collider-from-mesh"] } +bevy_sprite3d = "7.0" +big-brain = { git = "https://codeberg.org/zkat/big-brain.git" } +moonshine-kind = "0.4.1" +bevy_egui = "0.38" +bevy_console = { git = "https://github.com/Zrocket/bevy-console.git" } +bevy-yoleck = "0.29" +bevy-inspector-egui = "0.35" +bevy_simple_text_input = "0.12" +leafwing-input-manager = "0.18" +bevy_skein = "0.4" +bevy_rerecast = "0.3.0" +polyanya = "0.15.1" +avian_rerecast = "0.3.0" +bevy_sun_move = { git = "https://github.com/GuillaumeDelorme/bevy_sun_move", branch = "bevy-0.17-update" } +itertools = "0.14.0" +tracing = "0.1.43" +landmass = "0.9.1" +bevy_landmass = "0.10.0" +landmass_rerecast = "0.1.0" +bevy_flycam = "0.17.0" [profile.dev] opt-level=3 diff --git a/LICENSE b/LICENSE index 283dff6..8b4573d 100644 --- a/LICENSE +++ b/LICENSE @@ -19,3 +19,6 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Includes other software related under the MIT license: +- bevy_immediate, Copyright 2025 Pēteris Pakalns. For licensing see: "/third-part licenses/LICENSE-bevy_immediate" diff --git a/assets/audio/footsteps/bones/.DS_Store b/assets/audio/footsteps/bones/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/assets/audio/footsteps/bones/.DS_Store differ diff --git a/assets/audio/footsteps/bones/0.ogg b/assets/audio/footsteps/bones/0.ogg new file mode 100644 index 0000000..14b4930 Binary files /dev/null and b/assets/audio/footsteps/bones/0.ogg differ diff --git a/assets/audio/footsteps/bones/1.ogg b/assets/audio/footsteps/bones/1.ogg new file mode 100644 index 0000000..04969a7 Binary files /dev/null and b/assets/audio/footsteps/bones/1.ogg differ diff --git a/assets/audio/footsteps/bones/2.ogg b/assets/audio/footsteps/bones/2.ogg new file mode 100644 index 0000000..d5fc094 Binary files /dev/null and b/assets/audio/footsteps/bones/2.ogg differ diff --git a/assets/audio/footsteps/bones/3.ogg b/assets/audio/footsteps/bones/3.ogg new file mode 100644 index 0000000..e743dcb Binary files /dev/null and b/assets/audio/footsteps/bones/3.ogg differ diff --git a/assets/audio/footsteps/bones/4.ogg b/assets/audio/footsteps/bones/4.ogg new file mode 100644 index 0000000..a459a67 Binary files /dev/null and b/assets/audio/footsteps/bones/4.ogg differ diff --git a/assets/audio/footsteps/bones/5.ogg b/assets/audio/footsteps/bones/5.ogg new file mode 100644 index 0000000..49559fe Binary files /dev/null and b/assets/audio/footsteps/bones/5.ogg differ diff --git a/assets/audio/footsteps/bones/6.ogg b/assets/audio/footsteps/bones/6.ogg new file mode 100644 index 0000000..8246252 Binary files /dev/null and b/assets/audio/footsteps/bones/6.ogg differ diff --git a/assets/audio/footsteps/bones/7.ogg b/assets/audio/footsteps/bones/7.ogg new file mode 100644 index 0000000..2b8eb38 Binary files /dev/null and b/assets/audio/footsteps/bones/7.ogg differ diff --git a/assets/audio/footsteps/bones/8.ogg b/assets/audio/footsteps/bones/8.ogg new file mode 100644 index 0000000..6a327e8 Binary files /dev/null and b/assets/audio/footsteps/bones/8.ogg differ diff --git a/assets/audio/footsteps/bones/9.ogg b/assets/audio/footsteps/bones/9.ogg new file mode 100644 index 0000000..09f1fed Binary files /dev/null and b/assets/audio/footsteps/bones/9.ogg differ diff --git a/assets/audio/footsteps/bones/license.txt b/assets/audio/footsteps/bones/license.txt new file mode 100644 index 0000000..811f5df --- /dev/null +++ b/assets/audio/footsteps/bones/license.txt @@ -0,0 +1,4 @@ +Derived from bone shell by blukotek +https://freesound.org/people/blukotek/sounds/249319/ + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/assets/audio/footsteps/boots/0.ogg b/assets/audio/footsteps/boots/0.ogg new file mode 100644 index 0000000..9f303b8 Binary files /dev/null and b/assets/audio/footsteps/boots/0.ogg differ diff --git a/assets/audio/footsteps/boots/1.ogg b/assets/audio/footsteps/boots/1.ogg new file mode 100644 index 0000000..04aee02 Binary files /dev/null and b/assets/audio/footsteps/boots/1.ogg differ diff --git a/assets/audio/footsteps/boots/2.ogg b/assets/audio/footsteps/boots/2.ogg new file mode 100644 index 0000000..ba987dd Binary files /dev/null and b/assets/audio/footsteps/boots/2.ogg differ diff --git a/assets/audio/footsteps/boots/3.ogg b/assets/audio/footsteps/boots/3.ogg new file mode 100644 index 0000000..f9eeb37 Binary files /dev/null and b/assets/audio/footsteps/boots/3.ogg differ diff --git a/assets/audio/footsteps/boots/4.ogg b/assets/audio/footsteps/boots/4.ogg new file mode 100644 index 0000000..4645be3 Binary files /dev/null and b/assets/audio/footsteps/boots/4.ogg differ diff --git a/assets/audio/footsteps/boots/5.ogg b/assets/audio/footsteps/boots/5.ogg new file mode 100644 index 0000000..fbbb348 Binary files /dev/null and b/assets/audio/footsteps/boots/5.ogg differ diff --git a/assets/audio/footsteps/boots/6.ogg b/assets/audio/footsteps/boots/6.ogg new file mode 100644 index 0000000..efd62ff Binary files /dev/null and b/assets/audio/footsteps/boots/6.ogg differ diff --git a/assets/audio/footsteps/boots/7.ogg b/assets/audio/footsteps/boots/7.ogg new file mode 100644 index 0000000..19e1182 Binary files /dev/null and b/assets/audio/footsteps/boots/7.ogg differ diff --git a/assets/audio/footsteps/boots/8.ogg b/assets/audio/footsteps/boots/8.ogg new file mode 100644 index 0000000..04644c1 Binary files /dev/null and b/assets/audio/footsteps/boots/8.ogg differ diff --git a/assets/audio/footsteps/boots/license.txt b/assets/audio/footsteps/boots/license.txt new file mode 100644 index 0000000..4695598 --- /dev/null +++ b/assets/audio/footsteps/boots/license.txt @@ -0,0 +1,4 @@ +Derived from footstep-concrete.wav by swuing +http://www.freesound.org/people/swuing/sounds/38873/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/assets/audio/footsteps/dog/.DS_Store b/assets/audio/footsteps/dog/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/assets/audio/footsteps/dog/.DS_Store differ diff --git a/assets/audio/footsteps/dog/0.ogg b/assets/audio/footsteps/dog/0.ogg new file mode 100644 index 0000000..d7311e3 Binary files /dev/null and b/assets/audio/footsteps/dog/0.ogg differ diff --git a/assets/audio/footsteps/dog/1.ogg b/assets/audio/footsteps/dog/1.ogg new file mode 100644 index 0000000..7db6379 Binary files /dev/null and b/assets/audio/footsteps/dog/1.ogg differ diff --git a/assets/audio/footsteps/dog/2.ogg b/assets/audio/footsteps/dog/2.ogg new file mode 100644 index 0000000..a7c2a61 Binary files /dev/null and b/assets/audio/footsteps/dog/2.ogg differ diff --git a/assets/audio/footsteps/dog/3.ogg b/assets/audio/footsteps/dog/3.ogg new file mode 100644 index 0000000..9d2fce8 Binary files /dev/null and b/assets/audio/footsteps/dog/3.ogg differ diff --git a/assets/audio/footsteps/dog/4.ogg b/assets/audio/footsteps/dog/4.ogg new file mode 100644 index 0000000..b60e335 Binary files /dev/null and b/assets/audio/footsteps/dog/4.ogg differ diff --git a/assets/audio/footsteps/dog/5.ogg b/assets/audio/footsteps/dog/5.ogg new file mode 100644 index 0000000..7c603e3 Binary files /dev/null and b/assets/audio/footsteps/dog/5.ogg differ diff --git a/assets/audio/footsteps/dog/6.ogg b/assets/audio/footsteps/dog/6.ogg new file mode 100644 index 0000000..4d958a5 Binary files /dev/null and b/assets/audio/footsteps/dog/6.ogg differ diff --git a/assets/audio/footsteps/dog/7.ogg b/assets/audio/footsteps/dog/7.ogg new file mode 100644 index 0000000..57941cb Binary files /dev/null and b/assets/audio/footsteps/dog/7.ogg differ diff --git a/assets/audio/footsteps/dog/license.txt b/assets/audio/footsteps/dog/license.txt new file mode 100644 index 0000000..398b44e --- /dev/null +++ b/assets/audio/footsteps/dog/license.txt @@ -0,0 +1,4 @@ +Derived from Wolf run.wav by sabotovat +https://freesound.org/people/sabotovat/sounds/414350/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/assets/audio/footsteps/grass/0.ogg b/assets/audio/footsteps/grass/0.ogg new file mode 100644 index 0000000..ed598ec Binary files /dev/null and b/assets/audio/footsteps/grass/0.ogg differ diff --git a/assets/audio/footsteps/grass/1.ogg b/assets/audio/footsteps/grass/1.ogg new file mode 100644 index 0000000..5782652 Binary files /dev/null and b/assets/audio/footsteps/grass/1.ogg differ diff --git a/assets/audio/footsteps/grass/2.ogg b/assets/audio/footsteps/grass/2.ogg new file mode 100644 index 0000000..3c73fa2 Binary files /dev/null and b/assets/audio/footsteps/grass/2.ogg differ diff --git a/assets/audio/footsteps/grass/3.ogg b/assets/audio/footsteps/grass/3.ogg new file mode 100644 index 0000000..32aa7c1 Binary files /dev/null and b/assets/audio/footsteps/grass/3.ogg differ diff --git a/assets/audio/footsteps/grass/4.ogg b/assets/audio/footsteps/grass/4.ogg new file mode 100644 index 0000000..20f5a83 Binary files /dev/null and b/assets/audio/footsteps/grass/4.ogg differ diff --git a/assets/audio/footsteps/grass/5.ogg b/assets/audio/footsteps/grass/5.ogg new file mode 100644 index 0000000..6f05ad0 Binary files /dev/null and b/assets/audio/footsteps/grass/5.ogg differ diff --git a/assets/audio/footsteps/grass/6.ogg b/assets/audio/footsteps/grass/6.ogg new file mode 100644 index 0000000..2c08fea Binary files /dev/null and b/assets/audio/footsteps/grass/6.ogg differ diff --git a/assets/audio/footsteps/grass/7.ogg b/assets/audio/footsteps/grass/7.ogg new file mode 100644 index 0000000..df53a3d Binary files /dev/null and b/assets/audio/footsteps/grass/7.ogg differ diff --git a/assets/audio/footsteps/grass/8.ogg b/assets/audio/footsteps/grass/8.ogg new file mode 100644 index 0000000..9b8cba8 Binary files /dev/null and b/assets/audio/footsteps/grass/8.ogg differ diff --git a/assets/audio/footsteps/grass/license.txt b/assets/audio/footsteps/grass/license.txt new file mode 100644 index 0000000..86e471a --- /dev/null +++ b/assets/audio/footsteps/grass/license.txt @@ -0,0 +1,4 @@ +Derived from footstep-grass.wav by swuing +https://freesound.org/people/swuing/sounds/38874/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/assets/audio/footsteps/gravel/0.ogg b/assets/audio/footsteps/gravel/0.ogg new file mode 100644 index 0000000..508dfc4 Binary files /dev/null and b/assets/audio/footsteps/gravel/0.ogg differ diff --git a/assets/audio/footsteps/gravel/1.ogg b/assets/audio/footsteps/gravel/1.ogg new file mode 100644 index 0000000..d323858 Binary files /dev/null and b/assets/audio/footsteps/gravel/1.ogg differ diff --git a/assets/audio/footsteps/gravel/2.ogg b/assets/audio/footsteps/gravel/2.ogg new file mode 100644 index 0000000..e3d22d4 Binary files /dev/null and b/assets/audio/footsteps/gravel/2.ogg differ diff --git a/assets/audio/footsteps/gravel/3.ogg b/assets/audio/footsteps/gravel/3.ogg new file mode 100644 index 0000000..e79b8de Binary files /dev/null and b/assets/audio/footsteps/gravel/3.ogg differ diff --git a/assets/audio/footsteps/gravel/4.ogg b/assets/audio/footsteps/gravel/4.ogg new file mode 100644 index 0000000..0f7c362 Binary files /dev/null and b/assets/audio/footsteps/gravel/4.ogg differ diff --git a/assets/audio/footsteps/gravel/5.ogg b/assets/audio/footsteps/gravel/5.ogg new file mode 100644 index 0000000..2d87fc4 Binary files /dev/null and b/assets/audio/footsteps/gravel/5.ogg differ diff --git a/assets/audio/footsteps/gravel/6.ogg b/assets/audio/footsteps/gravel/6.ogg new file mode 100644 index 0000000..cddaff8 Binary files /dev/null and b/assets/audio/footsteps/gravel/6.ogg differ diff --git a/assets/audio/footsteps/gravel/7.ogg b/assets/audio/footsteps/gravel/7.ogg new file mode 100644 index 0000000..7e437fe Binary files /dev/null and b/assets/audio/footsteps/gravel/7.ogg differ diff --git a/assets/audio/footsteps/gravel/8.ogg b/assets/audio/footsteps/gravel/8.ogg new file mode 100644 index 0000000..5319f64 Binary files /dev/null and b/assets/audio/footsteps/gravel/8.ogg differ diff --git a/assets/audio/footsteps/gravel/9.ogg b/assets/audio/footsteps/gravel/9.ogg new file mode 100644 index 0000000..81b682f Binary files /dev/null and b/assets/audio/footsteps/gravel/9.ogg differ diff --git a/assets/audio/footsteps/gravel/license.txt b/assets/audio/footsteps/gravel/license.txt new file mode 100644 index 0000000..75889fc --- /dev/null +++ b/assets/audio/footsteps/gravel/license.txt @@ -0,0 +1,4 @@ +Derived from Pack: Gravel Footsteps by Ali_6868 +https://freesound.org/people/Ali_6868/packs/21608/ + +https://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/assets/audio/footsteps/mech/0.ogg b/assets/audio/footsteps/mech/0.ogg new file mode 100644 index 0000000..9b0341f Binary files /dev/null and b/assets/audio/footsteps/mech/0.ogg differ diff --git a/assets/audio/footsteps/mech/license.txt b/assets/audio/footsteps/mech/license.txt new file mode 100644 index 0000000..8e57bb6 --- /dev/null +++ b/assets/audio/footsteps/mech/license.txt @@ -0,0 +1,3 @@ +Derived from Robotic mechanic step sounds by Lee Barkovich +http://www.archive.org/details/Berklee44Barkovich +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/assets/audio/footsteps/metal/0.ogg b/assets/audio/footsteps/metal/0.ogg new file mode 100644 index 0000000..4eee5b9 Binary files /dev/null and b/assets/audio/footsteps/metal/0.ogg differ diff --git a/assets/audio/footsteps/metal/1.ogg b/assets/audio/footsteps/metal/1.ogg new file mode 100644 index 0000000..8337518 Binary files /dev/null and b/assets/audio/footsteps/metal/1.ogg differ diff --git a/assets/audio/footsteps/metal/2.ogg b/assets/audio/footsteps/metal/2.ogg new file mode 100644 index 0000000..07f0d11 Binary files /dev/null and b/assets/audio/footsteps/metal/2.ogg differ diff --git a/assets/audio/footsteps/metal/3.ogg b/assets/audio/footsteps/metal/3.ogg new file mode 100644 index 0000000..a3a1c57 Binary files /dev/null and b/assets/audio/footsteps/metal/3.ogg differ diff --git a/assets/audio/footsteps/metal/4.ogg b/assets/audio/footsteps/metal/4.ogg new file mode 100644 index 0000000..99d6037 Binary files /dev/null and b/assets/audio/footsteps/metal/4.ogg differ diff --git a/assets/audio/footsteps/metal/5.ogg b/assets/audio/footsteps/metal/5.ogg new file mode 100644 index 0000000..5a7cfc5 Binary files /dev/null and b/assets/audio/footsteps/metal/5.ogg differ diff --git a/assets/audio/footsteps/metal/6.ogg b/assets/audio/footsteps/metal/6.ogg new file mode 100644 index 0000000..fe590ef Binary files /dev/null and b/assets/audio/footsteps/metal/6.ogg differ diff --git a/assets/audio/footsteps/metal/7.ogg b/assets/audio/footsteps/metal/7.ogg new file mode 100644 index 0000000..dca6729 Binary files /dev/null and b/assets/audio/footsteps/metal/7.ogg differ diff --git a/assets/audio/footsteps/metal/license.txt b/assets/audio/footsteps/metal/license.txt new file mode 100644 index 0000000..13eb24c --- /dev/null +++ b/assets/audio/footsteps/metal/license.txt @@ -0,0 +1,4 @@ +Derived from fboots on aluminum ladder 01 by Eelke +https://freesound.org/people/Eelke/sounds/462598/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/assets/audio/footsteps/step_cloth1.ogg b/assets/audio/footsteps/step_cloth1.ogg deleted file mode 100644 index 99ab839..0000000 Binary files a/assets/audio/footsteps/step_cloth1.ogg and /dev/null differ diff --git a/assets/audio/footsteps/step_cloth2.ogg b/assets/audio/footsteps/step_cloth2.ogg deleted file mode 100644 index 3fd4e60..0000000 Binary files a/assets/audio/footsteps/step_cloth2.ogg and /dev/null differ diff --git a/assets/audio/footsteps/step_cloth3.ogg b/assets/audio/footsteps/step_cloth3.ogg deleted file mode 100644 index 18a6cc6..0000000 Binary files a/assets/audio/footsteps/step_cloth3.ogg and /dev/null differ diff --git a/assets/audio/footsteps/step_cloth4.ogg b/assets/audio/footsteps/step_cloth4.ogg deleted file mode 100644 index 535c452..0000000 Binary files a/assets/audio/footsteps/step_cloth4.ogg and /dev/null differ diff --git a/assets/audio/footsteps/step_lth1.ogg b/assets/audio/footsteps/step_lth1.ogg deleted file mode 100644 index 334fcc2..0000000 Binary files a/assets/audio/footsteps/step_lth1.ogg and /dev/null differ diff --git a/assets/audio/footsteps/step_lth2.ogg b/assets/audio/footsteps/step_lth2.ogg deleted file mode 100644 index a5acb87..0000000 Binary files a/assets/audio/footsteps/step_lth2.ogg and /dev/null differ diff --git a/assets/audio/footsteps/step_lth33.ogg b/assets/audio/footsteps/step_lth33.ogg deleted file mode 100644 index e7447f0..0000000 Binary files a/assets/audio/footsteps/step_lth33.ogg and /dev/null differ diff --git a/assets/audio/footsteps/step_lth4.ogg b/assets/audio/footsteps/step_lth4.ogg deleted file mode 100644 index 7a4f997..0000000 Binary files a/assets/audio/footsteps/step_lth4.ogg and /dev/null differ diff --git a/assets/audio/footsteps/step_metal (2).ogg b/assets/audio/footsteps/step_metal (2).ogg deleted file mode 100644 index 5df691e..0000000 Binary files a/assets/audio/footsteps/step_metal (2).ogg and /dev/null differ diff --git a/assets/audio/footsteps/step_metal (3).ogg b/assets/audio/footsteps/step_metal (3).ogg deleted file mode 100644 index ebb7d0f..0000000 Binary files a/assets/audio/footsteps/step_metal (3).ogg and /dev/null differ diff --git a/assets/audio/footsteps/step_metal (4).ogg b/assets/audio/footsteps/step_metal (4).ogg deleted file mode 100644 index a1bfdb8..0000000 Binary files a/assets/audio/footsteps/step_metal (4).ogg and /dev/null differ diff --git a/assets/audio/footsteps/step_metal.ogg b/assets/audio/footsteps/step_metal.ogg deleted file mode 100644 index f4c14d6..0000000 Binary files a/assets/audio/footsteps/step_metal.ogg and /dev/null differ diff --git a/assets/audio/footsteps/tile/.DS_Store b/assets/audio/footsteps/tile/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/assets/audio/footsteps/tile/.DS_Store differ diff --git a/assets/audio/footsteps/tile/0.ogg b/assets/audio/footsteps/tile/0.ogg new file mode 100644 index 0000000..3e061cd Binary files /dev/null and b/assets/audio/footsteps/tile/0.ogg differ diff --git a/assets/audio/footsteps/tile/1.ogg b/assets/audio/footsteps/tile/1.ogg new file mode 100644 index 0000000..6ab43f9 Binary files /dev/null and b/assets/audio/footsteps/tile/1.ogg differ diff --git a/assets/audio/footsteps/tile/2.ogg b/assets/audio/footsteps/tile/2.ogg new file mode 100644 index 0000000..8fd1bbb Binary files /dev/null and b/assets/audio/footsteps/tile/2.ogg differ diff --git a/assets/audio/footsteps/tile/3.ogg b/assets/audio/footsteps/tile/3.ogg new file mode 100644 index 0000000..7107fc1 Binary files /dev/null and b/assets/audio/footsteps/tile/3.ogg differ diff --git a/assets/audio/footsteps/tile/4.ogg b/assets/audio/footsteps/tile/4.ogg new file mode 100644 index 0000000..7d0563e Binary files /dev/null and b/assets/audio/footsteps/tile/4.ogg differ diff --git a/assets/audio/footsteps/tile/5.ogg b/assets/audio/footsteps/tile/5.ogg new file mode 100644 index 0000000..1fd0c5c Binary files /dev/null and b/assets/audio/footsteps/tile/5.ogg differ diff --git a/assets/audio/footsteps/tile/6.ogg b/assets/audio/footsteps/tile/6.ogg new file mode 100644 index 0000000..af202fe Binary files /dev/null and b/assets/audio/footsteps/tile/6.ogg differ diff --git a/assets/audio/footsteps/tile/7.ogg b/assets/audio/footsteps/tile/7.ogg new file mode 100644 index 0000000..bae3145 Binary files /dev/null and b/assets/audio/footsteps/tile/7.ogg differ diff --git a/assets/audio/footsteps/tile/8.ogg b/assets/audio/footsteps/tile/8.ogg new file mode 100644 index 0000000..818321b Binary files /dev/null and b/assets/audio/footsteps/tile/8.ogg differ diff --git a/assets/audio/footsteps/tile/license.txt b/assets/audio/footsteps/tile/license.txt new file mode 100644 index 0000000..c4ed5c6 --- /dev/null +++ b/assets/audio/footsteps/tile/license.txt @@ -0,0 +1,7 @@ +Derived from footstep-concrete.wav by swuing +http://www.freesound.org/people/swuing/sounds/38873/ + +And Squeaky footstep.wav from ceberation +https://freesound.org/people/ceberation/sounds/235524/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/assets/audio/footsteps/water/0.ogg b/assets/audio/footsteps/water/0.ogg new file mode 100644 index 0000000..0e3a1cb Binary files /dev/null and b/assets/audio/footsteps/water/0.ogg differ diff --git a/assets/audio/footsteps/water/1.ogg b/assets/audio/footsteps/water/1.ogg new file mode 100644 index 0000000..72a3b69 Binary files /dev/null and b/assets/audio/footsteps/water/1.ogg differ diff --git a/assets/audio/footsteps/water/2.ogg b/assets/audio/footsteps/water/2.ogg new file mode 100644 index 0000000..3f31e72 Binary files /dev/null and b/assets/audio/footsteps/water/2.ogg differ diff --git a/assets/audio/footsteps/water/3.ogg b/assets/audio/footsteps/water/3.ogg new file mode 100644 index 0000000..7a4ee34 Binary files /dev/null and b/assets/audio/footsteps/water/3.ogg differ diff --git a/assets/audio/footsteps/water/4.ogg b/assets/audio/footsteps/water/4.ogg new file mode 100644 index 0000000..8148bfa Binary files /dev/null and b/assets/audio/footsteps/water/4.ogg differ diff --git a/assets/audio/footsteps/water/license.txt b/assets/audio/footsteps/water/license.txt new file mode 100644 index 0000000..0a54827 --- /dev/null +++ b/assets/audio/footsteps/water/license.txt @@ -0,0 +1,7 @@ +Derived from Water Footsteps by EminYILDIRIM +https://freesound.org/people/EminYILDIRIM/sounds/608663/ + +And footstep-concrete.wav by swuing +http://www.freesound.org/people/swuing/sounds/38873/ + +http://creativecommons.org/licenses/by/3.0/ diff --git a/assets/audio/footsteps/wood/0.ogg b/assets/audio/footsteps/wood/0.ogg new file mode 100644 index 0000000..92dbfd0 Binary files /dev/null and b/assets/audio/footsteps/wood/0.ogg differ diff --git a/assets/audio/footsteps/wood/1.ogg b/assets/audio/footsteps/wood/1.ogg new file mode 100644 index 0000000..9085869 Binary files /dev/null and b/assets/audio/footsteps/wood/1.ogg differ diff --git a/assets/audio/footsteps/wood/2.ogg b/assets/audio/footsteps/wood/2.ogg new file mode 100644 index 0000000..803cba4 Binary files /dev/null and b/assets/audio/footsteps/wood/2.ogg differ diff --git a/assets/audio/footsteps/wood/3.ogg b/assets/audio/footsteps/wood/3.ogg new file mode 100644 index 0000000..af21213 Binary files /dev/null and b/assets/audio/footsteps/wood/3.ogg differ diff --git a/assets/audio/footsteps/wood/4.ogg b/assets/audio/footsteps/wood/4.ogg new file mode 100644 index 0000000..4caf84f Binary files /dev/null and b/assets/audio/footsteps/wood/4.ogg differ diff --git a/assets/audio/footsteps/wood/5.ogg b/assets/audio/footsteps/wood/5.ogg new file mode 100644 index 0000000..417d600 Binary files /dev/null and b/assets/audio/footsteps/wood/5.ogg differ diff --git a/assets/audio/footsteps/wood/6.ogg b/assets/audio/footsteps/wood/6.ogg new file mode 100644 index 0000000..b47f26e Binary files /dev/null and b/assets/audio/footsteps/wood/6.ogg differ diff --git a/assets/audio/footsteps/wood/7.ogg b/assets/audio/footsteps/wood/7.ogg new file mode 100644 index 0000000..78cef9e Binary files /dev/null and b/assets/audio/footsteps/wood/7.ogg differ diff --git a/assets/audio/footsteps/wood/8.ogg b/assets/audio/footsteps/wood/8.ogg new file mode 100644 index 0000000..d95d41b Binary files /dev/null and b/assets/audio/footsteps/wood/8.ogg differ diff --git a/assets/audio/footsteps/wood/license.txt b/assets/audio/footsteps/wood/license.txt new file mode 100644 index 0000000..c84adc6 --- /dev/null +++ b/assets/audio/footsteps/wood/license.txt @@ -0,0 +1,4 @@ +Derived from footstep-wood.wav by swuing +https://freesound.org/people/swuing/sounds/38876/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/assets/custom/aligned/bar_stooll.blend b/assets/custom/aligned/bar_stooll.blend deleted file mode 100644 index df26c26..0000000 Binary files a/assets/custom/aligned/bar_stooll.blend and /dev/null differ diff --git a/assets/custom/aligned/game.blend b/assets/custom/aligned/game.blend deleted file mode 100644 index 38ce6a8..0000000 Binary files a/assets/custom/aligned/game.blend and /dev/null differ diff --git a/assets/custom/aligned/glass_top_desk.blend b/assets/custom/aligned/glass_top_desk.blend deleted file mode 100644 index 3c1d196..0000000 Binary files a/assets/custom/aligned/glass_top_desk.blend and /dev/null differ diff --git a/assets/custom/aligned/office_chair.blend b/assets/custom/aligned/office_chair.blend deleted file mode 100644 index 4ccd760..0000000 Binary files a/assets/custom/aligned/office_chair.blend and /dev/null differ diff --git a/assets/custom/aligned/office_chair.blend1 b/assets/custom/aligned/office_chair.blend1 deleted file mode 100644 index a8e0967..0000000 Binary files a/assets/custom/aligned/office_chair.blend1 and /dev/null differ diff --git a/assets/custom/aligned/recliner.blend b/assets/custom/aligned/recliner.blend deleted file mode 100644 index a144fa6..0000000 Binary files a/assets/custom/aligned/recliner.blend and /dev/null differ diff --git a/assets/custom/ready/bike_rack.blend b/assets/custom/ready/bike_rack.blend deleted file mode 100644 index 98cf3eb..0000000 Binary files a/assets/custom/ready/bike_rack.blend and /dev/null differ diff --git a/assets/custom/ready/chair.blend b/assets/custom/ready/chair.blend deleted file mode 100644 index 5ddb45a..0000000 Binary files a/assets/custom/ready/chair.blend and /dev/null differ diff --git a/assets/custom/ready/coffee_cup.blend b/assets/custom/ready/coffee_cup.blend deleted file mode 100644 index 3dfa3a7..0000000 Binary files a/assets/custom/ready/coffee_cup.blend and /dev/null differ diff --git a/assets/custom/ready/coffee_cup.blend1 b/assets/custom/ready/coffee_cup.blend1 deleted file mode 100644 index 4c3136f..0000000 Binary files a/assets/custom/ready/coffee_cup.blend1 and /dev/null differ diff --git a/assets/custom/ready/coffee_table.blend b/assets/custom/ready/coffee_table.blend deleted file mode 100644 index ef4f546..0000000 Binary files a/assets/custom/ready/coffee_table.blend and /dev/null differ diff --git a/assets/custom/ready/couch.blend b/assets/custom/ready/couch.blend deleted file mode 100644 index 3fafe5f..0000000 Binary files a/assets/custom/ready/couch.blend and /dev/null differ diff --git a/assets/custom/ready/floor_lamp.blend b/assets/custom/ready/floor_lamp.blend deleted file mode 100644 index 221a8c1..0000000 Binary files a/assets/custom/ready/floor_lamp.blend and /dev/null differ diff --git a/assets/custom/wip/bbq.blend b/assets/custom/wip/bbq.blend deleted file mode 100644 index cecf71c..0000000 Binary files a/assets/custom/wip/bbq.blend and /dev/null differ diff --git a/assets/custom/wip/bbq.blend1 b/assets/custom/wip/bbq.blend1 deleted file mode 100644 index 49ade88..0000000 Binary files a/assets/custom/wip/bbq.blend1 and /dev/null differ diff --git a/assets/custom/wip/bed.blend b/assets/custom/wip/bed.blend deleted file mode 100644 index 7a0cf9d..0000000 Binary files a/assets/custom/wip/bed.blend and /dev/null differ diff --git a/assets/custom/wip/bed.blend1 b/assets/custom/wip/bed.blend1 deleted file mode 100644 index f1fedc2..0000000 Binary files a/assets/custom/wip/bed.blend1 and /dev/null differ diff --git a/assets/custom/wip/bus_stop.blend b/assets/custom/wip/bus_stop.blend deleted file mode 100644 index 744d727..0000000 Binary files a/assets/custom/wip/bus_stop.blend and /dev/null differ diff --git a/assets/custom/wip/bus_stop.blend1 b/assets/custom/wip/bus_stop.blend1 deleted file mode 100644 index b3cffd0..0000000 Binary files a/assets/custom/wip/bus_stop.blend1 and /dev/null differ diff --git a/assets/custom/wip/fan.blend b/assets/custom/wip/fan.blend deleted file mode 100644 index 4342805..0000000 Binary files a/assets/custom/wip/fan.blend and /dev/null differ diff --git a/assets/custom/wip/fire_pit.blend b/assets/custom/wip/fire_pit.blend deleted file mode 100644 index 96967ab..0000000 Binary files a/assets/custom/wip/fire_pit.blend and /dev/null differ diff --git a/assets/custom/wip/fridge.blend b/assets/custom/wip/fridge.blend deleted file mode 100644 index b2300b7..0000000 Binary files a/assets/custom/wip/fridge.blend and /dev/null differ diff --git a/assets/custom/wip/lamp.blend b/assets/custom/wip/lamp.blend deleted file mode 100644 index e911119..0000000 Binary files a/assets/custom/wip/lamp.blend and /dev/null differ diff --git a/assets/custom/wip/laundry_machine.blend b/assets/custom/wip/laundry_machine.blend deleted file mode 100644 index a16c37e..0000000 Binary files a/assets/custom/wip/laundry_machine.blend and /dev/null differ diff --git a/assets/custom/wip/laundry_machine.blend1 b/assets/custom/wip/laundry_machine.blend1 deleted file mode 100644 index 8d5c68d..0000000 Binary files a/assets/custom/wip/laundry_machine.blend1 and /dev/null differ diff --git a/assets/custom/wip/microwave.blend b/assets/custom/wip/microwave.blend deleted file mode 100644 index 7e0449a..0000000 Binary files a/assets/custom/wip/microwave.blend and /dev/null differ diff --git a/assets/custom/wip/office_printer.blend b/assets/custom/wip/office_printer.blend deleted file mode 100644 index 88d01ef..0000000 Binary files a/assets/custom/wip/office_printer.blend and /dev/null differ diff --git a/assets/custom/wip/piano.blend b/assets/custom/wip/piano.blend deleted file mode 100644 index bfd87f5..0000000 Binary files a/assets/custom/wip/piano.blend and /dev/null differ diff --git a/assets/custom/wip/shower_head.blend b/assets/custom/wip/shower_head.blend deleted file mode 100644 index 5fdd18b..0000000 Binary files a/assets/custom/wip/shower_head.blend and /dev/null differ diff --git a/assets/custom/wip/shower_head.blend1 b/assets/custom/wip/shower_head.blend1 deleted file mode 100644 index a7bd0c4..0000000 Binary files a/assets/custom/wip/shower_head.blend1 and /dev/null differ diff --git a/assets/custom/wip/solar.blend b/assets/custom/wip/solar.blend deleted file mode 100644 index f47d166..0000000 Binary files a/assets/custom/wip/solar.blend and /dev/null differ diff --git a/assets/custom/wip/urinal.blend b/assets/custom/wip/urinal.blend deleted file mode 100644 index fdb5ceb..0000000 Binary files a/assets/custom/wip/urinal.blend and /dev/null differ diff --git a/assets/custom/wip/urinal.blend1 b/assets/custom/wip/urinal.blend1 deleted file mode 100644 index 8406707..0000000 Binary files a/assets/custom/wip/urinal.blend1 and /dev/null differ diff --git a/assets/custom/wip/vanity.blend b/assets/custom/wip/vanity.blend deleted file mode 100644 index eec0891..0000000 Binary files a/assets/custom/wip/vanity.blend and /dev/null differ diff --git a/assets/custom/wip/vend.blend b/assets/custom/wip/vend.blend deleted file mode 100644 index 4c10961..0000000 Binary files a/assets/custom/wip/vend.blend and /dev/null differ diff --git a/assets/custom/wip/water_fountain.blend b/assets/custom/wip/water_fountain.blend deleted file mode 100644 index 0f6683d..0000000 Binary files a/assets/custom/wip/water_fountain.blend and /dev/null differ diff --git a/assets/custom/wip/water_heater.blend b/assets/custom/wip/water_heater.blend deleted file mode 100644 index 808d89b..0000000 Binary files a/assets/custom/wip/water_heater.blend and /dev/null differ diff --git a/assets/custom/wip/water_heater.blend1 b/assets/custom/wip/water_heater.blend1 deleted file mode 100644 index 0578e12..0000000 Binary files a/assets/custom/wip/water_heater.blend1 and /dev/null differ diff --git a/assets/levels/World.bin b/assets/levels/World.bin index 891795f..2f2135a 100644 Binary files a/assets/levels/World.bin and b/assets/levels/World.bin differ diff --git a/assets/levels/World.glb b/assets/levels/World.glb index f7f8221..f1f117f 100644 Binary files a/assets/levels/World.glb and b/assets/levels/World.glb differ diff --git a/assets/levels/World.gltf b/assets/levels/World.gltf index 0f5f90b..667ae61 100644 --- a/assets/levels/World.gltf +++ b/assets/levels/World.gltf @@ -1,6 +1,6 @@ { "asset":{ - "generator":"Khronos glTF Blender I/O v4.4.56", + "generator":"Khronos glTF Blender I/O v5.0.21", "version":"2.0" }, "extensionsUsed":[ @@ -24,11 +24,11 @@ "name":"World", "nodes":[ 1, + 2, + 3, + 4, 5, 6, - 7, - 8, - 9, 10, 11, 12, @@ -37,27 +37,31 @@ 15, 16, 17, + 18, 19, 20, 21, 22, - 23, + 24, 25, 26, - 36, - 37, - 43, - 44, - 45, - 46, - 47, + 27, + 28, + 30, + 31, + 41, + 42, 48, 49, 50, 51, 52, 53, - 54 + 54, + 55, + 56, + 57, + 58 ] } ], @@ -81,6 +85,80 @@ }, "name":"Floor" }, + { + "mesh":1, + "name":"playerspawn", + "translation":[ + -0.8165874481201172, + 67.19021606445312, + 6.311150550842285 + ] + }, + { + "mesh":2, + "name":"playertrigger", + "scale":[ + 0.5, + 0.5, + 0.5 + ], + "translation":[ + 11.502740859985352, + 0.9914119243621826, + 17.544647216796875 + ] + }, + { + "mesh":3, + "name":"ladder_collider", + "scale":[ + 1, + 1.764095425605774, + 0.21980580687522888 + ], + "translation":[ + 16.245492935180664, + 1.7610151767730713, + -17.5098934173584 + ] + }, + { + "extras":{ + "MaxHandle":290 + }, + "mesh":4, + "name":"Ladder", + "rotation":[ + 0, + 0, + -0.7071068286895752, + 0.7071068286895752 + ], + "scale":[ + 0.02539999969303608, + 0.02539999969303608, + 0.02539999969303608 + ], + "translation":[ + 15.72059154510498, + 0.5179733037948608, + -17.497894287109375 + ] + }, + { + "mesh":5, + "name":"Cube", + "scale":[ + 0.6579174995422363, + 0.6579174995422363, + 0.6579174995422363 + ], + "translation":[ + -7.301509857177734, + 0.7131181955337524, + -14.821924209594727 + ] + }, { "extras":{ "components_meta":{ @@ -88,7 +166,7 @@ }, "bevy_components":"{}" }, - "mesh":2, + "mesh":7, "name":"Door Collider", "rotation":[ 0, @@ -109,7 +187,7 @@ }, { "children":[ - 2 + 7 ], "name":"Bone" }, @@ -121,14 +199,14 @@ }, "bevy_components":"{}" }, - "mesh":1, + "mesh":6, "name":"Door Mesh", "skin":0 }, { "children":[ - 4, - 3 + 9, + 8 ], "extras":{ "components_meta":{ @@ -164,7 +242,7 @@ ] }, { - "mesh":3, + "mesh":8, "name":"Kitchen_Sink", "translation":[ -7.718113899230957, @@ -179,7 +257,7 @@ }, "bevy_components":"{}" }, - "mesh":4, + "mesh":9, "name":"Cat", "rotation":[ 0.09153970330953598, @@ -205,7 +283,7 @@ }, "bevy_components":"{}" }, - "mesh":5, + "mesh":10, "name":"Cup", "rotation":[ 0.15465058386325836, @@ -231,7 +309,7 @@ }, "bevy_components":"{}" }, - "mesh":6, + "mesh":11, "name":"VHS", "rotation":[ 0.6350166201591492, @@ -251,7 +329,7 @@ ] }, { - "mesh":7, + "mesh":12, "name":"Light_Desk", "rotation":[ 0, @@ -266,7 +344,7 @@ ] }, { - "mesh":8, + "mesh":13, "name":"Pickup_Health", "rotation":[ 0.7071067690849304, @@ -286,7 +364,7 @@ ] }, { - "mesh":9, + "mesh":14, "name":"Rover", "scale":[ 0.18199114501476288, @@ -300,7 +378,7 @@ ] }, { - "mesh":10, + "mesh":15, "name":"WaterBottle_3", "scale":[ 0.4421122968196869, @@ -314,7 +392,7 @@ ] }, { - "mesh":11, + "mesh":16, "name":"Radio", "rotation":[ 0, @@ -334,7 +412,7 @@ ] }, { - "mesh":12, + "mesh":17, "name":"Lever", "translation":[ 0, @@ -343,7 +421,7 @@ ] }, { - "mesh":13, + "mesh":18, "name":"Light_Street_1", "translation":[ -12.190617561340332, @@ -352,7 +430,7 @@ ] }, { - "mesh":14, + "mesh":19, "name":"Light_Street_2", "translation":[ -15.617889404296875, @@ -361,7 +439,7 @@ ] }, { - "mesh":15, + "mesh":20, "name":"COMPUTERchair_1", "rotation":[ 0.70710688829422, @@ -382,9 +460,9 @@ }, { "children":[ - 18 + 23 ], - "mesh":16, + "mesh":21, "name":"COMPUTERchair", "rotation":[ 0, @@ -404,7 +482,7 @@ ] }, { - "mesh":17, + "mesh":22, "name":"COMPUTERmouse_1", "rotation":[ -0.70710688829422, @@ -424,7 +502,7 @@ ] }, { - "mesh":18, + "mesh":23, "name":"COMPUTERpc", "rotation":[ 0.7071068286895752, @@ -444,7 +522,7 @@ ] }, { - "mesh":19, + "mesh":24, "name":"COMPUTERscreenold", "rotation":[ 0.7071068286895752, @@ -464,7 +542,7 @@ ] }, { - "mesh":20, + "mesh":25, "name":"COMPUTERtable", "rotation":[ 0.7071068286895752, @@ -484,7 +562,7 @@ ] }, { - "mesh":21, + "mesh":26, "name":"CHEMISTRYglobe", "rotation":[ 0.70710688829422, @@ -505,9 +583,9 @@ }, { "children":[ - 24 + 29 ], - "mesh":22, + "mesh":27, "name":"Globe", "rotation":[ 0.7071068286895752, @@ -527,7 +605,7 @@ ] }, { - "mesh":23, + "mesh":28, "name":"CHEMISTRYmicroscope_4", "rotation":[ 0.7043555974960327, @@ -547,7 +625,7 @@ ] }, { - "mesh":24, + "mesh":29, "name":"CHEMISTRYsolarsystem", "rotation":[ 0.7071071863174438, @@ -567,7 +645,7 @@ ] }, { - "mesh":25, + "mesh":30, "name":"CHEMISTRYsolarsystem_1", "rotation":[ 0.7071071863174438, @@ -587,7 +665,7 @@ ] }, { - "mesh":26, + "mesh":31, "name":"CHEMISTRYsolarsystem_2", "rotation":[ 0.7071071863174438, @@ -607,7 +685,7 @@ ] }, { - "mesh":27, + "mesh":32, "name":"CHEMISTRYsolarsystem_3", "rotation":[ 0.7071071863174438, @@ -627,7 +705,7 @@ ] }, { - "mesh":28, + "mesh":33, "name":"CHEMISTRYsolarsystem_4", "rotation":[ 0.7071071863174438, @@ -647,7 +725,7 @@ ] }, { - "mesh":29, + "mesh":34, "name":"CHEMISTRYsolarsystem_5", "rotation":[ 0.7071071863174438, @@ -667,7 +745,7 @@ ] }, { - "mesh":30, + "mesh":35, "name":"CHEMISTRYsolarsystem_6", "rotation":[ 0.7071071863174438, @@ -687,7 +765,7 @@ ] }, { - "mesh":31, + "mesh":36, "name":"CHEMISTRYsolarsystem_7", "rotation":[ 0.7071071863174438, @@ -707,7 +785,7 @@ ] }, { - "mesh":32, + "mesh":37, "name":"CHEMISTRYsolarsystem_8", "rotation":[ 0.7071071863174438, @@ -728,17 +806,17 @@ }, { "children":[ - 27, - 28, - 29, - 30, - 31, 32, 33, 34, - 35 + 35, + 36, + 37, + 38, + 39, + 40 ], - "mesh":33, + "mesh":38, "name":"CHEMISTRYsolarsystem_9", "rotation":[ 0.7071068286895752, @@ -758,7 +836,7 @@ ] }, { - "mesh":34, + "mesh":39, "name":"CHEMISTRYbarrel", "rotation":[ 0.7071068286895752, @@ -778,7 +856,7 @@ ] }, { - "mesh":35, + "mesh":40, "name":"CHEMISTRYcupboard", "rotation":[ 0, @@ -798,7 +876,7 @@ ] }, { - "mesh":36, + "mesh":41, "name":"CHEMISTRYcupboard_1", "rotation":[ 0, @@ -818,7 +896,7 @@ ] }, { - "mesh":37, + "mesh":42, "name":"CHEMISTRYcupboard_2", "rotation":[ 0, @@ -838,7 +916,7 @@ ] }, { - "mesh":38, + "mesh":43, "name":"CHEMISTRYcupboard_4", "translation":[ 94.20829772949219, @@ -847,7 +925,7 @@ ] }, { - "mesh":39, + "mesh":44, "name":"CHEMISTRYcupboard_5", "rotation":[ 0, @@ -863,13 +941,13 @@ }, { "children":[ - 38, - 39, - 40, - 41, - 42 + 43, + 44, + 45, + 46, + 47 ], - "mesh":40, + "mesh":45, "name":"CHEMISTRYcupboard_3", "rotation":[ 0, @@ -889,7 +967,7 @@ ] }, { - "mesh":41, + "mesh":46, "name":"PRINCIPALOFFICEtelephone_1", "rotation":[ 0.5918484330177307, @@ -909,7 +987,7 @@ ] }, { - "mesh":42, + "mesh":47, "name":"PRINCIPALOFFICEtelephone_3", "rotation":[ -0.14492936432361603, @@ -924,7 +1002,7 @@ ] }, { - "mesh":43, + "mesh":48, "name":"TV_1", "translation":[ -5.170241832733154, @@ -933,7 +1011,7 @@ ] }, { - "mesh":44, + "mesh":49, "name":"TV_2", "translation":[ -8.890575408935547, @@ -942,7 +1020,7 @@ ] }, { - "mesh":45, + "mesh":50, "name":"TV_3", "translation":[ -9.956790924072266, @@ -951,30 +1029,7 @@ ] }, { - "extras":{ - "MaxHandle":290 - }, - "mesh":46, - "name":"Ladder", - "rotation":[ - 0, - 0, - -0.7071068286895752, - 0.7071068286895752 - ], - "scale":[ - 0.02539999969303608, - 0.02539999969303608, - 0.02539999969303608 - ], - "translation":[ - 15.72059154510498, - 0.5130188465118408, - -3.612253189086914 - ] - }, - { - "mesh":47, + "mesh":51, "name":"Backpack", "translation":[ -11.079472541809082, @@ -983,7 +1038,7 @@ ] }, { - "mesh":48, + "mesh":52, "name":"COMPUTERtable.001", "rotation":[ 0.7071068286895752, @@ -1003,7 +1058,7 @@ ] }, { - "mesh":49, + "mesh":53, "name":"Pickup_KeyCard", "rotation":[ 0.7071068286895752, @@ -1018,7 +1073,7 @@ ] }, { - "mesh":50, + "mesh":54, "name":"Pickup_Sphere", "rotation":[ 0.7071068286895752, @@ -1033,7 +1088,7 @@ ] }, { - "mesh":51, + "mesh":55, "name":"Can_Red", "translation":[ -4.633543968200684, @@ -1048,21 +1103,21 @@ { "sampler":0, "target":{ - "node":3, + "node":8, "path":"translation" } }, { "sampler":1, "target":{ - "node":3, + "node":8, "path":"rotation" } }, { "sampler":2, "target":{ - "node":3, + "node":8, "path":"scale" } } @@ -1070,19 +1125,19 @@ "name":"opendoor", "samplers":[ { - "input":265, + "input":277, "interpolation":"STEP", - "output":266 + "output":278 }, { - "input":267, + "input":279, "interpolation":"LINEAR", - "output":268 + "output":280 }, { - "input":265, + "input":277, "interpolation":"STEP", - "output":269 + "output":281 } ] } @@ -1100,32 +1155,32 @@ } }, { + "alphaMode":"MASK", "doubleSided":true, - "extras":{ - "components_meta":{} - }, - "name":"Material.005", + "name":"Material.008", "pbrMetallicRoughness":{ "baseColorFactor":[ - 0.7105499505996704, - 0.067542165517807, - 0.018439477309584618, - 1 + 0.800000011920929, + 0.800000011920929, + 0.800000011920929, + 0 ], "metallicFactor":0, "roughnessFactor":0.5 } }, { - "alphaMode":"MASK", "doubleSided":true, - "name":"Material.008", + "extras":{ + "components_meta":{} + }, + "name":"Material.005", "pbrMetallicRoughness":{ "baseColorFactor":[ - 0.800000011920929, - 0.800000011920929, - 0.800000011920929, - 0 + 0.7105499505996704, + 0.067542165517807, + 0.018439477309584618, + 1 ], "metallicFactor":0, "roughnessFactor":0.5 @@ -1782,10 +1837,6 @@ }, "bevy_components":"{\"avian3d::dynamics::rigid_body::RigidBody\": \"Static\", \"bevyrpg::level::BlenderColliderConstructor\": \"()\"}", "skein_two":[ - { - "name":"BlenderColliderConstructor", - "selected_type_path":"bevyrpg::level::BlenderColliderConstructor" - }, { "name":"RigidBody", "selected_type_path":"avian3d::dynamics::rigid_body::RigidBody", @@ -1794,6 +1845,10 @@ { "name":"NavMeshAffector", "selected_type_path":"oxidized_navigation::NavMeshAffector" + }, + { + "name":"BlenderColliderConstructor", + "selected_type_path":"bevyrpg::level::BlenderColliderConstructor" } ], "active_component_index":2, @@ -1802,10 +1857,7 @@ "bevyrpg::level::BlenderColliderConstructor":{} }, { - "avian3d::dynamics::rigid_body::RigidBody":"Static" - }, - { - "oxidized_navigation::NavMeshAffector":{} + "avian3d::dynamics::rigid_body::RigidBody":"Dynamic" } ] }, @@ -1824,43 +1876,178 @@ }, { "extras":{ - "components_meta":{ - "components":[ - { - "short_name":"NoFrustumCulling", - "long_name":"bevy_render::view::visibility::NoFrustumCulling", - "A17EECCEB83784354E6385E7B1D7FB45370655097F268492_ui":{} - } - ] - }, - "bevy_components":"{\"bevy_render::view::visibility::NoFrustumCulling\": \"()\"}", "skein_two":[ { - "name":"NoFrustumCulling", - "selected_type_path":"bevy_render::view::visibility::NoFrustumCulling" + "name":"PlayerSpawner", + "selected_type_path":"bevyrpg::player::PlayerSpawner" + }, + { + "name":"RigidBody", + "selected_type_path":"avian3d::dynamics::rigid_body::RigidBody" } ], - "active_component_index":0, + "active_component_index":1, "skein":[ { - "bevy_render::view::visibility::NoFrustumCulling":{} + "bevyrpg::player::PlayerSpawner":{} + }, + { + "avian3d::dynamics::rigid_body::RigidBody":"Static" } ] }, - "name":"Cube.008", + "name":"Cube", "primitives":[ { "attributes":{ "POSITION":4, "NORMAL":5, - "JOINTS_0":6, - "WEIGHTS_0":7 + "TEXCOORD_0":6 }, - "indices":8, + "indices":7, "material":1 } ] }, + { + "extras":{ + "skein_two":[ + { + "name":"PlayerTrigger", + "selected_type_path":"bevyrpg::player::PlayerTrigger" + } + ], + "active_component_index":0, + "skein":[ + { + "bevyrpg::player::PlayerTrigger":{} + }, + { + "bevyrpg::items::container::Container":{} + } + ] + }, + "name":"Cube.007", + "primitives":[ + { + "attributes":{ + "POSITION":8, + "NORMAL":9, + "TEXCOORD_0":10 + }, + "indices":7 + } + ] + }, + { + "extras":{ + "skein_two":[ + { + "name":"BlenderColliderConstructor", + "selected_type_path":"bevyrpg::level::BlenderColliderConstructor" + }, + { + "name":"LadderComponent", + "selected_type_path":"bevyrpg::furniture::ladder::LadderComponent" + } + ], + "active_component_index":1, + "skein":[ + { + "bevyrpg::level::BlenderColliderConstructor":{} + }, + { + "bevyrpg::furniture::ladder::LadderComponent":{} + } + ] + }, + "name":"Cube.010", + "primitives":[ + { + "attributes":{ + "POSITION":11, + "NORMAL":12, + "TEXCOORD_0":13 + }, + "indices":7, + "material":1 + } + ] + }, + { + "extras":{ + "skein_two":[], + "active_component_index":0 + }, + "name":"Mesh", + "primitives":[ + { + "attributes":{ + "POSITION":14, + "NORMAL":15, + "TEXCOORD_0":16 + }, + "indices":17 + } + ] + }, + { + "extras":{ + "skein":[ + { + "bevyrpg::items::container::Container":{} + }, + { + "bevyrpg::level::BlenderColliderConstructor":{} + } + ] + }, + "name":"Cube.011", + "primitives":[ + { + "attributes":{ + "POSITION":18, + "NORMAL":19, + "TEXCOORD_0":20 + }, + "indices":7 + } + ] + }, + { + "extras":{ + "components_meta":{ + "components":[ + { + "short_name":"NoFrustumCulling", + "long_name":"bevy_render::view::visibility::NoFrustumCulling", + "A17EECCEB83784354E6385E7B1D7FB45370655097F268492_ui":{} + } + ] + }, + "bevy_components":"{\"bevy_render::view::visibility::NoFrustumCulling\": \"()\"}", + "skein_two":[ + { + "name":"NoFrustumCulling", + "selected_type_path":"bevy_render::view::visibility::NoFrustumCulling" + } + ], + "active_component_index":0 + }, + "name":"Cube.008", + "primitives":[ + { + "attributes":{ + "POSITION":21, + "NORMAL":22, + "JOINTS_0":23, + "WEIGHTS_0":24 + }, + "indices":25, + "material":2 + } + ] + }, { "extras":{ "components_meta":{ @@ -1974,7 +2161,7 @@ "bevyrpg::furniture::door::DoorComponent":{} }, { - "avian3d::collision::collider::constructor::ColliderConstructor":"ConvexHullFromMesh" + "avian3d::collision::collider::constructor::ColliderConstructor":"ConvexDecompositionFromMesh" } ] }, @@ -1982,12 +2169,12 @@ "primitives":[ { "attributes":{ - "POSITION":10, - "NORMAL":11, - "TEXCOORD_0":12 + "POSITION":27, + "NORMAL":28, + "TEXCOORD_0":29 }, - "indices":13, - "material":2 + "indices":7, + "material":1 } ] }, @@ -1996,34 +2183,34 @@ "primitives":[ { "attributes":{ - "POSITION":14, - "NORMAL":15 + "POSITION":30, + "NORMAL":31 }, - "indices":16, + "indices":32, "material":3 }, { "attributes":{ - "POSITION":17, - "NORMAL":18 + "POSITION":33, + "NORMAL":34 }, - "indices":19, + "indices":35, "material":4 }, { "attributes":{ - "POSITION":20, - "NORMAL":21 + "POSITION":36, + "NORMAL":37 }, - "indices":22, + "indices":38, "material":5 }, { "attributes":{ - "POSITION":23, - "NORMAL":24 + "POSITION":39, + "NORMAL":40 }, - "indices":25, + "indices":41, "material":6 } ] @@ -2077,11 +2264,11 @@ "primitives":[ { "attributes":{ - "POSITION":26, - "NORMAL":27, - "TEXCOORD_0":28 + "POSITION":42, + "NORMAL":43, + "TEXCOORD_0":44 }, - "indices":29, + "indices":45, "material":7 } ] @@ -2130,11 +2317,11 @@ "primitives":[ { "attributes":{ - "POSITION":30, - "NORMAL":31, - "TEXCOORD_0":32 + "POSITION":46, + "NORMAL":47, + "TEXCOORD_0":48 }, - "indices":33, + "indices":49, "material":8 } ] @@ -2183,11 +2370,11 @@ "primitives":[ { "attributes":{ - "POSITION":34, - "NORMAL":35, - "TEXCOORD_0":36 + "POSITION":50, + "NORMAL":51, + "TEXCOORD_0":52 }, - "indices":37, + "indices":53, "material":9 } ] @@ -2211,10 +2398,10 @@ "primitives":[ { "attributes":{ - "POSITION":38, - "NORMAL":39 + "POSITION":54, + "NORMAL":55 }, - "indices":40, + "indices":56, "material":10 } ] @@ -2238,11 +2425,11 @@ "primitives":[ { "attributes":{ - "POSITION":41, - "NORMAL":42, - "TEXCOORD_0":43 + "POSITION":57, + "NORMAL":58, + "TEXCOORD_0":59 }, - "indices":44, + "indices":60, "material":11 } ] @@ -2252,11 +2439,11 @@ "primitives":[ { "attributes":{ - "POSITION":45, - "NORMAL":46, - "TEXCOORD_0":47 + "POSITION":61, + "NORMAL":62, + "TEXCOORD_0":63 }, - "indices":48, + "indices":64, "material":12 } ] @@ -2287,11 +2474,11 @@ "primitives":[ { "attributes":{ - "POSITION":49, - "NORMAL":50, - "TEXCOORD_0":51 + "POSITION":65, + "NORMAL":66, + "TEXCOORD_0":67 }, - "indices":52, + "indices":68, "material":13 } ] @@ -2315,11 +2502,11 @@ "primitives":[ { "attributes":{ - "POSITION":53, - "NORMAL":54, - "TEXCOORD_0":55 + "POSITION":69, + "NORMAL":70, + "TEXCOORD_0":71 }, - "indices":56, + "indices":72, "material":14 } ] @@ -2329,10 +2516,10 @@ "primitives":[ { "attributes":{ - "POSITION":57, - "NORMAL":58 + "POSITION":73, + "NORMAL":74 }, - "indices":59 + "indices":75 } ] }, @@ -2355,26 +2542,26 @@ "primitives":[ { "attributes":{ - "POSITION":60, - "NORMAL":61 + "POSITION":76, + "NORMAL":77 }, - "indices":62, + "indices":78, "material":15 }, { "attributes":{ - "POSITION":63, - "NORMAL":64 + "POSITION":79, + "NORMAL":80 }, - "indices":65, + "indices":81, "material":16 }, { "attributes":{ - "POSITION":66, - "NORMAL":67 + "POSITION":82, + "NORMAL":83 }, - "indices":68, + "indices":84, "material":17 } ] @@ -2398,26 +2585,26 @@ "primitives":[ { "attributes":{ - "POSITION":69, - "NORMAL":70 + "POSITION":85, + "NORMAL":86 }, - "indices":71, + "indices":87, "material":18 }, { "attributes":{ - "POSITION":72, - "NORMAL":73 + "POSITION":88, + "NORMAL":89 }, - "indices":65, + "indices":81, "material":19 }, { "attributes":{ - "POSITION":74, - "NORMAL":75 + "POSITION":90, + "NORMAL":91 }, - "indices":76, + "indices":92, "material":20 } ] @@ -2427,11 +2614,11 @@ "primitives":[ { "attributes":{ - "POSITION":77, - "NORMAL":78, - "TEXCOORD_0":79 + "POSITION":93, + "NORMAL":94, + "TEXCOORD_0":95 }, - "indices":80, + "indices":96, "material":21 } ] @@ -2462,11 +2649,11 @@ "primitives":[ { "attributes":{ - "POSITION":81, - "NORMAL":82, - "TEXCOORD_0":83 + "POSITION":97, + "NORMAL":98, + "TEXCOORD_0":99 }, - "indices":84, + "indices":100, "material":21 } ] @@ -2476,11 +2663,11 @@ "primitives":[ { "attributes":{ - "POSITION":85, - "NORMAL":86, - "TEXCOORD_0":87 + "POSITION":101, + "NORMAL":102, + "TEXCOORD_0":103 }, - "indices":88, + "indices":104, "material":22 } ] @@ -2504,20 +2691,20 @@ "primitives":[ { "attributes":{ - "POSITION":89, - "NORMAL":90, - "TEXCOORD_0":91 + "POSITION":105, + "NORMAL":106, + "TEXCOORD_0":107 }, - "indices":92, + "indices":108, "material":23 }, { "attributes":{ - "POSITION":93, - "NORMAL":94, - "TEXCOORD_0":95 + "POSITION":109, + "NORMAL":110, + "TEXCOORD_0":111 }, - "indices":96, + "indices":112, "material":24 } ] @@ -2541,11 +2728,11 @@ "primitives":[ { "attributes":{ - "POSITION":97, - "NORMAL":98, - "TEXCOORD_0":99 + "POSITION":113, + "NORMAL":114, + "TEXCOORD_0":115 }, - "indices":100, + "indices":116, "material":25 } ] @@ -2569,11 +2756,11 @@ "primitives":[ { "attributes":{ - "POSITION":101, - "NORMAL":102, - "TEXCOORD_0":103 + "POSITION":117, + "NORMAL":118, + "TEXCOORD_0":119 }, - "indices":104, + "indices":120, "material":26 } ] @@ -2583,11 +2770,11 @@ "primitives":[ { "attributes":{ - "POSITION":105, - "NORMAL":106, - "TEXCOORD_0":107 + "POSITION":121, + "NORMAL":122, + "TEXCOORD_0":123 }, - "indices":108, + "indices":124, "material":27 } ] @@ -2611,11 +2798,11 @@ "primitives":[ { "attributes":{ - "POSITION":109, - "NORMAL":110, - "TEXCOORD_0":111 + "POSITION":125, + "NORMAL":126, + "TEXCOORD_0":127 }, - "indices":112, + "indices":128, "material":27 } ] @@ -2625,11 +2812,11 @@ "primitives":[ { "attributes":{ - "POSITION":113, - "NORMAL":114, - "TEXCOORD_0":115 + "POSITION":129, + "NORMAL":130, + "TEXCOORD_0":131 }, - "indices":116, + "indices":132, "material":28 } ] @@ -2639,11 +2826,11 @@ "primitives":[ { "attributes":{ - "POSITION":117, - "NORMAL":118, - "TEXCOORD_0":119 + "POSITION":133, + "NORMAL":134, + "TEXCOORD_0":135 }, - "indices":120, + "indices":136, "material":29 } ] @@ -2653,11 +2840,11 @@ "primitives":[ { "attributes":{ - "POSITION":121, - "NORMAL":122, - "TEXCOORD_0":123 + "POSITION":137, + "NORMAL":138, + "TEXCOORD_0":139 }, - "indices":124, + "indices":140, "material":29 } ] @@ -2667,11 +2854,11 @@ "primitives":[ { "attributes":{ - "POSITION":125, - "NORMAL":126, - "TEXCOORD_0":127 + "POSITION":141, + "NORMAL":142, + "TEXCOORD_0":143 }, - "indices":128, + "indices":144, "material":29 } ] @@ -2681,11 +2868,11 @@ "primitives":[ { "attributes":{ - "POSITION":129, - "NORMAL":130, - "TEXCOORD_0":131 + "POSITION":145, + "NORMAL":146, + "TEXCOORD_0":147 }, - "indices":132, + "indices":148, "material":29 } ] @@ -2695,11 +2882,11 @@ "primitives":[ { "attributes":{ - "POSITION":133, - "NORMAL":134, - "TEXCOORD_0":135 + "POSITION":149, + "NORMAL":150, + "TEXCOORD_0":151 }, - "indices":136, + "indices":152, "material":29 } ] @@ -2709,11 +2896,11 @@ "primitives":[ { "attributes":{ - "POSITION":137, - "NORMAL":138, - "TEXCOORD_0":139 + "POSITION":153, + "NORMAL":154, + "TEXCOORD_0":155 }, - "indices":140, + "indices":156, "material":29 } ] @@ -2723,11 +2910,11 @@ "primitives":[ { "attributes":{ - "POSITION":141, - "NORMAL":142, - "TEXCOORD_0":143 + "POSITION":157, + "NORMAL":158, + "TEXCOORD_0":159 }, - "indices":144, + "indices":160, "material":29 } ] @@ -2737,11 +2924,11 @@ "primitives":[ { "attributes":{ - "POSITION":145, - "NORMAL":146, - "TEXCOORD_0":147 + "POSITION":161, + "NORMAL":162, + "TEXCOORD_0":163 }, - "indices":148, + "indices":164, "material":29 } ] @@ -2751,11 +2938,11 @@ "primitives":[ { "attributes":{ - "POSITION":149, - "NORMAL":150, - "TEXCOORD_0":151 + "POSITION":165, + "NORMAL":166, + "TEXCOORD_0":167 }, - "indices":152, + "indices":168, "material":29 } ] @@ -2765,11 +2952,11 @@ "primitives":[ { "attributes":{ - "POSITION":153, - "NORMAL":154, - "TEXCOORD_0":155 + "POSITION":169, + "NORMAL":170, + "TEXCOORD_0":171 }, - "indices":156, + "indices":172, "material":29 } ] @@ -2793,11 +2980,11 @@ "primitives":[ { "attributes":{ - "POSITION":157, - "NORMAL":158, - "TEXCOORD_0":159 + "POSITION":173, + "NORMAL":174, + "TEXCOORD_0":175 }, - "indices":160, + "indices":176, "material":30 } ] @@ -2807,11 +2994,11 @@ "primitives":[ { "attributes":{ - "POSITION":161, - "NORMAL":162, - "TEXCOORD_0":163 + "POSITION":177, + "NORMAL":178, + "TEXCOORD_0":179 }, - "indices":164, + "indices":180, "material":31 } ] @@ -2821,11 +3008,11 @@ "primitives":[ { "attributes":{ - "POSITION":165, - "NORMAL":166, - "TEXCOORD_0":167 + "POSITION":181, + "NORMAL":182, + "TEXCOORD_0":183 }, - "indices":164, + "indices":180, "material":31 } ] @@ -2835,11 +3022,11 @@ "primitives":[ { "attributes":{ - "POSITION":168, - "NORMAL":169, - "TEXCOORD_0":170 + "POSITION":184, + "NORMAL":185, + "TEXCOORD_0":186 }, - "indices":164, + "indices":180, "material":31 } ] @@ -2849,20 +3036,20 @@ "primitives":[ { "attributes":{ - "POSITION":171, - "NORMAL":172, - "TEXCOORD_0":173 + "POSITION":187, + "NORMAL":188, + "TEXCOORD_0":189 }, - "indices":174, + "indices":190, "material":31 }, { "attributes":{ - "POSITION":175, - "NORMAL":176, - "TEXCOORD_0":177 + "POSITION":191, + "NORMAL":192, + "TEXCOORD_0":193 }, - "indices":178, + "indices":194, "material":32 } ] @@ -2872,20 +3059,20 @@ "primitives":[ { "attributes":{ - "POSITION":179, - "NORMAL":180, - "TEXCOORD_0":181 + "POSITION":195, + "NORMAL":196, + "TEXCOORD_0":197 }, - "indices":174, + "indices":190, "material":31 }, { "attributes":{ - "POSITION":182, - "NORMAL":183, - "TEXCOORD_0":184 + "POSITION":198, + "NORMAL":199, + "TEXCOORD_0":200 }, - "indices":178, + "indices":194, "material":32 } ] @@ -2909,11 +3096,11 @@ "primitives":[ { "attributes":{ - "POSITION":185, - "NORMAL":186, - "TEXCOORD_0":187 + "POSITION":201, + "NORMAL":202, + "TEXCOORD_0":203 }, - "indices":188, + "indices":204, "material":31 } ] @@ -2937,11 +3124,11 @@ "primitives":[ { "attributes":{ - "POSITION":189, - "NORMAL":190, - "TEXCOORD_0":191 + "POSITION":205, + "NORMAL":206, + "TEXCOORD_0":207 }, - "indices":192, + "indices":208, "material":33 } ] @@ -2951,11 +3138,11 @@ "primitives":[ { "attributes":{ - "POSITION":193, - "NORMAL":194, - "TEXCOORD_0":195 + "POSITION":209, + "NORMAL":210, + "TEXCOORD_0":211 }, - "indices":196, + "indices":212, "material":33 } ] @@ -2979,38 +3166,38 @@ "primitives":[ { "attributes":{ - "POSITION":197, - "NORMAL":198, - "TEXCOORD_0":199 + "POSITION":213, + "NORMAL":214, + "TEXCOORD_0":215 }, - "indices":200, + "indices":216, "material":34 }, { "attributes":{ - "POSITION":201, - "NORMAL":202, - "TEXCOORD_0":203 + "POSITION":217, + "NORMAL":218, + "TEXCOORD_0":219 }, - "indices":204, + "indices":220, "material":35 }, { "attributes":{ - "POSITION":205, - "NORMAL":206, - "TEXCOORD_0":207 + "POSITION":221, + "NORMAL":222, + "TEXCOORD_0":223 }, - "indices":208, + "indices":224, "material":36 }, { "attributes":{ - "POSITION":209, - "NORMAL":210, - "TEXCOORD_0":211 + "POSITION":225, + "NORMAL":226, + "TEXCOORD_0":227 }, - "indices":212, + "indices":228, "material":37 } ] @@ -3034,38 +3221,38 @@ "primitives":[ { "attributes":{ - "POSITION":213, - "NORMAL":214, - "TEXCOORD_0":215 + "POSITION":229, + "NORMAL":230, + "TEXCOORD_0":231 }, - "indices":200, + "indices":216, "material":38 }, { "attributes":{ - "POSITION":216, - "NORMAL":217, - "TEXCOORD_0":218 + "POSITION":232, + "NORMAL":233, + "TEXCOORD_0":234 }, - "indices":204, + "indices":220, "material":39 }, { "attributes":{ - "POSITION":219, - "NORMAL":220, - "TEXCOORD_0":221 + "POSITION":235, + "NORMAL":236, + "TEXCOORD_0":237 }, - "indices":208, + "indices":224, "material":40 }, { "attributes":{ - "POSITION":222, - "NORMAL":223, - "TEXCOORD_0":224 + "POSITION":238, + "NORMAL":239, + "TEXCOORD_0":240 }, - "indices":225, + "indices":241, "material":41 } ] @@ -3089,69 +3276,42 @@ "primitives":[ { "attributes":{ - "POSITION":226, - "NORMAL":227, - "TEXCOORD_0":228 + "POSITION":242, + "NORMAL":243, + "TEXCOORD_0":244 }, - "indices":229, + "indices":245, "material":42 }, { "attributes":{ - "POSITION":230, - "NORMAL":231, - "TEXCOORD_0":232 + "POSITION":246, + "NORMAL":247, + "TEXCOORD_0":248 }, - "indices":233, + "indices":249, "material":43 }, { "attributes":{ - "POSITION":234, - "NORMAL":235, - "TEXCOORD_0":236 + "POSITION":250, + "NORMAL":251, + "TEXCOORD_0":252 }, - "indices":237, + "indices":253, "material":44 }, { "attributes":{ - "POSITION":238, - "NORMAL":239, - "TEXCOORD_0":240 + "POSITION":254, + "NORMAL":255, + "TEXCOORD_0":256 }, - "indices":241, + "indices":257, "material":45 } ] }, - { - "extras":{ - "skein_two":[ - { - "name":"BlenderColliderConstructor", - "selected_type_path":"bevyrpg::level::BlenderColliderConstructor" - } - ], - "active_component_index":0, - "skein":[ - { - "bevyrpg::level::BlenderColliderConstructor":{} - } - ] - }, - "name":"Mesh", - "primitives":[ - { - "attributes":{ - "POSITION":242, - "NORMAL":243, - "TEXCOORD_0":244 - }, - "indices":245 - } - ] - }, { "extras":{ "skein_two":[ @@ -3171,11 +3331,11 @@ "primitives":[ { "attributes":{ - "POSITION":246, - "NORMAL":247, - "TEXCOORD_0":248 + "POSITION":258, + "NORMAL":259, + "TEXCOORD_0":260 }, - "indices":249, + "indices":261, "material":46 } ] @@ -3199,11 +3359,11 @@ "primitives":[ { "attributes":{ - "POSITION":250, - "NORMAL":251, - "TEXCOORD_0":252 + "POSITION":262, + "NORMAL":263, + "TEXCOORD_0":264 }, - "indices":104, + "indices":120, "material":26 } ] @@ -3227,11 +3387,11 @@ "primitives":[ { "attributes":{ - "POSITION":253, - "NORMAL":254, - "TEXCOORD_0":255 + "POSITION":265, + "NORMAL":266, + "TEXCOORD_0":267 }, - "indices":256, + "indices":268, "material":47 } ] @@ -3255,11 +3415,11 @@ "primitives":[ { "attributes":{ - "POSITION":257, - "NORMAL":258, - "TEXCOORD_0":259 + "POSITION":269, + "NORMAL":270, + "TEXCOORD_0":271 }, - "indices":260, + "indices":272, "material":48 } ] @@ -3283,11 +3443,11 @@ "primitives":[ { "attributes":{ - "POSITION":261, - "NORMAL":262, - "TEXCOORD_0":263 + "POSITION":273, + "NORMAL":274, + "TEXCOORD_0":275 }, - "indices":264, + "indices":276, "material":49 } ] @@ -3450,9 +3610,9 @@ ], "skins":[ { - "inverseBindMatrices":9, + "inverseBindMatrices":26, "joints":[ - 3 + 8 ], "name":"Door" } @@ -3495,6 +3655,158 @@ { "bufferView":4, "componentType":5126, + "count":24, + "max":[ + 1, + 1, + 1 + ], + "min":[ + -1, + -1, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":5, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":6, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":7, + "componentType":5123, + "count":36, + "type":"SCALAR" + }, + { + "bufferView":8, + "componentType":5126, + "count":24, + "max":[ + 1, + 1, + 1 + ], + "min":[ + -1, + -1, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":9, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":10, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":11, + "componentType":5126, + "count":24, + "max":[ + 1, + 1, + 1 + ], + "min":[ + -1, + -1, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":12, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":13, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":14, + "componentType":5126, + "count":264, + "max":[ + 20.19342803955078, + 43.73445129394531, + 5.285484313964844 + ], + "min":[ + -118.47435760498047, + -2.4795289039611816, + -5.299522399902344 + ], + "type":"VEC3" + }, + { + "bufferView":15, + "componentType":5126, + "count":264, + "type":"VEC3" + }, + { + "bufferView":16, + "componentType":5126, + "count":264, + "type":"VEC2" + }, + { + "bufferView":17, + "componentType":5123, + "count":648, + "type":"SCALAR" + }, + { + "bufferView":18, + "componentType":5126, + "count":24, + "max":[ + 1, + 1, + 1 + ], + "min":[ + -1, + -1, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":19, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":20, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":21, + "componentType":5126, "count":328, "max":[ 6.7413153648376465, @@ -3503,43 +3815,43 @@ ], "min":[ 4.7413153648376465, - -0.0017245078925043344, - -0.6983073353767395 + -0.0017244815826416016, + -0.6983073949813843 ], "type":"VEC3" }, { - "bufferView":5, + "bufferView":22, "componentType":5126, "count":328, "type":"VEC3" }, { - "bufferView":6, + "bufferView":23, "componentType":5121, "count":328, "type":"VEC4" }, { - "bufferView":7, + "bufferView":24, "componentType":5126, "count":328, "type":"VEC4" }, { - "bufferView":8, + "bufferView":25, "componentType":5123, "count":552, "type":"SCALAR" }, { - "bufferView":9, + "bufferView":26, "componentType":5126, "count":1, "type":"MAT4" }, { - "bufferView":10, + "bufferView":27, "componentType":5126, "count":24, "max":[ @@ -3555,25 +3867,19 @@ "type":"VEC3" }, { - "bufferView":11, + "bufferView":28, "componentType":5126, "count":24, "type":"VEC3" }, { - "bufferView":12, + "bufferView":29, "componentType":5126, "count":24, "type":"VEC2" }, { - "bufferView":13, - "componentType":5123, - "count":36, - "type":"SCALAR" - }, - { - "bufferView":14, + "bufferView":30, "componentType":5126, "count":84, "max":[ @@ -3589,19 +3895,19 @@ "type":"VEC3" }, { - "bufferView":15, + "bufferView":31, "componentType":5126, "count":84, "type":"VEC3" }, { - "bufferView":16, + "bufferView":32, "componentType":5123, "count":138, "type":"SCALAR" }, { - "bufferView":17, + "bufferView":33, "componentType":5126, "count":108, "max":[ @@ -3617,19 +3923,19 @@ "type":"VEC3" }, { - "bufferView":18, + "bufferView":34, "componentType":5126, "count":108, "type":"VEC3" }, { - "bufferView":19, + "bufferView":35, "componentType":5123, "count":204, "type":"SCALAR" }, { - "bufferView":20, + "bufferView":36, "componentType":5126, "count":528, "max":[ @@ -3645,19 +3951,19 @@ "type":"VEC3" }, { - "bufferView":21, + "bufferView":37, "componentType":5126, "count":528, "type":"VEC3" }, { - "bufferView":22, + "bufferView":38, "componentType":5123, "count":924, "type":"SCALAR" }, { - "bufferView":23, + "bufferView":39, "componentType":5126, "count":30, "max":[ @@ -3673,19 +3979,19 @@ "type":"VEC3" }, { - "bufferView":24, + "bufferView":40, "componentType":5126, "count":30, "type":"VEC3" }, { - "bufferView":25, + "bufferView":41, "componentType":5123, "count":66, "type":"SCALAR" }, { - "bufferView":26, + "bufferView":42, "componentType":5126, "count":102, "max":[ @@ -3701,25 +4007,25 @@ "type":"VEC3" }, { - "bufferView":27, + "bufferView":43, "componentType":5126, "count":102, "type":"VEC3" }, { - "bufferView":28, + "bufferView":44, "componentType":5126, "count":102, "type":"VEC2" }, { - "bufferView":29, + "bufferView":45, "componentType":5123, "count":342, "type":"SCALAR" }, { - "bufferView":30, + "bufferView":46, "componentType":5126, "count":193, "max":[ @@ -3735,25 +4041,25 @@ "type":"VEC3" }, { - "bufferView":31, + "bufferView":47, "componentType":5126, "count":193, "type":"VEC3" }, { - "bufferView":32, + "bufferView":48, "componentType":5126, "count":193, "type":"VEC2" }, { - "bufferView":33, + "bufferView":49, "componentType":5123, "count":732, "type":"SCALAR" }, { - "bufferView":34, + "bufferView":50, "componentType":5126, "count":24, "max":[ @@ -3769,25 +4075,25 @@ "type":"VEC3" }, { - "bufferView":35, + "bufferView":51, "componentType":5126, "count":24, "type":"VEC3" }, { - "bufferView":36, + "bufferView":52, "componentType":5126, "count":24, "type":"VEC2" }, { - "bufferView":37, + "bufferView":53, "componentType":5123, "count":36, "type":"SCALAR" }, { - "bufferView":38, + "bufferView":54, "componentType":5126, "count":288, "max":[ @@ -3803,19 +4109,19 @@ "type":"VEC3" }, { - "bufferView":39, + "bufferView":55, "componentType":5126, "count":288, "type":"VEC3" }, { - "bufferView":40, + "bufferView":56, "componentType":5123, "count":1068, "type":"SCALAR" }, { - "bufferView":41, + "bufferView":57, "componentType":5126, "count":970, "max":[ @@ -3831,25 +4137,25 @@ "type":"VEC3" }, { - "bufferView":42, + "bufferView":58, "componentType":5126, "count":970, "type":"VEC3" }, { - "bufferView":43, + "bufferView":59, "componentType":5126, "count":970, "type":"VEC2" }, { - "bufferView":44, + "bufferView":60, "componentType":5123, "count":2052, "type":"SCALAR" }, { - "bufferView":45, + "bufferView":61, "componentType":5126, "count":9338, "max":[ @@ -3865,25 +4171,25 @@ "type":"VEC3" }, { - "bufferView":46, + "bufferView":62, "componentType":5126, "count":9338, "type":"VEC3" }, { - "bufferView":47, + "bufferView":63, "componentType":5126, "count":9338, "type":"VEC2" }, { - "bufferView":48, + "bufferView":64, "componentType":5123, "count":24096, "type":"SCALAR" }, { - "bufferView":49, + "bufferView":65, "componentType":5126, "count":528, "max":[ @@ -3899,25 +4205,25 @@ "type":"VEC3" }, { - "bufferView":50, + "bufferView":66, "componentType":5126, "count":528, "type":"VEC3" }, { - "bufferView":51, + "bufferView":67, "componentType":5126, "count":528, "type":"VEC2" }, { - "bufferView":52, + "bufferView":68, "componentType":5123, "count":864, "type":"SCALAR" }, { - "bufferView":53, + "bufferView":69, "componentType":5126, "count":831, "max":[ @@ -3933,25 +4239,25 @@ "type":"VEC3" }, { - "bufferView":54, + "bufferView":70, "componentType":5126, "count":831, "type":"VEC3" }, { - "bufferView":55, + "bufferView":71, "componentType":5126, "count":831, "type":"VEC2" }, { - "bufferView":56, + "bufferView":72, "componentType":5123, "count":1443, "type":"SCALAR" }, { - "bufferView":57, + "bufferView":73, "componentType":5126, "count":398, "max":[ @@ -3967,19 +4273,19 @@ "type":"VEC3" }, { - "bufferView":58, + "bufferView":74, "componentType":5126, "count":398, "type":"VEC3" }, { - "bufferView":59, + "bufferView":75, "componentType":5123, "count":984, "type":"SCALAR" }, { - "bufferView":60, + "bufferView":76, "componentType":5126, "count":428, "max":[ @@ -3995,19 +4301,19 @@ "type":"VEC3" }, { - "bufferView":61, + "bufferView":77, "componentType":5126, "count":428, "type":"VEC3" }, { - "bufferView":62, + "bufferView":78, "componentType":5123, "count":1326, "type":"SCALAR" }, { - "bufferView":63, + "bufferView":79, "componentType":5126, "count":80, "max":[ @@ -4023,19 +4329,19 @@ "type":"VEC3" }, { - "bufferView":64, + "bufferView":80, "componentType":5126, "count":80, "type":"VEC3" }, { - "bufferView":65, + "bufferView":81, "componentType":5123, "count":234, "type":"SCALAR" }, { - "bufferView":66, + "bufferView":82, "componentType":5126, "count":8, "max":[ @@ -4051,19 +4357,19 @@ "type":"VEC3" }, { - "bufferView":67, + "bufferView":83, "componentType":5126, "count":8, "type":"VEC3" }, { - "bufferView":68, + "bufferView":84, "componentType":5123, "count":18, "type":"SCALAR" }, { - "bufferView":69, + "bufferView":85, "componentType":5126, "count":600, "max":[ @@ -4079,19 +4385,19 @@ "type":"VEC3" }, { - "bufferView":70, + "bufferView":86, "componentType":5126, "count":600, "type":"VEC3" }, { - "bufferView":71, + "bufferView":87, "componentType":5123, "count":1704, "type":"SCALAR" }, { - "bufferView":72, + "bufferView":88, "componentType":5126, "count":80, "max":[ @@ -4107,13 +4413,13 @@ "type":"VEC3" }, { - "bufferView":73, + "bufferView":89, "componentType":5126, "count":80, "type":"VEC3" }, { - "bufferView":74, + "bufferView":90, "componentType":5126, "count":24, "max":[ @@ -4129,19 +4435,19 @@ "type":"VEC3" }, { - "bufferView":75, + "bufferView":91, "componentType":5126, "count":24, "type":"VEC3" }, { - "bufferView":76, + "bufferView":92, "componentType":5123, "count":54, "type":"SCALAR" }, { - "bufferView":77, + "bufferView":93, "componentType":5126, "count":6942, "max":[ @@ -4157,25 +4463,25 @@ "type":"VEC3" }, { - "bufferView":78, + "bufferView":94, "componentType":5126, "count":6942, "type":"VEC3" }, { - "bufferView":79, + "bufferView":95, "componentType":5126, "count":6942, "type":"VEC2" }, { - "bufferView":80, + "bufferView":96, "componentType":5123, "count":18000, "type":"SCALAR" }, { - "bufferView":81, + "bufferView":97, "componentType":5126, "count":2289, "max":[ @@ -4191,25 +4497,25 @@ "type":"VEC3" }, { - "bufferView":82, + "bufferView":98, "componentType":5126, "count":2289, "type":"VEC3" }, { - "bufferView":83, + "bufferView":99, "componentType":5126, "count":2289, "type":"VEC2" }, { - "bufferView":84, + "bufferView":100, "componentType":5123, "count":7692, "type":"SCALAR" }, { - "bufferView":85, + "bufferView":101, "componentType":5126, "count":1806, "max":[ @@ -4225,25 +4531,25 @@ "type":"VEC3" }, { - "bufferView":86, + "bufferView":102, "componentType":5126, "count":1806, "type":"VEC3" }, { - "bufferView":87, + "bufferView":103, "componentType":5126, "count":1806, "type":"VEC2" }, { - "bufferView":88, + "bufferView":104, "componentType":5123, "count":5670, "type":"SCALAR" }, { - "bufferView":89, + "bufferView":105, "componentType":5126, "count":7284, "max":[ @@ -4259,25 +4565,25 @@ "type":"VEC3" }, { - "bufferView":90, + "bufferView":106, "componentType":5126, "count":7284, "type":"VEC3" }, { - "bufferView":91, + "bufferView":107, "componentType":5126, "count":7284, "type":"VEC2" }, { - "bufferView":92, + "bufferView":108, "componentType":5123, "count":19392, "type":"SCALAR" }, { - "bufferView":93, + "bufferView":109, "componentType":5126, "count":116, "max":[ @@ -4293,25 +4599,25 @@ "type":"VEC3" }, { - "bufferView":94, + "bufferView":110, "componentType":5126, "count":116, "type":"VEC3" }, { - "bufferView":95, + "bufferView":111, "componentType":5126, "count":116, "type":"VEC2" }, { - "bufferView":96, + "bufferView":112, "componentType":5123, "count":216, "type":"SCALAR" }, { - "bufferView":97, + "bufferView":113, "componentType":5126, "count":12064, "max":[ @@ -4327,25 +4633,25 @@ "type":"VEC3" }, { - "bufferView":98, + "bufferView":114, "componentType":5126, "count":12064, "type":"VEC3" }, { - "bufferView":99, + "bufferView":115, "componentType":5126, "count":12064, "type":"VEC2" }, { - "bufferView":100, + "bufferView":116, "componentType":5123, "count":35706, "type":"SCALAR" }, { - "bufferView":101, + "bufferView":117, "componentType":5126, "count":580, "max":[ @@ -4361,25 +4667,25 @@ "type":"VEC3" }, { - "bufferView":102, + "bufferView":118, "componentType":5126, "count":580, "type":"VEC3" }, { - "bufferView":103, + "bufferView":119, "componentType":5126, "count":580, "type":"VEC2" }, { - "bufferView":104, + "bufferView":120, "componentType":5123, "count":1932, "type":"SCALAR" }, { - "bufferView":105, + "bufferView":121, "componentType":5126, "count":714, "max":[ @@ -4395,25 +4701,25 @@ "type":"VEC3" }, { - "bufferView":106, + "bufferView":122, "componentType":5126, "count":714, "type":"VEC3" }, { - "bufferView":107, + "bufferView":123, "componentType":5126, "count":714, "type":"VEC2" }, { - "bufferView":108, + "bufferView":124, "componentType":5123, "count":2880, "type":"SCALAR" }, { - "bufferView":109, + "bufferView":125, "componentType":5126, "count":1511, "max":[ @@ -4429,25 +4735,25 @@ "type":"VEC3" }, { - "bufferView":110, + "bufferView":126, "componentType":5126, "count":1511, "type":"VEC3" }, { - "bufferView":111, + "bufferView":127, "componentType":5126, "count":1511, "type":"VEC2" }, { - "bufferView":112, + "bufferView":128, "componentType":5123, "count":4968, "type":"SCALAR" }, { - "bufferView":113, + "bufferView":129, "componentType":5126, "count":8968, "max":[ @@ -4463,25 +4769,25 @@ "type":"VEC3" }, { - "bufferView":114, + "bufferView":130, "componentType":5126, "count":8968, "type":"VEC3" }, { - "bufferView":115, + "bufferView":131, "componentType":5126, "count":8968, "type":"VEC2" }, { - "bufferView":116, + "bufferView":132, "componentType":5123, "count":28800, "type":"SCALAR" }, { - "bufferView":117, + "bufferView":133, "componentType":5126, "count":844, "max":[ @@ -4497,25 +4803,25 @@ "type":"VEC3" }, { - "bufferView":118, + "bufferView":134, "componentType":5126, "count":844, "type":"VEC3" }, { - "bufferView":119, + "bufferView":135, "componentType":5126, "count":844, "type":"VEC2" }, { - "bufferView":120, + "bufferView":136, "componentType":5123, "count":3252, "type":"SCALAR" }, { - "bufferView":121, + "bufferView":137, "componentType":5126, "count":1198, "max":[ @@ -4531,25 +4837,25 @@ "type":"VEC3" }, { - "bufferView":122, + "bufferView":138, "componentType":5126, "count":1198, "type":"VEC3" }, { - "bufferView":123, + "bufferView":139, "componentType":5126, "count":1198, "type":"VEC2" }, { - "bufferView":124, + "bufferView":140, "componentType":5123, "count":3252, "type":"SCALAR" }, { - "bufferView":125, + "bufferView":141, "componentType":5126, "count":1502, "max":[ @@ -4565,25 +4871,25 @@ "type":"VEC3" }, { - "bufferView":126, + "bufferView":142, "componentType":5126, "count":1502, "type":"VEC3" }, { - "bufferView":127, + "bufferView":143, "componentType":5126, "count":1502, "type":"VEC2" }, { - "bufferView":128, + "bufferView":144, "componentType":5123, "count":3252, "type":"SCALAR" }, { - "bufferView":129, + "bufferView":145, "componentType":5126, "count":1569, "max":[ @@ -4599,25 +4905,25 @@ "type":"VEC3" }, { - "bufferView":130, + "bufferView":146, "componentType":5126, "count":1569, "type":"VEC3" }, { - "bufferView":131, + "bufferView":147, "componentType":5126, "count":1569, "type":"VEC2" }, { - "bufferView":132, + "bufferView":148, "componentType":5123, "count":3252, "type":"SCALAR" }, { - "bufferView":133, + "bufferView":149, "componentType":5126, "count":1766, "max":[ @@ -4633,25 +4939,25 @@ "type":"VEC3" }, { - "bufferView":134, + "bufferView":150, "componentType":5126, "count":1766, "type":"VEC3" }, { - "bufferView":135, + "bufferView":151, "componentType":5126, "count":1766, "type":"VEC2" }, { - "bufferView":136, + "bufferView":152, "componentType":5123, "count":3252, "type":"SCALAR" }, { - "bufferView":137, + "bufferView":153, "componentType":5126, "count":1840, "max":[ @@ -4667,25 +4973,25 @@ "type":"VEC3" }, { - "bufferView":138, + "bufferView":154, "componentType":5126, "count":1840, "type":"VEC3" }, { - "bufferView":139, + "bufferView":155, "componentType":5126, "count":1840, "type":"VEC2" }, { - "bufferView":140, + "bufferView":156, "componentType":5123, "count":3252, "type":"SCALAR" }, { - "bufferView":141, + "bufferView":157, "componentType":5126, "count":2323, "max":[ @@ -4701,25 +5007,25 @@ "type":"VEC3" }, { - "bufferView":142, + "bufferView":158, "componentType":5126, "count":2323, "type":"VEC3" }, { - "bufferView":143, + "bufferView":159, "componentType":5126, "count":2323, "type":"VEC2" }, { - "bufferView":144, + "bufferView":160, "componentType":5123, "count":4788, "type":"SCALAR" }, { - "bufferView":145, + "bufferView":161, "componentType":5126, "count":1686, "max":[ @@ -4735,25 +5041,25 @@ "type":"VEC3" }, { - "bufferView":146, + "bufferView":162, "componentType":5126, "count":1686, "type":"VEC3" }, { - "bufferView":147, + "bufferView":163, "componentType":5126, "count":1686, "type":"VEC2" }, { - "bufferView":148, + "bufferView":164, "componentType":5123, "count":3252, "type":"SCALAR" }, { - "bufferView":149, + "bufferView":165, "componentType":5126, "count":1763, "max":[ @@ -4769,25 +5075,25 @@ "type":"VEC3" }, { - "bufferView":150, + "bufferView":166, "componentType":5126, "count":1763, "type":"VEC3" }, { - "bufferView":151, + "bufferView":167, "componentType":5126, "count":1763, "type":"VEC2" }, { - "bufferView":152, + "bufferView":168, "componentType":5123, "count":3252, "type":"SCALAR" }, { - "bufferView":153, + "bufferView":169, "componentType":5126, "count":711, "max":[ @@ -4803,25 +5109,25 @@ "type":"VEC3" }, { - "bufferView":154, + "bufferView":170, "componentType":5126, "count":711, "type":"VEC3" }, { - "bufferView":155, + "bufferView":171, "componentType":5126, "count":711, "type":"VEC2" }, { - "bufferView":156, + "bufferView":172, "componentType":5123, "count":1380, "type":"SCALAR" }, { - "bufferView":157, + "bufferView":173, "componentType":5126, "count":1623, "max":[ @@ -4837,25 +5143,25 @@ "type":"VEC3" }, { - "bufferView":158, + "bufferView":174, "componentType":5126, "count":1623, "type":"VEC3" }, { - "bufferView":159, + "bufferView":175, "componentType":5126, "count":1623, "type":"VEC2" }, { - "bufferView":160, + "bufferView":176, "componentType":5123, "count":4800, "type":"SCALAR" }, { - "bufferView":161, + "bufferView":177, "componentType":5126, "count":612, "max":[ @@ -4871,25 +5177,25 @@ "type":"VEC3" }, { - "bufferView":162, + "bufferView":178, "componentType":5126, "count":612, "type":"VEC3" }, { - "bufferView":163, + "bufferView":179, "componentType":5126, "count":612, "type":"VEC2" }, { - "bufferView":164, + "bufferView":180, "componentType":5123, "count":2478, "type":"SCALAR" }, { - "bufferView":165, + "bufferView":181, "componentType":5126, "count":612, "max":[ @@ -4905,19 +5211,19 @@ "type":"VEC3" }, { - "bufferView":166, + "bufferView":182, "componentType":5126, "count":612, "type":"VEC3" }, { - "bufferView":167, + "bufferView":183, "componentType":5126, "count":612, "type":"VEC2" }, { - "bufferView":168, + "bufferView":184, "componentType":5126, "count":612, "max":[ @@ -4933,19 +5239,19 @@ "type":"VEC3" }, { - "bufferView":169, + "bufferView":185, "componentType":5126, "count":612, "type":"VEC3" }, { - "bufferView":170, + "bufferView":186, "componentType":5126, "count":612, "type":"VEC2" }, { - "bufferView":171, + "bufferView":187, "componentType":5126, "count":712, "max":[ @@ -4961,25 +5267,25 @@ "type":"VEC3" }, { - "bufferView":172, + "bufferView":188, "componentType":5126, "count":712, "type":"VEC3" }, { - "bufferView":173, + "bufferView":189, "componentType":5126, "count":712, "type":"VEC2" }, { - "bufferView":174, + "bufferView":190, "componentType":5123, "count":2490, "type":"SCALAR" }, { - "bufferView":175, + "bufferView":191, "componentType":5126, "count":4, "max":[ @@ -4995,25 +5301,25 @@ "type":"VEC3" }, { - "bufferView":176, + "bufferView":192, "componentType":5126, "count":4, "type":"VEC3" }, { - "bufferView":177, + "bufferView":193, "componentType":5126, "count":4, "type":"VEC2" }, { - "bufferView":178, + "bufferView":194, "componentType":5123, "count":6, "type":"SCALAR" }, { - "bufferView":179, + "bufferView":195, "componentType":5126, "count":712, "max":[ @@ -5029,19 +5335,19 @@ "type":"VEC3" }, { - "bufferView":180, + "bufferView":196, "componentType":5126, "count":712, "type":"VEC3" }, { - "bufferView":181, + "bufferView":197, "componentType":5126, "count":712, "type":"VEC2" }, { - "bufferView":182, + "bufferView":198, "componentType":5126, "count":4, "max":[ @@ -5057,19 +5363,19 @@ "type":"VEC3" }, { - "bufferView":183, + "bufferView":199, "componentType":5126, "count":4, "type":"VEC3" }, { - "bufferView":184, + "bufferView":200, "componentType":5126, "count":4, "type":"VEC2" }, { - "bufferView":185, + "bufferView":201, "componentType":5126, "count":574, "max":[ @@ -5085,25 +5391,25 @@ "type":"VEC3" }, { - "bufferView":186, + "bufferView":202, "componentType":5126, "count":574, "type":"VEC3" }, { - "bufferView":187, + "bufferView":203, "componentType":5126, "count":574, "type":"VEC2" }, { - "bufferView":188, + "bufferView":204, "componentType":5123, "count":1344, "type":"SCALAR" }, { - "bufferView":189, + "bufferView":205, "componentType":5126, "count":22297, "max":[ @@ -5119,25 +5425,25 @@ "type":"VEC3" }, { - "bufferView":190, + "bufferView":206, "componentType":5126, "count":22297, "type":"VEC3" }, { - "bufferView":191, + "bufferView":207, "componentType":5126, "count":22297, "type":"VEC2" }, { - "bufferView":192, + "bufferView":208, "componentType":5123, "count":62982, "type":"SCALAR" }, { - "bufferView":193, + "bufferView":209, "componentType":5126, "count":292, "max":[ @@ -5153,25 +5459,25 @@ "type":"VEC3" }, { - "bufferView":194, + "bufferView":210, "componentType":5126, "count":292, "type":"VEC3" }, { - "bufferView":195, + "bufferView":211, "componentType":5126, "count":292, "type":"VEC2" }, { - "bufferView":196, + "bufferView":212, "componentType":5123, "count":1104, "type":"SCALAR" }, { - "bufferView":197, + "bufferView":213, "componentType":5126, "count":156, "max":[ @@ -5187,25 +5493,25 @@ "type":"VEC3" }, { - "bufferView":198, + "bufferView":214, "componentType":5126, "count":156, "type":"VEC3" }, { - "bufferView":199, + "bufferView":215, "componentType":5126, "count":156, "type":"VEC2" }, { - "bufferView":200, + "bufferView":216, "componentType":5123, "count":246, "type":"SCALAR" }, { - "bufferView":201, + "bufferView":217, "componentType":5126, "count":120, "max":[ @@ -5221,25 +5527,25 @@ "type":"VEC3" }, { - "bufferView":202, + "bufferView":218, "componentType":5126, "count":120, "type":"VEC3" }, { - "bufferView":203, + "bufferView":219, "componentType":5126, "count":120, "type":"VEC2" }, { - "bufferView":204, + "bufferView":220, "componentType":5123, "count":216, "type":"SCALAR" }, { - "bufferView":205, + "bufferView":221, "componentType":5126, "count":36, "max":[ @@ -5255,25 +5561,25 @@ "type":"VEC3" }, { - "bufferView":206, + "bufferView":222, "componentType":5126, "count":36, "type":"VEC3" }, { - "bufferView":207, + "bufferView":223, "componentType":5126, "count":36, "type":"VEC2" }, { - "bufferView":208, + "bufferView":224, "componentType":5123, "count":102, "type":"SCALAR" }, { - "bufferView":209, + "bufferView":225, "componentType":5126, "count":248, "max":[ @@ -5289,25 +5595,25 @@ "type":"VEC3" }, { - "bufferView":210, + "bufferView":226, "componentType":5126, "count":248, "type":"VEC3" }, { - "bufferView":211, + "bufferView":227, "componentType":5126, "count":248, "type":"VEC2" }, { - "bufferView":212, + "bufferView":228, "componentType":5123, "count":372, "type":"SCALAR" }, { - "bufferView":213, + "bufferView":229, "componentType":5126, "count":156, "max":[ @@ -5323,19 +5629,19 @@ "type":"VEC3" }, { - "bufferView":214, + "bufferView":230, "componentType":5126, "count":156, "type":"VEC3" }, { - "bufferView":215, + "bufferView":231, "componentType":5126, "count":156, "type":"VEC2" }, { - "bufferView":216, + "bufferView":232, "componentType":5126, "count":120, "max":[ @@ -5351,19 +5657,19 @@ "type":"VEC3" }, { - "bufferView":217, + "bufferView":233, "componentType":5126, "count":120, "type":"VEC3" }, { - "bufferView":218, + "bufferView":234, "componentType":5126, "count":120, "type":"VEC2" }, { - "bufferView":219, + "bufferView":235, "componentType":5126, "count":36, "max":[ @@ -5379,19 +5685,19 @@ "type":"VEC3" }, { - "bufferView":220, + "bufferView":236, "componentType":5126, "count":36, "type":"VEC3" }, { - "bufferView":221, + "bufferView":237, "componentType":5126, "count":36, "type":"VEC2" }, { - "bufferView":222, + "bufferView":238, "componentType":5126, "count":296, "max":[ @@ -5407,25 +5713,25 @@ "type":"VEC3" }, { - "bufferView":223, + "bufferView":239, "componentType":5126, "count":296, "type":"VEC3" }, { - "bufferView":224, + "bufferView":240, "componentType":5126, "count":296, "type":"VEC2" }, { - "bufferView":225, + "bufferView":241, "componentType":5123, "count":444, "type":"SCALAR" }, { - "bufferView":226, + "bufferView":242, "componentType":5126, "count":378, "max":[ @@ -5441,25 +5747,25 @@ "type":"VEC3" }, { - "bufferView":227, + "bufferView":243, "componentType":5126, "count":378, "type":"VEC3" }, { - "bufferView":228, + "bufferView":244, "componentType":5126, "count":378, "type":"VEC2" }, { - "bufferView":229, + "bufferView":245, "componentType":5123, "count":696, "type":"SCALAR" }, { - "bufferView":230, + "bufferView":246, "componentType":5126, "count":162, "max":[ @@ -5475,25 +5781,25 @@ "type":"VEC3" }, { - "bufferView":231, + "bufferView":247, "componentType":5126, "count":162, "type":"VEC3" }, { - "bufferView":232, + "bufferView":248, "componentType":5126, "count":162, "type":"VEC2" }, { - "bufferView":233, + "bufferView":249, "componentType":5123, "count":300, "type":"SCALAR" }, { - "bufferView":234, + "bufferView":250, "componentType":5126, "count":240, "max":[ @@ -5509,25 +5815,25 @@ "type":"VEC3" }, { - "bufferView":235, + "bufferView":251, "componentType":5126, "count":240, "type":"VEC3" }, { - "bufferView":236, + "bufferView":252, "componentType":5126, "count":240, "type":"VEC2" }, { - "bufferView":237, + "bufferView":253, "componentType":5123, "count":432, "type":"SCALAR" }, { - "bufferView":238, + "bufferView":254, "componentType":5126, "count":84, "max":[ @@ -5543,59 +5849,25 @@ "type":"VEC3" }, { - "bufferView":239, + "bufferView":255, "componentType":5126, "count":84, "type":"VEC3" }, { - "bufferView":240, + "bufferView":256, "componentType":5126, "count":84, "type":"VEC2" }, { - "bufferView":241, + "bufferView":257, "componentType":5123, "count":234, "type":"SCALAR" }, { - "bufferView":242, - "componentType":5126, - "count":264, - "max":[ - 20.19342803955078, - 43.73445129394531, - 5.285484313964844 - ], - "min":[ - -118.47435760498047, - -2.4795289039611816, - -5.299522399902344 - ], - "type":"VEC3" - }, - { - "bufferView":243, - "componentType":5126, - "count":264, - "type":"VEC3" - }, - { - "bufferView":244, - "componentType":5126, - "count":264, - "type":"VEC2" - }, - { - "bufferView":245, - "componentType":5123, - "count":648, - "type":"SCALAR" - }, - { - "bufferView":246, + "bufferView":258, "componentType":5126, "count":7707, "max":[ @@ -5611,25 +5883,25 @@ "type":"VEC3" }, { - "bufferView":247, + "bufferView":259, "componentType":5126, "count":7707, "type":"VEC3" }, { - "bufferView":248, + "bufferView":260, "componentType":5126, "count":7707, "type":"VEC2" }, { - "bufferView":249, + "bufferView":261, "componentType":5123, "count":11880, "type":"SCALAR" }, { - "bufferView":250, + "bufferView":262, "componentType":5126, "count":580, "max":[ @@ -5645,19 +5917,19 @@ "type":"VEC3" }, { - "bufferView":251, + "bufferView":263, "componentType":5126, "count":580, "type":"VEC3" }, { - "bufferView":252, + "bufferView":264, "componentType":5126, "count":580, "type":"VEC2" }, { - "bufferView":253, + "bufferView":265, "componentType":5126, "count":323, "max":[ @@ -5673,25 +5945,25 @@ "type":"VEC3" }, { - "bufferView":254, + "bufferView":266, "componentType":5126, "count":323, "type":"VEC3" }, { - "bufferView":255, + "bufferView":267, "componentType":5126, "count":323, "type":"VEC2" }, { - "bufferView":256, + "bufferView":268, "componentType":5123, "count":768, "type":"SCALAR" }, { - "bufferView":257, + "bufferView":269, "componentType":5126, "count":1743, "max":[ @@ -5707,25 +5979,25 @@ "type":"VEC3" }, { - "bufferView":258, + "bufferView":270, "componentType":5126, "count":1743, "type":"VEC3" }, { - "bufferView":259, + "bufferView":271, "componentType":5126, "count":1743, "type":"VEC2" }, { - "bufferView":260, + "bufferView":272, "componentType":5123, "count":5472, "type":"SCALAR" }, { - "bufferView":261, + "bufferView":273, "componentType":5126, "count":600, "max":[ @@ -5741,25 +6013,25 @@ "type":"VEC3" }, { - "bufferView":262, + "bufferView":274, "componentType":5126, "count":600, "type":"VEC3" }, { - "bufferView":263, + "bufferView":275, "componentType":5126, "count":600, "type":"VEC2" }, { - "bufferView":264, + "bufferView":276, "componentType":5123, "count":996, "type":"SCALAR" }, { - "bufferView":265, + "bufferView":277, "componentType":5126, "count":2, "max":[ @@ -5771,13 +6043,13 @@ "type":"SCALAR" }, { - "bufferView":266, + "bufferView":278, "componentType":5126, "count":2, "type":"VEC3" }, { - "bufferView":267, + "bufferView":279, "componentType":5126, "count":10, "max":[ @@ -5789,13 +6061,13 @@ "type":"SCALAR" }, { - "bufferView":268, + "bufferView":280, "componentType":5126, "count":10, "type":"VEC4" }, { - "bufferView":269, + "bufferView":281, "componentType":5126, "count":2, "type":"VEC3" @@ -5828,1593 +6100,1665 @@ }, { "buffer":0, - "byteLength":3936, + "byteLength":288, "byteOffset":840, "target":34962 }, + { + "buffer":0, + "byteLength":288, + "byteOffset":1128, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":1416, + "target":34962 + }, + { + "buffer":0, + "byteLength":72, + "byteOffset":1608, + "target":34963 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":1680, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":1968, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":2256, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":2448, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":2736, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":3024, + "target":34962 + }, + { + "buffer":0, + "byteLength":3168, + "byteOffset":3216, + "target":34962 + }, + { + "buffer":0, + "byteLength":3168, + "byteOffset":6384, + "target":34962 + }, + { + "buffer":0, + "byteLength":2112, + "byteOffset":9552, + "target":34962 + }, + { + "buffer":0, + "byteLength":1296, + "byteOffset":11664, + "target":34963 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":12960, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":13248, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":13536, + "target":34962 + }, { "buffer":0, "byteLength":3936, - "byteOffset":4776, + "byteOffset":13728, + "target":34962 + }, + { + "buffer":0, + "byteLength":3936, + "byteOffset":17664, "target":34962 }, { "buffer":0, "byteLength":1312, - "byteOffset":8712, + "byteOffset":21600, "target":34962 }, { "buffer":0, "byteLength":5248, - "byteOffset":10024, + "byteOffset":22912, "target":34962 }, { "buffer":0, "byteLength":1104, - "byteOffset":15272, + "byteOffset":28160, "target":34963 }, { "buffer":0, "byteLength":64, - "byteOffset":16376 + "byteOffset":29264 }, { "buffer":0, "byteLength":288, - "byteOffset":16440, + "byteOffset":29328, "target":34962 }, { "buffer":0, "byteLength":288, - "byteOffset":16728, + "byteOffset":29616, "target":34962 }, { "buffer":0, "byteLength":192, - "byteOffset":17016, + "byteOffset":29904, "target":34962 }, - { - "buffer":0, - "byteLength":72, - "byteOffset":17208, - "target":34963 - }, { "buffer":0, "byteLength":1008, - "byteOffset":17280, + "byteOffset":30096, "target":34962 }, { "buffer":0, "byteLength":1008, - "byteOffset":18288, + "byteOffset":31104, "target":34962 }, { "buffer":0, "byteLength":276, - "byteOffset":19296, + "byteOffset":32112, "target":34963 }, { "buffer":0, "byteLength":1296, - "byteOffset":19572, + "byteOffset":32388, "target":34962 }, { "buffer":0, "byteLength":1296, - "byteOffset":20868, + "byteOffset":33684, "target":34962 }, { "buffer":0, "byteLength":408, - "byteOffset":22164, + "byteOffset":34980, "target":34963 }, { "buffer":0, "byteLength":6336, - "byteOffset":22572, + "byteOffset":35388, "target":34962 }, { "buffer":0, "byteLength":6336, - "byteOffset":28908, + "byteOffset":41724, "target":34962 }, { "buffer":0, "byteLength":1848, - "byteOffset":35244, + "byteOffset":48060, "target":34963 }, { "buffer":0, "byteLength":360, - "byteOffset":37092, + "byteOffset":49908, "target":34962 }, { "buffer":0, "byteLength":360, - "byteOffset":37452, + "byteOffset":50268, "target":34962 }, { "buffer":0, "byteLength":132, - "byteOffset":37812, + "byteOffset":50628, "target":34963 }, { "buffer":0, "byteLength":1224, - "byteOffset":37944, + "byteOffset":50760, "target":34962 }, { "buffer":0, "byteLength":1224, - "byteOffset":39168, + "byteOffset":51984, "target":34962 }, { "buffer":0, "byteLength":816, - "byteOffset":40392, + "byteOffset":53208, "target":34962 }, { "buffer":0, "byteLength":684, - "byteOffset":41208, + "byteOffset":54024, "target":34963 }, { "buffer":0, "byteLength":2316, - "byteOffset":41892, + "byteOffset":54708, "target":34962 }, { "buffer":0, "byteLength":2316, - "byteOffset":44208, + "byteOffset":57024, "target":34962 }, { "buffer":0, "byteLength":1544, - "byteOffset":46524, + "byteOffset":59340, "target":34962 }, { "buffer":0, "byteLength":1464, - "byteOffset":48068, + "byteOffset":60884, "target":34963 }, { "buffer":0, "byteLength":288, - "byteOffset":49532, + "byteOffset":62348, "target":34962 }, { "buffer":0, "byteLength":288, - "byteOffset":49820, + "byteOffset":62636, "target":34962 }, { "buffer":0, "byteLength":192, - "byteOffset":50108, + "byteOffset":62924, "target":34962 }, { "buffer":0, "byteLength":72, - "byteOffset":50300, + "byteOffset":63116, "target":34963 }, { "buffer":0, "byteLength":3456, - "byteOffset":50372, + "byteOffset":63188, "target":34962 }, { "buffer":0, "byteLength":3456, - "byteOffset":53828, + "byteOffset":66644, "target":34962 }, { "buffer":0, "byteLength":2136, - "byteOffset":57284, + "byteOffset":70100, "target":34963 }, { "buffer":0, "byteLength":11640, - "byteOffset":59420, + "byteOffset":72236, "target":34962 }, { "buffer":0, "byteLength":11640, - "byteOffset":71060, + "byteOffset":83876, "target":34962 }, { "buffer":0, "byteLength":7760, - "byteOffset":82700, + "byteOffset":95516, "target":34962 }, { "buffer":0, "byteLength":4104, - "byteOffset":90460, + "byteOffset":103276, "target":34963 }, { "buffer":0, "byteLength":112056, - "byteOffset":94564, + "byteOffset":107380, "target":34962 }, { "buffer":0, "byteLength":112056, - "byteOffset":206620, + "byteOffset":219436, "target":34962 }, { "buffer":0, "byteLength":74704, - "byteOffset":318676, + "byteOffset":331492, "target":34962 }, { "buffer":0, "byteLength":48192, - "byteOffset":393380, + "byteOffset":406196, "target":34963 }, { "buffer":0, "byteLength":6336, - "byteOffset":441572, + "byteOffset":454388, "target":34962 }, { "buffer":0, "byteLength":6336, - "byteOffset":447908, + "byteOffset":460724, "target":34962 }, { "buffer":0, "byteLength":4224, - "byteOffset":454244, + "byteOffset":467060, "target":34962 }, { "buffer":0, "byteLength":1728, - "byteOffset":458468, + "byteOffset":471284, "target":34963 }, { "buffer":0, "byteLength":9972, - "byteOffset":460196, + "byteOffset":473012, "target":34962 }, { "buffer":0, "byteLength":9972, - "byteOffset":470168, + "byteOffset":482984, "target":34962 }, { "buffer":0, "byteLength":6648, - "byteOffset":480140, + "byteOffset":492956, "target":34962 }, { "buffer":0, "byteLength":2886, - "byteOffset":486788, + "byteOffset":499604, "target":34963 }, { "buffer":0, "byteLength":4776, - "byteOffset":489676, + "byteOffset":502492, "target":34962 }, { "buffer":0, "byteLength":4776, - "byteOffset":494452, + "byteOffset":507268, "target":34962 }, { "buffer":0, "byteLength":1968, - "byteOffset":499228, + "byteOffset":512044, "target":34963 }, { "buffer":0, "byteLength":5136, - "byteOffset":501196, + "byteOffset":514012, "target":34962 }, { "buffer":0, "byteLength":5136, - "byteOffset":506332, + "byteOffset":519148, "target":34962 }, { "buffer":0, "byteLength":2652, - "byteOffset":511468, + "byteOffset":524284, "target":34963 }, { "buffer":0, "byteLength":960, - "byteOffset":514120, + "byteOffset":526936, "target":34962 }, { "buffer":0, "byteLength":960, - "byteOffset":515080, + "byteOffset":527896, "target":34962 }, { "buffer":0, "byteLength":468, - "byteOffset":516040, + "byteOffset":528856, "target":34963 }, { "buffer":0, "byteLength":96, - "byteOffset":516508, + "byteOffset":529324, "target":34962 }, { "buffer":0, "byteLength":96, - "byteOffset":516604, + "byteOffset":529420, "target":34962 }, { "buffer":0, "byteLength":36, - "byteOffset":516700, + "byteOffset":529516, "target":34963 }, { "buffer":0, "byteLength":7200, - "byteOffset":516736, + "byteOffset":529552, "target":34962 }, { "buffer":0, "byteLength":7200, - "byteOffset":523936, + "byteOffset":536752, "target":34962 }, { "buffer":0, "byteLength":3408, - "byteOffset":531136, + "byteOffset":543952, "target":34963 }, { "buffer":0, "byteLength":960, - "byteOffset":534544, + "byteOffset":547360, "target":34962 }, { "buffer":0, "byteLength":960, - "byteOffset":535504, + "byteOffset":548320, "target":34962 }, { "buffer":0, "byteLength":288, - "byteOffset":536464, + "byteOffset":549280, "target":34962 }, { "buffer":0, "byteLength":288, - "byteOffset":536752, + "byteOffset":549568, "target":34962 }, { "buffer":0, "byteLength":108, - "byteOffset":537040, + "byteOffset":549856, "target":34963 }, { "buffer":0, "byteLength":83304, - "byteOffset":537148, + "byteOffset":549964, "target":34962 }, { "buffer":0, "byteLength":83304, - "byteOffset":620452, + "byteOffset":633268, "target":34962 }, { "buffer":0, "byteLength":55536, - "byteOffset":703756, + "byteOffset":716572, "target":34962 }, { "buffer":0, "byteLength":36000, - "byteOffset":759292, + "byteOffset":772108, "target":34963 }, { "buffer":0, "byteLength":27468, - "byteOffset":795292, + "byteOffset":808108, "target":34962 }, { "buffer":0, "byteLength":27468, - "byteOffset":822760, + "byteOffset":835576, "target":34962 }, { "buffer":0, "byteLength":18312, - "byteOffset":850228, + "byteOffset":863044, "target":34962 }, { "buffer":0, "byteLength":15384, - "byteOffset":868540, + "byteOffset":881356, "target":34963 }, { "buffer":0, "byteLength":21672, - "byteOffset":883924, + "byteOffset":896740, "target":34962 }, { "buffer":0, "byteLength":21672, - "byteOffset":905596, + "byteOffset":918412, "target":34962 }, { "buffer":0, "byteLength":14448, - "byteOffset":927268, + "byteOffset":940084, "target":34962 }, { "buffer":0, "byteLength":11340, - "byteOffset":941716, + "byteOffset":954532, "target":34963 }, { "buffer":0, "byteLength":87408, - "byteOffset":953056, + "byteOffset":965872, "target":34962 }, { "buffer":0, "byteLength":87408, - "byteOffset":1040464, + "byteOffset":1053280, "target":34962 }, { "buffer":0, "byteLength":58272, - "byteOffset":1127872, + "byteOffset":1140688, "target":34962 }, { "buffer":0, "byteLength":38784, - "byteOffset":1186144, + "byteOffset":1198960, "target":34963 }, { "buffer":0, "byteLength":1392, - "byteOffset":1224928, + "byteOffset":1237744, "target":34962 }, { "buffer":0, "byteLength":1392, - "byteOffset":1226320, + "byteOffset":1239136, "target":34962 }, { "buffer":0, "byteLength":928, - "byteOffset":1227712, + "byteOffset":1240528, "target":34962 }, { "buffer":0, "byteLength":432, - "byteOffset":1228640, + "byteOffset":1241456, "target":34963 }, { "buffer":0, "byteLength":144768, - "byteOffset":1229072, + "byteOffset":1241888, "target":34962 }, { "buffer":0, "byteLength":144768, - "byteOffset":1373840, + "byteOffset":1386656, "target":34962 }, { "buffer":0, "byteLength":96512, - "byteOffset":1518608, + "byteOffset":1531424, "target":34962 }, { "buffer":0, "byteLength":71412, - "byteOffset":1615120, + "byteOffset":1627936, "target":34963 }, { "buffer":0, "byteLength":6960, - "byteOffset":1686532, + "byteOffset":1699348, "target":34962 }, { "buffer":0, "byteLength":6960, - "byteOffset":1693492, + "byteOffset":1706308, "target":34962 }, { "buffer":0, "byteLength":4640, - "byteOffset":1700452, + "byteOffset":1713268, "target":34962 }, { "buffer":0, "byteLength":3864, - "byteOffset":1705092, + "byteOffset":1717908, "target":34963 }, { "buffer":0, "byteLength":8568, - "byteOffset":1708956, + "byteOffset":1721772, "target":34962 }, { "buffer":0, "byteLength":8568, - "byteOffset":1717524, + "byteOffset":1730340, "target":34962 }, { "buffer":0, "byteLength":5712, - "byteOffset":1726092, + "byteOffset":1738908, "target":34962 }, { "buffer":0, "byteLength":5760, - "byteOffset":1731804, + "byteOffset":1744620, "target":34963 }, { "buffer":0, "byteLength":18132, - "byteOffset":1737564, + "byteOffset":1750380, "target":34962 }, { "buffer":0, "byteLength":18132, - "byteOffset":1755696, + "byteOffset":1768512, "target":34962 }, { "buffer":0, "byteLength":12088, - "byteOffset":1773828, + "byteOffset":1786644, "target":34962 }, { "buffer":0, "byteLength":9936, - "byteOffset":1785916, + "byteOffset":1798732, "target":34963 }, { "buffer":0, "byteLength":107616, - "byteOffset":1795852, + "byteOffset":1808668, "target":34962 }, { "buffer":0, "byteLength":107616, - "byteOffset":1903468, + "byteOffset":1916284, "target":34962 }, { "buffer":0, "byteLength":71744, - "byteOffset":2011084, + "byteOffset":2023900, "target":34962 }, { "buffer":0, "byteLength":57600, - "byteOffset":2082828, + "byteOffset":2095644, "target":34963 }, { "buffer":0, "byteLength":10128, - "byteOffset":2140428, + "byteOffset":2153244, "target":34962 }, { "buffer":0, "byteLength":10128, - "byteOffset":2150556, + "byteOffset":2163372, "target":34962 }, { "buffer":0, "byteLength":6752, - "byteOffset":2160684, + "byteOffset":2173500, "target":34962 }, { "buffer":0, "byteLength":6504, - "byteOffset":2167436, + "byteOffset":2180252, "target":34963 }, { "buffer":0, "byteLength":14376, - "byteOffset":2173940, + "byteOffset":2186756, "target":34962 }, { "buffer":0, "byteLength":14376, - "byteOffset":2188316, + "byteOffset":2201132, "target":34962 }, { "buffer":0, "byteLength":9584, - "byteOffset":2202692, + "byteOffset":2215508, "target":34962 }, { "buffer":0, "byteLength":6504, - "byteOffset":2212276, + "byteOffset":2225092, "target":34963 }, { "buffer":0, "byteLength":18024, - "byteOffset":2218780, + "byteOffset":2231596, "target":34962 }, { "buffer":0, "byteLength":18024, - "byteOffset":2236804, + "byteOffset":2249620, "target":34962 }, { "buffer":0, "byteLength":12016, - "byteOffset":2254828, + "byteOffset":2267644, "target":34962 }, { "buffer":0, "byteLength":6504, - "byteOffset":2266844, + "byteOffset":2279660, "target":34963 }, { "buffer":0, "byteLength":18828, - "byteOffset":2273348, + "byteOffset":2286164, "target":34962 }, { "buffer":0, "byteLength":18828, - "byteOffset":2292176, + "byteOffset":2304992, "target":34962 }, { "buffer":0, "byteLength":12552, - "byteOffset":2311004, + "byteOffset":2323820, "target":34962 }, { "buffer":0, "byteLength":6504, - "byteOffset":2323556, + "byteOffset":2336372, "target":34963 }, { "buffer":0, "byteLength":21192, - "byteOffset":2330060, + "byteOffset":2342876, "target":34962 }, { "buffer":0, "byteLength":21192, - "byteOffset":2351252, + "byteOffset":2364068, "target":34962 }, { "buffer":0, "byteLength":14128, - "byteOffset":2372444, + "byteOffset":2385260, "target":34962 }, { "buffer":0, "byteLength":6504, - "byteOffset":2386572, + "byteOffset":2399388, "target":34963 }, { "buffer":0, "byteLength":22080, - "byteOffset":2393076, + "byteOffset":2405892, "target":34962 }, { "buffer":0, "byteLength":22080, - "byteOffset":2415156, + "byteOffset":2427972, "target":34962 }, { "buffer":0, "byteLength":14720, - "byteOffset":2437236, + "byteOffset":2450052, "target":34962 }, { "buffer":0, "byteLength":6504, - "byteOffset":2451956, + "byteOffset":2464772, "target":34963 }, { "buffer":0, "byteLength":27876, - "byteOffset":2458460, + "byteOffset":2471276, "target":34962 }, { "buffer":0, "byteLength":27876, - "byteOffset":2486336, + "byteOffset":2499152, "target":34962 }, { "buffer":0, "byteLength":18584, - "byteOffset":2514212, + "byteOffset":2527028, "target":34962 }, { "buffer":0, "byteLength":9576, - "byteOffset":2532796, + "byteOffset":2545612, "target":34963 }, { "buffer":0, "byteLength":20232, - "byteOffset":2542372, + "byteOffset":2555188, "target":34962 }, { "buffer":0, "byteLength":20232, - "byteOffset":2562604, + "byteOffset":2575420, "target":34962 }, { "buffer":0, "byteLength":13488, - "byteOffset":2582836, + "byteOffset":2595652, "target":34962 }, { "buffer":0, "byteLength":6504, - "byteOffset":2596324, + "byteOffset":2609140, "target":34963 }, { "buffer":0, "byteLength":21156, - "byteOffset":2602828, + "byteOffset":2615644, "target":34962 }, { "buffer":0, "byteLength":21156, - "byteOffset":2623984, + "byteOffset":2636800, "target":34962 }, { "buffer":0, "byteLength":14104, - "byteOffset":2645140, + "byteOffset":2657956, "target":34962 }, { "buffer":0, "byteLength":6504, - "byteOffset":2659244, + "byteOffset":2672060, "target":34963 }, { "buffer":0, "byteLength":8532, - "byteOffset":2665748, + "byteOffset":2678564, "target":34962 }, { "buffer":0, "byteLength":8532, - "byteOffset":2674280, + "byteOffset":2687096, "target":34962 }, { "buffer":0, "byteLength":5688, - "byteOffset":2682812, + "byteOffset":2695628, "target":34962 }, { "buffer":0, "byteLength":2760, - "byteOffset":2688500, + "byteOffset":2701316, "target":34963 }, { "buffer":0, "byteLength":19476, - "byteOffset":2691260, + "byteOffset":2704076, "target":34962 }, { "buffer":0, "byteLength":19476, - "byteOffset":2710736, + "byteOffset":2723552, "target":34962 }, { "buffer":0, "byteLength":12984, - "byteOffset":2730212, + "byteOffset":2743028, "target":34962 }, { "buffer":0, "byteLength":9600, - "byteOffset":2743196, + "byteOffset":2756012, "target":34963 }, { "buffer":0, "byteLength":7344, - "byteOffset":2752796, + "byteOffset":2765612, "target":34962 }, { "buffer":0, "byteLength":7344, - "byteOffset":2760140, + "byteOffset":2772956, "target":34962 }, { "buffer":0, "byteLength":4896, - "byteOffset":2767484, + "byteOffset":2780300, "target":34962 }, { "buffer":0, "byteLength":4956, - "byteOffset":2772380, + "byteOffset":2785196, "target":34963 }, { "buffer":0, "byteLength":7344, - "byteOffset":2777336, + "byteOffset":2790152, "target":34962 }, { "buffer":0, "byteLength":7344, - "byteOffset":2784680, + "byteOffset":2797496, "target":34962 }, { "buffer":0, "byteLength":4896, - "byteOffset":2792024, + "byteOffset":2804840, "target":34962 }, { "buffer":0, "byteLength":7344, - "byteOffset":2796920, + "byteOffset":2809736, "target":34962 }, { "buffer":0, "byteLength":7344, - "byteOffset":2804264, + "byteOffset":2817080, "target":34962 }, { "buffer":0, "byteLength":4896, - "byteOffset":2811608, + "byteOffset":2824424, "target":34962 }, { "buffer":0, "byteLength":8544, - "byteOffset":2816504, + "byteOffset":2829320, "target":34962 }, { "buffer":0, "byteLength":8544, - "byteOffset":2825048, + "byteOffset":2837864, "target":34962 }, { "buffer":0, "byteLength":5696, - "byteOffset":2833592, + "byteOffset":2846408, "target":34962 }, { "buffer":0, "byteLength":4980, - "byteOffset":2839288, + "byteOffset":2852104, "target":34963 }, { "buffer":0, "byteLength":48, - "byteOffset":2844268, + "byteOffset":2857084, "target":34962 }, { "buffer":0, "byteLength":48, - "byteOffset":2844316, + "byteOffset":2857132, "target":34962 }, { "buffer":0, "byteLength":32, - "byteOffset":2844364, + "byteOffset":2857180, "target":34962 }, { "buffer":0, "byteLength":12, - "byteOffset":2844396, + "byteOffset":2857212, "target":34963 }, { "buffer":0, "byteLength":8544, - "byteOffset":2844408, + "byteOffset":2857224, "target":34962 }, { "buffer":0, "byteLength":8544, - "byteOffset":2852952, + "byteOffset":2865768, "target":34962 }, { "buffer":0, "byteLength":5696, - "byteOffset":2861496, + "byteOffset":2874312, "target":34962 }, { "buffer":0, "byteLength":48, - "byteOffset":2867192, + "byteOffset":2880008, "target":34962 }, { "buffer":0, "byteLength":48, - "byteOffset":2867240, + "byteOffset":2880056, "target":34962 }, { "buffer":0, "byteLength":32, - "byteOffset":2867288, + "byteOffset":2880104, "target":34962 }, { "buffer":0, "byteLength":6888, - "byteOffset":2867320, + "byteOffset":2880136, "target":34962 }, { "buffer":0, "byteLength":6888, - "byteOffset":2874208, + "byteOffset":2887024, "target":34962 }, { "buffer":0, "byteLength":4592, - "byteOffset":2881096, + "byteOffset":2893912, "target":34962 }, { "buffer":0, "byteLength":2688, - "byteOffset":2885688, + "byteOffset":2898504, "target":34963 }, { "buffer":0, "byteLength":267564, - "byteOffset":2888376, + "byteOffset":2901192, "target":34962 }, { "buffer":0, "byteLength":267564, - "byteOffset":3155940, + "byteOffset":3168756, "target":34962 }, { "buffer":0, "byteLength":178376, - "byteOffset":3423504, + "byteOffset":3436320, "target":34962 }, { "buffer":0, "byteLength":125964, - "byteOffset":3601880, + "byteOffset":3614696, "target":34963 }, { "buffer":0, "byteLength":3504, - "byteOffset":3727844, + "byteOffset":3740660, "target":34962 }, { "buffer":0, "byteLength":3504, - "byteOffset":3731348, + "byteOffset":3744164, "target":34962 }, { "buffer":0, "byteLength":2336, - "byteOffset":3734852, + "byteOffset":3747668, "target":34962 }, { "buffer":0, "byteLength":2208, - "byteOffset":3737188, + "byteOffset":3750004, "target":34963 }, { "buffer":0, "byteLength":1872, - "byteOffset":3739396, + "byteOffset":3752212, "target":34962 }, { "buffer":0, "byteLength":1872, - "byteOffset":3741268, + "byteOffset":3754084, "target":34962 }, { "buffer":0, "byteLength":1248, - "byteOffset":3743140, + "byteOffset":3755956, "target":34962 }, { "buffer":0, "byteLength":492, - "byteOffset":3744388, + "byteOffset":3757204, "target":34963 }, { "buffer":0, "byteLength":1440, - "byteOffset":3744880, + "byteOffset":3757696, "target":34962 }, { "buffer":0, "byteLength":1440, - "byteOffset":3746320, + "byteOffset":3759136, "target":34962 }, { "buffer":0, "byteLength":960, - "byteOffset":3747760, + "byteOffset":3760576, "target":34962 }, { "buffer":0, "byteLength":432, - "byteOffset":3748720, + "byteOffset":3761536, "target":34963 }, { "buffer":0, "byteLength":432, - "byteOffset":3749152, + "byteOffset":3761968, "target":34962 }, { "buffer":0, "byteLength":432, - "byteOffset":3749584, + "byteOffset":3762400, "target":34962 }, { "buffer":0, "byteLength":288, - "byteOffset":3750016, + "byteOffset":3762832, "target":34962 }, { "buffer":0, "byteLength":204, - "byteOffset":3750304, + "byteOffset":3763120, "target":34963 }, { "buffer":0, "byteLength":2976, - "byteOffset":3750508, + "byteOffset":3763324, "target":34962 }, { "buffer":0, "byteLength":2976, - "byteOffset":3753484, + "byteOffset":3766300, "target":34962 }, { "buffer":0, "byteLength":1984, - "byteOffset":3756460, + "byteOffset":3769276, "target":34962 }, { "buffer":0, "byteLength":744, - "byteOffset":3758444, + "byteOffset":3771260, "target":34963 }, { "buffer":0, "byteLength":1872, - "byteOffset":3759188, + "byteOffset":3772004, "target":34962 }, { "buffer":0, "byteLength":1872, - "byteOffset":3761060, + "byteOffset":3773876, "target":34962 }, { "buffer":0, "byteLength":1248, - "byteOffset":3762932, + "byteOffset":3775748, "target":34962 }, { "buffer":0, "byteLength":1440, - "byteOffset":3764180, + "byteOffset":3776996, "target":34962 }, { "buffer":0, "byteLength":1440, - "byteOffset":3765620, + "byteOffset":3778436, "target":34962 }, { "buffer":0, "byteLength":960, - "byteOffset":3767060, + "byteOffset":3779876, "target":34962 }, { "buffer":0, "byteLength":432, - "byteOffset":3768020, + "byteOffset":3780836, "target":34962 }, { "buffer":0, "byteLength":432, - "byteOffset":3768452, + "byteOffset":3781268, "target":34962 }, { "buffer":0, "byteLength":288, - "byteOffset":3768884, + "byteOffset":3781700, "target":34962 }, { "buffer":0, "byteLength":3552, - "byteOffset":3769172, + "byteOffset":3781988, "target":34962 }, { "buffer":0, "byteLength":3552, - "byteOffset":3772724, + "byteOffset":3785540, "target":34962 }, { "buffer":0, "byteLength":2368, - "byteOffset":3776276, + "byteOffset":3789092, "target":34962 }, { "buffer":0, "byteLength":888, - "byteOffset":3778644, + "byteOffset":3791460, "target":34963 }, { "buffer":0, "byteLength":4536, - "byteOffset":3779532, + "byteOffset":3792348, "target":34962 }, { "buffer":0, "byteLength":4536, - "byteOffset":3784068, + "byteOffset":3796884, "target":34962 }, { "buffer":0, "byteLength":3024, - "byteOffset":3788604, + "byteOffset":3801420, "target":34962 }, { "buffer":0, "byteLength":1392, - "byteOffset":3791628, + "byteOffset":3804444, "target":34963 }, { "buffer":0, "byteLength":1944, - "byteOffset":3793020, + "byteOffset":3805836, "target":34962 }, { "buffer":0, "byteLength":1944, - "byteOffset":3794964, + "byteOffset":3807780, "target":34962 }, { "buffer":0, "byteLength":1296, - "byteOffset":3796908, + "byteOffset":3809724, "target":34962 }, { "buffer":0, "byteLength":600, - "byteOffset":3798204, + "byteOffset":3811020, "target":34963 }, { "buffer":0, "byteLength":2880, - "byteOffset":3798804, + "byteOffset":3811620, "target":34962 }, { "buffer":0, "byteLength":2880, - "byteOffset":3801684, + "byteOffset":3814500, "target":34962 }, { "buffer":0, "byteLength":1920, - "byteOffset":3804564, + "byteOffset":3817380, "target":34962 }, { "buffer":0, "byteLength":864, - "byteOffset":3806484, + "byteOffset":3819300, "target":34963 }, { "buffer":0, "byteLength":1008, - "byteOffset":3807348, + "byteOffset":3820164, "target":34962 }, { "buffer":0, "byteLength":1008, - "byteOffset":3808356, + "byteOffset":3821172, "target":34962 }, { "buffer":0, "byteLength":672, - "byteOffset":3809364, + "byteOffset":3822180, "target":34962 }, { "buffer":0, "byteLength":468, - "byteOffset":3810036, - "target":34963 - }, - { - "buffer":0, - "byteLength":3168, - "byteOffset":3810504, - "target":34962 - }, - { - "buffer":0, - "byteLength":3168, - "byteOffset":3813672, - "target":34962 - }, - { - "buffer":0, - "byteLength":2112, - "byteOffset":3816840, - "target":34962 - }, - { - "buffer":0, - "byteLength":1296, - "byteOffset":3818952, + "byteOffset":3822852, "target":34963 }, { "buffer":0, "byteLength":92484, - "byteOffset":3820248, + "byteOffset":3823320, "target":34962 }, { "buffer":0, "byteLength":92484, - "byteOffset":3912732, + "byteOffset":3915804, "target":34962 }, { "buffer":0, "byteLength":61656, - "byteOffset":4005216, + "byteOffset":4008288, "target":34962 }, { "buffer":0, "byteLength":23760, - "byteOffset":4066872, + "byteOffset":4069944, "target":34963 }, { "buffer":0, "byteLength":6960, - "byteOffset":4090632, + "byteOffset":4093704, "target":34962 }, { "buffer":0, "byteLength":6960, - "byteOffset":4097592, + "byteOffset":4100664, "target":34962 }, { "buffer":0, "byteLength":4640, - "byteOffset":4104552, + "byteOffset":4107624, "target":34962 }, { "buffer":0, "byteLength":3876, - "byteOffset":4109192, + "byteOffset":4112264, "target":34962 }, { "buffer":0, "byteLength":3876, - "byteOffset":4113068, + "byteOffset":4116140, "target":34962 }, { "buffer":0, "byteLength":2584, - "byteOffset":4116944, + "byteOffset":4120016, "target":34962 }, { "buffer":0, "byteLength":1536, - "byteOffset":4119528, + "byteOffset":4122600, "target":34963 }, { "buffer":0, "byteLength":20916, - "byteOffset":4121064, + "byteOffset":4124136, "target":34962 }, { "buffer":0, "byteLength":20916, - "byteOffset":4141980, + "byteOffset":4145052, "target":34962 }, { "buffer":0, "byteLength":13944, - "byteOffset":4162896, + "byteOffset":4165968, "target":34962 }, { "buffer":0, "byteLength":10944, - "byteOffset":4176840, + "byteOffset":4179912, "target":34963 }, { "buffer":0, "byteLength":7200, - "byteOffset":4187784, + "byteOffset":4190856, "target":34962 }, { "buffer":0, "byteLength":7200, - "byteOffset":4194984, + "byteOffset":4198056, "target":34962 }, { "buffer":0, "byteLength":4800, - "byteOffset":4202184, + "byteOffset":4205256, "target":34962 }, { "buffer":0, "byteLength":1992, - "byteOffset":4206984, + "byteOffset":4210056, "target":34963 }, { "buffer":0, "byteLength":8, - "byteOffset":4208976 + "byteOffset":4212048 }, { "buffer":0, "byteLength":24, - "byteOffset":4208984 + "byteOffset":4212056 }, { "buffer":0, "byteLength":40, - "byteOffset":4209008 + "byteOffset":4212080 }, { "buffer":0, "byteLength":160, - "byteOffset":4209048 + "byteOffset":4212120 }, { "buffer":0, "byteLength":24, - "byteOffset":4209208 + "byteOffset":4212280 } ], "samplers":[ @@ -7425,7 +7769,7 @@ ], "buffers":[ { - "byteLength":4209232, + "byteLength":4212304, "uri":"World.bin" } ] diff --git a/assets/room3.blend b/assets/room3.blend index c1e2f3e..2f5b918 100644 Binary files a/assets/room3.blend and b/assets/room3.blend differ diff --git a/assets/room3.blend1 b/assets/room3.blend1 index a375672..6c5ec85 100644 Binary files a/assets/room3.blend1 and b/assets/room3.blend1 differ diff --git a/assets/tnua_config.ron b/assets/tnua_config.ron new file mode 100644 index 0000000..a9c1286 --- /dev/null +++ b/assets/tnua_config.ron @@ -0,0 +1,32 @@ +( + basis: ( + speed: 20.0, + float_height: 1.5, + headroom: None, + cling_distance: 1.0, + spring_strength: 400.0, + spring_dampening: 1.2, + acceleration: 60.0, + air_acceleration: 20.0, + coyote_time: 30.15, + free_fall_extra_gravity: 60.0, + tilt_offset_angvel: 5.0, + tilt_offset_angacl: 500.0, + turning_angvel: 10.0, + max_slope: 1.5707964, + ), + jump: ( + height: 4.0, + upslope_extra_gravity: 30.0, + takeoff_extra_gravity: 30.0, + takeoff_above_velocity: 2.0, + fall_extra_gravity: 20.0, + shorten_extra_gravity: 60.0, + peak_prevention_at_upward_velocity: 1.0, + peak_prevention_extra_gravity: 20.0, + reschedule_cooldown: None, + input_buffer_time: 0.2, + horizontal_distance: 1.0, + disable_force_forward_after_peak: true, + ), +) diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 5d56faf..292fe49 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "nightly" +channel = "stable" diff --git a/src/audio.rs b/src/audio.rs new file mode 100644 index 0000000..bb17351 --- /dev/null +++ b/src/audio.rs @@ -0,0 +1,26 @@ +use bevy::prelude::*; + +#[derive(Debug, Reflect, Resource)] +pub struct VolumeSettings { + master: f32, + music: f32, + sound: f32, +} + +pub struct AudioPlugin; +impl Plugin for AudioPlugin { + fn build(&self, app: &mut App) { + app + .register_type::(); + } +} + +fn init_audio( + mut commands: Commands, +) { + commands.insert_resource(VolumeSettings { + master: 100., + music: 100., + sound: 100., + }); +} diff --git a/src/character.rs b/src/character.rs index 6dfe0e9..78b2f5d 100644 --- a/src/character.rs +++ b/src/character.rs @@ -95,24 +95,28 @@ impl Default for CharacterBundle { } } -#[derive(Event)] -pub struct DamageEvent { +#[derive(Message)] +pub struct DamageMessage { pub target: Entity, pub ammount: i32, } -#[derive(Event)] -pub struct LevelUpEvent(pub Entity); -#[derive(Event)] -pub struct ExperienceEvent { +#[derive(Message)] +pub struct LevelUpMessage(pub Entity); + +#[derive(Message)] +pub struct ExperienceMessage { pub target: Entity, pub ammount: i32, } -#[derive(Event)] -pub struct DeathEvent(pub Entity); -#[derive(Event)] -pub struct AttackEvent { +#[derive(EntityEvent)] +pub struct DeathEvent{ + pub entity: Entity, +} + +#[derive(Message)] +pub struct AttackMessage { pub attacker: Entity, pub defender: Entity, } @@ -141,10 +145,10 @@ pub struct Skills { pub struct CharacterPlugin; impl Plugin for CharacterPlugin { fn build(&self, app: &mut App) { - app.add_event::() - .add_event::() - .add_event::() - .add_event::() + app.add_message::() + .add_message::() + .add_message::() + .add_message::() .add_systems( Update, damage_event_handler.run_if(in_state(GameState::Gameplay)), @@ -175,8 +179,8 @@ impl Plugin for CharacterPlugin { } fn attack_event_handler( - mut attack_events: EventReader, - mut damage_event_writer: EventWriter, + mut attack_events: MessageReader, + mut damage_event_writer: MessageWriter, actors: Query>, ) { trace!("attack_event_handler"); @@ -186,7 +190,7 @@ fn attack_event_handler( let Some(matter) = attacker.0 && let Some(maneuver) = defender.1 && matter.0 > maneuver.0 { - damage_event_writer.write(DamageEvent { + damage_event_writer.write(DamageMessage { target: event.defender, ammount: matter.0, }); @@ -197,14 +201,15 @@ fn attack_event_handler( fn damage_event_handler( mut commands: Commands, mut health_query: Query<&mut Health>, - mut damage_events: EventReader, + mut damage_events: MessageReader, ) { for event in damage_events.read() { if let Ok(mut health) = health_query.get_mut(event.target) { if event.ammount > health.0 { health.0 = 0; info!("TARGET IS DEAD!!!"); - commands.entity(event.target).despawn(); + commands.entity(event.target).trigger(|entity| DeathEvent { entity }); + //commands.entity(event.target).despawn(); } else { health.0 -= event.ammount; } @@ -214,15 +219,15 @@ fn damage_event_handler( fn experience_event_handler( mut experience_query: Query<&mut Experience>, - mut events: EventReader, - mut level_up_writer: EventWriter, + mut events: MessageReader, + mut level_up_writer: MessageWriter, ) { for event in events.read() { if let Ok(mut experience) = experience_query.get_mut(event.target) { info!("Giving {} experience to {:?}", event.ammount, event.target); experience.0 += event.ammount; if experience.0 >= 100 { - level_up_writer.write(LevelUpEvent(event.target)); + level_up_writer.write(LevelUpMessage(event.target)); } } } @@ -230,7 +235,7 @@ fn experience_event_handler( fn level_up_event_handler( mut level_query: Query<&mut Level>, - mut level_up_events: EventReader, + mut level_up_events: MessageReader, ) { for event in level_up_events.read() { if let Ok(mut level) = level_query.get_mut(event.0) { diff --git a/src/console.rs b/src/console.rs index 09dad30..194173d 100644 --- a/src/console.rs +++ b/src/console.rs @@ -1,7 +1,10 @@ +use avian3d::prelude::GravityScale; use bevy::prelude::*; -use bevy_console::{ConsolePlugin, ConsoleConfiguration, reply, ConsoleCommand, PrintConsoleLine}; +use bevy_console::{AddConsoleCommand, ConsoleCommand, ConsoleConfiguration, ConsolePlugin, PrintConsoleLine, reply}; use clap::Parser; +use crate::{Player, level::ChangeLevelMessage}; + /// Prints given arguments to the console #[derive(Parser, ConsoleCommand)] #[command(name = "log")] @@ -64,7 +67,7 @@ struct SpeedCommand { #[derive(Parser, ConsoleCommand)] #[command(name = "gravity")] struct GravityCommand { - value: u8, + value: f32, } #[derive(Parser, ConsoleCommand)] @@ -123,6 +126,13 @@ struct EventCommand { event: String, } +/// Loads the specified level +#[derive(Parser, ConsoleCommand)] +#[command(name = "level")] +struct LevelCommand { + level: String, +} + pub struct MyConsolePlugin; impl Plugin for MyConsolePlugin { fn build(&self, app: &mut App) { @@ -131,9 +141,11 @@ impl Plugin for MyConsolePlugin { .insert_resource(ConsoleConfiguration { // override config here ..Default::default() - }); + }) //.add_console_command::(example_command) - //.add_console_command::(log_command); + //.add_console_command::(log_command) + .add_console_command::(gravity_command) + .add_console_command::(level_command); //.add_systems(Update, write_to_console.after(ConsoleSet::ConsoleUI)); } } @@ -158,6 +170,24 @@ fn log_command(mut log: ConsoleCommand) { } } -fn _write_to_console(mut console_line: EventWriter) { +fn gravity_command( + mut console_command: ConsoleCommand, + mut player_gravity_query: Query<&mut GravityScale, With>, +) { + if let Some(Ok(GravityCommand { value })) = console_command.take() && let Ok(mut player_gravity) = player_gravity_query.single_mut() { + player_gravity.0 = value; + } +} + +fn level_command( + mut console_command: ConsoleCommand, + mut change_level_message_writer: MessageWriter, +) { + if let Some(Ok(LevelCommand { level })) = console_command.take() { + change_level_message_writer.write(ChangeLevelMessage(level)); + } +} + +fn _write_to_console(mut console_line: MessageWriter) { console_line.write(PrintConsoleLine::new("Hello".into())); } diff --git a/src/controller/equip_controller.rs b/src/controller/equip_controller.rs new file mode 100644 index 0000000..c4748ed --- /dev/null +++ b/src/controller/equip_controller.rs @@ -0,0 +1,52 @@ +use crate::{DisplayEquipEvent, DisplayInventoryEvent, GameState, Player, UiIndex, UiInventory}; +use bevy::prelude::*; +use leafwing_input_manager::prelude::ActionState; + +use super::Action; + +pub struct EquipControllerPlugin; +impl Plugin for EquipControllerPlugin { + fn build(&self, app: &mut App) { + app + .add_systems(Update, open_equip.run_if(in_state(GameState::Gameplay))); + //.add_systems(Update, close_equip.run_if(in_state(GameState::Inventory))); + } +} + +fn open_equip( + key: Query<&ActionState, With>, + mut commands: Commands, + player_query: Query>, +) { + if let Ok(entity) = player_query.single() + && let Ok(key) = key.single() && key.just_pressed(&Action::OpenInventory) { + commands.entity(entity).trigger(|entity| DisplayEquipEvent { entity }); + } +} + +fn close_equip( + key: Query<&ActionState, With>, + mut game_state: ResMut>, +) { + if let Ok(key) = key.single() && key.just_pressed(&Action::OpenInventory) { + game_state.set(GameState::Gameplay); + } +} + +pub fn equip_navigation( + key: Res>, + mut index_query: Query<&mut UiIndex, With>, +) { + for mut index in index_query.iter_mut() { + // navigate up + if (key.just_pressed(KeyCode::KeyW) || key.just_pressed(KeyCode::ArrowUp)) && index.0 > 0 { + index.0 -= 1; + // navigate down + } else if key.just_pressed(KeyCode::KeyS) || key.just_pressed(KeyCode::ArrowDown) { + index.0 += 1; + // select + } else if key.just_pressed(KeyCode::Enter) { + todo!(); + } + } +} diff --git a/src/controller/interact_controller.rs b/src/controller/interact_controller.rs index 69fdedb..d518c1f 100644 --- a/src/controller/interact_controller.rs +++ b/src/controller/interact_controller.rs @@ -1,6 +1,5 @@ -use crate::interact::Interaction; use crate::player::Player; -use crate::{Inspectable, RESOLUTION_HEIGHT, RESOLUTION_WIDTH}; +use crate::{InspectEvent, InteractionEvent, PlayerCamera, PlayerFlashlight, RESOLUTION_HEIGHT, RESOLUTION_WIDTH, UnInspectMessage}; use avian3d::prelude::*; use avian_pickup::{ input::AvianPickupInput, @@ -10,28 +9,33 @@ use bevy::prelude::*; #[derive(Debug, Component, Reflect)] #[reflect(Component)] -pub struct RayHit(pub Entity); +pub struct RayHit(pub Option); +#[allow(clippy::type_complexity)] pub fn player_raycast( - camera_query: Query<(&Camera, &GlobalTransform), Without>, + camera_query: Query<(&Camera, &GlobalTransform), (Without, With)>, ray_caster: SpatialQuery, mut player: Query<(Entity, &mut RayHit), With>, + mut flashlight: Query>, ) { trace!("SYSTEM: player_raycast"); - if let Ok((player, mut ray_hit)) = player.single_mut() { + if let Ok((player, mut ray_hit)) = player.single_mut() + && let Ok(flashlight) = flashlight.single_mut() { for (camera, global_transform) in camera_query.iter() { - let center_window = camera.viewport_to_world(global_transform, Vec2 { y: RESOLUTION_HEIGHT / 2., x: RESOLUTION_WIDTH / 2. }).unwrap(); + let center_window = camera.viewport_to_world(global_transform, Vec2 { y: (RESOLUTION_HEIGHT / 2) as f32, x: (RESOLUTION_WIDTH / 2) as f32 }).unwrap(); let camera_position = global_transform.translation(); let camera_direction = global_transform.forward(); if let Some(ray_data) = ray_caster.cast_ray( center_window.origin, center_window.direction, - 500.0, + 5.0, true, - &SpatialQueryFilter::default().with_excluded_entities([player]), + &SpatialQueryFilter::default().with_excluded_entities([player, flashlight]), ) { let _ray_hit_point = camera_position + camera_direction * ray_data.distance; - ray_hit.0 = ray_data.entity; + ray_hit.0 = Some(ray_data.entity); + } else { + ray_hit.0 = None; } } } @@ -40,8 +44,7 @@ pub fn player_raycast( pub fn manage_interact( mut commands: Commands, player: Query<(Entity, &RayHit), With>, - interact_query: Query<&dyn Interaction>, - mut avian_pickup_input_writer: EventWriter, + mut avian_pickup_input_writer: MessageWriter, held_prop_query: Query<&HeldProp>, ) { trace!("SYSTEM: manage_interact"); @@ -52,10 +55,8 @@ pub fn manage_interact( ); return } - if let Ok(interaction) = interact_query.get(ray_hit.0) { - for act in interaction.iter() { - act.interact(&mut commands, player, ray_hit.0); - } + if let Some(entity) = ray_hit.0 { + commands.entity(entity).trigger(|entity| InteractionEvent { entity, actor: player }); } } } @@ -63,17 +64,15 @@ pub fn manage_interact( pub fn manage_inspect( mut commands: Commands, player: Query<(Entity, &RayHit), With>, - inspection_query: Query<&dyn Inspectable>, held_prop_query: Query<&HeldProp>, + mut uninspect_message_writer: MessageWriter, ) { trace!("SYSTEM: manage_inspect"); + uninspect_message_writer.write(UnInspectMessage); if let Ok(_held_prop) = held_prop_query.single() { return; } - if let Ok((player, ray_hit)) = player.single() - && let Ok(inspection) = inspection_query.get(ray_hit.0) { - for act in inspection.iter() { - act.inspect(&mut commands, player, ray_hit.0); - } + if let Ok((player, ray_hit)) = player.single() && let Some(entity) = ray_hit.0 { + commands.entity(entity).trigger(|entity| InspectEvent { entity, actor: player }); } } diff --git a/src/controller/inventory_controller.rs b/src/controller/inventory_controller.rs index a8e2634..9ea3e3e 100644 --- a/src/controller/inventory_controller.rs +++ b/src/controller/inventory_controller.rs @@ -1,24 +1,38 @@ -use crate::{Player, UiIndex, UiInventory}; +use crate::{DisplayInventoryEvent, GameState, Player, UiIndex, UiInventory}; use bevy::prelude::*; use leafwing_input_manager::prelude::ActionState; use super::Action; -pub fn manage_inventory( +pub struct InventoryControllerPlugin; +impl Plugin for InventoryControllerPlugin { + fn build(&self, app: &mut App) { + app + .add_systems(Update, open_inventory.run_if(in_state(GameState::Gameplay))); + //.add_systems(Update, close_inventory.run_if(in_state(GameState::Inventory))); + } +} + +fn open_inventory( key: Query<&ActionState, With>, - mut inventory_node_query: Query<&mut Node, With> + mut commands: Commands, + player_query: Query>, ) { - if let Ok(key) = key.single() - && key.just_pressed(&Action::OpenInventory) - && let Ok(mut inventory_node) = inventory_node_query.single_mut() { - info!("Inventory key pressed"); - match inventory_node.display { - Display::None => inventory_node.display = Display::Flex, - _ => inventory_node.display = Display::None, - } + if let Ok(entity) = player_query.single() + && let Ok(key) = key.single() && key.just_pressed(&Action::OpenInventory) { + commands.entity(entity).trigger(|entity| DisplayInventoryEvent { entity }); } } +/*fn close_inventory( + key: Query<&ActionState, With>, + mut game_state: ResMut>, +) { + if let Ok(key) = key.single() && key.just_pressed(&Action::OpenInventory) { + game_state.set(GameState::Gameplay); + } +}*/ + pub fn inventory_navigation( key: Res>, mut index_query: Query<&mut UiIndex, With>, diff --git a/src/controller/menu_controller.rs b/src/controller/menu_controller.rs deleted file mode 100644 index 3902d4b..0000000 --- a/src/controller/menu_controller.rs +++ /dev/null @@ -1,33 +0,0 @@ -use crate::{PauseMenuState, UiControllerSettings, UiMenu, UiSettings, UiSoundSettings}; -use bevy::prelude::*; - -pub struct MenuControllerPlugin; -impl Plugin for MenuControllerPlugin { - fn build(&self, app: &mut App) { - app - .add_systems(OnEnter(PauseMenuState::MainMenu), ui_open::) - .add_systems(OnExit(PauseMenuState::MainMenu), ui_close::) - .add_systems(OnEnter(PauseMenuState::Settings), ui_open::) - .add_systems(OnExit(PauseMenuState::Settings), ui_close::) - .add_systems(OnEnter(PauseMenuState::SoundSettings), ui_open::) - .add_systems(OnExit(PauseMenuState::SoundSettings), ui_close::) - .add_systems(OnEnter(PauseMenuState::ControllerSettings), ui_open::) - .add_systems(OnExit(PauseMenuState::ControllerSettings), ui_close::); - } -} - -pub fn ui_open( - mut node_query: Query<&mut Node, With>, -) { - for mut node in node_query.iter_mut() { - node.display = Display::Flex; - } -} - -pub fn ui_close( - mut node_query: Query<&mut Node, With>, -) { - for mut node in node_query.iter_mut() { - node.display = Display::None; - } -} diff --git a/src/controller/mod.rs b/src/controller/mod.rs index e4ac5a5..6692122 100644 --- a/src/controller/mod.rs +++ b/src/controller/mod.rs @@ -1,71 +1,83 @@ +mod equip_controller; mod interact_controller; mod inventory_controller; -mod menu_controller; mod player_controller; +mod stats_controller; -use bevy::input::common_conditions::input_pressed; +use equip_controller::*; +use avian_pickup::prelude::*; +use bevy::input::common_conditions::input_just_pressed; use bevy::prelude::*; -use bevy_tnua::TnuaUserControlsSystemSet; +use bevy_tnua::TnuaUserControlsSystems; pub use interact_controller::*; use inventory_controller::*; -use menu_controller::*; pub use player_controller::*; +pub use stats_controller::*; use super::GameState; -use bevy::window::CursorGrabMode; +use bevy::window::{CursorGrabMode, CursorOptions}; use leafwing_input_manager::prelude::*; -use crate::interact::InteractEvent; -use crate::{shoot, ShootEvent}; +use crate::{ShootEvent, shoot, widgets::floating_windows::FloatingWindow}; pub struct ControllerPlugin; impl Plugin for ControllerPlugin { fn build(&self, app: &mut App) { - app.add_event::() + app .add_plugins(InputManagerPlugin::::default()) - .add_plugins(MenuControllerPlugin) .add_plugins(PlayerControllerPlugin) + .add_plugins(InventoryControllerPlugin) + .add_plugins(EquipControllerPlugin) + .add_plugins(StatsControllerPlugin) .register_type::() .add_systems( Update, ( manage_cursor, - manage_interact.run_if(in_state(GameState::Gameplay)).run_if(input_pressed(KeyCode::KeyE)), + //manage_interact.run_if(in_state(GameState::Gameplay)).run_if(input_just_pressed(KeyCode::KeyE)), + manage_interact.run_if(in_state(GameState::Gameplay)).run_if(input_just_pressed(KeyCode::KeyE)), manage_inspect.run_if(in_state(GameState::Gameplay)), player_raycast.run_if(in_state(GameState::Gameplay)), - manage_inventory.run_if(in_state(GameState::Gameplay)), - inventory_navigation.in_set(TnuaUserControlsSystemSet), + inventory_navigation.in_set(TnuaUserControlsSystems), ) ); } } +#[allow(clippy::too_many_arguments)] fn manage_cursor( - mut windows: Query<&mut Window>, + mut windows: Query<&mut CursorOptions>, mut commands: Commands, btn: Res>, key: Res>, mut controllers: Query<&mut PlayerController>, - mut shoot_event_writer: EventWriter, + mut shoot_event_writer: MessageWriter, + avian_pickup_actor: Single>, + mut avian_pickup_input_writer: MessageWriter, + active_windoow: Query>, ) { if let Ok(mut window) = windows.single_mut() { - if window.cursor_options.grab_mode != CursorGrabMode::Locked { + if window.grab_mode != CursorGrabMode::Locked { if btn.just_pressed(MouseButton::Left) { - window.cursor_options.grab_mode = CursorGrabMode::Locked; - window.cursor_options.visible = false; + if !active_windoow.is_empty() { + return; + } + window.grab_mode = CursorGrabMode::Locked; + window.visible = false; for mut controller in &mut controllers { controller.enable_input = true; } } } else if btn.just_pressed(MouseButton::Left) { + avian_pickup_input_writer.write(AvianPickupInput { action: AvianPickupAction::Throw, actor: *avian_pickup_actor }); shoot_event_writer.write(shoot::ShootEvent); commands.trigger(ShootEvent); } if key.just_pressed(KeyCode::Escape) { - window.cursor_options.grab_mode = CursorGrabMode::None; - window.cursor_options.visible = true; + window.grab_mode = CursorGrabMode::None; + window.visible = true; for mut controller in &mut controllers { controller.enable_input = false; } diff --git a/src/controller/player_controller.rs b/src/controller/player_controller.rs index ad9ee5f..fe25600 100644 --- a/src/controller/player_controller.rs +++ b/src/controller/player_controller.rs @@ -1,15 +1,14 @@ -use std::f32::consts::*; +use std::{cmp::Ordering, f32::consts::*}; -use avian3d::prelude::{GravityScale, RigidBodyDisabled}; -use bevy::{input::mouse, prelude::*}; -use bevy_seedling::sample::SamplePlayer; +use avian3d::{math::{AdjustPrecision, Vector3}, prelude::RigidBodyDisabled}; +use bevy::{feathers::controls, input::mouse, prelude::*}; use bevy_tnua::{ - builtins::{TnuaBuiltinClimb, TnuaBuiltinCrouch, TnuaBuiltinJump, TnuaBuiltinWalk}, control_helpers::{TnuaBlipReuseAvoidance, TnuaSimpleAirActionsCounter}, controller::TnuaController, radar_lens::TnuaRadarLens, spatial_ext::TnuaSpatialExt, TnuaBasis, TnuaObstacleRadar + TnuaControllerPlugin, TnuaObstacleRadar, TnuaScheme, TnuaUserControlsSystems, builtins::{TnuaBuiltinClimb, TnuaBuiltinCrouch, TnuaBuiltinDash, TnuaBuiltinJump, TnuaBuiltinKnockback, TnuaBuiltinWalk, TnuaBuiltinWallSlide}, control_helpers::{TnuaAirActionDefinition, TnuaBlipReuseAvoidance, TnuaHasTargetEntity, TnuaSimpleAirActionsCounter}, controller::TnuaController, math::{AsF32, Float}, radar_lens::{TnuaBlipSpatialRelation, TnuaRadarLens} }; -use bevy_tnua_avian3d::TnuaSpatialExtAvian3d; -use leafwing_input_manager::{action_state, prelude::*}; +use bevy_tnua_avian3d::{TnuaAvian3dPlugin, TnuaSpatialExtAvian3d}; +use leafwing_input_manager::prelude::*; -use crate::{Player, PlayerState}; +use crate::{Climbable, ObstacleQueryHelper, Player, PlayerFlashlight, PlayerState}; // Used as padding by camera pitching (up/down) to avoid spooky math problems const ANGLE_EPSILON: f32 = 0.001953125; @@ -38,6 +37,84 @@ impl Default for PlayerController { } } +#[derive(TnuaScheme)] +#[scheme(basis = TnuaBuiltinWalk)] +pub enum PlayerControlScheme { + Jump(TnuaBuiltinJump), + Crouch(TnuaBuiltinCrouch), + Dash(TnuaBuiltinDash), + Knockback(TnuaBuiltinKnockback), + WallSlide(TnuaBuiltinWallSlide, Entity), + WallJump(TnuaBuiltinJump), + Climb( + TnuaBuiltinClimb, + Entity, + Vector3, + ), +} + +impl TnuaAirActionDefinition for PlayerControlScheme { + fn is_air_action(action: Self::ActionDiscriminant) -> bool { + match action { + PlayerControlSchemeActionDiscriminant::Jump => true, + PlayerControlSchemeActionDiscriminant::Crouch => false, + PlayerControlSchemeActionDiscriminant::Dash => false, + PlayerControlSchemeActionDiscriminant::Knockback => true, + PlayerControlSchemeActionDiscriminant::WallSlide => true, + PlayerControlSchemeActionDiscriminant::WallJump => true, + PlayerControlSchemeActionDiscriminant::Climb => true, + } + } +} + +impl TnuaHasTargetEntity for PlayerControlScheme { + fn target_entity(action_state: &Self::ActionState) -> Option { + match action_state { + PlayerControlSchemeActionState::Jump(_) => None, + PlayerControlSchemeActionState::Crouch(_) => None, + PlayerControlSchemeActionState::Dash(_) => None, + PlayerControlSchemeActionState::Knockback(_) => None, + PlayerControlSchemeActionState::WallSlide(_, entity) => Some(*entity), + PlayerControlSchemeActionState::WallJump(_) => None, + PlayerControlSchemeActionState::Climb(_, entity, _) => Some(*entity), + } + } +} + +#[derive(Component, Debug, PartialEq, Default)] +pub enum FallingThroughControlScheme { + JumpThroughOnly, + WithoutHelper, + #[default] + SingleFall, + KeepFalling, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum Dimensionality { + Dim2, + Dim3, +} + +#[derive(Component)] +pub struct PlayerControllerConfig { + pub dimensionality: Dimensionality, + pub actions_in_air: usize, + pub one_way_platforms_min_proximity: Float, + pub falling_through: FallingThroughControlScheme, +} + +impl Default for PlayerControllerConfig { + fn default() -> Self { + Self { + dimensionality: Dimensionality::Dim3, + actions_in_air: 1, + one_way_platforms_min_proximity: 1.0, + falling_through: FallingThroughControlScheme::SingleFall, + } + } +} + // This is the list of "things in the game I want to be able to do based on input" #[derive(Actionlike, PartialEq, Eq, Hash, Clone, Copy, Debug, Reflect)] pub enum Action { @@ -52,7 +129,10 @@ pub enum Action { Down, Interact, OpenInventory, + OpenEquip, + OpenStats, OpenConsole, + Flashlight, } #[derive(Component, Default, Debug)] @@ -68,21 +148,27 @@ pub struct PlayerControllerInput { pub struct PlayerControllerPlugin; impl Plugin for PlayerControllerPlugin { fn build(&self, app: &mut App) { - app.add_systems( + app + .add_plugins(TnuaAvian3dPlugin::new(FixedUpdate)) + .add_plugins(TnuaControllerPlugin::::new(FixedUpdate)) + .add_systems( Update, ( player_controller_input, player_controller_look, - tnua_player_input, + //tnua_player_input, + toggle_flashlight, ) + //.in_set(TnuaUserControlsSystems) .chain() - ); + ) + .add_systems(Update, tnua_player_input.in_set(TnuaUserControlsSystems)); } } pub fn player_controller_input( key_input_query: Query<&ActionState, With>, - mut mouse_events_reader: EventReader, + mut mouse_events_reader: MessageReader, mut player_controller_query: Query<(&PlayerController, &mut PlayerControllerInput)>, ) { for (player_controller, mut player_input) in player_controller_query @@ -128,24 +214,41 @@ pub fn player_controller_look(mut query: Query<(&mut PlayerController, &PlayerCo } } +fn toggle_flashlight( + key_input_query: Query<&ActionState, With>, + mut flashlight_query: Query<&mut SpotLight, With>, +) { + if let Ok(mut flashlight) = flashlight_query.single_mut() && let Ok(key_input) = key_input_query.single() + && key_input.just_pressed(&Action::Flashlight) { + if flashlight.intensity == 0. { + flashlight.intensity = 1_000_000.0; + } else { + flashlight.intensity = 0.; + } + } +} + // Query for the `ActionState` component in your game logic systems! #[allow(clippy::type_complexity)] pub fn tnua_player_input( mut commands: Commands, mut tnua_query: Query<( - &mut TnuaController, - &mut TnuaSimpleAirActionsCounter, + &PlayerControllerConfig, + &mut TnuaController, + &mut TnuaSimpleAirActionsCounter, &mut PlayerState, &ActionState, &PlayerControllerInput, &TnuaObstacleRadar, - &mut TnuaBlipReuseAvoidance, + &mut TnuaBlipReuseAvoidance, Entity, ), With>, - spatial_ext: TnuaSpatialExtAvian3d, + spatial_ext: TnuaSpatialExtAvian3d, + obstacle_query: Query, ) { // Get player's tnua controller, otherwise return - let Ok((mut tnua_controller, + let Ok((player_controller_config, + mut tnua_controller, mut air_actions_counter, mut player_state, action_state, @@ -157,6 +260,8 @@ pub fn tnua_player_input( return; }; + tnua_controller.initiate_action_feeding(); + // Creates a 3D rotation matrix from a normalized rotation axis and angle (in radians). // returns a 3x3 column major matrix. let mut move_to_world = Mat3::from_axis_angle(Vec3::Y, player_controller_input.yaw); @@ -179,35 +284,23 @@ pub fn tnua_player_input( //println!("Action State: {}", action_state.just_pressed(&Action::Jump)); //if action_state.just_pressed(&Action::Jump) && air_actions_counter.air_count_for(TnuaBuiltinJump::NAME) == 0 { if action_state.pressed(&Action::Jump) { - tnua_controller.action(TnuaBuiltinJump { - allow_in_air: false, - // The height is the only mandatory field of the jump button. - height: 1.5, - // `TnuaBuiltinJump` also has customization fields with sensible defaults. - ..Default::default() - }); + tnua_controller.action(PlayerControlScheme::Jump(Default::default())); if *player_state == PlayerState::Sitting { *player_state = PlayerState::Grounded; commands.entity(player_entity).remove::(); } } - if action_state.pressed(&Action::Crouch) { - tnua_controller.action(TnuaBuiltinCrouch { - float_offset: -1.5, - height_change_impulse_for_duration: 0.1, - height_change_impulse_limit: 0.3, - uncancellable: false, - }); + if action_state.just_pressed(&Action::Crouch) { + tnua_controller.action_start(PlayerControlScheme::Crouch(Default::default())); } - //air_actions_counter.update(tnua_controller.as_mut()); - - let mut acceleration = 10.0; - - if player_controller_input.sprint { - acceleration = 15.0; + if action_state.just_released(&Action::Crouch) { + tnua_controller.action_end(PlayerControlSchemeActionDiscriminant::Crouch); } + // NOT SURE WHY SECOND UPDATE + //air_actions_counter.update(tnua_controller.as_mut()); + if *player_state == PlayerState::Sitting { return; } @@ -215,27 +308,185 @@ pub fn tnua_player_input( // Feed the basis every frame. Even if the player doesn't move - just use `desired_velocity: // Vec3::ZERO`. `TnuaController` starts without a basis, which will make the character collider // just fall. - tnua_controller.basis(TnuaBuiltinWalk { - // The `desired_velocity` determines how the character will move. - desired_velocity: movement_direction.normalize_or_zero() * acceleration, - // The `float_height` must be greater (even if by little) from the distance between the - // character's center and the lowest point of its collider. - float_height: 1.5, - // `TnuaBuiltinWalk` has many other fields for customizing the movement - but they have - // sensible defaults. Refer to the `TnuaBuiltinWalk`'s documentation to learn what they do. - ..Default::default() - }); + tnua_controller.basis = TnuaBuiltinWalk { + desired_motion: movement_direction.normalize_or_zero(), + ..default() + }; - let radar_lens = TnuaRadarLens::new(obstacle_radar, &spatial_ext); - for blip in radar_lens.iter_blips() { - print!("{:?} ", blip.entity()); + if action_state.just_pressed(&Action::Run) { + tnua_controller.action_trigger(PlayerControlScheme::Dash(TnuaBuiltinDash { + displacement: movement_direction.normalize_or_zero(), + ..default() + })); } - println!("AAAAAAA"); - if let PlayerState::Ladder(ladder) = *player_state { - tnua_controller.action(TnuaBuiltinClimb { - climbable_entity: Some(ladder), - ..default() - }); + let radar_lens = TnuaRadarLens::new(obstacle_radar, &spatial_ext); + + let already_sliding_on = if let Some(PlayerControlSchemeActionState::WallSlide(_, entity)) = + tnua_controller.current_action.as_ref() + && obstacle_radar.has_blip(*entity) + { + Some(*entity) + } else { + None + }; + + let already_climbing_on = + if let Some(PlayerControlSchemeActionState::Climb(state, entity, initiation_direction)) = + tnua_controller.current_action.as_ref() + && obstacle_radar.has_blip(*entity) { + Some((*entity, state.input.clone(), *initiation_direction)) + } else { + None + }; + + let mut walljump_candidate = None; + let screen_space_direction = movement_direction.clamp_length_max(1.0); + + + 'blips_loop: for blip in radar_lens.iter_blips() { + if !blip_reuse_avoiodance.should_avoid(blip.entity()) + && obstacle_query + .get(blip.entity()) + .expect("ObstacleQueryHelper has nothing that could fail when missing") + .climbable + { + if let Some((climbable_entity, action, initiation_direction)) = + already_climbing_on.as_ref() + { + if *climbable_entity != blip.entity() { + continue 'blips_loop; + } + let dot_initiation = movement_direction.dot(*initiation_direction); + let initiation_direction = if 0.5 < dot_initiation { + *initiation_direction + } else { + Vector3::ZERO + }; + if initiation_direction == Vector3::ZERO { + let right_left = screen_space_direction.dot(Vector3::X); + if 0.5 <= right_left.abs() { + continue 'blips_loop; + } + } + + let mut action = TnuaBuiltinClimb { + anchor: blip.closest_point().get(), + desired_climb_motion: screen_space_direction.dot(Vector3::NEG_Z) + * Vector3::Y, + desired_vec_to_anchor: action.desired_vec_to_anchor, + desired_forward: action.desired_forward, + ..default() + }; + + const LOOK_ABOVE_OR_BELOW: Float = 5.0; + match action + .desired_climb_motion + .dot(Vector3::Y) + .partial_cmp(&0.0) + .unwrap() + { + Ordering::Less => { + if tnua_controller.is_airborne().unwrap() { + let extent = blip + .probe_extent_from_closest_point(-Dir3::Y, LOOK_ABOVE_OR_BELOW); + if extent < 0.9 * LOOK_ABOVE_OR_BELOW { + action.hard_stop_down = + Some(blip.closest_point().get() - extent * Vector3::Y); + } + } else if initiation_direction == Vector3::ZERO { + continue 'blips_loop; + } else { + action.desired_climb_motion = Vector3::ZERO; + } + } + Ordering::Equal => { + } + // Climbing up + Ordering::Greater => { + let extent = + blip.probe_extent_from_closest_point(Dir3::Y, LOOK_ABOVE_OR_BELOW); + if extent < 0.9 * LOOK_ABOVE_OR_BELOW { + action.hard_stop_up = + Some(blip.closest_point().get() + extent * Vector3::Y); + } + } + } + + tnua_controller.action(PlayerControlScheme::Climb( + action, + blip.entity(), + initiation_direction, + )); + } else if let TnuaBlipSpatialRelation::Aeside(blip_drection) = + blip.spatial_relation(0.5) + && 0.5 < movement_direction.dot(blip_drection.adjust_precision()) + { + let direction_to_anchor = match player_controller_config.dimensionality { + Dimensionality::Dim2 => Vector3::ZERO, + Dimensionality::Dim3 => -blip + .normal_from_closest_point() + .reject_from_normalized(Vector3::Y), + }; + tnua_controller.action(PlayerControlScheme::Climb( + TnuaBuiltinClimb { + anchor: blip.closest_point().get(), + desired_vec_to_anchor: 0.5 * direction_to_anchor, + desired_forward: Dir3::new(direction_to_anchor.f32()).ok(), + ..default() + }, + blip.entity(), + movement_direction.normalize_or_zero(), + )); + } + } + if !blip.is_interactable() { + continue; + } + match blip.spatial_relation(0.5) { + TnuaBlipSpatialRelation::Invalid => {} + TnuaBlipSpatialRelation::Above => {} + TnuaBlipSpatialRelation::Below => {} + TnuaBlipSpatialRelation::Aeside(blip_drection) => { + let dot_thresholdl = if already_sliding_on == Some(blip.entity()) { + -0.1 + } else { + 0.0 + }; + if tnua_controller.is_airborne().unwrap() { + let dot_direction = movement_direction.dot(blip_drection.adjust_precision()); + if dot_direction <= -0.7 { + if let Some((best_entity, best_dot, best_direction)) = + walljump_candidate.as_mut() + { + if *best_dot < dot_direction { + *best_entity = blip.entity(); + *best_dot = dot_direction; + *best_direction = blip_drection; + } + } else { + walljump_candidate = + Some((blip.entity(), dot_direction, blip_drection)); + } + } + if dot_thresholdl < dot_direction + && 0.8 < blip.flat_wall_score(Dir3::Y, &[-1.0, 1.0]) + { + let Ok(normal) = Dir3::new(blip.normal_from_closest_point().f32()) + else { + continue; + }; + tnua_controller.action(PlayerControlScheme::WallSlide( + TnuaBuiltinWallSlide { + contact_point_with_wall: blip.closest_point().get(), + normal, + force_forward: Some(blip_drection), + }, + blip.entity(), + )); + } + } + } + } } } diff --git a/src/controller/stats_controller.rs b/src/controller/stats_controller.rs new file mode 100644 index 0000000..91cdd38 --- /dev/null +++ b/src/controller/stats_controller.rs @@ -0,0 +1,52 @@ +use crate::{DisplayEquipEvent, DisplayStatsEvent, GameState, Player, UiIndex, UiInventory}; +use bevy::prelude::*; +use leafwing_input_manager::prelude::ActionState; + +use super::Action; + +pub struct StatsControllerPlugin; +impl Plugin for StatsControllerPlugin { + fn build(&self, app: &mut App) { + app + .add_systems(Update, open_stats.run_if(in_state(GameState::Gameplay))); + //.add_systems(Update, close_equip.run_if(in_state(GameState::Inventory))); + } +} + +fn open_stats( + key: Query<&ActionState, With>, + mut commands: Commands, + player_query: Query>, +) { + if let Ok(entity) = player_query.single() + && let Ok(key) = key.single() && key.just_pressed(&Action::OpenStats) { + commands.entity(entity).trigger(|entity| DisplayStatsEvent { entity }); + } +} + +fn close_stats( + key: Query<&ActionState, With>, + mut game_state: ResMut>, +) { + if let Ok(key) = key.single() && key.just_pressed(&Action::OpenInventory) { + game_state.set(GameState::Gameplay); + } +} + +pub fn stats_navigation( + key: Res>, + mut index_query: Query<&mut UiIndex, With>, +) { + for mut index in index_query.iter_mut() { + // navigate up + if (key.just_pressed(KeyCode::KeyW) || key.just_pressed(KeyCode::ArrowUp)) && index.0 > 0 { + index.0 -= 1; + // navigate down + } else if key.just_pressed(KeyCode::KeyS) || key.just_pressed(KeyCode::ArrowDown) { + index.0 += 1; + // select + } else if key.just_pressed(KeyCode::Enter) { + todo!(); + } + } +} diff --git a/src/devroom.rs b/src/devroom.rs index 4360672..79372c5 100644 --- a/src/devroom.rs +++ b/src/devroom.rs @@ -1,20 +1,8 @@ -use std::f32::consts::PI; -use avian3d::collision::collider::Collider; -use bevy::{ - asset::RenderAssetUsages, - color::palettes::css::RED, - core_pipeline::core_3d::Camera3d, math::vec3, prelude::*, render::camera::ClearColorConfig, - render:: { - render_resource::{Extent3d, TextureFormat, TextureUsages}, - view::RenderLayers, - }, -}; -use bevy_atmosphere::prelude::*; -use bevy_sprite3d::{Sprite3dBuilder, Sprite3dParams}; -use bevy_tnua::prelude::*; -use bevy_tnua_avian3d::*; +use bevy::prelude::*; +use bevy_sprite3d::Sprite3d; use crate::*; +use crate::sprites::ImageAssets; #[derive(Debug, Component, Reflect)] #[reflect(Component)] @@ -28,130 +16,48 @@ pub struct DevRoomPlugin; impl Plugin for DevRoomPlugin { fn build(&self, app: &mut App) { app - /*.add_systems( - OnEnter(GameState::Loading), - ( - spawn_walking_cube, - ).chain() - )*/ - //.add_systems(OnEnter(GameState::Gameplay), spawn_sprites) + .add_systems(OnEnter(GameState::Gameplay), spawn_sprites) .register_type::() - .register_type::() - .add_plugins(AtmospherePlugin) - .add_systems(Update, devroom_setup.run_if(in_state(GameState::Loading))) - .add_plugins(SpritesPlugin); + .register_type::(); } } -fn devroom_setup( - mut commands: Commands, - mut window: Query<&mut Window>, - level_gltf: Res, - gltf_assets: Res>, - mut loaded: Local, -) { - trace!("SYSTEM: spawn_basic_scene"); - if *loaded { - return; - } - let Some(gltf) = gltf_assets.get(&level_gltf.0) else { - return; - }; - - info!("Loading DevRoom"); - commands.spawn( -( - CurrentLevel, - SceneRoot(gltf.named_scenes["World"].clone()) - ) - ); - - if let Ok(mut window) = window.single_mut() { - window.cursor_options.grab_mode = bevy::window::CursorGrabMode::Locked; - } - info!("Creating DirectionalLightBundle"); - commands.spawn(( - DirectionalLight { - illuminance: light_consts::lux::OVERCAST_DAY, - shadows_enabled: true, - ..default() - }, - Transform { - translation: Vec3::new(0.0, 2.0, 0.0), - rotation: Quat::from_rotation_x(-PI / 4.), - ..default() - }, - )); - - *loaded = true; - info!("DevRoom Loaded"); -} - -fn _spawn_walking_cube( - mut commands: Commands, - mut meshes: ResMut>, - mut materials: ResMut>, -) { - trace!("SYSTEM: spawn_walking_cube"); - - // Cube - debug!("Creating Cube"); - commands - .spawn(( - Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))), - MeshMaterial3d(materials.add(Color::WHITE)), - Transform::from_xyz(-0.9, 1.5, -3.2), - RigidBody::Dynamic, - Collider::cuboid(1.0, 1.0, 1.0), - Item { - name: Name::new("Cube"), - description: Description("Cube".to_string()), - weight: Weight(0), - }, - )) - .insert(TnuaController::default()) - .insert(TnuaAvian3dSensorShape(Collider::cuboid(0.5, 0.5, 0.5))) - .insert(FloatHeight(0.5)) - .insert(Walk::default()) - .insert(DesiredPosition(Vec3 { - x: -15.0, - y: 5.0, - z: -15.0, - })) - .insert(Name::new("Cube")); -} - -fn _spawn_sprites( +fn spawn_sprites( mut commands: Commands, images: Res, - mut sprite_params: Sprite3dParams, - mut sprite_event: EventWriter, + //mut sprite_params: Sprite3dParams, + mut sprite_message: MessageWriter, ) { info!("SYSTEM: spawn_sprites"); - sprite_event.write(SpriteEvent { sprite_type: SpriteType::Character, tile_x: 8, tile_y: 0, x: 4.5, y: -4.0, height:1, frames:2 }); - sprite_event.write(SpriteEvent { sprite_type: SpriteType::Character, tile_x: 4, tile_y: 0, x: 1.5, y: -7.0, height: 4, frames: 2}); - sprite_event.write(SpriteEvent { sprite_type: SpriteType::Character, tile_x: 6, tile_y: 0, x: 0.5, y: 2.0, height: 4, frames: 2 }); - sprite_event.write(SpriteEvent { sprite_type: SpriteType::Character, tile_x: 0, tile_y: 19, x: 3.5, y: 1.0, height: 1, frames: 1 }); - sprite_event.write(SpriteEvent { sprite_type: SpriteType::Character, tile_x: 1, tile_y: 19, x: 4.0, y: 6.0, height: 1, frames: 1 }); - sprite_event.write(SpriteEvent { sprite_type: SpriteType::Character, tile_x: 4, tile_y: 19, x: 0.0, y: 5.0, height: 1, frames: 1 }); - sprite_event.write(SpriteEvent { sprite_type: SpriteType::Character, tile_x: 5, tile_y: 19, x: -4.0, y: 5.4, height:1, frames: 1}); - sprite_event.write(SpriteEvent { sprite_type: SpriteType::Character, tile_x: 2, tile_y: 19, x: -0.5, y: -8.5, height:1, frames: 1 }); - sprite_event.write(SpriteEvent { sprite_type: SpriteType::Character, tile_x: 13, tile_y: 16, x: 4.2, y: -8., height: 2, frames: 1 }); + sprite_message.write(SpriteMessage { sprite_type: SpriteType::Character, tile_x: 8, tile_y: 0, x: 4.5, y: -4.0, height:1, frames:2 }); + sprite_message.write(SpriteMessage { sprite_type: SpriteType::Character, tile_x: 4, tile_y: 0, x: 1.5, y: -7.0, height: 4, frames: 2}); + sprite_message.write(SpriteMessage { sprite_type: SpriteType::Character, tile_x: 6, tile_y: 0, x: 0.5, y: 2.0, height: 4, frames: 2 }); + sprite_message.write(SpriteMessage { sprite_type: SpriteType::Character, tile_x: 0, tile_y: 19, x: 3.5, y: 1.0, height: 1, frames: 1 }); + sprite_message.write(SpriteMessage { sprite_type: SpriteType::Character, tile_x: 1, tile_y: 19, x: 4.0, y: 6.0, height: 1, frames: 1 }); + sprite_message.write(SpriteMessage { sprite_type: SpriteType::Character, tile_x: 4, tile_y: 19, x: 0.0, y: 5.0, height: 1, frames: 1 }); + sprite_message.write(SpriteMessage { sprite_type: SpriteType::Character, tile_x: 5, tile_y: 19, x: -4.0, y: 5.4, height:1, frames: 1}); + sprite_message.write(SpriteMessage { sprite_type: SpriteType::Character, tile_x: 2, tile_y: 19, x: -0.5, y: -8.5, height:1, frames: 1 }); + sprite_message.write(SpriteMessage { sprite_type: SpriteType::Character, tile_x: 13, tile_y: 16, x: 4.2, y: -8., height: 2, frames: 1 }); let atlas = TextureAtlas { - layout: images.layout.clone(), + layout: images.layout2.clone(), index: 30 * 32 + 14, + //index: 18, }; commands.spawn(( - Sprite3dBuilder { + Sprite { image: images.tileset.clone(), + texture_atlas: Some(atlas), + ..default() + }, + Sprite3d { pixels_per_metre: 16., emissive: Srgba::rgb(1.0, 0.5, 0.0).into(), unlit: true, ..default() - } - .bundle_with_atlas(&mut sprite_params, atlas), + }, + //.bundle_with_atlas(&mut sprite_params, atlas), Transform::from_xyz(2.0, 0.5, -5.5), Animation { frames: vec![30 * 32 + 14, 30 * 32 + 15, 30 * 32 + 16], @@ -162,19 +68,31 @@ fn _spawn_sprites( )); let atlas = TextureAtlas { - layout: images.layout.clone(), + layout: images.layout2.clone(), index: 22 * 30 + 22, }; commands.spawn(( - Sprite3dBuilder { + /*Sprite3dBuilder { image: images.tileset.clone(), pixels_per_metre: 16., emissive: LinearRgba::rgb(165. / 255., 1.0, 160. / 255.), unlit: true, ..default() - } - .bundle_with_atlas(&mut sprite_params, atlas), + }*/ + Sprite3d { + pixels_per_metre: 16., + double_sided: false, + emissive: LinearRgba::rgb(165. / 255., 1.0, 160. / 255.), + unlit: true, + ..default() + }, + Sprite { + image: images.tileset.clone(), + texture_atlas: Some(atlas), + ..default() + }, + //.bundle_with_atlas(&mut sprite_params, atlas), Transform::from_xyz(-5., 0.7, 6.5), FaceCamera {}, )); diff --git a/src/dialog.rs b/src/dialog.rs index 65e76ad..cf18385 100644 --- a/src/dialog.rs +++ b/src/dialog.rs @@ -13,8 +13,8 @@ impl Default for YarnNode { } } -#[derive(Event)] -pub struct DialogEvent { +#[derive(Message, Event)] +pub struct DialogMessage { pub actor: Entity, } @@ -27,8 +27,8 @@ impl Plugin for DialogPlugin { ExampleYarnSpinnerDialogueViewPlugin::new(), )) .register_type::() - .add_event::() - .add_observer(dialog_event_observer) + .add_message::() + .add_observer(dialog_message_observer) .add_systems(Update, spawn_dialog_runner.run_if(resource_added::)); //.add_systems(Update, read_dialog.run_if(in_state(GameState::Gameplay))); } @@ -43,8 +43,8 @@ fn spawn_dialog_runner( commands.spawn(dialog_runner); } -fn dialog_event_observer( - trigger: Trigger, +fn dialog_message_observer( + trigger: On, //mut dialog_events: EventReader, mut dialog_runner: Query<&mut DialogueRunner>, dialog_caller_query: Query<(Entity, &YarnNode)>, diff --git a/src/furniture/chair.rs b/src/furniture/chair.rs index a3d2551..06b00eb 100644 --- a/src/furniture/chair.rs +++ b/src/furniture/chair.rs @@ -1,48 +1,41 @@ use avian3d::prelude::RigidBodyDisabled; -use bevy::{prelude::*, state::commands}; -use bevy_trait_query::RegisterExt; +use bevy::{ecs::{lifecycle::HookContext, world::DeferredWorld}, prelude::*}; -use crate::{interact::Interaction, Player, PlayerState}; - -#[derive(Event)] -pub struct SitEvent { - pub actor: Entity, - pub target: Entity, -} +use crate::{Interactable, InteractionEvent, Player, PlayerState}; #[derive(Debug, Default, Component, Reflect)] #[reflect(Component)] +#[component(on_add = on_chair_add)] pub struct Chair; -impl Interaction for Chair { - fn interact( - &self, - commands: &mut Commands, - entity: Entity, - prop: Entity, - ) { - commands.trigger_targets(SitEvent {actor: entity, target: prop}, prop); - } -} pub struct ChairPlugin; impl Plugin for ChairPlugin { fn build(&self, app: &mut App) { - app.register_type::() - .register_component_as::() - .add_event::() - .add_observer(sit_event_observer); + app.register_type::(); } } -fn sit_event_observer( - trigger: Trigger, +fn on_chair_add( + mut world: DeferredWorld, + context: HookContext, +) { + trace!("HOOK: on_chair_add"); + world.commands() + .entity(context.entity) + .observe(chair_interaction_observer) + .insert(Interactable); +} + +fn chair_interaction_observer( + trigger: On, mut commands: Commands, mut player_query: Query<(&mut Transform, &mut PlayerState, Entity), With>, transform_query: Query<&GlobalTransform, Without>, ) { + trace!("OBSERVER: chair_interaction_observer"); if let Ok((mut player_transform, mut player_state, player_entity)) = player_query.single_mut() - && let Ok(chair_transform) = transform_query.get(trigger.target) { + && let Ok(chair_transform) = transform_query.get(trigger.entity) { *player_transform = Transform { translation: Vec3 { x: chair_transform.translation().x, y: chair_transform.translation().y + 1.0, z: chair_transform.translation().z }, rotation: chair_transform.rotation(), @@ -52,3 +45,4 @@ fn sit_event_observer( commands.entity(player_entity).insert(RigidBodyDisabled); } } + diff --git a/src/furniture/computer.rs b/src/furniture/computer.rs index b6d05c6..d7dd6a1 100644 --- a/src/furniture/computer.rs +++ b/src/furniture/computer.rs @@ -1,18 +1,19 @@ use avian3d::prelude::{Collider, RigidBody}; +use bevy::ecs::lifecycle::HookContext; +use bevy::ecs::world::DeferredWorld; use bevy::prelude::*; use bevy::render::render_resource::{Extent3d, TextureFormat, TextureUsages}; use bevy::color::palettes::css::GOLD; -use bevy_trait_query::RegisterExt; use ratatui::style::Stylize; use ratatui::widgets::{Block, Borders, Paragraph, Wrap}; use ratatui::{Frame, Terminal}; -use soft_ratatui::SoftBackend; +use soft_ratatui::embedded_graphics_unicodefonts::{mono_8x13_atlas, mono_8x13_italic_atlas, mono_8x13_bold_atlas}; +use soft_ratatui::{EmbeddedGraphics, SoftBackend}; use bevy::asset::RenderAssetUsages; -use bevy::render::camera::RenderTarget; +use bevy::camera::RenderTarget; use std::f32::consts::PI; -use crate::interact::Interaction; -use crate::GameState; +use crate::{GameState, Interactable, InteractionEvent}; #[derive(Clone, Hash, Debug, Eq, PartialEq, Default, States)] pub enum ComputerState { @@ -27,16 +28,11 @@ pub struct UseComputerEvent { } pub struct ComputerPlugin; - impl Plugin for ComputerPlugin { fn build(&self, app: &mut App) { app.init_resource::() .register_type::() - .register_component_as::() .register_type::() - .add_event::>() - .add_observer(change_computer_screen) - //.add_systems(Update, change_computer_screen) .add_systems(OnEnter(GameState::Loading), spawn_computer); } } @@ -45,12 +41,8 @@ static FONT_DATA: &[u8] = include_bytes!("../../assets/iosevka.ttf"); #[derive(Debug, Clone, Component, Reflect)] #[reflect(Component)] +#[component(on_add = on_computer_add)] pub struct ComputerCube; -impl Interaction for ComputerCube { - fn interact(&self,commands: &mut Commands, _entity:Entity, prop:Entity,) { - commands.trigger_targets(ChangeScreenEvent{ frame_closure: new_computer_screen}, prop); - } -} #[derive(Debug, Clone, Component, Reflect)] #[reflect(Component)] @@ -66,17 +58,38 @@ pub struct ChangeScreenEvent { // Create resource to hold the ratatui terminal #[derive(Resource, Deref, DerefMut)] -pub struct SoftTerminal(Terminal); +pub struct SoftTerminal(Terminal>); impl Default for SoftTerminal { fn default() -> Self { - let backend = SoftBackend::new_with_font(15, 15, 12, FONT_DATA); + let font_regular = mono_8x13_atlas(); + let font_italic = mono_8x13_italic_atlas(); + let font_bold = mono_8x13_bold_atlas(); + let backend = SoftBackend::::new( + 30, + 30, + font_regular, + Some(font_bold), + Some(font_italic), + ); + //let backend = SoftBackend::new_with_font(15, 15, 12, FONT_DATA); //backend.set_font_size(12); Self(Terminal::new(backend).unwrap()) } } +fn on_computer_add( + mut world: DeferredWorld, + context: HookContext, +) { + trace!("HOOK: on_computer_add"); + world.commands() + .entity(context.entity) + .observe(change_computer_screen) + .insert(Interactable); +} + fn change_computer_screen ( - trigger: Trigger, + _trigger: On, mut softatui: ResMut, proc_material: Res, mut images: ResMut>, @@ -84,7 +97,7 @@ fn change_computer_screen ( ) { trace!("SYSTEM: computer_test"); - softatui.draw(trigger.frame_closure) + softatui.draw(new_computer_screen) .expect("oops"); let width = softatui.backend().get_pixmap_width() as u32; @@ -122,6 +135,7 @@ fn spawn_computer( mut softatui: ResMut, mut images: ResMut>, ) { + trace!("SYSTEM: spawn_computer"); softatui .draw(draw_computer_screen) .expect("epic fail"); diff --git a/src/furniture/door.rs b/src/furniture/door.rs index b116afd..d4c9b44 100644 --- a/src/furniture/door.rs +++ b/src/furniture/door.rs @@ -1,7 +1,6 @@ -use bevy::prelude::*; -use bevy_trait_query::RegisterExt; +use bevy::{ecs::{lifecycle::HookContext, world::DeferredWorld}, prelude::*}; -use crate::interact::Interaction; +use crate::{Interactable, InteractionEvent}; #[derive(Clone, Hash, Debug, Eq, PartialEq, Default)] pub enum DoorState { @@ -15,38 +14,35 @@ pub struct DoorAnimation(pub Handle); #[derive(Resource)] pub struct DoorGraph(pub Handle); -#[derive(Event)] -pub struct DoorEvent { - actor: Entity, - target: Entity, -} - #[derive(Debug, Default, Component, Reflect)] #[reflect(Component)] +#[component(on_add = on_door_add)] pub struct DoorComponent; -impl Interaction for DoorComponent { - fn interact(&self,commands: &mut Commands,entity:Entity,prop:Entity,) { - println!("Door Interaction"); - commands.trigger_targets(DoorEvent {actor: entity, target: prop}, entity); - } -} pub struct DoorPlugin; impl Plugin for DoorPlugin { fn build(&self, app: &mut App) { - app.register_type::() - .register_component_as::() - .add_event::() - .add_observer(door_event_observer); + app.register_type::(); } } -fn door_event_observer( - trigger: Trigger, +fn on_door_add( + mut world: DeferredWorld, + context: HookContext, +) { + trace!("HOOK: on_door_add"); + world.commands() + .entity(context.entity) + .observe(door_interaction_observer) + .insert(Interactable); +} + +fn door_interaction_observer( + _trigger: On, mut door: Query<(Entity, &mut AnimationPlayer)>, ) { trace!("OBSERVER: door_event_observer"); - if let Ok((door_entity, mut door_animation_player)) = door.single_mut() { + if let Ok((_door_entity, mut door_animation_player)) = door.single_mut() { door_animation_player.play(1.into()); } } diff --git a/src/furniture/ladder.rs b/src/furniture/ladder.rs index b60f0ea..287eaec 100644 --- a/src/furniture/ladder.rs +++ b/src/furniture/ladder.rs @@ -1,10 +1,11 @@ -use avian3d::prelude::{OnCollisionEnd, OnCollisionStart}; -use bevy::prelude::*; +use avian3d::prelude::{CollidingEntities, CollisionEnd, CollisionEventsEnabled, CollisionStart}; +use bevy::{ecs::{lifecycle::HookContext, world::DeferredWorld}, prelude::*}; -use crate::{Player, PlayerState}; +use crate::{Climbable, Player, PlayerState, level::BlenderTranslationComplete}; #[derive(Debug, Default, Component, Reflect)] #[reflect(Component)] +//#[component(on_add = on_ladder_add)] pub struct LadderComponent; pub struct LadderPlugin; @@ -14,20 +15,40 @@ impl Plugin for LadderPlugin { } } +fn on_ladder_add( + mut world: DeferredWorld, + context: HookContext, +) { + println!("QQQQQQQQQQQQQQQQq"); + world.commands() + .entity(context.entity) + .queue_silenced(|mut entity: EntityWorldMut| { + entity + .insert(CollidingEntities::default()) + .insert(CollisionEventsEnabled) + .insert(BlenderTranslationComplete) + .insert(Climbable) + .observe(ladder_collision_observer) + .observe(ladder_decollision_observer); + }); +} + pub fn ladder_collision_observer( - trigger: Trigger, + trigger: On, mut player_query: Query<&mut PlayerState, With>, ) { - if player_query.contains(trigger.collider) && let Ok(mut player) = player_query.single_mut() { - *player = PlayerState::Ladder(trigger.body.unwrap()); + trace!("OBSERVER: ladder_collision_observer"); + if player_query.contains(trigger.event().collider2) && let Ok(mut player) = player_query.single_mut() { + *player = PlayerState::Ladder(trigger.event().body1.unwrap()); } } pub fn ladder_decollision_observer( - trigger: Trigger, + trigger: On, mut player_query: Query<&mut PlayerState, With>, ) { - if player_query.contains(trigger.collider) && let Ok(mut player) = player_query.single_mut() { + trace!("OBSERVER: ladder_decollision_observer"); + if player_query.contains(trigger.event().collider2) && let Ok(mut player) = player_query.single_mut() { *player = PlayerState::Grounded; } } diff --git a/src/furniture/lever.rs b/src/furniture/lever.rs index 87b85f8..32b1a3d 100644 --- a/src/furniture/lever.rs +++ b/src/furniture/lever.rs @@ -1,39 +1,48 @@ -use bevy::prelude::*; -use bevy_trait_query::RegisterExt; +use bevy::{ecs::{lifecycle::HookContext, world::DeferredWorld}, prelude::*}; -use crate::interact::Interaction; - -#[derive(Event)] -pub struct LeverEvent { - actor: Entity, - target: Entity, -} +use crate::{Interactable, InteractionEvent}; #[derive(Debug, Default, Component, Reflect)] #[reflect(Component)] +#[component(on_add = on_lever_add)] pub struct LeverComponent; -impl Interaction for LeverComponent { - fn interact(&self,commands: &mut Commands,entity:Entity,prop:Entity,) { - println!("Lever Interaction"); - commands.trigger_targets(LeverEvent {actor: entity, target: prop}, entity); - } + +#[derive(Debug, Default, Component, Reflect)] +#[reflect(Component)] +pub struct ActivationTargets(Vec); + +#[derive(Debug, Default, Component, Reflect)] +#[reflect(Component)] +pub struct Activatable; + +#[derive(Debug, EntityEvent)] +pub struct ActivatableEvent { + entity: Entity, } pub struct LeverPlugin; impl Plugin for LeverPlugin { fn build(&self, app: &mut App) { - app.register_type::() - .register_component_as::() - .add_event::() - .add_observer(lever_event_observer); + app.register_type::(); } } -fn lever_event_observer( - trigger: Trigger, +fn on_lever_add( + mut world: DeferredWorld, + context: HookContext, +) { + trace!("HOOK: on_lever_add"); + world.commands() + .entity(context.entity) + .observe(lever_interaction_observer) + .insert(Interactable); +} + +fn lever_interaction_observer( + _trigger: On, lever: Query>, ) { trace!("OBSERVER: lever_event_observer"); - if let Ok(lever_entity) = lever.single() { + if let Ok(_lever_entity) = lever.single() { } } diff --git a/src/furniture/mod.rs b/src/furniture/mod.rs index 4576b1a..a310c22 100644 --- a/src/furniture/mod.rs +++ b/src/furniture/mod.rs @@ -1,4 +1,4 @@ -use bevy::prelude::*; +use bevy::{ecs::query::QueryData, prelude::*}; mod chair; mod computer; @@ -12,6 +12,14 @@ pub use door::*; pub use ladder::*; pub use lever::*; +#[derive(QueryData)] +pub struct ObstacleQueryHelper { + pub climbable: Has, +} + +#[derive(Component)] +pub struct Climbable; + pub struct FurniturePlugin; impl Plugin for FurniturePlugin { fn build(&self, app: &mut App) { diff --git a/src/interact.rs b/src/interact.rs index cd83a43..83b2482 100644 --- a/src/interact.rs +++ b/src/interact.rs @@ -1,43 +1,48 @@ use bevy::prelude::*; use avian_pickup::prelude::*; -#[bevy_trait_query::queryable] -pub trait Interaction { - fn interact( &self, - commands: &mut Commands, - entity: Entity, - prop: Entity, - ); +#[derive(Component)] +pub struct Interactable; + +#[derive(EntityEvent)] +pub struct InteractionEvent { + pub entity: Entity, + pub actor: Entity, } -#[bevy_trait_query::queryable] -pub trait Inspectable { - fn inspect( &self, - commands: &mut Commands, - entity: Entity, - prop: Entity, - ); +#[derive(EntityEvent)] +pub struct InspectEvent { + pub entity: Entity, + pub actor: Entity, } -#[derive(Event)] -pub struct InteractEvent { +#[derive(EntityEvent)] +pub struct EquiptEvent { + pub entity: Entity, pub actor: Entity, - pub target: Entity, } -#[derive(Event)] -pub struct InspectEvent { +#[derive(EntityEvent)] +pub struct UseEvent { + pub entity: Entity, pub actor: Entity, - pub target: Entity, } +#[derive(EntityEvent)] +pub struct DropEvent { + pub entity: Entity, + pub actor: Entity, +} + +#[derive(Message)] +pub struct UnInspectMessage; + pub struct InteractPlugin; impl Plugin for InteractPlugin { fn build(&self, app: &mut App) { trace!("InteractPlugin build"); - app.add_plugins(AvianPickupPlugin::default()) - .add_event::() - .add_event::(); + app + .add_plugins(AvianPickupPlugin::default()) + .add_message::(); } } - diff --git a/src/inventory.rs b/src/inventory.rs index 5a5081d..07ba917 100644 --- a/src/inventory.rs +++ b/src/inventory.rs @@ -1,119 +1,61 @@ -use super::GameState; -use bevy::prelude::*; -use std::ops::Deref; +use bevy::{ecs::relationship::RelationshipSourceCollection, prelude::*}; -use crate::items::*; +#[derive(EntityEvent)] +pub struct AddToInventoryEvent { + pub entity: Entity, + pub item: Entity, +} -#[derive(Event)] -pub struct PickUpEvent { - pub actor: Entity, - pub target: Entity, +#[derive(EntityEvent)] +pub struct RemoveFromInventoryEvent { + pub entity: Entity, + pub item: Entity, } -#[derive(Event)] -pub struct RemoveEvent { +#[derive(Message)] +pub struct RemoveMessage { pub actor: Entity, pub target: Entity, } -#[derive(Component, Default)] -pub struct Inventory { - pub items: Vec, - pub ui_index: usize, - pub ui_active: bool, -} +#[derive(Component)] +#[relationship_target(relationship = InInventory, linked_spawn)] +pub struct Inventory(Vec); -#[derive(Component, Clone, Reflect)] -#[reflect(Component)] +#[derive(Component)] +#[relationship(relationship_target = Inventory)] pub struct InInventory(pub Entity); -impl From for Entity { - fn from(in_inventory: InInventory) -> Entity { - in_inventory.0 - } -} - -impl From<&InInventory> for Entity { - fn from(in_inventory: &InInventory) -> Entity { - in_inventory.0 - } -} - -impl From for InInventory { - fn from(entity: Entity) -> InInventory { - InInventory(entity) - } -} - -impl AsRef for InInventory { - fn as_ref(&self) -> &Entity { - &self.0 - } -} - -impl Deref for InInventory { - type Target = Entity; - - fn deref(&self) -> &Self::Target { - self.as_ref() - } -} - pub struct InventoryPlugin; impl Plugin for InventoryPlugin { fn build(&self, app: &mut App) { - app.add_event::() - .add_event::() - .add_systems( - Update, - add_to_inventory.run_if(in_state(GameState::Gameplay)), - ) - .add_systems( - Update, - remove_from_inventory.run_if(in_state(GameState::Gameplay)), - ) - .register_type::(); + app + .add_message::(); + //.add_systems( + // Update, + // remove_from_inventory.run_if(in_state(GameState::Gameplay)), + // ) } } -fn add_to_inventory( +pub fn add_to_inventory_observer( + trigger: On, mut commands: Commands, - mut pick_up_events: EventReader, - mut item: Query, - mut actor: Query<(Entity, &mut Inventory)>, + query: Query>, ) { - trace!("SYSTEM: add_to_inventory"); - - for event in pick_up_events.read() { - info!("Event Handler: add_to_inventory"); - if item.get_mut(event.target).is_ok() { - //commands.entity(item_entity).despawn_recursive(); - commands - .entity(event.target) - .insert(InInventory(event.actor)); - //.remove::(); - //.remove::(); - if let Ok((_, mut inventory)) = actor.get_mut(event.actor) { - inventory.items.push(event.target); - } - } + trace!("OBSERVER: add_to_inventory_observer"); + if let Ok(entity) = query.get(trigger.entity) { + commands.entity(trigger.item).insert(InInventory(entity)); } } -fn remove_from_inventory( +pub fn remove_from_inventory_observer( + trigger: On, mut commands: Commands, - mut remove_events: EventReader, - item_query: Query>, - mut actor: Query<(Entity, &mut Inventory)>, + query: Query>, ) { - trace!("SYSTEM: remove_from_inventory"); - - for event in remove_events.read() { - if let Ok((_, mut inventory)) = actor.get_mut(event.actor) { - inventory.items.retain(|item| *item != event.target); - if let Ok(item) = item_query.get(event.target) { - commands.entity(item).remove::(); - } - } + trace!("OBSERVER: remove_from_inventory_observer"); + if query.get(trigger.entity).is_ok() { + commands.entity(trigger.item).remove::(); } } diff --git a/src/items/ammo.rs b/src/items/ammo.rs index fd5734e..576f30d 100644 --- a/src/items/ammo.rs +++ b/src/items/ammo.rs @@ -1,6 +1,6 @@ -use bevy::prelude::*; +use bevy::{ecs::{lifecycle::HookContext, world::DeferredWorld}, prelude::*, state::commands}; -use crate::{interact::Interaction, InteractEvent}; +use crate::{Interactable, InteractionEvent, UseEvent}; #[derive(Debug, Clone, Reflect, Default)] pub enum AmmoType { @@ -10,37 +10,46 @@ pub enum AmmoType { #[derive(Debug, Clone, Component, Reflect, Default)] #[reflect(Component)] +#[component(on_add = on_ammo_add)] pub struct Ammo; #[derive(Debug, Clone, Component, Reflect, Default)] #[reflect(Component)] pub struct AmmoPouch(pub i32); -impl Interaction for Ammo { - fn interact( - &self, - commands: &mut Commands, - _actor: Entity, - prop: Entity, - ) { - commands.entity(prop).despawn(); - } -} - pub struct AmmoPlugin; impl Plugin for AmmoPlugin { fn build(&self, app: &mut App) { app.register_type::() - .register_type::() - .add_observer(ammo_event_observer); + .register_type::(); } } +fn on_ammo_add( + mut world: DeferredWorld, + context: HookContext, +) { + trace!("HOOK: on_ammo_add"); + world.commands() + .entity(context.entity) + .observe(ammo_interaction_observer) + .observe(ammo_use_observer) + .insert(Interactable); +} -fn ammo_event_observer( - trigger: Trigger +fn ammo_interaction_observer( + trigger: On ) { + trace!("OBSERVER: ammo_interaction_observer"); let _player = trigger.event().actor; - let _ammo = trigger.target(); + let _ammo = trigger.entity; +} + +fn ammo_use_observer( + trigger: On, + mut commands: Commands, +) { + trace!("OBSERVER: ammo_use_observer"); + commands.entity(trigger.entity).despawn(); } diff --git a/src/items/armor.rs b/src/items/armor.rs index 8c2273e..54e955f 100644 --- a/src/items/armor.rs +++ b/src/items/armor.rs @@ -1,6 +1,6 @@ -use bevy::prelude::*; +use bevy::{ecs::{lifecycle::HookContext, world::DeferredWorld}, prelude::*}; -use crate::{interact::Interaction, InteractEvent}; +use crate::{Interactable, InteractionEvent}; #[derive(Component, Debug, Clone, Reflect, Default)] #[reflect(Component)] @@ -18,34 +18,33 @@ pub enum ArmorType { #[derive(Component, Debug, Clone, Reflect, Default)] #[reflect(Component)] +#[component(on_add = on_armor_add)] pub struct Armor { armor_type: ArmorType, defense: i32, } -impl Interaction for Armor { - fn interact( - &self, - commands: &mut Commands, - _actor: Entity, - prop: Entity, - ) { - commands.entity(prop).despawn(); - } -} - pub struct ArmorPlugin; - impl Plugin for ArmorPlugin { fn build(&self, app: &mut App) { - app.register_type::() - .add_observer(armor_event_observer); + app.register_type::(); } } -fn armor_event_observer( - trigger: Trigger +fn on_armor_add( + mut world: DeferredWorld, + context: HookContext, +) { + trace!("HOOK: on_armor_add"); + world.commands() + .entity(context.entity) + .insert(Interactable); +} + +fn armor_interaction_observer( + trigger: On ) { + trace!("OBSERVER: armor_interaction_observer"); let _player = trigger.event().actor; - let _armor = trigger.target(); + let _armor = trigger.entity; } diff --git a/src/items/books.rs b/src/items/books.rs index 0d131f9..e80f2b4 100644 --- a/src/items/books.rs +++ b/src/items/books.rs @@ -1,36 +1,58 @@ -use bevy::prelude::*; +use bevy::{ecs::{lifecycle::HookContext, world::DeferredWorld}, prelude::*}; -use crate::{interact::Interaction, InteractEvent}; +use crate::{Interactable, InteractionEvent, UseEvent, book_ui::display_book_ui}; + +#[derive(EntityEvent)] +pub struct OpenBookEvent { + pub entity: Entity, +} #[derive(Component, Reflect, Default, Clone, Debug)] #[reflect(Component)] +#[component(on_add = on_book_add)] pub struct Book { pub title: String, pub contents: String, } -impl Interaction for Book { - fn interact( - &self, - _commands: &mut Commands, - _actor: Entity, - _prop: Entity, - ) { - } +#[derive(Component, Reflect, Default, Clone, Debug)] +#[reflect(Component)] +pub struct BookPages { + pub pages: Vec, } pub struct BookPlugin; impl Plugin for BookPlugin { fn build(&self, app: &mut App) { - app.register_type::() - .add_observer(book_event_observer); + app.register_type::(); } } -fn book_event_observer( - trigger: Trigger +fn on_book_add( + mut world: DeferredWorld, + context: HookContext, +) { + trace!("HOOK: on_book_add"); + world.commands() + .entity(context.entity) + .observe(book_interaction_observer) + .insert(Interactable) + .observe(display_book_ui); +} + +fn book_interaction_observer( + trigger: On, + mut commands: Commands, +) { + trace!("OBSERVER: book_interaction_observer"); + commands.entity(trigger.entity).trigger(|entity| OpenBookEvent { entity }); +} + +fn book_use_observer( + trigger: On, + mut commands: Commands, ) { - let _player = trigger.event().actor; - let _book = trigger.target(); + trace!("OBSERVER: book_use_observer"); + commands.entity(trigger.entity).trigger(|entity| OpenBookEvent { entity }); } diff --git a/src/items/consume.rs b/src/items/consume.rs deleted file mode 100644 index e0f1a0b..0000000 --- a/src/items/consume.rs +++ /dev/null @@ -1,34 +0,0 @@ -use bevy::prelude::*; - -use crate::{interact::Interaction, InteractEvent}; - -#[derive(Component, Debug, Clone, Reflect, Default)] -#[reflect(Component)] -pub struct Consume; - -pub struct ComsumePlugin; - -impl Interaction for Consume { - fn interact( - &self, - commands: &mut Commands, - _actor: Entity, - prop: Entity, - ) { - commands.entity(prop).despawn(); - } -} - -impl Plugin for ComsumePlugin { - fn build(&self, app: &mut App) { - app.register_type::() - .add_observer(consume_event_observer); - } -} - -fn consume_event_observer( - trigger: Trigger -) { - let _actor = trigger.event().actor; - let _consumeable = trigger.target(); -} diff --git a/src/items/container.rs b/src/items/container.rs new file mode 100644 index 0000000..8da12bc --- /dev/null +++ b/src/items/container.rs @@ -0,0 +1,67 @@ +use bevy::{color::palettes::css::CRIMSON, ecs::{lifecycle::HookContext, world::DeferredWorld}, prelude::*}; + +use crate::{DisplayInventoryEvent, InspectEvent, Interactable, InteractionEvent, UiInspect, add_to_inventory_observer, display_inventory_event_observer, remove_from_inventory_observer, widgets}; + +#[derive(Component, Debug, Clone, Reflect, Default)] +#[reflect(Component)] +#[component(on_add = on_container_add)] +pub struct Container; + +pub struct ContainerPlugin; +impl Plugin for ContainerPlugin { + fn build(&self, app: &mut App) { + app + .register_type::(); + } +} + +fn on_container_add( + mut world: DeferredWorld, + context: HookContext, +) { + trace!("HOOK: on_container_add"); + world.commands() + .entity(context.entity) + .observe(container_interaction_observer) + .observe(container_inspection_observer) + .observe(display_inventory_event_observer) + .observe(add_to_inventory_observer::) + .observe(remove_from_inventory_observer::) + .insert(Interactable); +} + +fn container_interaction_observer( + trigger: On, + mut commands: Commands, +) { + trace!("OBSERVER: container_interaction_observer"); + commands.entity(trigger.entity).trigger(|entity| DisplayInventoryEvent { entity }); +} + +fn container_inspection_observer( + trigger: On, + name_query: Query<&Name>, + mut commands: Commands, +) { + trace!("OBSERVER: container_inspection_observer"); + if let Ok(name) = name_query.get(trigger.entity) { + commands.spawn(( + Node { + position_type: PositionType::Absolute, + width: Val::Percent(5.), + height: Val::Percent(5.), + left: Val::Percent(55.), + flex_direction: FlexDirection::Column, + justify_content: JustifyContent::Center, + align_self: AlignSelf::Center, + flex_wrap: FlexWrap::Wrap, + ..default() + }, + BackgroundColor(CRIMSON.into()), + UiInspect, + children![ + widgets::label(name), + ] + )); + } +} diff --git a/src/items/equip.rs b/src/items/equip.rs new file mode 100644 index 0000000..526f43e --- /dev/null +++ b/src/items/equip.rs @@ -0,0 +1,55 @@ +use bevy::{ecs::{component::Component, entity::Entity, lifecycle::HookContext, observer::On, relationship, system::Commands, world::DeferredWorld}, prelude::Plugin, prelude::trace}; + +use crate::UseEvent; + +pub enum EquipSlot { + Arm, + Leg, + Hand, + Feet, + Body, + Head, + Finger, + Toe, +} + +#[derive(Component)] +#[component(on_add = on_equiptable_add)] +pub struct Equiptable { + pub slot: EquipSlot, + pub defense: i32, +} + +#[derive(Component)] +#[relationship_target(relationship = InEquiptment)] +pub struct Equiptment(Vec); + +#[derive(Component)] +#[relationship(relationship_target = Equiptment)] +pub struct InEquiptment(pub Entity); + +pub struct EquipItemPlugin; +impl Plugin for EquipItemPlugin { + fn build(&self, app: &mut bevy::app::App) { + app; + } +} + +fn on_equiptable_add( + mut world: DeferredWorld, + context: HookContext, +) { + trace!("HOOK: on_equiptable_add"); + world.commands() + .entity(context.entity) + .observe(equip_use_event_observer); +} + +fn equip_use_event_observer( + trigger: On, + mut commands: Commands, +) { + trace!("OBSERVER: equip_use_event_observer"); + commands.entity(trigger.entity) + .insert(InEquiptment(trigger.actor)); +} diff --git a/src/items/misc.rs b/src/items/misc.rs index a20b1df..427b491 100644 --- a/src/items/misc.rs +++ b/src/items/misc.rs @@ -1,61 +1,70 @@ use avian_pickup::{input::{AvianPickupAction, AvianPickupInput}, prop::HeldProp}; -use bevy::prelude::*; -use bevy_trait_query::RegisterExt; +use avian3d::prelude::RigidBodyDisabled; +use bevy::{color::palettes::css::CRIMSON, ecs::{lifecycle::HookContext, world::DeferredWorld}, prelude::*}; -use crate::{interact::Interaction, Inspectable}; +use crate::{InspectEvent, Interactable, InteractionEvent, UiInspect, widgets}; #[derive(Component, Reflect, Default)] #[reflect(Component)] +#[component(on_add = on_misc_add)] pub struct MiscItem; -#[derive(Event)] -pub struct MiscInteractEvent { - actor: Entity, - prop: Entity, -} - pub struct MiscItemPlugin; -impl Interaction for MiscItem { - fn interact( - &self, - commands: &mut Commands, - actor: Entity, - prop: Entity, - ) { - println!("Misc Interaction Impl"); - commands.trigger_targets(MiscInteractEvent {actor, prop}, prop); - } -} - -impl Inspectable for MiscItem { - fn inspect( - &self, - commands: &mut Commands, - actor: Entity, - prop: Entity, - ) { - println!("Misc Inspectable Impl"); - //commands.trigger_targets(MiscInteractEvent {actor, prop}, prop); - } -} - impl Plugin for MiscItemPlugin { fn build(&self, app: &mut App) { - app.register_type::() - .register_component_as::() - .register_component_as::() - .add_event::() - .add_observer(misc_event_observer); + app.register_type::(); } } -fn misc_event_observer( - trigger: Trigger, - mut avian_pickup_input_writer: EventWriter, +fn on_misc_add( + mut world: DeferredWorld, + context: HookContext, +) { + trace!("HOOK: on_misc_add"); + world.commands() + .entity(context.entity) + .observe(misc_interaction_observer) + .observe(misc_inspection_observer) + .insert(Interactable); +} + +fn misc_interaction_observer( + trigger: On, + mut commands: Commands, + mut avian_pickup_input_writer: MessageWriter, _held_prop_query: Query<&HeldProp>, ) { - info!("Misc Interact event"); + trace!("OBSERVER: misc_interaction_observer"); let actor = trigger.event().actor; + commands.entity(trigger.event().entity).remove::(); avian_pickup_input_writer.write(AvianPickupInput { actor, action: AvianPickupAction::Pull }); } + +fn misc_inspection_observer( + trigger: On, + name_query: Query<&Name>, + mut commands: Commands, +) { + trace!("OBSERVER: misc_inspection_observer"); + if let Ok(name) = name_query.get(trigger.entity) { + commands.spawn(( + Node { + position_type: PositionType::Absolute, + width: Val::Percent(5.), + height: Val::Percent(5.), + left: Val::Percent(55.), + flex_direction: FlexDirection::Column, + justify_content: JustifyContent::Center, + align_self: AlignSelf::Center, + flex_wrap: FlexWrap::Wrap, + ..default() + }, + BackgroundColor(CRIMSON.into()), + UiInspect, + children![ + widgets::label(name), + ] + )); + } +} diff --git a/src/items/mod.rs b/src/items/mod.rs index a105558..54e0429 100644 --- a/src/items/mod.rs +++ b/src/items/mod.rs @@ -1,29 +1,63 @@ mod ammo; mod armor; mod books; -mod consume; +mod container; +mod equip; mod misc; mod weapons; +use std::iter; + pub use ammo::*; pub use armor::*; +use avian_pickup::prop::HeldProp; +use avian3d::prelude::{CollisionLayers, CollisionStart, Position, RigidBodyDisabled, Rotation}; pub use books::*; -pub use consume::*; +pub use container::*; +pub use equip::*; pub use misc::*; pub use weapons::*; use bevy::prelude::*; -use crate::Name; +use crate::{level::CollisionLayer}; + +#[derive(Component, Reflect, Clone, Default)] +#[reflect(Component)] +pub struct RegisteredItem; #[derive(Component, Reflect, Clone, Default)] +#[reflect(Component)] pub struct Weight(pub i32); + #[derive(Component, Reflect, Clone, Default)] +#[reflect(Component)] pub struct Description(pub String); +#[derive(EntityEvent)] +pub struct ItemInteractionEvent { + entity: Entity, +} + +#[derive(Component, Reflect, Clone, Default)] +#[reflect(Component)] +pub struct SocketItem; + +#[derive(Component, Reflect, Clone, Default)] +#[reflect(Component)] +pub struct PlugItem; + +#[derive(Component, Reflect, Clone, Default)] +#[reflect(Component)] +pub struct MountPoint; + +#[derive(EntityEvent)] +pub struct PlugSocketEvent { + entity: Entity, +} + #[derive(Component, Clone, Default)] pub struct Item { - pub name: Name, pub description: Description, pub weight: Weight, } @@ -32,12 +66,72 @@ pub struct ItemPlugin; impl Plugin for ItemPlugin { fn build(&self, app: &mut App) { app + .register_type::() + .register_type::() + .register_type::() .add_plugins(( - // AmmoPlugin, - // ArmorPlugin, - // BookPlugin, + AmmoPlugin, + ArmorPlugin, + BookPlugin, MiscItemPlugin, -// WeaponPlugin, - )); + ContainerPlugin, + WeaponPlugin, + )) + .add_observer(disabled_held_prop_collision) + .add_observer(enable_dropped_prop_collision) + .add_systems(Update, register_socket_items); + } +} + +fn disabled_held_prop_collision( + add: On, + children_query: Query<&Children>, + mut collision_layers_query: Query<&mut CollisionLayers>, +) { + let rigid_body = add.entity; + for child in iter::once(rigid_body).chain(children_query.iter_descendants(rigid_body)) { + let Ok(mut collision_layers) = collision_layers_query.get_mut(child) else { + continue; + }; + collision_layers.filters.remove(CollisionLayer::Player); + } +} + +fn enable_dropped_prop_collision( + remove: On, + children_query: Query<&Children>, + mut collision_layers_query: Query<&mut CollisionLayers>, +) { + let rigid_body = remove.entity; + for child in iter::once(rigid_body).chain(children_query.iter_descendants(rigid_body)) { + let Ok(mut collision_layers) = collision_layers_query.get_mut(child) else { + continue; + }; + collision_layers.filters.add(CollisionLayer::Player); + } +} + +fn register_socket_items( + mut commands: Commands, + mut socket_query: Query, Without)> +) { + for socket in socket_query.iter_mut() { + commands.entity(socket) + .observe(socket_test) + .insert(RegisteredItem); + } +} + +fn socket_test( + trigger: On, + mut commands: Commands, + mut plug_query: Query<(Entity, &mut Position, &mut Rotation), With>, + mount_query: Query<(&Position, &Rotation), (With, Without)>, +) { + if let Ok((plug_entity, mut plug_position, mut plug_rotation)) = plug_query.get_mut(trigger.event().collider2) + && let Ok((mount_position, mount_rotation)) = mount_query.single() { + *plug_position = mount_position.clone(); + *plug_rotation = mount_rotation.clone(); + commands.entity(plug_entity).insert(RigidBodyDisabled); } } diff --git a/src/items/weapons.rs b/src/items/weapons.rs index 5e9c925..29ad25a 100644 --- a/src/items/weapons.rs +++ b/src/items/weapons.rs @@ -1,6 +1,6 @@ -use bevy::prelude::*; +use bevy::{ecs::{lifecycle::HookContext, world::DeferredWorld}, prelude::*}; -use crate::{interact::Interaction, InteractEvent}; +use crate::{Interactable, InteractionEvent}; #[derive(Component, Debug, Clone, Reflect, Default)] #[reflect(Component)] @@ -11,33 +11,33 @@ pub enum WeaponType { #[derive(Component, Debug, Clone, Reflect, Default)] #[reflect(Component)] +#[component(on_add = on_weapon_add)] pub struct Weapon { weapon_type: WeaponType, } -impl Interaction for Weapon { - fn interact( - &self, - commands: &mut Commands, - _actor: Entity, - prop: Entity, - ) { - commands.entity(prop).despawn(); - } -} - pub struct WeaponPlugin; - impl Plugin for WeaponPlugin { fn build(&self, app: &mut App) { - app.register_type::() - .add_observer(weapon_event_observer); + app.register_type::(); } } -fn weapon_event_observer( - trigger: Trigger +fn on_weapon_add( + mut world: DeferredWorld, + context: HookContext, +) { + trace!("HOOK: on_weapon_add"); + world.commands() + .entity(context.entity) + .observe(weapon_interaction_observer) + .insert(Interactable); +} + +fn weapon_interaction_observer( + trigger: On ) { + trace!("OBSERVER: weapon_interaction_observer"); let _actor = trigger.event().actor; - let _weapon = trigger.target(); + let _weapon = trigger.entity; } diff --git a/src/level.rs b/src/level.rs index 2f3450c..91dbe44 100644 --- a/src/level.rs +++ b/src/level.rs @@ -1,11 +1,10 @@ -use bevy::{asset::AssetPath, input::common_conditions::input_pressed}; use bevy_asset_loader::{asset_collection::AssetCollection, loading_state::{config::ConfigureLoadingState, LoadingState, LoadingStateAppExt}, standard_dynamic_asset::StandardDynamicAssetCollection}; +use bevy_sun_move::{SkyCenter, SunMovePlugin, TimedSkyConfig, random_stars::{RandomStarsPlugin, StarSpawner}}; use super::GameState; -use crate::{ladder_decollision_observer, ladder_collision_observer, LadderComponent, MiscItem}; -use avian3d::prelude::{ColliderConstructor, CollidingEntities, CollisionEventsEnabled, CollisionLayers, LayerMask, Physics, PhysicsLayer, RigidBody}; +use crate::{Climbable, LadderComponent, MiscItem, Obstacle, ladder_collision_observer, ladder_decollision_observer}; +use avian3d::{prelude::{ColliderConstructor, CollidingEntities, CollisionEventsEnabled, CollisionLayers, LayerMask, PhysicsLayer, RigidBody}}; use bevy::{gltf::Gltf, prelude::*}; - #[derive(Debug, PhysicsLayer, Default, Component, Reflect)] #[reflect(Component)] pub enum CollisionLayer { @@ -51,19 +50,23 @@ pub struct BlenderColliderConstructor; #[reflect(Component)] pub struct BlenderNavmesh; -#[derive(Event)] -pub struct ChangeLevelEvent(String); +#[derive(Debug, Default, Component, Reflect)] +#[reflect(Component)] +pub struct BlenderTranslationComplete; + +#[derive(Message)] +pub struct ChangeLevelMessage(pub String); #[derive(AssetCollection, Reflect, Resource, Debug)] #[reflect(Resource)] -pub struct DA_LevelAsset { +pub struct DALevelAsset { #[asset(key = "level")] level: Handle, } #[derive(AssetCollection, Reflect, Resource, Debug)] #[reflect(Resource)] -pub struct DA_GunAssets { +pub struct DAGunAssets { #[asset(key = "uzi")] pub uzi: Handle, #[asset(key = "shotgun")] @@ -77,122 +80,156 @@ pub struct DA_GunAssets { pub struct BlenderTranslationPlugin; impl Plugin for BlenderTranslationPlugin { fn build(&self, app: &mut App) { - app.register_type::() + app + .add_plugins(SunMovePlugin) + .add_plugins(RandomStarsPlugin) + .register_type::() .register_type::() .register_type::() .register_type::() .register_type::() .register_type::() .register_type::() - .register_type::() - .register_type::() + .register_type::() + .register_type::() .register_type::() - .add_event::() - .add_systems(OnEnter(GameState::Gameplay), translate_components) - .add_systems(OnEnter(GameState::Preload),gltf_preload) - .add_systems(Update, test_reload.run_if(input_pressed(KeyCode::KeyR))) - .add_systems(Update, change_level_event_handler) - //.add_systems(Update, wait_for_level_load) - .add_systems(OnExit(GameState::Loading), animation_preload) + .add_message::() + .add_systems(Update, translate_components) + .add_systems(Update, change_level_message_handler) + .add_systems(OnExit(GameState::Loading), animation_preload.run_if(resource_added::)) .add_loading_state( LoadingState::new(GameState::Preload) .with_dynamic_assets_file::("gunassets.ron") .with_dynamic_assets_file::("devroom.ron") //.with_dynamic_assets_file::("fpslevel.ron") - .load_collection::() - .load_collection::() + .load_collection::() + .load_collection::() ); } } -fn wait_for_level_load( - mut commands: Commands, - asset_server: Res, - mut time: ResMut>, - //level_gltf: Res, - level_gltf: Res, - gltf_assets: Res>, - mut loaded: Local, -) { - trace!("SYSTEM: wait_for_level_load"); - if *loaded { - return; - } - let Some(gltf) = gltf_assets.get(&level_gltf.level) else { - return; - }; - commands.spawn( -( - CurrentLevel, - SceneRoot(gltf.named_scenes["World"].clone()) - ) - ); - *loaded = true; -} - -fn change_level_event_handler( +fn change_level_message_handler( mut commands: Commands, asset_server: Res, - mut time: ResMut>, - mut change_level_events: EventReader, + mut change_level_messages: MessageReader, current_level_query: Query>, ) { - trace!("SYSTEM: change_level_event_handler"); - for event in change_level_events.read() { + trace!("SYSTEM: change_level_message_handler"); + for message in change_level_messages.read() { if let Ok(current_level) = current_level_query.single() { commands.entity(current_level).despawn(); } - let level_gltf: Handle = asset_server.load(&event.0); + let level_gltf: Handle = asset_server.load(&message.0); commands.insert_resource(LevelGltf(level_gltf)); + + let temp = message.0.clone(); + + commands.spawn(( + SceneRoot(asset_server.load( + GltfAssetLabel::Scene(0).from_asset(temp), + )), + CurrentLevel, + )); + + /*commands.spawn(( + DirectionalLight { + //illuminance: light_consts::lux::OVERCAST_DAY, + shadows_enabled: true, + ..default() + }, + Transform { + translation: Vec3::new(0.0, 200.0, 0.0), + rotation: Quat::from_rotation_x(-PI / 4.), + ..default() + }, + ));*/ + + let sun_id = commands.spawn(( + DirectionalLight { + shadows_enabled: true, + illuminance: light_consts::lux::RAW_SUNLIGHT, // Adjust illuminance as needed + ..default() + }, + Transform::default(), + )) + .id(); + + let timed_sky_config = TimedSkyConfig { + sun_entity: sun_id, + day_duration_secs: 10.0, // 10 seconds of dadylight + night_duration_secs: 5.0, // 5 seconds of nighttime (15s total cycle) + max_sun_height_deg: 60.0, // Sun reaches 60 degrees at noon + planet_tilt_degrees: 23.5, // Earth's tilt (default) + ..default() + }; + + // Calculate and spawn the SkyCenter + if let Some(sky_center) = SkyCenter::from_timed_config(&timed_sky_config) { + commands.spawn(( + sky_center, + // Optional: Add StarSpawner if you want the built-in stars + StarSpawner { + star_count: 1000, + spawn_radius: 5000.0, // Star distance + }, + )); + } else { + // Handle case where calculation failed (e.g., impossible parameters) + error!("Failed to create SkyCenter from timed config"); + } + } } fn translate_components( mut commands: Commands, - prop_query: Query>, - collider_query: Query, Without)>, - ladder_query: Query>, + prop_query: Query, Without)>, + collider_query: Query, Without, Without)>, + ladder_query: Query, Without)>, + mut loaded: Local, ) { trace!("SYSTEM: translate_blender_components"); + //if *loaded { + // return; + // } + for entity in prop_query.iter() { commands .entity(entity) - .insert(CollisionLayers::new(CollisionLayer::Prop, LayerMask::ALL)) - .insert(RigidBody::Dynamic) - .insert(MiscItem) - .insert(ColliderConstructor::ConvexHullFromMesh); + .queue_silenced(|mut entity: EntityWorldMut| { + entity + .insert(CollisionLayers::new(CollisionLayer::Prop, LayerMask::ALL)) + .insert(RigidBody::Dynamic) + .insert(MiscItem) + .insert(ColliderConstructor::ConvexHullFromMesh) + .insert(BlenderTranslationComplete); + }); } for entity in collider_query.iter() { commands.entity(entity) - .insert(RigidBody::Static) - .insert(ColliderConstructor::ConvexHullFromMesh); + .queue_silenced(|mut entity: EntityWorldMut| { + entity + .insert(RigidBody::Static) + .insert(Obstacle) + .insert(ColliderConstructor::ConvexHullFromMesh) + .insert(BlenderTranslationComplete); + }); } for entity in ladder_query.iter() { commands.entity(entity) - .insert(CollidingEntities::default()) - .insert(CollisionEventsEnabled) - .observe(ladder_collision_observer) - .observe(ladder_decollision_observer); + .queue_silenced(|mut entity: EntityWorldMut| { + entity + .insert(CollidingEntities::default()) + .insert(CollisionEventsEnabled) + .insert(BlenderTranslationComplete) + .insert(Climbable) + .observe(ladder_collision_observer) + .observe(ladder_decollision_observer); + }); } -} - -fn gltf_preload( - mut change_level_event_wriiter: EventWriter, - //level_asset: Res, - //gltf_assets: Res>, -) { - trace!("SYSTEM: gltf_preload"); - //let level = gltf_assets.get(&level_asset.level).unwrap(); - //change_level_event_wriiter.write(ChangeLevelEvent("levels/World.glb".into())); - change_level_event_wriiter.write(ChangeLevelEvent("levels/World.glb".into())); -} -fn test_reload( - mut change_level_event_wriiter: EventWriter, -) { - trace!("SYSTEM: test_reload"); - change_level_event_wriiter.write(ChangeLevelEvent("levels/fps.glb".into())); + *loaded = true; } fn animation_preload( @@ -206,7 +243,7 @@ fn animation_preload( if let Some(gltf) = gltf_assets.get(&level_gltf.0) { for (entity, animation_name) in blender_animation_query.iter() { let animation_clip_handle = gltf.named_animations[animation_name.0.as_str()].clone(); - let animation_clip = animation_clip_handle.clone_weak(); + let animation_clip = animation_clip_handle.clone(); let (animation_graph, _index) = AnimationGraph::from_clip(animation_clip); commands.entity(entity).insert(AnimationGraphHandle(animation_graphs.add(animation_graph))); } diff --git a/src/main.rs b/src/main.rs index a2ceb76..846e487 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,12 +3,14 @@ use bevy::{ log::LogPlugin, prelude::*, window::{ CursorGrabMode, CursorOptions, WindowResolution,} }; use bevy_asset_loader::prelude::*; +use bevy_egui::EguiGlobalSettings; use bevy_inspector_egui::quick::WorldInspectorPlugin; use bevy_skein::SkeinPlugin; use bevy_sprite3d::Sprite3dPlugin; use bevy_yoleck::prelude::*; use clap::Parser; +mod audio; mod character; mod console; mod controller; @@ -27,10 +29,11 @@ mod render; mod rover; mod shoot; mod sprites; -//mod tests; +mod tests; mod ui; mod utils; +pub use audio::*; pub use character::*; pub use console::*; pub use controller::*; @@ -49,7 +52,7 @@ pub use sprites::*; pub use ui::*; pub use utils::*; use level::*; -//use tests::TestsPlugin; +use tests::TestsPlugin; #[derive(Parser, Debug)] struct Args { @@ -77,36 +80,45 @@ pub enum PauseMenuState { pub enum GameState { Console, Gameplay, - Inventory, + //Inventory, Loading, MainMenu, Paused, #[default] Preload, Postload, + GameOver, + StartMenu, } fn main() { trace!("MAIN"); let args = Args::parse(); let mut app = App::new(); - app.add_plugins( + app + .insert_resource(EguiGlobalSettings { + auto_create_primary_context: false, + ..default() + }) + .add_plugins( DefaultPlugins .set(WindowPlugin { primary_window: Some(Window { - cursor_options: CursorOptions { - grab_mode: CursorGrabMode::Locked, - ..default() - }, resolution: WindowResolution::new(RESOLUTION_WIDTH, RESOLUTION_HEIGHT), title: "Bevy RPG".to_string(), resizable: false, focused: true, ..default() }), + primary_cursor_options: Some(CursorOptions { + grab_mode: CursorGrabMode::Locked, + ..default() + }), ..default() }) .set(LogPlugin { - level: bevy::log::Level::INFO, + level: bevy::log::Level::TRACE, + //filter: "info,wgpu=error,bevy_landmass=trace,bevyrpg=trace".into(), + filter: "info,wgpu=error".into(), ..default() }), ) @@ -133,10 +145,11 @@ fn main() { SkeinPlugin::default(), )) .add_plugins(( - //TestsPlugin, + TestsPlugin, Sprite3dPlugin, DialogPlugin, NavMeshPlugin, + SpritesPlugin, )); app.add_systems(Update, pause_game); @@ -159,7 +172,7 @@ fn main() { .add_loading_state( LoadingState::new(GameState::Preload) .continue_to_state(GameState::Loading) - .on_failure_continue_to_state(GameState::Gameplay) + .on_failure_continue_to_state(GameState::Loading) ) .add_loading_state( LoadingState::new(GameState::Loading) @@ -168,9 +181,16 @@ fn main() { ) .add_loading_state( LoadingState::new(GameState::Postload) - .continue_to_state(GameState::Gameplay) - .on_failure_continue_to_state(GameState::Gameplay) + .continue_to_state(GameState::StartMenu) + .on_failure_continue_to_state(GameState::StartMenu) ); + + if let Some(level) = args.level { + app.world_mut().write_message(ChangeLevelMessage(level)); + } else { + app.world_mut().write_message(ChangeLevelMessage("levels/World.glb".into())); + } + app.run(); } diff --git a/src/navmesh.rs b/src/navmesh.rs index 49469d2..d003424 100644 --- a/src/navmesh.rs +++ b/src/navmesh.rs @@ -1,12 +1,17 @@ -use bevy::prelude::*; +use avian3d::{prelude::{Collider, RigidBody}}; +use avian_rerecast::AvianBackendPlugin; +use bevy::{input::common_conditions::input_just_pressed, prelude::*}; +use bevy_landmass::{Agent, Agent3dBundle, AgentDesiredVelocity3d, AgentSettings, AgentTarget3d, Archipelago3d, ArchipelagoRef3d, Island, Landmass3dPlugin, debug::{EnableLandmassDebug, Landmass3dDebugPlugin}}; use bevy_tnua::prelude::*; -use bevy_tnua_avian3d::TnuaAvian3dPlugin; -use oxidized_navigation::{ - self, colliders::avian::AvianCollider, debug_draw::{DrawNavMesh, OxidizedNavigationDebugDrawPlugin}, query::{find_polygon_path, perform_string_pulling_on_path}, NavMesh, NavMeshSettings, OxidizedNavigationPlugin -}; -use super::utils::{F32Ext, Vec3Ext}; +use bevy_tnua_avian3d::{TnuaAvian3dPlugin, TnuaAvian3dSensorShape}; +use landmass::{ArchipelagoOptions, FromAgentRadius, PointSampleDistance3d}; +use landmass_rerecast::{Island3dBundle, LandmassRerecastPlugin, NavMeshHandle3d}; +use bevy_rerecast::prelude::*; -use crate::{error_pipe, Player}; +use crate::{GameState, Player, PlayerControlScheme}; + +//#[derive(Resource)] +//struct NavMeshHandle(Handle); #[derive(Debug, Default, Component, Reflect)] #[reflect(Component)] @@ -29,13 +34,8 @@ impl Default for Walk { } } -#[derive(Bundle)] -pub struct MovementBundle { - walk: Walk, - tnua_conroller: TnuaController, - float_height: FloatHeight, -} - +#[derive(Debug, Component)] +pub struct Obstacle; #[derive(Debug, Default, Clone, PartialEq, Component, Reflect)] #[reflect(Component)] @@ -46,97 +46,94 @@ pub struct FloatHeight(pub f32); pub struct NavMeshPlugin; impl Plugin for NavMeshPlugin { fn build(&self, app: &mut App) { - app.add_plugins(OxidizedNavigationPlugin::::new( - NavMeshSettings::from_agent_and_bounds(0.5, 1.9, 250.0, -1.0), - )); - - app.register_type::() + app + .add_plugins(Landmass3dPlugin::default()) + .add_plugins(Landmass3dDebugPlugin::default()) + .add_plugins(LandmassRerecastPlugin::default()) + .add_plugins(NavmeshPlugins::default()) + .add_plugins(AvianBackendPlugin::default()) + .register_type::() .register_type::() - .register_type::(); - app.add_plugins(OxidizedNavigationDebugDrawPlugin); - app.add_plugins(TnuaAvian3dPlugin::new(Update)); - app.add_plugins(TnuaControllerPlugin::default()); - app.add_systems( - Update, - ( - toggle_nav_mesh_system, - navmesh_pathfinding.pipe(error_pipe), - apply_walking, - ), - ); - } -} - -// -// Toggle drawing Nav-mesh. -// Press M to toggle drawing the navmesh. -// -fn toggle_nav_mesh_system(keys: Res>, mut show_navmesh: ResMut) { - trace!("SYSTEM: toggle_nav_mesh"); + .register_type::() + //.add_plugins(TnuaAvian3dPlugin::new(FixedUpdate)) + //.add_plugins(TnuaControllerPlugin::::new(FixedUpdate)) + //.add_systems(OnEnter(GameState::Gameplay), landmass_rerecast_setup) + //.add_systems(Update, apply_walking) + .add_systems(Update, toggle_landmass_debug.run_if(input_just_pressed(KeyCode::F12))); - if keys.just_pressed(KeyCode::KeyM) { - show_navmesh.0 = !show_navmesh.0; } } -fn navmesh_pathfinding( - nav_mesh_settings: Res, - nav_mesh: Res, - mut query: Query<(&Transform, &DesiredPosition, &mut Walk)>, -) -> anyhow::Result<()> { - trace!("SYSTEM: navmesh_pathfinding"); +/*fn landmass_rerecast_setup( + mut commands: Commands, + mut generator: NavmeshGenerator, + mut meshes: ResMut>, + mut materials: ResMut>, +) { + let archipelago = commands.spawn( + Archipelago3d::new(ArchipelagoOptions { + point_sample_distance: PointSampleDistance3d { + distance_above: 0.5, + distance_below: 0.5, + ..PointSampleDistance3d::from_agent_radius(0.5) + }, + ..ArchipelagoOptions::from_agent_radius(0.5) + }) + ).id(); - for (transform, desired_position, mut walk) in &mut query { - if let Ok(nav_mesh) = nav_mesh.get().read() - && let Ok(path) = find_polygon_path( - &nav_mesh, - &nav_mesh_settings, - transform.translation, - desired_position.0, - None, - Some(&[1.0, 0.5]), - ) { - let path = perform_string_pulling_on_path( - &nav_mesh, - transform.translation, - desired_position.0, - &path, - ) - .map_err(|e| anyhow::Error::msg(format!("{e:?}")))?; + // This island's nav mesh will be generated by `bevy_rerecast`! + commands.spawn(Island3dBundle { + island: Island, + archipelago_ref: ArchipelagoRef3d::new(archipelago), + nav_mesh: NavMeshHandle3d( + generator.generate(NavmeshSettings { agent_radius: 0.5, ..Default::default() }), + ), + }); - let dir = path - .into_iter() - .map(|next_point| (next_point - transform.translation).horizontal()) - .filter(|dir| dir.length_squared() > 1e-3f32.squared()) - .filter_map(|dir| dir.try_normalize()) - .next(); - if let Some(dir) = dir { - let dir = Dir3::new(dir); - if dir.is_ok() { - walk.direction = Some(dir.unwrap()); - } - }; - } - } - Ok(()) + // Create an agent that will find a path as soon as the nav mesh is generated. + commands.spawn(( + Agent3dBundle { + agent: Agent::default(), + archipelago_ref: ArchipelagoRef3d::new(archipelago), + settings: AgentSettings { + desired_speed: 5.0, + max_speed: 10.0, + radius: 0.5 + }, + }, + Transform::from_xyz(-5.0, 0.5, -15.0), + AgentTarget3d::Point(Vec3::new(15.0, 0.5, 15.0)), + Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))), + MeshMaterial3d(materials.add(Color::WHITE)), + RigidBody::Dynamic, + Collider::cuboid(1.0, 1.0, 1.0), + )) + .insert(TnuaController::default()) + .insert(TnuaAvian3dSensorShape(Collider::cuboid(0.5, 0.5, 0.5))) + .insert(FloatHeight(0.5)) + .insert(Walk::default()) + .insert(Name::new("Walking Cube")); +}*/ + +fn toggle_landmass_debug(mut debug: ResMut) { + **debug = !**debug; } -fn apply_walking( - mut character_query: Query<(&mut TnuaController, &mut Walk, &FloatHeight), Without>, +/*fn apply_walking( + mut character_query: Query<(&mut TnuaController, &mut Walk, &FloatHeight, &AgentDesiredVelocity3d), Without>, ) { trace!("SYSTEM: apply_walking"); - for (mut controller, mut walking, float_height) in &mut character_query { - if let Some(direction) = walking.direction { - let speed = walking.speed; - controller.basis(TnuaBuiltinWalk { - desired_velocity: direction * speed, - desired_forward: Some(direction), - float_height: float_height.0, - cling_distance: 1.0, - ..Default::default() - }); - walking.direction = None; - } + for (mut controller, mut walking, float_height, desired_velocity) in &mut character_query { + let Ok(direction) = Dir3::new(desired_velocity.velocity()) else { return }; + let speed = walking.speed; + controller.basis(TnuaBuiltinWalk { + desired_velocity: direction * speed, + desired_forward: Some(direction), + float_height: float_height.0, + cling_distance: 1.0, + ..Default::default() + }); + walking.direction = None; } -} +}*/ diff --git a/src/player.rs b/src/player.rs index 3e1c758..86b93bb 100644 --- a/src/player.rs +++ b/src/player.rs @@ -1,12 +1,13 @@ use avian3d::{prelude::{CoefficientCombine, Collider, CollisionLayers, Friction, GravityScale, LayerMask, LockedAxes, RigidBody, SpatialQuery, SpatialQueryFilter}}; use avian_pickup::actor::{AvianPickupActor, AvianPickupActorHoldConfig}; -use bevy::prelude::*; -use bevy_atmosphere::plugin::AtmosphereCamera; -use bevy_tnua::{control_helpers::{TnuaBlipReuseAvoidance, TnuaSimpleAirActionsCounter}, prelude::TnuaController, TnuaObstacleRadar}; +use bevy::{camera::Exposure, core_pipeline::tonemapping::Tonemapping, input::common_conditions::input_just_pressed, pbr::{Atmosphere, AtmosphereSettings}, post_process::bloom::Bloom, prelude::*, render::view::Hdr}; +use bevy_egui::PrimaryEguiContext; +use bevy_flycam::{FlyCam, NoCameraPlayerPlugin}; +use bevy_tnua::{TnuaConfig, TnuaObstacleRadar, builtins::{TnuaBuiltinClimbConfig, TnuaBuiltinCrouchConfig, TnuaBuiltinDashConfig, TnuaBuiltinJumpConfig, TnuaBuiltinWalkConfig, TnuaBuiltinWallSlideConfig}, control_helpers::{TnuaBlipReuseAvoidance, TnuaSimpleAirActionsCounter}, prelude::TnuaController}; use bevy_tnua_avian3d::TnuaAvian3dSensorShape; use leafwing_input_manager::prelude::InputMap; -use crate::{level::DA_GunAssets, Action, CameraConfig, CharacterBundle, CollisionLayer, Description, Experience, FloatHeight, GameState, Health, Inventory, Item, Mana, MaxHealth, MaxMana, PlayerController, PlayerControllerInput, RayHit, RenderPlayer, Walk, Weight}; +use crate::{Action, CameraConfig, CharacterBundle, CollisionLayer, DeathEvent, Description, Experience, FloatHeight, GameState, Health, Item, Mana, MaxHealth, MaxMana, PlayerControlScheme, PlayerControlSchemeConfig, PlayerController, PlayerControllerConfig, PlayerControllerInput, RayHit, RenderPlayer, Walk, Weight, add_to_inventory_observer, display_equip_event_observer, display_inventory_event_observer, display_stats_event_observer, level::DAGunAssets, remove_from_inventory_observer}; #[derive(Clone, Component, Hash, Debug, Eq, PartialEq, Default, States)] pub enum PlayerState { @@ -15,6 +16,7 @@ pub enum PlayerState { Ladder(Entity), UnGrounded, Sitting, + NoClip, } #[derive(Component, Reflect, Default)] @@ -25,6 +27,10 @@ pub struct Player; #[reflect(Component)] pub struct PlayerCamera; +#[derive(Component, Reflect, Default)] +#[reflect(Component)] +pub struct PlayerFlashlight; + #[derive(Component, Reflect, Default)] #[reflect(Component)] pub struct PlayerSpawner; @@ -33,151 +39,269 @@ pub struct PlayerSpawner; #[reflect(Component)] pub struct PlayerTrigger; +#[derive(Message)] +pub struct SpawnPlayerMessage; + pub struct GamePlayerPlugin; impl Plugin for GamePlayerPlugin { fn build(&self, app: &mut App) { info!("GamePlayerPlugin build"); app.register_type::() + .add_plugins(NoCameraPlayerPlugin) + .insert_resource(bevy_flycam::KeyBindings { + move_ascend: KeyCode::PageUp, + move_descend: KeyCode::PageDown, + ..default() + }) .register_type::() .register_type::() .register_type::() - .add_systems(OnEnter(GameState::Postload), spawn_player) + .add_message::() + //.add_systems(OnEnter(GameState::Postload), spawn_player_observer) + .add_systems(Update, spawn_player_observer.run_if(resource_exists::)) + .add_systems(OnEnter(GameState::Postload), init_player) .add_systems(Update, ( player_forward.run_if(in_state(GameState::Gameplay)), check_player_triggers.run_if(in_state(GameState::Gameplay)), ) - ); + ) + .add_systems(Update, toggle_player_noclip.run_if(input_just_pressed(KeyCode::KeyB))); } } -fn spawn_player( +fn init_player( + mut spawn_player_message_writer: MessageWriter, +) { + spawn_player_message_writer.write(SpawnPlayerMessage); +} + +#[allow(clippy::too_many_arguments)] +fn spawn_player_observer( mut commands: Commands, + mut spawn_player_message_reader: MessageReader, asset_server: Res, - gun_assets: Res, + gun_assets: Res, gltf_assets: Res>, player_spawner_query: Query<&GlobalTransform, With>, + mut player_camera_query: Query<&mut RenderPlayer, With>, + mut player_query: Query>, + mut control_scheme_configs: ResMut>, ) { trace!("SYSTEM: spawn_player"); - let mut spawn_point = Transform::from_xyz(0.0, 5.0, 0.0); + for _message in spawn_player_message_reader.read() { + if let Ok(player) = player_query.single_mut() { + commands.entity(player).despawn(); + } + let mut spawn_point = Transform::from_xyz(0.0, 50.0, 0.0); - if let Ok(player_spawner) = player_spawner_query.single() { - spawn_point.translation = player_spawner.translation(); - } + if let Ok(player_spawner) = player_spawner_query.single() { + spawn_point.translation = player_spawner.translation(); + } - // Gun - debug!("Creating Gun"); - //let temp = gun_assets.uzi.clone_weak(); - let uzi = gltf_assets.get(&gun_assets.uzi).unwrap().scenes[0].path().unwrap(); - //let temp = uzi.scenes[0].path().unwrap(); - let gun = commands - .spawn(( - Transform::from_translation(vec3(0.1, -0.2, -0.5)), - // SceneRoot(asset_server.load("guns/uzi.glb#Scene0")), - SceneRoot(asset_server.load(uzi)), - Item { - name: Name::new("gun"), - description: Description("gun".to_string()), - weight: Weight(0), - }, - )) - .id(); - - // Player - debug!("Creating Player"); - let input_map = InputMap::new([ - (Action::Jump, KeyCode::Space), - (Action::Run, KeyCode::ShiftLeft), - (Action::Left, KeyCode::KeyA), - (Action::Right, KeyCode::KeyD), - (Action::Forward, KeyCode::KeyW), - (Action::Backward, KeyCode::KeyS), - (Action::Crouch, KeyCode::ControlLeft), - (Action::Up, KeyCode::KeyQ), - (Action::Down, KeyCode::KeyE), - (Action::Interact, KeyCode::KeyF), - (Action::OpenInventory, KeyCode::KeyI), - (Action::OpenConsole, KeyCode::Backslash), - ]); - - let logical_entity = commands - .spawn(( - ( - Collider::capsule(0.1, 0.5), - Friction { - combine_rule: CoefficientCombine::Min, - ..default() - }, - RigidBody::Dynamic, - LockedAxes::ROTATION_LOCKED, - GravityScale(1.0), - spawn_point, - CameraConfig { - height_offset: 0.0, - //radius_scale: 0.75, + // Gun + debug!("Creating Gun"); + //let temp = gun_assets.uzi.clone_weak(); + let uzi = gltf_assets.get(&gun_assets.uzi).unwrap().scenes[0].path().unwrap(); + //let temp = uzi.scenes[0].path().unwrap(); + let gun = commands + .spawn(( + Transform::from_translation(vec3(0.1, -0.2, -0.5)), + //SceneRoot(asset_server.load("guns/uzi.glb#Scene0")), + SceneRoot(asset_server.load(uzi)), + Item { + description: Description("gun".to_string()), + weight: Weight(0), }, - Player, - PlayerController::default(), - PlayerControllerInput::default(), - CharacterBundle { - mana: Mana(100), - max_mana: MaxMana(100), - health: Health(100), - max_health: MaxHealth(100), - experience: Experience(100), + Name::new("gun"), + )) + .id(); + + + // Player + debug!("Creating Player"); + let input_map = InputMap::new([ + (Action::Jump, KeyCode::Space), + (Action::Run, KeyCode::ShiftLeft), + (Action::Left, KeyCode::KeyA), + (Action::Right, KeyCode::KeyD), + (Action::Forward, KeyCode::KeyW), + (Action::Backward, KeyCode::KeyS), + (Action::Crouch, KeyCode::ControlLeft), + (Action::Up, KeyCode::KeyZ), + (Action::Down, KeyCode::KeyX), + (Action::Interact, KeyCode::KeyO), + (Action::OpenInventory, KeyCode::KeyI), + (Action::OpenEquip, KeyCode::KeyK), + (Action::OpenStats, KeyCode::KeyL), + (Action::OpenConsole, KeyCode::Backslash), + (Action::Flashlight, KeyCode::KeyF), + ]); + + let logical_entity = commands + .spawn(( + ( + Collider::capsule(0.1, 0.5), + Friction { + combine_rule: CoefficientCombine::Min, + ..default() + }, + RigidBody::Dynamic, + LockedAxes::ROTATION_LOCKED, + GravityScale(1.0), + spawn_point, + CameraConfig { + height_offset: 0.0, + //radius_scale: 0.75, + }, + Player, + PlayerController::default(), + PlayerControllerInput::default(), + CharacterBundle { + mana: Mana(100), + max_mana: MaxMana(100), + health: Health(100), + max_health: MaxHealth(100), + experience: Experience(100), + ..default() + }, + TnuaController::::default(), + TnuaConfig::(control_scheme_configs.add(PlayerControlSchemeConfig { + basis: TnuaBuiltinWalkConfig { + speed: 10.0, + float_height: 1.5, + ..default() + }, + jump: TnuaBuiltinJumpConfig { + height: 2.0, + ..default() + }, + crouch: TnuaBuiltinCrouchConfig { + float_offset: -0.7, + ..default() + }, + dash: TnuaBuiltinDashConfig { + horizontal_distance: 5.0, + ..default() + }, + knockback: Default::default(), + wall_slide: TnuaBuiltinWallSlideConfig { + maintain_distance: Some(0.7), + ..default() + }, + wall_jump: TnuaBuiltinJumpConfig { + height: 4.0, + takeoff_extra_gravity: 90.0, // 3 times the default + takeoff_above_velocity: 0.0, + horizontal_distance: 2.0, + ..default() + }, + climb: TnuaBuiltinClimbConfig { + climb_speed: 10.0, + ..default() + }, + })), + TnuaAvian3dSensorShape(Collider::capsule(0.1, 0.5)), + FloatHeight(1.5), + ), + (CollisionLayers::new(CollisionLayer::Player, LayerMask::ALL),), + )) + .insert((Walk::default(), input_map)) + .insert(TnuaSimpleAirActionsCounter::::default()) + .insert(AvianPickupActor { + prop_filter: SpatialQueryFilter::from_mask(CollisionLayer::Prop), + actor_filter: SpatialQueryFilter::from_mask(CollisionLayer::Player), + obstacle_filter: SpatialQueryFilter::from_mask(CollisionLayer::Default), + hold: AvianPickupActorHoldConfig { + pitch_range: -40.0_f32.to_radians()..=75.0_f32.to_radians(), + distance_to_allow_holding: 100.0, ..default() }, - Inventory { ..default() }, - TnuaController::default(), - TnuaAvian3dSensorShape(Collider::capsule(0.1, 0.1)), - FloatHeight(1.5), - ), - (CollisionLayers::new(CollisionLayer::Player, LayerMask::ALL),), - )) - //.insert((Walk::default(), InputManagerBundle::with_map(input_map))) - .insert((Walk::default(), input_map)) - .insert(TnuaSimpleAirActionsCounter::default()) - .insert(AvianPickupActor { - prop_filter: SpatialQueryFilter::from_mask(CollisionLayer::Prop), - actor_filter: SpatialQueryFilter::from_mask(CollisionLayer::Player), - obstacle_filter: SpatialQueryFilter::from_mask(CollisionLayer::Default), - hold: AvianPickupActorHoldConfig { - pitch_range: -40.0_f32.to_radians()..=75.0_f32.to_radians(), - distance_to_allow_holding: 100.0, - ..default() - }, - ..default() - }) - .insert(RayHit(Entity::PLACEHOLDER)) - .insert(Name::new("Player")) - .insert(PlayerState::Grounded) - .insert(TnuaObstacleRadar::new(1.0, 3.0)) - .insert(TnuaBlipReuseAvoidance::default()) - .id(); - - // Camera - debug!("Creating Camera"); - commands - .spawn(( - Camera { - hdr: true, - clear_color: ClearColorConfig::Custom(Srgba::rgb(0.0, 0.0, 0.0).into()), ..default() - }, - Camera3d { ..default() }, - Projection::Perspective(PerspectiveProjection { - fov: std::f32::consts::PI / 2.0, - ..default() - }), - Transform { - translation: Vec3 { y: 2., ..default() }, - ..default() - }, - RenderPlayer { logical_entity }, - PlayerCamera, - AtmosphereCamera::default(), - )) - .add_child(gun); + }) + .insert(RayHit(None)) + .insert(Name::new("Player")) + .insert(PlayerState::Grounded) + .insert(TnuaObstacleRadar::new(1.0, 3.0)) + .insert(TnuaBlipReuseAvoidance::::default()) + .insert(PlayerControllerConfig::default()) + .observe(player_death_event_observer) + .observe(add_to_inventory_observer::) + .observe(remove_from_inventory_observer::) + .observe(display_inventory_event_observer) + .observe(display_equip_event_observer) + .observe(display_stats_event_observer) + .id(); + + // Camera + + + debug!("Creating Camera"); + if let Ok(mut render_player) = player_camera_query.single_mut() { + *render_player = RenderPlayer { logical_entity }; + } else { + let flashlight = commands + .spawn(( + SpotLight { + intensity: 1_000_000.0, + shadows_enabled: true, + ..default() + }, + PlayerFlashlight, + )) + .id(); + commands + .spawn(( + Camera { + clear_color: ClearColorConfig::Custom(Srgba::rgb(0.0, 0.0, 0.0).into()), + ..default() + }, + Hdr, + Camera3d { ..default() }, + PrimaryEguiContext, + Atmosphere::EARTH, + AtmosphereSettings { + aerial_view_lut_max_distance: 3.2e5, + scene_units_to_m: 1e+4, + ..Default::default() + }, + Exposure::SUNLIGHT, + Tonemapping::AcesFitted, + Bloom::NATURAL, + Projection::Perspective(PerspectiveProjection { + fov: std::f32::consts::PI / 2.0, + ..default() + }), + Transform { + translation: Vec3 { y: 2., ..default() }, + ..default() + }, + RenderPlayer { logical_entity }, + PlayerCamera, + )) + .add_child(gun) + .add_child(flashlight); + } + } +} + +fn toggle_player_noclip( + mut commands: Commands, + mut player_query: Query<(Entity, &mut PlayerState), With>, + mut player_camera_query: Query>, +) { + if let Ok((player_entity, mut player_state)) = player_query.single_mut() + && let Ok(player_camera) = player_camera_query.single_mut() { + if *player_state == PlayerState::NoClip { + commands.entity(player_camera).remove::(); + commands.entity(player_entity).insert(Collider::capsule(0.1, 0.5)); + *player_state = PlayerState::Grounded; + } else { + commands.entity(player_entity).remove::(); + commands.entity(player_camera).insert(FlyCam); + *player_state = PlayerState::NoClip; + } + } } fn player_forward( @@ -202,11 +326,11 @@ fn player_forward( fn check_player_triggers( spatial_query: SpatialQuery, - player_query: Query<&Collider, With>, + _player_query: Query<&Collider, With>, trigger_query: Query<&GlobalTransform, With>, ) { for trigger_transform in trigger_query.iter() { - let temp = spatial_query.shape_intersections( + let _temp = spatial_query.shape_intersections( &Collider::cuboid(1.0, 1.0, 1.0), trigger_transform.translation(), trigger_transform.rotation(), @@ -214,3 +338,10 @@ fn check_player_triggers( ); } } + +fn player_death_event_observer( + _trigger: On, + mut game_state: ResMut>, +) { + game_state.set(GameState::GameOver); +} diff --git a/src/render.rs b/src/render.rs index ebfa38d..5553f9b 100644 --- a/src/render.rs +++ b/src/render.rs @@ -1,10 +1,10 @@ use bevy::prelude::*; use avian3d::collision::collider::Collider; -use crate::{GameState, PlayerController}; +use crate::PlayerController; -pub const RESOLUTION_HEIGHT: f32 = 720.0; -pub const RESOLUTION_WIDTH: f32 = 1280.0; +pub const RESOLUTION_HEIGHT: u32 = 720; +pub const RESOLUTION_WIDTH: u32 = 1280; #[derive(Component)] pub struct CameraConfig { @@ -22,13 +22,15 @@ impl Plugin for GameRenderPlugin { info!("GameRenderPlugin build"); app.add_systems( Update, - player_controller_render.run_if(in_state(GameState::Gameplay)), + //player_controller_render.run_if(in_state(GameState::Gameplay)), + player_controller_render ); } } pub fn player_controller_render( - mut render_query: Query<(&mut Transform, &RenderPlayer), With>, + //mut render_query: Query<(&mut Transform, &RenderPlayer), With>, + mut render_query: Query<(&mut Transform, &RenderPlayer)>, logical_query: Query< (&Transform, &Collider, &PlayerController, &CameraConfig), Without, diff --git a/src/shoot.rs b/src/shoot.rs index 7f69cc8..9f3ca01 100644 --- a/src/shoot.rs +++ b/src/shoot.rs @@ -1,4 +1,4 @@ -use crate::{AmmoPouch, DamageEvent, Player, PlayerCamera}; +use crate::{AmmoPouch, DamageMessage, Player, PlayerCamera}; use avian3d::prelude::*; use bevy::prelude::*; @@ -7,7 +7,7 @@ use super::GameState; const GRENADE_SIZE: f32 = 0.1; const ROCKET_SIZE: f32 = 0.1; -#[derive(Event)] +#[derive(Event, Message)] pub struct ShootEvent; #[derive(Debug, Component, Reflect)] @@ -28,7 +28,8 @@ pub struct Rocket; /*{ pub struct ShootPlugin; impl Plugin for ShootPlugin { fn build(&self, app: &mut App) { - app.add_event::() + app + .add_message::() .register_type::() .register_type::() .register_type::() @@ -43,15 +44,15 @@ impl Plugin for ShootPlugin { } pub fn shoot( - mut shoot_events: EventReader, - mut damage_event: EventWriter, + mut shoot_messages: MessageReader, + mut damage_message: MessageWriter, ray_caster: SpatialQuery, player: Query>, query: Query<&GlobalTransform, With>, ) { - trace!("Event Handler: shoot"); + trace!("Message Handler: shoot"); let player = player.single().unwrap(); - for _event in shoot_events.read() { + for _message in shoot_messages.read() { for global_transform in query.iter() { let camera_position = global_transform.translation(); let direction = global_transform.forward(); @@ -68,7 +69,7 @@ pub fn shoot( "SHOOT Entity {:?} hit at point {}", ray_data.entity, hit_point ); - damage_event.write(DamageEvent { + damage_message.write(DamageMessage { target: ray_data.entity, ammount: 10, }); @@ -85,7 +86,7 @@ pub fn grenade_fuse( for (entity, mut grenade) in grenade_query.iter_mut() { grenade.0.tick(time.delta()); - if grenade.0.finished() { + if grenade.0.is_finished() { commands.entity(entity).despawn(); } } @@ -93,13 +94,13 @@ pub fn grenade_fuse( pub fn shoot_grenade( mut commands: Commands, - mut shoot_events: EventReader, + mut shoot_messages: MessageReader, camera_transform_query: Query<&GlobalTransform, With>, mut meshes: ResMut>, mut materials: ResMut>, ) { - trace!("Event Handler: shoot_grenade"); - for _event in shoot_events.read() { + trace!("Message Handler: shoot_grenade"); + for _message in shoot_messages.read() { for global_transform in camera_transform_query.iter() { let camera_position = global_transform.translation(); let grenade_position = camera_position + (global_transform.forward() * 3.); @@ -123,15 +124,15 @@ pub fn shoot_grenade( pub fn shoot_rocket( mut commands: Commands, - mut shoot_events: EventReader, - mut _damage_event: EventWriter, + mut shoot_messages: MessageReader, + mut _damage_message: MessageWriter, mut player_query: Query<&mut AmmoPouch, With>, camera_transform_query: Query<&GlobalTransform, With>, mut meshes: ResMut>, mut materials: ResMut>, ) { - trace!("Event Handler: shoot_rocket"); - for _event in shoot_events.read() { + trace!("Message Handler: shoot_rocket"); + for _message in shoot_messages.read() { if let Ok(mut player_ammo) = player_query.single_mut() && player_ammo.0 > 0 { player_ammo.0 -= 1; println!("player_ammo: {:?}", player_ammo); @@ -161,7 +162,7 @@ pub fn shoot_rocket( } pub fn explode_rocket( - trigger: Trigger, + trigger: On, mut commands: Commands, ) { commands.entity(trigger.observer()).despawn(); diff --git a/src/sprites.rs b/src/sprites.rs index c638a94..1bd7b5c 100644 --- a/src/sprites.rs +++ b/src/sprites.rs @@ -3,7 +3,6 @@ use std::time::Duration; use bevy::prelude::*; use bevy_sprite3d::*; -use bevy_trait_query::RegisterExt; use rand::Rng; use crate::*; @@ -17,21 +16,18 @@ pub struct SpriteBundle { #[derive(Component)] pub struct Talkable; -impl interact::Interaction for Talkable { +/*impl interact::Interaction for Talkable { fn interact(&self,commands: &mut Commands, _entity:Entity, prop:Entity,) { println!("Talkable Interaction Impl"); - commands.trigger_targets(DialogEvent {actor:prop}, prop); - } -} -impl Inspectable for Talkable { - fn inspect( - &self, - commands: &mut Commands, - actor: Entity, - prop: Entity, - ) { - println!("Talkable Inspectable Impl"); + commands.trigger(DialogEvent {actor:prop}, prop); } +}*/ + +fn sprite_interaction_observer( + trigger: On, + mut commands: Commands, +) { + commands.trigger(DialogMessage { actor: trigger.entity }); } #[derive(Component, Clone, Hash, Debug, Eq, PartialEq, Default)] @@ -41,7 +37,7 @@ pub enum SpriteType { Item, } -#[derive(AssetCollection, Resource)] + #[derive(AssetCollection, Resource, Default)] pub struct ImageAssets { #[asset(texture_atlas( tile_size_x = 16, @@ -53,9 +49,9 @@ pub struct ImageAssets { offset_x = 0, offset_y = 0 ))] - pub character_layout: Handle, + pub layout: Handle, #[asset(path = "character_tileset.png")] - pub character_tileset: Handle, + pub image: Handle, #[asset(texture_atlas( tile_size_x = 16, tile_size_y = 16, @@ -66,13 +62,13 @@ pub struct ImageAssets { offset_x = 5, offset_y = 5 ))] - pub layout: Handle, + pub layout2: Handle, #[asset(path = "tileset_padded.png")] pub tileset: Handle, } -#[derive(Event)] -pub struct SpriteEvent { +#[derive(Message)] +pub struct SpriteMessage { pub sprite_type: SpriteType, pub tile_x: usize, pub tile_y: usize, @@ -96,13 +92,13 @@ pub struct SpritesPlugin; impl Plugin for SpritesPlugin { fn build(&self, app: &mut App) { trace!("SpritesPlugin build"); - app.add_loading_state( - LoadingState::new(GameState::Preload) - .load_collection::(), - ) - .register_component_as::() - .register_component_as::(); - app.add_event::() + app + .insert_resource(ImageAssets::default()) + .add_loading_state( + LoadingState::new(GameState::Preload) + .load_collection::(), + ) + .add_message::() .add_systems(Update, sprite_handler.run_if(in_state(GameState::Gameplay))) .add_systems(Update, face_camera.run_if(in_state(GameState::Gameplay))) .add_systems( @@ -114,9 +110,9 @@ impl Plugin for SpritesPlugin { fn sprite_handler( mut commands: Commands, - mut sprite_events: EventReader, + mut sprite_events: MessageReader, images: Res, - mut sprite_params: Sprite3dParams, + //mut sprite_params: Sprite3dParams, ) { trace!("Event Handler: sprite_handler"); let mut rng = rand::rng(); @@ -132,25 +128,29 @@ fn sprite_handler( let mut timer = Timer::from_seconds(0.4, TimerMode::Repeating); info!("Timer declared"); timer.set_elapsed(Duration::from_secs_f32(rng.random_range(0.0..0.4))); - atlas.layout = images.character_layout.clone(); + atlas.layout = images.layout.clone(); info!("atlas layout decalred"); match event.sprite_type { SpriteType::Character => { let atlas = TextureAtlas { - layout: images.character_layout.clone(), + layout: images.layout.clone(), index: event.tile_x, }; info!("Character Sprite"); let mut c = commands.spawn(( - Sprite3dBuilder { - image: images.character_tileset.clone(), + Sprite3d { pixels_per_metre: 16., double_sided: false, ..default() - } - .bundle_with_atlas(&mut sprite_params, atlas), + }, + Sprite { + image: images.image.clone(), + texture_atlas: Some(atlas), + ..default() + }, + //.bundle_with_atlas(&mut sprite_params, atlas), FaceCamera {}, CharacterBundle::default(), Collider::cuboid(0.5, 1., 0.5), @@ -172,6 +172,7 @@ fn sprite_handler( timer: timer.clone(), }); } + c.observe(sprite_interaction_observer); } SpriteType::Item => { let atlas = TextureAtlas { @@ -181,13 +182,23 @@ fn sprite_handler( info!("Item Sprite"); let mut c = commands.spawn(( - Sprite3dBuilder { + /*Sprite3dBuilder { image: images.tileset.clone(), pixels_per_metre: 16., double_sided: false, ..default() - } - .bundle_with_atlas(&mut sprite_params, atlas), + }*/ + Sprite3d { + pixels_per_metre: 16., + double_sided: false, + ..default() + }, + //.bundle_with_atlas(&mut sprite_params, atlas), + Sprite { + image: images.image.clone(), + texture_atlas: Some(atlas), + ..default() + }, FaceCamera {}, )); if event.frames > 1 { @@ -204,7 +215,7 @@ fn sprite_handler( } } -fn animate_sprites(time: Res