DEVELOPMENT ENVIRONMENT

~liljamo/deck-builder

c52f5b1a9de349e429a60de4a126d33cfc25d14b — Jonni Liljamo 1 year, 7 months ago 35c61ec + f164556
Merge remote branch 'origin/dev'
M Cargo.lock => Cargo.lock +734 -764
@@ 19,6 19,59 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "330223a1aecc308757b9926e9391c9b47f8ef2dbd8aea9df88312aea18c5e8d6"

[[package]]
name = "accesskit"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "704d532b1cd3d912bb37499c55a81ac748cc1afa737eedd100ba441acdd47d38"

[[package]]
name = "accesskit_consumer"
version = "0.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48ba8b23cfca3944012ee2e5c71c02077a400e034c720eed6bd927cb6b4d1fd9"
dependencies = [
 "accesskit",
]

[[package]]
name = "accesskit_macos"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc50af17818440f580a894536c4c5a95ff9e4bad59f19ee68757ca959d001813"
dependencies = [
 "accesskit",
 "accesskit_consumer",
 "objc2",
 "once_cell",
]

[[package]]
name = "accesskit_windows"
version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aaf5b3c3828397ee832ba4a72fb1a4ace10f781e31885f774cbd531014059115"
dependencies = [
 "accesskit",
 "accesskit_consumer",
 "arrayvec 0.7.2",
 "once_cell",
 "paste",
 "windows 0.44.0",
]

[[package]]
name = "accesskit_winit"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9eb880d83a5502edd311bdb3af1cf7113b250c9c2d92fbdd05342c7b9f38bf51"
dependencies = [
 "accesskit",
 "accesskit_macos",
 "accesskit_windows",
 "winit",
]

[[package]]
name = "actix"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 88,7 141,7 @@ dependencies = [
 "percent-encoding",
 "pin-project-lite",
 "rand",
 "sha1 0.10.5",
 "sha1",
 "smallvec",
 "tokio",
 "tokio-util",


@@ 279,6 332,15 @@ dependencies = [
]

[[package]]
name = "addr2line"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"
dependencies = [
 "gimli",
]

[[package]]
name = "adler"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 406,14 468,14 @@ dependencies = [

[[package]]
name = "alsa"
version = "0.6.0"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5915f52fe2cf65e83924d037b6c5290b7cee097c6b5c8700746e6168a343fd6b"
checksum = "8512c9117059663fb5606788fbca3619e2a91dac0e3fe516242eab1fa6be5e44"
dependencies = [
 "alsa-sys",
 "bitflags",
 "libc",
 "nix 0.23.1",
 "nix 0.24.3",
]

[[package]]


@@ 427,24 489,36 @@ dependencies = [
]

[[package]]
name = "android_log-sys"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85965b6739a430150bdd138e2374a98af0c3ee0d030b3bb7fc3bddff58d0102e"

[[package]]
name = "android_logger"
version = "0.11.1"
name = "android-activity"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5e9dd62f37dea550caf48c77591dc50bd1a378ce08855be1a0c42a97b7550fb"
checksum = "7c77a0045eda8b888c76ea473c2b0515ba6f471d318f8927c5c72240937035a6"
dependencies = [
 "android_log-sys",
 "env_logger 0.9.3",
 "android-properties",
 "bitflags",
 "cc",
 "jni-sys",
 "libc",
 "log",
 "once_cell",
 "ndk",
 "ndk-context",
 "ndk-sys",
 "num_enum",
]

[[package]]
name = "android-properties"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04"

[[package]]
name = "android_log-sys"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85965b6739a430150bdd138e2374a98af0c3ee0d030b3bb7fc3bddff58d0102e"

[[package]]
name = "android_system_properties"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 532,9 606,9 @@ checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"

[[package]]
name = "ash"
version = "0.37.1+1.3.235"
version = "0.37.2+1.3.238"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "911015c962d56e2e4052f40182ca5462ba60a3d2ff04e827c365a0ab3d65726d"
checksum = "28bf19c1f0a470be5fbf7522a308a05df06610252c5bcf5143e1b23f629a9a03"
dependencies = [
 "libloading",
]


@@ 545,7 619,7 @@ version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833"
dependencies = [
 "concurrent-queue 2.0.0",
 "concurrent-queue",
 "event-listener",
 "futures-core",
]


@@ 568,7 642,7 @@ checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b"
dependencies = [
 "async-lock",
 "async-task",
 "concurrent-queue 2.0.0",
 "concurrent-queue",
 "fastrand",
 "futures-lite",
 "slab",


@@ 594,7 668,7 @@ checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794"
dependencies = [
 "async-lock",
 "autocfg",
 "concurrent-queue 2.0.0",
 "concurrent-queue",
 "futures-lite",
 "libc",
 "log",


@@ 681,7 755,7 @@ version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
 "hermit-abi 0.1.19",
 "hermit-abi",
 "libc",
 "winapi",
]


@@ 704,10 778,19 @@ dependencies = [
]

[[package]]
name = "base-x"
version = "0.2.11"
name = "backtrace"
version = "0.3.67"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270"
checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca"
dependencies = [
 "addr2line",
 "cc",
 "cfg-if",
 "libc",
 "miniz_oxide",
 "object",
 "rustc-demangle",
]

[[package]]
name = "base16ct"


@@ 740,43 823,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf"

[[package]]
name = "better-bae"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c42256f0525b8d9cb8e6573ba850478df93ba34ddd7bf64eeb47ff19a8422bc5"
dependencies = [
 "better-bae-macros",
 "proc-macro2",
 "syn",
]

[[package]]
name = "better-bae-macros"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b0f3144c211af9910842422e6835938ff01895bca8c143e28dcebdd23eb2dbc"
dependencies = [
 "heck",
 "proc-macro-error",
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]
name = "bevy"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dae99b246505811f5bc19d2de1e406ec5d2816b421d58fa223779eb576f472c9"
checksum = "cc88fece4660d68690585668f1a4e18e6dcbab160b08f337b498a96ccde91cfe"
dependencies = [
 "bevy_internal",
]

[[package]]
name = "bevy-inspector-egui"
version = "0.17.0"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8be4f9fa859e4840e7cbcc0ddf2c8a1441ff8f663c317769c5ccc70cdf13bcf2"
checksum = "69bffd8614a60f187983e9f805bba13c298294f4666172ae7ab9c39ad61919fa"
dependencies = [
 "bevy-inspector-egui-derive",
 "bevy_app",


@@ 792,6 851,7 @@ dependencies = [
 "bevy_reflect",
 "bevy_render",
 "bevy_utils",
 "bevy_window",
 "egui",
 "image",
 "once_cell",


@@ 801,9 861,9 @@ dependencies = [

[[package]]
name = "bevy-inspector-egui-derive"
version = "0.17.0"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97826e6225a5b56e77683e7b99418171f7531d48682b8531252dc6b8ef3e8113"
checksum = "fc47dfcdcb52182af97741c1582cc9b3bb4e82f0adacf4c3e78909d438cbfc8b"
dependencies = [
 "proc-macro2",
 "quote",


@@ 811,10 871,22 @@ dependencies = [
]

[[package]]
name = "bevy_a11y"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a10b25cf04971b9d68271aa54e4601c673509db6edaf1f5359dd91fb3e84cc27"
dependencies = [
 "accesskit",
 "bevy_app",
 "bevy_derive",
 "bevy_ecs",
]

[[package]]
name = "bevy_animation"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d43b8073f299eb60ce9e1d60fa293b348590dd57aca8321d6859d9e7aa57d2da"
checksum = "1aabb803571785797c84e106ed63427eaf2cb12832a591923707896ee000bde8"
dependencies = [
 "bevy_app",
 "bevy_asset",


@@ 830,9 902,9 @@ dependencies = [

[[package]]
name = "bevy_app"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "536e4d0018347478545ed8b6cb6e57b9279ee984868e81b7c0e78e0fb3222e42"
checksum = "960c6e444dc6a25dd51a2196f04872ae9e2e876802b66c391104849ec9225e38"
dependencies = [
 "bevy_derive",
 "bevy_ecs",


@@ 845,9 917,9 @@ dependencies = [

[[package]]
name = "bevy_asset"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6db1bb550168304df69c867c09125e1aae7ff51cf21575396e1598bf293442c4"
checksum = "adea538a3d166c8609621994972c31be591c96f931f160f96e74697d8c24ba45"
dependencies = [
 "anyhow",
 "bevy_app",


@@ 857,11 929,11 @@ dependencies = [
 "bevy_reflect",
 "bevy_tasks",
 "bevy_utils",
 "bevy_winit",
 "crossbeam-channel",
 "downcast-rs",
 "fastrand",
 "js-sys",
 "ndk-glue",
 "notify",
 "parking_lot 0.12.1",
 "serde",


@@ 873,47 945,28 @@ dependencies = [

[[package]]
name = "bevy_audio"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29a05efc6c23bef37520e44029943c65b7e8a4fe4f5e54cb3f96e63ce0b3d361"
checksum = "0841e98276000dc06e2cf7593ee20b16b84da3bc7faa7b549938cb982b33b0e1"
dependencies = [
 "anyhow",
 "bevy_app",
 "bevy_asset",
 "bevy_ecs",
 "bevy_math",
 "bevy_reflect",
 "bevy_transform",
 "bevy_utils",
 "oboe",
 "parking_lot 0.12.1",
 "rodio",
]

[[package]]
name = "bevy_console"
version = "0.6.0"
source = "git+https://github.com/QuendirSkye/bevy-console?branch=bump-bevy-egui#845e5ad44702cc68c47571b34b2c0ec9f3c4d2f8"
dependencies = [
 "bevy",
 "bevy_console_derive",
 "bevy_egui",
 "clap",
]

[[package]]
name = "bevy_console_derive"
version = "0.5.0"
source = "git+https://github.com/QuendirSkye/bevy-console?branch=bump-bevy-egui#845e5ad44702cc68c47571b34b2c0ec9f3c4d2f8"
dependencies = [
 "better-bae",
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]
name = "bevy_core"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96299aceb3c8362cb4aa39ff81c7ef758a5f4e768d16b5046a91628eff114ac0"
checksum = "ed29797fa386c6969fa1e4ef9e194a27f89ddb2fa78751fe46838495d374f90f"
dependencies = [
 "bevy_app",
 "bevy_ecs",


@@ 926,9 979,9 @@ dependencies = [

[[package]]
name = "bevy_core_pipeline"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc128a9860aadf16fb343ae427f2768986fd91dce64d945455acda9759c48014"
checksum = "3129d308df70dee3c46b6bb64e54d2552e7106fd3185d75732ad5e739a830fee"
dependencies = [
 "bevy_app",
 "bevy_asset",


@@ 946,9 999,9 @@ dependencies = [

[[package]]
name = "bevy_derive"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7baf73c58d41c353c6fd08e6764a2e7420c9f19e8227b391c50981db6d0282a6"
checksum = "cdf11701c01bf4dc7a3fac9f4547f3643d3db4cc1682af40c8c86e2f8734b617"
dependencies = [
 "bevy_macro_utils",
 "quote",


@@ 957,9 1010,9 @@ dependencies = [

[[package]]
name = "bevy_diagnostic"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "63bf96ec7980fa25b77ff6c72dfafada477936c0dab76c1edf6c028c0e5fe0e4"
checksum = "576508ffe7ad5124781edd352b79bdc79ffbb6e2f26bad6f722774f7c9fd16c9"
dependencies = [
 "bevy_app",
 "bevy_core",


@@ 967,13 1020,14 @@ dependencies = [
 "bevy_log",
 "bevy_time",
 "bevy_utils",
 "sysinfo",
]

[[package]]
name = "bevy_ecs"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4c071d7c6bc9801253485e05d0c257284150de755391902746837ba21c0cf74"
checksum = "fdc5b19451128091e8507c9247888359ca0bfa895e7f6ca749ccc55c5463bef6"
dependencies = [
 "async-channel",
 "bevy_ecs_macros",


@@ 984,16 1038,16 @@ dependencies = [
 "downcast-rs",
 "event-listener",
 "fixedbitset",
 "fxhash",
 "rustc-hash",
 "serde",
 "thread_local",
]

[[package]]
name = "bevy_ecs_macros"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c15bd45438eeb681ad74f2d205bb07a5699f98f9524462a30ec764afab2742ce"
checksum = "b1e79757319533bde006a4f30c268223ec6426371297182925932075ccfdae30"
dependencies = [
 "bevy_macro_utils",
 "proc-macro2",


@@ 1002,10 1056,49 @@ dependencies = [
]

[[package]]
name = "bevy_editor_pls"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50fce7b60c891f752e108b7404030d2181d6425d11a76a6ac0a00b1a6bba78b9"
dependencies = [
 "bevy",
 "bevy_editor_pls_core",
 "bevy_editor_pls_default_windows",
 "egui",
]

[[package]]
name = "bevy_editor_pls_core"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ebb1dbcb7a8191dac023bc4d49468cba65b1ecf3374ce48e416e59e8e977119"
dependencies = [
 "bevy",
 "bevy-inspector-egui",
 "egui_dock",
 "indexmap",
]

[[package]]
name = "bevy_editor_pls_default_windows"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dec5f9259a1293f82d1a8038b8d7490d3930b05d1a3b66c7a33905fdecc96192"
dependencies = [
 "bevy",
 "bevy-inspector-egui",
 "bevy_editor_pls_core",
 "bevy_mod_debugdump",
 "indexmap",
 "opener",
 "pretty-type-name",
]

[[package]]
name = "bevy_egui"
version = "0.19.0"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbb8036050af170243e803eb68e0b5d34f549828a8de92479619fb6dac842f85"
checksum = "bf0efb32c83ae6d2cc36bda08a029d74fdeb45870489599d3779a36649802bce"
dependencies = [
 "arboard",
 "bevy",


@@ 1016,9 1109,9 @@ dependencies = [

[[package]]
name = "bevy_encase_derive"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "962b6bb0d30e92ec2e6c29837acce9e55b920733a634e7c3c5fd5a514bea7a24"
checksum = "723d4838d1f88955f348294c0a9d067307f2437725400b0776e9677154914f14"
dependencies = [
 "bevy_macro_utils",
 "encase_derive_impl",


@@ 1026,9 1119,9 @@ dependencies = [

[[package]]
name = "bevy_gilrs"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4af552dad82f854b2fae24f36a389fd8ee99d65fe86ae876e854e70d53ff16d9"
checksum = "905e547d213e368f997d08f140f4e893923c7dce4760bf0fb63401232262fa79"
dependencies = [
 "bevy_app",
 "bevy_ecs",


@@ 1039,9 1132,9 @@ dependencies = [

[[package]]
name = "bevy_gltf"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e853e346ba412354e02292c7aa5b9a9dccdfa748e273b1b7ebf8f6a172f89712"
checksum = "bb2994d7e47c36bfe36710c4a26d3f36dd8641bfaa2c5d4d0581e001942aab6f"
dependencies = [
 "anyhow",
 "base64 0.13.1",


@@ 1068,9 1161,9 @@ dependencies = [

[[package]]
name = "bevy_hierarchy"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8dd6d50c48c6e1bcb5e08a768b765323292bb3bf3a439b992754c57ffb85b23a"
checksum = "ccd246c862fcaeef3a769f47c6297139f971db0c8fdd6188fe9419ee8873b7e8"
dependencies = [
 "bevy_app",
 "bevy_core",


@@ 1083,9 1176,9 @@ dependencies = [

[[package]]
name = "bevy_input"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3378b5171284f4c4c0e8307081718a9fe458f846444616bd82d69110dcabca51"
checksum = "6c809b3df62e1fcbdc6744233ae6c95a67d2cc7e518db43ab81f417d5875ba3b"
dependencies = [
 "bevy_app",
 "bevy_ecs",


@@ 1097,10 1190,11 @@ dependencies = [

[[package]]
name = "bevy_internal"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c46014b7e885b1311de06b6039e448454a4db55b8d35464798ba88faa186e11"
checksum = "0a065c7ac81cd7cf3f1b8f15c4a93db5f07274ddaaec145ba7d0393be0c9c413"
dependencies = [
 "bevy_a11y",
 "bevy_animation",
 "bevy_app",
 "bevy_asset",


@@ 1130,14 1224,13 @@ dependencies = [
 "bevy_utils",
 "bevy_window",
 "bevy_winit",
 "ndk-glue",
]

[[package]]
name = "bevy_log"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c480bac54cf4ae76edc3ae9ae3fa7c5e1b385e7f2111ef5ec3fd00cf3a7998b"
checksum = "47dcb09ec71145c80d88a84181cc1449d30f23c571bdd58c59c10eece82dfaa5"
dependencies = [
 "android_log-sys",
 "bevy_app",


@@ 1151,20 1244,20 @@ dependencies = [

[[package]]
name = "bevy_macro_utils"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "022bb69196deeea691b6997414af85bbd7f2b34a8914c4aa7a7ff4dfa44f7677"
checksum = "f24ca3363292f1435641fbafd5c24ce362137dd7d69bee56dcaaa2bc1d512ffe"
dependencies = [
 "quote",
 "syn",
 "toml 0.5.11",
 "toml_edit",
]

[[package]]
name = "bevy_math"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d434c77ab766c806ed9062ef8a7285b3b02b47df51f188d4496199c3ac062eaf"
checksum = "5e45e46c2ac0a92db3ae622f2ed690928fe2612e7c9470a46d0ed4c2c77e2e95"
dependencies = [
 "glam",
 "serde",


@@ 1172,18 1265,33 @@ dependencies = [

[[package]]
name = "bevy_mikktspace"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbfb5908d33fd613069be516180b8f138aaaf6e41c36b1fd98c6c29c00c24a13"
checksum = "aaa0358a79823e6f0069b910d90b615d02dad08279b5856d3d1e401472b6379a"
dependencies = [
 "glam",
]

[[package]]
name = "bevy_mod_debugdump"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1e89dfbe148a165d3506eab7e7c0b5339ccc7f238a475def713026bc9e8c706"
dependencies = [
 "bevy_app",
 "bevy_ecs",
 "bevy_render",
 "bevy_utils",
 "once_cell",
 "petgraph",
 "pretty-type-name",
]

[[package]]
name = "bevy_pbr"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "310b1f260a475d81445623e138e1b7245759a42310bc1f84b550a3f4ff8763bf"
checksum = "90230c526ee7257229c1db0fc4aafaa947ea806bb4b0674785930ea59d0cc7f8"
dependencies = [
 "bevy_app",
 "bevy_asset",


@@ 1203,15 1311,15 @@ dependencies = [

[[package]]
name = "bevy_ptr"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ec44f7655039546bc5d34d98de877083473f3e9b2b81d560c528d6d74d3eff4"
checksum = "a96c24da064370917b92c2a84527e6a73b620c50ac5ef8b1af8c04ccf5256a7c"

[[package]]
name = "bevy_reflect"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6deae303a7f69dc243b2fa35b5e193cc920229f448942080c8eb2dbd9de6d37a"
checksum = "ab880e0eed9df5c99ce1a2f89edc11cdef1bc78413719b29e9ad7e3bc27f4c20"
dependencies = [
 "bevy_math",
 "bevy_ptr",


@@ 1229,9 1337,9 @@ dependencies = [

[[package]]
name = "bevy_reflect_derive"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2bf4cb9cd5acb4193f890f36cb63679f1502e2de025e66a63b194b8b133d018"
checksum = "3b361b8671bdffe93978270dd770b03b48560c3127fdf9003f98111fb806bb11"
dependencies = [
 "bevy_macro_utils",
 "bit-set",


@@ 1243,11 1351,12 @@ dependencies = [

[[package]]
name = "bevy_render"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2e3282a8f8779d2aced93207fbed73f740937c6c2bd27bd84f0799b081c7fca5"
checksum = "52e352868ab1a9ad9fbaa6ff025505e685781ad1790377b2d038afeb9df18214"
dependencies = [
 "anyhow",
 "async-channel",
 "bevy_app",
 "bevy_asset",
 "bevy_core",


@@ 1260,6 1369,7 @@ dependencies = [
 "bevy_mikktspace",
 "bevy_reflect",
 "bevy_render_macros",
 "bevy_tasks",
 "bevy_time",
 "bevy_transform",
 "bevy_utils",


@@ 1269,25 1379,27 @@ dependencies = [
 "downcast-rs",
 "encase",
 "futures-lite",
 "hex",
 "hexasphere",
 "image",
 "ktx2",
 "naga",
 "once_cell",
 "parking_lot 0.12.1",
 "regex",
 "ruzstd",
 "serde",
 "smallvec",
 "thiserror",
 "thread_local",
 "wgpu",
 "wgpu-hal",
]

[[package]]
name = "bevy_render_macros"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7acae697776ac05bea523e1725cf2660c91c53abe72c66782ea1e1b9eedb572"
checksum = "570b1d0f38439c5ac8ab75572804c9979b9caa372c49bd00803f60a22a3e1328"
dependencies = [
 "bevy_macro_utils",
 "proc-macro2",


@@ 1297,9 1409,9 @@ dependencies = [

[[package]]
name = "bevy_scene"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea9c66a628c833d53bae54fe94cbc0d3f12c29e9d2e6c3f2356d45ad57db0c8c"
checksum = "3995f756e482e964e0244a5d388e757f272d1dcdc02136730b1c45f4d5eeb516"
dependencies = [
 "anyhow",
 "bevy_app",


@@ 1319,9 1431,9 @@ dependencies = [

[[package]]
name = "bevy_sprite"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ec01c7db7f698d95bcb70708527c3ae6bcdc78fc247abe74f935cae8f0a1145"
checksum = "14aa41c9480b76d7b3c3f1ed89f95c9d6e2a39d3c3367ca82c122d853ac0463e"
dependencies = [
 "bevy_app",
 "bevy_asset",


@@ 1344,14 1456,14 @@ dependencies = [

[[package]]
name = "bevy_tasks"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "680b16b53df9c9f24681dd95f4d772d83760bd19adf8bca00f358a3aad997853"
checksum = "3e368e4177fe70d695d5cb67fb7480fa262de79948d9b883a21788b9abf5a85a"
dependencies = [
 "async-channel",
 "async-executor",
 "async-task",
 "concurrent-queue 1.2.4",
 "concurrent-queue",
 "futures-lite",
 "once_cell",
 "wasm-bindgen-futures",


@@ 1359,9 1471,9 @@ dependencies = [

[[package]]
name = "bevy_text"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60c74c1bdaabde7db28f6728aa13bc7b1d744a2201b2bbfd83d2224404c57f5c"
checksum = "33fc934d7cbadbb6dac11547dfb805d3e6b3f0b40f6e66e437fe4b3c7581cc5c"
dependencies = [
 "ab_glyph",
 "anyhow",


@@ 1382,22 1494,23 @@ dependencies = [

[[package]]
name = "bevy_time"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a5c38a6d3ea929c7f81e6adf5a6c62cf7e8c40f5106c2174d6057e9d8ea624d"
checksum = "d2f2863cfc08fa38909e047a1bbc2dd71d0836057ed0840c69ace9dff3e0c298"
dependencies = [
 "bevy_app",
 "bevy_ecs",
 "bevy_reflect",
 "bevy_utils",
 "crossbeam-channel",
 "thiserror",
]

[[package]]
name = "bevy_transform"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba13c57a040b89767191a6f6d720a635b7792793628bfa41a9e38b7026484aec"
checksum = "de9cda3df545ac889b4f6b702109e51d29d7b4b6f402f2bb9b4d1d9f9c382b63"
dependencies = [
 "bevy_app",
 "bevy_ecs",


@@ 1408,10 1521,11 @@ dependencies = [

[[package]]
name = "bevy_ui"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60e82ace6156f11fcdf2319102ff8fb8367b82d1e32b7d05d387a1963602f965"
checksum = "dc341d652ba20fac0170a46eff8310829a862f4e52db06164dc6200706768934"
dependencies = [
 "bevy_a11y",
 "bevy_app",
 "bevy_asset",
 "bevy_core_pipeline",


@@ 1437,23 1551,37 @@ dependencies = [

[[package]]
name = "bevy_utils"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16750aae52cd35bd7b60eb61cee883420b250e11b4a290b8d44b2b2941795739"
checksum = "04d90ce493910ad9af3b4220ea6864c7d1472761086a98230ecac59c8d547e95"
dependencies = [
 "ahash 0.7.6",
 "bevy_utils_proc_macros",
 "getrandom 0.2.8",
 "hashbrown",
 "instant",
 "petgraph",
 "thiserror",
 "tracing",
 "uuid 1.3.0",
]

[[package]]
name = "bevy_utils_proc_macros"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62a42e465c446800c57a5bf65b64f4fa1c1f3a74efc2a64a2a001e4a4f548a2e"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]
name = "bevy_window"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0a44d3f3bd54a2261f4f57f614bf7bccc8d2832761493c0cd7dab81d98cc151e"
checksum = "da8a2c523302ad64768991a7474c6010c76b9eb78323309ef3911521887fd108"
dependencies = [
 "bevy_app",
 "bevy_ecs",


@@ 1461,24 1589,29 @@ dependencies = [
 "bevy_math",
 "bevy_reflect",
 "bevy_utils",
 "raw-window-handle 0.5.0",
 "raw-window-handle",
]

[[package]]
name = "bevy_winit"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7b7e647ecd0b3577468da37767dcdd7c26ca9f80da0060b2ec4c77336b6d2e1"
checksum = "8eb6eb9b9790c1ad925d900a3f315abf15b11fb56c6464747a96560e559e1a9c"
dependencies = [
 "accesskit_winit",
 "approx",
 "bevy_a11y",
 "bevy_app",
 "bevy_derive",
 "bevy_ecs",
 "bevy_hierarchy",
 "bevy_input",
 "bevy_math",
 "bevy_utils",
 "bevy_window",
 "crossbeam-channel",
 "raw-window-handle 0.5.0",
 "once_cell",
 "raw-window-handle",
 "wasm-bindgen",
 "web-sys",
 "winit",


@@ 1587,6 1720,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"

[[package]]
name = "block-sys"
version = "0.1.0-beta.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146"
dependencies = [
 "objc-sys",
]

[[package]]
name = "block2"
version = "0.2.0-alpha.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42"
dependencies = [
 "block-sys",
 "objc2-encode",
]

[[package]]
name = "blocking"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 1601,6 1753,18 @@ dependencies = [
]

[[package]]
name = "bstr"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ffdb39cb703212f3c11973452c2861b972f757b021158f3516ba10f2fa8b2c1"
dependencies = [
 "memchr",
 "once_cell",
 "regex-automata",
 "serde",
]

[[package]]
name = "bumpalo"
version = "3.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 1648,12 1812,6 @@ dependencies = [
]

[[package]]
name = "cache-padded"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"

[[package]]
name = "calloop"
version = "0.10.5"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 1757,52 1915,14 @@ dependencies = [
]

[[package]]
name = "clap"
version = "4.0.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7db700bc935f9e43e88d00b0850dae18a63773cfbec6d8e070fccf7fef89a39"
dependencies = [
 "bitflags",
 "clap_derive",
 "clap_lex",
 "is-terminal",
 "once_cell",
 "strsim",
 "termcolor",
]

[[package]]
name = "clap_derive"
version = "4.0.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014"
dependencies = [
 "heck",
 "proc-macro-error",
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]
name = "clap_lex"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8"
dependencies = [
 "os_str_bytes",
]

[[package]]
name = "client"
version = "0.1.0"
dependencies = [
 "bevy",
 "bevy-inspector-egui",
 "bevy_console",
 "bevy_editor_pls",
 "bevy_egui",
 "directories",
 "futures-lite",
 "iyes_loopless",
 "naia-bevy-client",
 "proc-macro2",
 "serde",


@@ 1812,45 1932,14 @@ dependencies = [
]

[[package]]
name = "clipboard-win"
version = "4.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4ab1b92798304eedc095b53942963240037c0516452cb11aeba709d420b2219"
dependencies = [
 "error-code",
 "str-buf",
 "winapi",
]

[[package]]
name = "cocoa"
version = "0.24.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a"
dependencies = [
 "bitflags",
 "block",
 "cocoa-foundation",
 "core-foundation",
 "core-graphics",
 "foreign-types",
 "libc",
 "objc",
]

[[package]]
name = "cocoa-foundation"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318"
dependencies = [
 "bitflags",
 "block",
 "core-foundation",
 "core-graphics-types",
 "foreign-types",
 "libc",
 "objc",
name = "clipboard-win"
version = "4.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4ab1b92798304eedc095b53942963240037c0516452cb11aeba709d420b2219"
dependencies = [
 "error-code",
 "str-buf",
 "winapi",
]

[[package]]


@@ 1870,6 1959,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"

[[package]]
name = "com-rs"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642"

[[package]]
name = "combine"
version = "4.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 1881,15 1976,6 @@ dependencies = [

[[package]]
name = "concurrent-queue"
version = "1.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c"
dependencies = [
 "cache-padded",
]

[[package]]
name = "concurrent-queue"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd7bef69dc86e3c610e4e7aed41035e2a7ed12e72dd7530f61327a6579a4390b"


@@ 1965,12 2051,18 @@ version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
dependencies = [
 "core-foundation-sys",
 "core-foundation-sys 0.8.3",
 "libc",
]

[[package]]
name = "core-foundation-sys"
version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"

[[package]]
name = "core-foundation-sys"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"


@@ 2002,11 2094,12 @@ dependencies = [

[[package]]
name = "coreaudio-rs"
version = "0.10.0"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11894b20ebfe1ff903cbdc52259693389eea03b94918a2def2c30c3bf227ad88"
checksum = "cb17e2d1795b1996419648915df94bc7103c28f7b48062d7acf4652fc371b2ff"
dependencies = [
 "bitflags",
 "core-foundation-sys 0.6.2",
 "coreaudio-sys",
]



@@ 2021,28 2114,28 @@ dependencies = [

[[package]]
name = "cpal"
version = "0.14.1"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e73413ddcb69c398125f5529714492e070c64c6a090ad5b01d8c082b320a0809"
checksum = "d34fa7b20adf588f73f094cd9b1d944977c686e37a2759ea217ab174f017e10a"
dependencies = [
 "alsa",
 "core-foundation-sys",
 "core-foundation-sys 0.8.3",
 "coreaudio-rs",
 "dasp_sample",
 "jni 0.19.0",
 "js-sys",
 "libc",
 "mach",
 "ndk 0.7.0",
 "ndk",
 "ndk-context",
 "nix 0.25.0",
 "oboe",
 "once_cell",
 "parking_lot 0.12.1",
 "stdweb",
 "thiserror",
 "wasm-bindgen",
 "wasm-bindgen-futures",
 "web-sys",
 "windows 0.37.0",
 "windows 0.44.0",
]

[[package]]


@@ 2234,9 2327,9 @@ dependencies = [

[[package]]
name = "d3d12"
version = "0.5.0"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "827914e1f53b1e0e025ecd3d967a7836b7bcb54520f90e21ef8df7b4d88a2759"
checksum = "d8f0de2f5a8e7bd4a9eec0e3c781992a4ce1724f68aec7d7a3715344de8b39da"
dependencies = [
 "bitflags",
 "libloading",


@@ 2249,18 2342,8 @@ version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f2c43f534ea4b0b049015d00269734195e6d3f0f6635cb692251aca6f9f8b3c"
dependencies = [
 "darling_core 0.12.4",
 "darling_macro 0.12.4",
]

[[package]]
name = "darling"
version = "0.13.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
dependencies = [
 "darling_core 0.13.4",
 "darling_macro 0.13.4",
 "darling_core",
 "darling_macro",
]

[[package]]


@@ 2278,40 2361,21 @@ dependencies = [
]

[[package]]
name = "darling_core"
version = "0.13.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
dependencies = [
 "fnv",
 "ident_case",
 "proc-macro2",
 "quote",
 "strsim",
 "syn",
]

[[package]]
name = "darling_macro"
version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29b5acf0dea37a7f66f7b25d2c5e93fd46f8f6968b1a5d7a3e02e97768afc95a"
dependencies = [
 "darling_core 0.12.4",
 "darling_core",
 "quote",
 "syn",
]

[[package]]
name = "darling_macro"
version = "0.13.4"
name = "dasp_sample"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
dependencies = [
 "darling_core 0.13.4",
 "quote",
 "syn",
]
checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f"

[[package]]
name = "data-encoding"


@@ 2393,7 2457,7 @@ version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "66e616858f6187ed828df7c64a6d71720d83767a7f19740b2d1b6fe6327b36e5"
dependencies = [
 "darling 0.12.4",
 "darling",
 "proc-macro2",
 "quote",
 "syn",


@@ 2418,7 2482,7 @@ dependencies = [
 "convert_case",
 "proc-macro2",
 "quote",
 "rustc_version 0.4.0",
 "rustc_version",
 "syn",
]



@@ 2503,12 2567,6 @@ dependencies = [
]

[[package]]
name = "discard"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"

[[package]]
name = "dispatch"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 2543,18 2601,18 @@ dependencies = [

[[package]]
name = "ecolor"
version = "0.20.0"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b601108bca3af7650440ace4ca55b2daf52c36f2635be3587d77b16efd8d0691"
checksum = "1f99fe3cac305af9d6d92971af60d0f7ea4d783201ef1673571567b6699964d9"
dependencies = [
 "bytemuck",
]

[[package]]
name = "egui"
version = "0.20.1"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "65a5e883a316e53866977450eecfbcac9c48109c2ab3394af29feb83fcde4ea9"
checksum = "6412a21e0bde7c0918f7fb44bbbb86b5e1f88e63c026a4e747cc7af02f76dfbe"
dependencies = [
 "ahash 0.8.2",
 "epaint",


@@ 2562,6 2620,15 @@ dependencies = [
]

[[package]]
name = "egui_dock"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f86bdfe987f753ffcdf896932f09babfc63580b21e1899c304166f0befc85c8"
dependencies = [
 "egui",
]

[[package]]
name = "elliptic-curve"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 2593,18 2660,18 @@ dependencies = [

[[package]]
name = "emath"
version = "0.20.0"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5277249c8c3430e7127e4f2c40a77485e7baf11ae132ce9b3253a8ed710df0a0"
checksum = "b8ecd80612937e0267909d5351770fe150004e24dab93954f69ca62eecd3f77e"
dependencies = [
 "bytemuck",
]

[[package]]
name = "encase"
version = "0.4.0"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6bdd416eb91cd6fb73a22fbc9fa1ea013641cce1a58905c31623ff9c562e811"
checksum = "e6591f13a63571c4821802eb5b10fd1155b1290bce87086440003841c8c3909b"
dependencies = [
 "const_panic",
 "encase_derive",


@@ 2614,18 2681,18 @@ dependencies = [

[[package]]
name = "encase_derive"
version = "0.4.0"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df06cd7ea02426c2a0a164656bf116813584b461b8a7bb059b7941ab981105d3"
checksum = "4f1da6deed1f8b6f5909616ffa695f63a5de54d6a0f084fa715c70c8ed3abac9"
dependencies = [
 "encase_derive_impl",
]

[[package]]
name = "encase_derive_impl"
version = "0.4.0"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b299aab48b9a897ddd730dde2b5550af7c90ec6779c78e3c70f4c28d9337663f"
checksum = "ae489d58959f3c4cdd1250866a05acfb341469affe4fced71aff3ba228be1693"
dependencies = [
 "proc-macro2",
 "quote",


@@ 2655,20 2722,10 @@ dependencies = [
]

[[package]]
name = "env_logger"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7"
dependencies = [
 "log",
 "regex",
]

[[package]]
name = "epaint"
version = "0.20.0"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de14b65fe5e423e0058f77a8beb2c863b056d0566d6c4ce0d097aa5814cb705a"
checksum = "12e78b5c58a1f7f621f9d546add2adce20636422c9b251e29f749e8a2f713c95"
dependencies = [
 "ab_glyph",
 "ahash 0.8.2",


@@ 2690,27 2747,6 @@ dependencies = [
]

[[package]]
name = "errno"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
dependencies = [
 "errno-dragonfly",
 "libc",
 "winapi",
]

[[package]]
name = "errno-dragonfly"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
dependencies = [
 "cc",
 "libc",
]

[[package]]
name = "error-code"
version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 2762,7 2798,7 @@ checksum = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3"
dependencies = [
 "cfg-if",
 "libc",
 "redox_syscall",
 "redox_syscall 0.2.16",
 "windows-sys 0.42.0",
]



@@ 3011,10 3047,16 @@ dependencies = [
]

[[package]]
name = "gimli"
version = "0.27.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4"

[[package]]
name = "glam"
version = "0.22.0"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12f597d56c1bd55a811a1be189459e8fad2bbc272616375602443bdfb37fa774"
checksum = "8e4afd9ad95555081e109fe1d21f2a30c691b5f0919c67dfa690a2e1eb6bd51c"
dependencies = [
 "bytemuck",
 "serde",


@@ 3028,9 3070,9 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"

[[package]]
name = "glow"
version = "0.11.2"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8bd5877156a19b8ac83a29b2306fe20537429d318f3ff0a1a2119f8d9c61919"
checksum = "4e007a07a24de5ecae94160f141029e9a347282cfe25d1d58d85d845cf3130f1"
dependencies = [
 "js-sys",
 "slotmap",


@@ 3104,6 3146,19 @@ dependencies = [
]

[[package]]
name = "gpu-allocator"
version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce95f9e2e11c2c6fadfce42b5af60005db06576f231f5c92550fdded43c423e8"
dependencies = [
 "backtrace",
 "log",
 "thiserror",
 "winapi",
 "windows 0.44.0",
]

[[package]]
name = "gpu-descriptor"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 3164,26 3219,6 @@ dependencies = [
]

[[package]]
name = "hash32"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67"
dependencies = [
 "byteorder",
]

[[package]]
name = "hash32-derive"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59d2aba832b60be25c1b169146b27c64115470981b128ed84c8db18c1b03c6ff"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]
name = "hashbrown"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 3194,40 3229,34 @@ dependencies = [
]

[[package]]
name = "heck"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"

[[package]]
name = "hermit-abi"
version = "0.1.19"
name = "hassle-rs"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
checksum = "90601c6189668c7345fc53842cb3f3a3d872203d523be1b3cb44a36a3e62fb85"
dependencies = [
 "bitflags",
 "com-rs",
 "libc",
 "libloading",
 "thiserror",
 "widestring 0.5.1",
 "winapi",
]

[[package]]
name = "hermit-abi"
version = "0.2.6"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
 "libc",
]

[[package]]
name = "hex"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"

[[package]]
name = "hexasphere"
version = "8.0.0"
version = "8.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "619ce654558681d7d0a7809e1b20249c7032ff13ee6baa7bb7ff64f7f28a906a"
checksum = "bd41d443f978bfa380a6dad58b62a08c43bcb960631f13e9d015b911eaf73588"
dependencies = [
 "glam",
 "once_cell",


@@ 3367,7 3396,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
dependencies = [
 "android_system_properties",
 "core-foundation-sys",
 "core-foundation-sys 0.8.3",
 "iana-time-zone-haiku",
 "js-sys",
 "wasm-bindgen",


@@ 3490,57 3519,23 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7789f7f3c9686f96164f5109d69152de759e76e284f736bd57661c6df5091919"
dependencies = [
 "core-foundation-sys",
 "core-foundation-sys 0.8.3",
 "mach",
]

[[package]]
name = "io-lifetimes"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c"
dependencies = [
 "libc",
 "windows-sys 0.42.0",
]

[[package]]
name = "ipnet"
version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11b0d96e660696543b251e58030cf9787df56da39dab19ad60eae7353040917e"

[[package]]
name = "is-terminal"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189"
dependencies = [
 "hermit-abi 0.2.6",
 "io-lifetimes",
 "rustix",
 "windows-sys 0.42.0",
]

[[package]]
name = "itoa"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"

[[package]]
name = "iyes_loopless"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c47fd2cbdb1d7f295c25e6bfccfd78a84b6eef3055bc9f01b34ae861721b01ee"
dependencies = [
 "bevy_app",
 "bevy_ecs",
 "bevy_time",
 "bevy_utils",
]

[[package]]
name = "jni"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 3591,9 3586,9 @@ checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"

[[package]]
name = "js-sys"
version = "0.3.60"
version = "0.3.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
dependencies = [
 "wasm-bindgen",
]


@@ 3630,6 3625,15 @@ dependencies = [
]

[[package]]
name = "ktx2"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87d65e08a9ec02e409d27a0139eaa6b9756b4d81fe7cde71f6941a83730ce838"
dependencies = [
 "bitflags",
]

[[package]]
name = "language-tags"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 3707,12 3711,6 @@ dependencies = [
]

[[package]]
name = "linux-raw-sys"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"

[[package]]
name = "local-channel"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 3876,9 3874,9 @@ dependencies = [

[[package]]
name = "naga"
version = "0.10.0"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "262d2840e72dbe250e8cf2f522d080988dfca624c4112c096238a4845f591707"
checksum = "5eafe22a23b797c9bc227c6c896419b26b5bb88fa903417a3adaed08778850d5"
dependencies = [
 "bit-set",
 "bitflags",


@@ 3898,9 3896,9 @@ dependencies = [

[[package]]
name = "naia-bevy-client"
version = "0.18.0"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbbe53341075dbb982cac8242afd4161838f1de9555a72bc2b9e2b3d9b1c4253"
checksum = "a95d86f7e3f9a30c4d439fee5dd628819c1602ec790a5bf88646f03d6a5ac2e5"
dependencies = [
 "bevy_app",
 "bevy_ecs",


@@ 3910,9 3908,9 @@ dependencies = [

[[package]]
name = "naia-bevy-server"
version = "0.18.0"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "545144fb126ee9c1f5b29aa460fe8728e6af7b26bba340772f4c0d8245bd326e"
checksum = "ed249937198f7d0b14b3261dc488cfbf59df9d916e1724b645c9834e844e5722"
dependencies = [
 "bevy_app",
 "bevy_ecs",


@@ 3922,19 3920,20 @@ dependencies = [

[[package]]
name = "naia-bevy-shared"
version = "0.18.0"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a6060bae2cc3619f7264886021a6a141e1d0f1ef3a84d10bee8e182dd99d8e3e"
checksum = "82af7c36942c0ea3d5b9e8055c69ddd68121727fc56a93acc3e3f6619260d576"
dependencies = [
 "bevy_app",
 "bevy_ecs",
 "naia-shared",
]

[[package]]
name = "naia-client"
version = "0.18.0"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8974bcdb4b978e91dc0af9c4e3656f13b4e17c7385d8ebfd7d897e175259b545"
checksum = "c6fdbd923182ee2ebc315bd48bec12731e98f0a1f8eaeca0d82e74996eed713b"
dependencies = [
 "bevy_ecs",
 "cfg-if",


@@ 3964,9 3963,9 @@ dependencies = [

[[package]]
name = "naia-derive"
version = "0.18.0"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bdf68538eef6ac46820636a8d83d140caf55bf9bda9f078e3a8aece3d7f73f79"
checksum = "fc35e1f96281b1df87626789cbe80fb848ff8a511d8ead5fe32b222551a76eb4"
dependencies = [
 "naia-serde-derive",
 "proc-macro2",


@@ 4000,9 3999,9 @@ dependencies = [

[[package]]
name = "naia-server"
version = "0.18.0"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ba24ff5fd25dfe6b765adee3208e1cf0486c07a72b5568bbc4977cff3380ea0"
checksum = "3c86255d921676bdce86400030316ade856324929014cde791e11f77fd6e904b"
dependencies = [
 "bevy_ecs",
 "fastrand",


@@ 4032,9 4031,9 @@ dependencies = [

[[package]]
name = "naia-shared"
version = "0.18.0"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54803e35fc27b8bc5b7b9a8c541403422e2a654a719a22be93d196188f9974d5"
checksum = "ee3baf481b0aeb888278c4e0f28ea4fb9d505bc1a7b2e0d3f4f2e95c9b8770ee"
dependencies = [
 "bevy_ecs",
 "cfg-if",


@@ 4079,77 4078,25 @@ dependencies = [

[[package]]
name = "ndk"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4"
dependencies = [
 "bitflags",
 "jni-sys",
 "ndk-sys 0.3.0",
 "num_enum",
 "thiserror",
]

[[package]]
name = "ndk"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0"
dependencies = [
 "bitflags",
 "jni-sys",
 "ndk-sys 0.4.1+23.1.7779620",
 "num_enum",
 "raw-window-handle 0.5.0",
 "thiserror",
]

[[package]]
name = "ndk-context"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"

[[package]]
name = "ndk-glue"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0434fabdd2c15e0aab768ca31d5b7b333717f03cf02037d5a0a3ff3c278ed67f"
dependencies = [
 "android_logger",
 "libc",
 "log",
 "ndk 0.7.0",
 "ndk-context",
 "ndk-macro",
 "ndk-sys 0.4.1+23.1.7779620",
 "once_cell",
 "parking_lot 0.12.1",
]

[[package]]
name = "ndk-macro"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c"
dependencies = [
 "darling 0.13.4",
 "proc-macro-crate",
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]
name = "ndk-sys"
version = "0.3.0"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97"
checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0"
dependencies = [
 "bitflags",
 "jni-sys",
 "ndk-sys",
 "num_enum",
 "raw-window-handle",
 "thiserror",
]

[[package]]
name = "ndk-context"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"

[[package]]
name = "ndk-sys"
version = "0.4.1+23.1.7779620"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 4194,7 4141,6 @@ dependencies = [
 "cfg-if",
 "libc",
 "memoffset",
 "pin-utils",
]

[[package]]


@@ 4254,6 4200,15 @@ dependencies = [
]

[[package]]
name = "ntapi"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc51db7b362b205941f71232e56c625156eb9a929f8cf74a428fd5bc094a4afc"
dependencies = [
 "winapi",
]

[[package]]
name = "nu-ansi-term"
version = "0.46.0"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 4321,7 4276,7 @@ version = "1.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5"
dependencies = [
 "hermit-abi 0.1.19",
 "hermit-abi",
 "libc",
]



@@ 4368,6 4323,32 @@ dependencies = [
]

[[package]]
name = "objc-sys"
version = "0.2.0-beta.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7"

[[package]]
name = "objc2"
version = "0.3.0-beta.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe31e5425d3d0b89a15982c024392815da40689aceb34bad364d58732bcfd649"
dependencies = [
 "block2",
 "objc-sys",
 "objc2-encode",
]

[[package]]
name = "objc2-encode"
version = "2.0.0-pre.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512"
dependencies = [
 "objc-sys",
]

[[package]]
name = "objc_exception"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 4386,13 4367,22 @@ dependencies = [
]

[[package]]
name = "object"
version = "0.30.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439"
dependencies = [
 "memchr",
]

[[package]]
name = "oboe"
version = "0.4.6"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27f63c358b4fa0fbcfefd7c8be5cfc39c08ce2389f5325687e7762a48d30a5c1"
checksum = "8868cc237ee02e2d9618539a23a8d228b9bb3fc2e7a5b11eed3831de77c395d0"
dependencies = [
 "jni 0.19.0",
 "ndk 0.6.0",
 "jni 0.20.0",
 "ndk",
 "ndk-context",
 "num-derive",
 "num-traits",


@@ 4401,9 4391,9 @@ dependencies = [

[[package]]
name = "oboe-sys"
version = "0.4.5"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3370abb7372ed744232c12954d920d1a40f1c4686de9e79e800021ef492294bd"
checksum = "7f44155e7fb718d3cfddcf70690b2b51ac4412f347cd9e4fbe511abe9cd7b5f2"
dependencies = [
 "cc",
]


@@ 4437,9 4427,9 @@ dependencies = [

[[package]]
name = "once_cell"
version = "1.16.0"
version = "1.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"

[[package]]
name = "opaque-debug"


@@ 4448,6 4438,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"

[[package]]
name = "opener"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "293c15678e37254c15bd2f092314abb4e51d7fdde05c2021279c12631b54f005"
dependencies = [
 "bstr",
 "winapi",
]

[[package]]
name = "openssl"
version = "0.10.44"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 4493,10 4493,16 @@ dependencies = [
]

[[package]]
name = "os_str_bytes"
version = "6.4.1"
name = "orbclient"
version = "0.3.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
checksum = "974465c5e83cf9df05c1e4137b271d29035c902e39e5ad4c1939837e22160af8"
dependencies = [
 "cfg-if",
 "redox_syscall 0.2.16",
 "wasm-bindgen",
 "web-sys",
]

[[package]]
name = "overload"


@@ 4560,7 4566,7 @@ dependencies = [
 "cfg-if",
 "instant",
 "libc",
 "redox_syscall",
 "redox_syscall 0.2.16",
 "smallvec",
 "winapi",
]


@@ 4573,7 4579,7 @@ checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba"
dependencies = [
 "cfg-if",
 "libc",
 "redox_syscall",
 "redox_syscall 0.2.16",
 "smallvec",
 "windows-sys 0.42.0",
]


@@ 4739,7 4745,7 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d"
dependencies = [
 "env_logger 0.7.1",
 "env_logger",
 "log",
]



@@ 4894,15 4900,6 @@ checksum = "63e935c45e09cc6dcf00d2f0b2d630a58f4095320223d47fc68918722f0538b6"

[[package]]
name = "raw-window-handle"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41"
dependencies = [
 "cty",
]

[[package]]
name = "raw-window-handle"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a"


@@ 4954,13 4951,22 @@ dependencies = [
]

[[package]]
name = "redox_syscall"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb02a9aee8e8c7ad8d86890f1e16b49e0bbbffc9961ff3788c31d57c98bcbf03"
dependencies = [
 "bitflags",
]

[[package]]
name = "redox_users"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
dependencies = [
 "getrandom 0.2.8",
 "redox_syscall",
 "redox_syscall 0.2.16",
 "thiserror",
]



@@ 5077,9 5083,9 @@ dependencies = [

[[package]]
name = "rodio"
version = "0.16.0"
version = "0.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb10b653d5ec0e9411a2e7d46e2c7f4046fd87d35b9955bd73ba4108d69072b5"
checksum = "bdf1d4dea18dff2e9eb6dca123724f8b60ef44ad74a9ad283cdfe025df7e73fa"
dependencies = [
 "cpal",
 "lewton",


@@ 5097,19 5103,16 @@ dependencies = [
]

[[package]]
name = "rustc-hash"
version = "1.1.0"
name = "rustc-demangle"
version = "0.1.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"

[[package]]
name = "rustc_version"
version = "0.2.3"
name = "rustc-hash"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
dependencies = [
 "semver 0.9.0",
]
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"

[[package]]
name = "rustc_version"


@@ 5117,7 5120,7 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
dependencies = [
 "semver 1.0.16",
 "semver",
]

[[package]]


@@ 5139,20 5142,6 @@ dependencies = [
]

[[package]]
name = "rustix"
version = "0.36.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4feacf7db682c6c329c4ede12649cd36ecab0f3be5b7d74e6a20304725db4549"
dependencies = [
 "bitflags",
 "errno",
 "io-lifetimes",
 "libc",
 "linux-raw-sys",
 "windows-sys 0.42.0",
]

[[package]]
name = "rustls"
version = "0.19.1"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 5193,6 5182,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70"

[[package]]
name = "ruzstd"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8cada0ef59efa6a5f4dc5e491f93d9f31e3fc7758df421ff1de8a706338e1100"
dependencies = [
 "byteorder",
 "twox-hash",
]

[[package]]
name = "ryu"
version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 5292,7 5291,7 @@ checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c"
dependencies = [
 "bitflags",
 "core-foundation",
 "core-foundation-sys",
 "core-foundation-sys 0.8.3",
 "libc",
 "security-framework-sys",
]


@@ 5303,32 5302,17 @@ version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556"
dependencies = [
 "core-foundation-sys",
 "core-foundation-sys 0.8.3",
 "libc",
]

[[package]]
name = "semver"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
dependencies = [
 "semver-parser",
]

[[package]]
name = "semver"
version = "1.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a"

[[package]]
name = "semver-parser"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"

[[package]]
name = "serde"
version = "1.0.152"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 5418,15 5402,6 @@ dependencies = [

[[package]]
name = "sha1"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770"
dependencies = [
 "sha1_smol",
]

[[package]]
name = "sha1"
version = "0.10.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"


@@ 5437,12 5412,6 @@ dependencies = [
]

[[package]]
name = "sha1_smol"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"

[[package]]
name = "sha2"
version = "0.9.9"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 5636,55 5605,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"

[[package]]
name = "stdweb"
version = "0.4.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
dependencies = [
 "discard",
 "rustc_version 0.2.3",
 "stdweb-derive",
 "stdweb-internal-macros",
 "stdweb-internal-runtime",
 "wasm-bindgen",
]

[[package]]
name = "stdweb-derive"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
dependencies = [
 "proc-macro2",
 "quote",
 "serde",
 "serde_derive",
 "syn",
]

[[package]]
name = "stdweb-internal-macros"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
dependencies = [
 "base-x",
 "proc-macro2",
 "quote",
 "serde",
 "serde_derive",
 "serde_json",
 "sha1 0.6.1",
 "syn",
]

[[package]]
name = "stdweb-internal-runtime"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"

[[package]]
name = "str-buf"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 5732,16 5652,28 @@ dependencies = [
]

[[package]]
name = "sysinfo"
version = "0.28.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3e847e2de7a137c8c2cede5095872dbb00f4f9bf34d061347e36b43322acd56"
dependencies = [
 "cfg-if",
 "core-foundation-sys 0.8.3",
 "libc",
 "ntapi",
 "once_cell",
 "winapi",
]

[[package]]
name = "taffy"
version = "0.1.0"
version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec27dea659b100d489dffa57cf0efc6d7bfefb119af817b92cc14006c0b214e3"
checksum = "2ee314c07429e51c4770287734f62d23bb27cb9e941823f969b57f50171079ee"
dependencies = [
 "arrayvec 0.7.2",
 "hash32",
 "hash32-derive",
 "num-traits",
 "typenum",
 "slotmap",
]

[[package]]


@@ 5759,7 5691,7 @@ dependencies = [
 "cfg-if",
 "fastrand",
 "libc",
 "redox_syscall",
 "redox_syscall 0.2.16",
 "remove_dir_all",
 "winapi",
]


@@ 6063,6 5995,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "375812fa44dab6df41c195cd2f7fecb488f6c09fbaafb62807488cefab642bff"

[[package]]
name = "twox-hash"
version = "1.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
dependencies = [
 "cfg-if",
 "static_assertions",
]

[[package]]
name = "typenum"
version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 6231,9 6173,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"

[[package]]
name = "wasm-bindgen"
version = "0.2.83"
version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
dependencies = [
 "cfg-if",
 "wasm-bindgen-macro",


@@ 6241,9 6183,9 @@ dependencies = [

[[package]]
name = "wasm-bindgen-backend"
version = "0.2.83"
version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
dependencies = [
 "bumpalo",
 "log",


@@ 6256,9 6198,9 @@ dependencies = [

[[package]]
name = "wasm-bindgen-futures"
version = "0.4.33"
version = "0.4.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d"
checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454"
dependencies = [
 "cfg-if",
 "js-sys",


@@ 6268,9 6210,9 @@ dependencies = [

[[package]]
name = "wasm-bindgen-macro"
version = "0.2.83"
version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
dependencies = [
 "quote",
 "wasm-bindgen-macro-support",


@@ 6278,9 6220,9 @@ dependencies = [

[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.83"
version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
dependencies = [
 "proc-macro2",
 "quote",


@@ 6291,9 6233,9 @@ dependencies = [

[[package]]
name = "wasm-bindgen-shared"
version = "0.2.83"
version = "0.2.84"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"

[[package]]
name = "wayland-client"


@@ 6369,9 6311,9 @@ dependencies = [

[[package]]
name = "web-sys"
version = "0.3.60"
version = "0.3.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
dependencies = [
 "js-sys",
 "wasm-bindgen",


@@ 6386,10 6328,10 @@ dependencies = [
 "jni 0.20.0",
 "ndk-context",
 "objc",
 "raw-window-handle 0.5.0",
 "raw-window-handle",
 "url",
 "web-sys",
 "widestring",
 "widestring 1.0.2",
 "winapi",
]



@@ 6508,16 6450,18 @@ dependencies = [

[[package]]
name = "wgpu"
version = "0.14.0"
version = "0.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2272b17bffc8a0c7d53897435da7c1db587c87d3a14e8dae9cdb8d1d210fc0f"
checksum = "d745a1b6d91d85c33defbb29f0eee0450e1d2614d987e14bf6baf26009d132d7"
dependencies = [
 "arrayvec 0.7.2",
 "cfg-if",
 "js-sys",
 "log",
 "naga",
 "parking_lot 0.12.1",
 "raw-window-handle 0.5.0",
 "profiling",
 "raw-window-handle",
 "smallvec",
 "static_assertions",
 "wasm-bindgen",


@@ 6530,21 6474,20 @@ dependencies = [

[[package]]
name = "wgpu-core"
version = "0.14.0"
version = "0.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73d14cad393054caf992ee02b7da6a372245d39a484f7461c1f44f6f6359bd28"
checksum = "7131408d940e335792645a98f03639573b0480e9e2e7cddbbab74f7c6d9f3fff"
dependencies = [
 "arrayvec 0.7.2",
 "bit-vec",
 "bitflags",
 "cfg_aliases",
 "codespan-reporting",
 "fxhash",
 "log",
 "naga",
 "parking_lot 0.12.1",
 "profiling",
 "raw-window-handle 0.5.0",
 "raw-window-handle",
 "smallvec",
 "thiserror",
 "web-sys",


@@ 6554,9 6497,9 @@ dependencies = [

[[package]]
name = "wgpu-hal"
version = "0.14.1"
version = "0.15.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3cc320a61acb26be4f549c9b1b53405c10a223fbfea363ec39474c32c348d12f"
checksum = "7762ae7fcc06943c1b5d4987ab0194e82aaba7767fbfb75d3458844c5b82cc45"
dependencies = [
 "android_system_properties",
 "arrayvec 0.7.2",


@@ 6570,9 6513,12 @@ dependencies = [
 "fxhash",
 "glow",
 "gpu-alloc",
 "gpu-allocator",
 "gpu-descriptor",
 "hassle-rs",
 "js-sys",
 "khronos-egl",
 "libc",
 "libloading",
 "log",
 "metal",


@@ 6581,7 6527,7 @@ dependencies = [
 "parking_lot 0.12.1",
 "profiling",
 "range-alloc",
 "raw-window-handle 0.5.0",
 "raw-window-handle",
 "renderdoc-sys",
 "smallvec",
 "thiserror",


@@ 6593,15 6539,23 @@ dependencies = [

[[package]]
name = "wgpu-types"
version = "0.14.1"
version = "0.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb6b28ef22cac17b9109b25b3bf8c9a103eeb293d7c5f78653979b09140375f6"
checksum = "32444e121b0bd00cb02c0de32fde457a9491bd44e03e7a5db6df9b1da2f6f110"
dependencies = [
 "bitflags",
 "js-sys",
 "web-sys",
]

[[package]]
name = "widestring"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983"

[[package]]
name = "widestring"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"


@@ 6648,30 6602,50 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"

[[package]]
name = "windows"
version = "0.37.0"
version = "0.43.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647"
checksum = "04662ed0e3e5630dfa9b26e4cb823b817f1a9addda855d973a9458c236556244"
dependencies = [
 "windows_aarch64_msvc 0.37.0",
 "windows_i686_gnu 0.37.0",
 "windows_i686_msvc 0.37.0",
 "windows_x86_64_gnu 0.37.0",
 "windows_x86_64_msvc 0.37.0",
 "windows_aarch64_gnullvm",
 "windows_aarch64_msvc 0.42.1",
 "windows_i686_gnu 0.42.1",
 "windows_i686_msvc 0.42.1",
 "windows_x86_64_gnu 0.42.1",
 "windows_x86_64_gnullvm",
 "windows_x86_64_msvc 0.42.1",
]

[[package]]
name = "windows"
version = "0.43.0"
version = "0.44.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04662ed0e3e5630dfa9b26e4cb823b817f1a9addda855d973a9458c236556244"
checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b"
dependencies = [
 "windows_aarch64_gnullvm",
 "windows_aarch64_msvc 0.42.0",
 "windows_i686_gnu 0.42.0",
 "windows_i686_msvc 0.42.0",
 "windows_x86_64_gnu 0.42.0",
 "windows_x86_64_gnullvm",
 "windows_x86_64_msvc 0.42.0",
 "windows-implement",
 "windows-interface",
 "windows-targets",
]

[[package]]
name = "windows-implement"
version = "0.44.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ce87ca8e3417b02dc2a8a22769306658670ec92d78f1bd420d6310a67c245c6"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]
name = "windows-interface"
version = "0.44.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "853f69a591ecd4f810d29f17e902d40e349fb05b0b11fff63b08b826bfe39c7f"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]


@@ 6694,55 6668,67 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
dependencies = [
 "windows_aarch64_gnullvm",
 "windows_aarch64_msvc 0.42.0",
 "windows_i686_gnu 0.42.0",
 "windows_i686_msvc 0.42.0",
 "windows_x86_64_gnu 0.42.0",
 "windows_aarch64_msvc 0.42.1",
 "windows_i686_gnu 0.42.1",
 "windows_i686_msvc 0.42.1",
 "windows_x86_64_gnu 0.42.1",
 "windows_x86_64_gnullvm",
 "windows_x86_64_msvc 0.42.0",
 "windows_x86_64_msvc 0.42.1",
]

[[package]]
name = "windows_aarch64_gnullvm"
version = "0.42.0"
name = "windows-sys"
version = "0.45.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
dependencies = [
 "windows-targets",
]

[[package]]
name = "windows_aarch64_msvc"
version = "0.36.1"
name = "windows-targets"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"
dependencies = [
 "windows_aarch64_gnullvm",
 "windows_aarch64_msvc 0.42.1",
 "windows_i686_gnu 0.42.1",
 "windows_i686_msvc 0.42.1",
 "windows_x86_64_gnu 0.42.1",
 "windows_x86_64_gnullvm",
 "windows_x86_64_msvc 0.42.1",
]

[[package]]
name = "windows_aarch64_msvc"
version = "0.37.0"
name = "windows_aarch64_gnullvm"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a"
checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"

[[package]]
name = "windows_aarch64_msvc"
version = "0.42.0"
version = "0.36.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"

[[package]]
name = "windows_i686_gnu"
version = "0.36.1"
name = "windows_aarch64_msvc"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"

[[package]]
name = "windows_i686_gnu"
version = "0.37.0"
version = "0.36.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1"
checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"

[[package]]
name = "windows_i686_gnu"
version = "0.42.0"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"

[[package]]
name = "windows_i686_msvc"


@@ 6752,15 6738,9 @@ checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"

[[package]]
name = "windows_i686_msvc"
version = "0.37.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c"

[[package]]
name = "windows_i686_msvc"
version = "0.42.0"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"

[[package]]
name = "windows_x86_64_gnu"


@@ 6770,21 6750,15 @@ checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"

[[package]]
name = "windows_x86_64_gnu"
version = "0.37.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d"

[[package]]
name = "windows_x86_64_gnu"
version = "0.42.0"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"

[[package]]
name = "windows_x86_64_gnullvm"
version = "0.42.0"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"

[[package]]
name = "windows_x86_64_msvc"


@@ 6794,24 6768,19 @@ checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"

[[package]]
name = "windows_x86_64_msvc"
version = "0.37.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d"

[[package]]
name = "windows_x86_64_msvc"
version = "0.42.0"
version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"

[[package]]
name = "winit"
version = "0.27.5"
version = "0.28.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb796d6fbd86b2fd896c9471e6f04d39d750076ebe5680a3958f00f5ab97657c"
checksum = "9d38e7dc904dda347b54dbec3b2d4bf534794f4fb4e6df0be91a264f4f2ed1cf"
dependencies = [
 "android-activity",
 "bitflags",
 "cocoa",
 "cfg_aliases",
 "core-foundation",
 "core-graphics",
 "dispatch",


@@ 6819,20 6788,21 @@ dependencies = [
 "libc",
 "log",
 "mio",
 "ndk 0.7.0",
 "ndk-glue",
 "objc",
 "ndk",
 "objc2",
 "once_cell",
 "parking_lot 0.12.1",
 "orbclient",
 "percent-encoding",
 "raw-window-handle 0.4.3",
 "raw-window-handle 0.5.0",
 "raw-window-handle",
 "redox_syscall 0.3.4",
 "smithay-client-toolkit",
 "wasm-bindgen",
 "wayland-client",
 "wayland-commons",
 "wayland-protocols",
 "wayland-scanner",
 "web-sys",
 "windows-sys 0.36.1",
 "windows-sys 0.45.0",
 "x11-dl",
]


M client/Cargo.toml => client/Cargo.toml +4 -11
@@ 14,7 14,7 @@ publish = false
[dependencies]
laurelin_shared = { package = "shared", path = "../shared" }

naia-bevy-client = "0.18.0"
naia-bevy-client = "0.19.0"

# one dep needs ^0.5.9, and another one needs ^0.5.10
# and for some reason cargo can't figure this out, so we're forcing it for now.


@@ 23,20 23,13 @@ toml = "0.7.1"
# more dep shit
proc-macro2 = "1.0.50"

bevy = { version = "0.9.1", features = [ "wayland" ] }
bevy-inspector-egui = "0.17.0"

# NOTE: using own branch till pr goes through
#bevy_console = "0.6.0"
bevy_console = { git = "https://github.com/QuendirSkye/bevy-console", branch = "bump-bevy-egui" }
bevy = { version = "0.10.0", features = [ "wayland" ] }
bevy_editor_pls = "0.3.0"
bevy_egui = "0.20.0"

# lua scripting
#bevy_mod_scripting = { version = "0.2.1", features = ["lua", "lua54", "lua_script_api"] }

# better stage management
# NOTE: most likely not needed when bevy 0.10.0 comes around
iyes_loopless = "0.9.1"

# (de)serialization
serde = { version = "1.0.152", features = ["derive"] }
serde_json = "1.0.91"

M client/src/main.rs => client/src/main.rs +33 -29
@@ 9,11 9,13 @@
use bevy::{
    app::AppExit,
    prelude::*,
    window::{CompositeAlphaMode, CursorGrabMode, PresentMode, WindowResizeConstraints},
    window::{
        CompositeAlphaMode, Cursor, CursorGrabMode, PresentMode, WindowLevel, WindowMode,
        WindowResizeConstraints, WindowResolution,
    },
};
use bevy_console::{ConsoleConfiguration, ConsolePlugin, ToggleConsoleKey};
use bevy_inspector_egui::quick::WorldInspectorPlugin;
use iyes_loopless::prelude::*;
#[cfg(feature = "dev")]
use bevy_editor_pls::EditorPlugin;
use naia_bevy_client::{Client, ClientConfig as NaiaClientConfig, Plugin as NaiaClientPlugin};

use laurelin_shared::server::protocol::protocol;


@@ 29,54 31,57 @@ mod util;
//mod lua;

/// Used to control the state of the game
#[derive(Debug, Clone, Eq, PartialEq, Hash)]
#[derive(Debug, Clone, Eq, PartialEq, Hash, Default, States)]
pub enum GameState {
    #[default]
    Splash,
    Loading,
    MainMenu,
    Game,
}

struct MainLoop;

fn main() {
    let mut app = App::new();

    app.add_plugins(DefaultPlugins.set(WindowPlugin {
        window: WindowDescriptor {
            width: 1280.,
            height: 720.,
            position: WindowPosition::Centered,
            monitor: MonitorSelection::Primary,
        primary_window: Some(Window {
            cursor: Cursor {
                icon: CursorIcon::Default,
                visible: true,
                grab_mode: CursorGrabMode::None,
                hit_test: true,
                ..Default::default()
            },
            present_mode: PresentMode::Fifo,
            mode: WindowMode::Windowed,
            position: WindowPosition::Centered(MonitorSelection::Primary),
            resolution: WindowResolution::new(1280., 720.),
            title: "Laurelin".to_string(),
            composite_alpha_mode: CompositeAlphaMode::Auto,
            resize_constraints: WindowResizeConstraints {
                min_width: 1280.,
                min_height: 720.,
                max_width: 3840.,
                max_height: 2160.,
            },
            scale_factor_override: Some(1.),
            title: "Deck Builder".to_string(),
            present_mode: PresentMode::Fifo,
            resizable: false,
            decorations: true,
            cursor_visible: true,
            cursor_grab_mode: CursorGrabMode::None,
            mode: WindowMode::Windowed,
            transparent: false,
            focused: true,
            window_level: WindowLevel::Normal,
            canvas: None,
            fit_canvas_to_parent: false,
            alpha_mode: CompositeAlphaMode::Auto,
        },
            prevent_default_event_handling: false,
            ime_enabled: false,
            ..Default::default()
        }),
        ..Default::default()
    }));

    app.add_plugin(WorldInspectorPlugin);
    app.add_plugin(ConsolePlugin);
    app.insert_resource(ConsoleConfiguration {
        keys: vec![
            ToggleConsoleKey::KeyCode(KeyCode::F1),
            ToggleConsoleKey::KeyCode(KeyCode::F13),
        ],
        ..Default::default()
    });
    #[cfg(feature = "dev")]
    app.add_plugin(EditorPlugin);

    //app.add_plugin(ScriptingPlugin).add_plugin(lua::LuaPlugin);



@@ 89,8 94,7 @@ fn main() {
        .insert_resource(cfg::CfgUser::default())
        .insert_resource(cfg::CfgDev::default());

    app.add_startup_system(setup)
        .add_loopless_state(GameState::Splash);
    app.add_startup_system(setup).add_state::<GameState>();

    app.add_plugin(plugins::config::ConfigPlugin)
        .add_plugin(plugins::phases::splash::SplashPlugin)

M client/src/plugins/config/mod.rs => client/src/plugins/config/mod.rs +1 -13
@@ 7,7 7,6 @@
 */

use bevy::prelude::*;
use bevy_console::PrintConsoleLine;

use crate::{cfg, util};



@@ 39,7 38,6 @@ fn handle_load_events(
    mut cfg_user: ResMut<cfg::CfgUser>,
    mut cfg_dev: ResMut<cfg::CfgDev>,
    cfg_dirs: ResMut<cfg::CfgDirs>,
    mut console: EventWriter<PrintConsoleLine>,
) {
    for event in events.iter() {
        match &event.value {


@@ 47,21 45,18 @@ fn handle_load_events(
                *cfg_settings = util::sl::load(
                    cfg_dirs.0.data_local_dir().to_str().unwrap(),
                    cfg::FILE_CFG_SETTINGS,
                    &mut console,
                );
            }
            LoadEventValue::User => {
                *cfg_user = util::sl::load(
                    cfg_dirs.0.data_local_dir().to_str().unwrap(),
                    cfg::FILE_CFG_USER,
                    &mut console,
                );
            }
            LoadEventValue::Dev => {
                *cfg_dev = util::sl::load(
                    cfg_dirs.0.data_local_dir().to_str().unwrap(),
                    cfg::FILE_CFG_DEV,
                    &mut console,
                );
            }
        }


@@ 78,11 73,7 @@ pub struct SaveEvent {
    pub value: SaveEventValue,
}

fn handle_save_events(
    mut events: EventReader<SaveEvent>,
    cfg_dirs: Res<cfg::CfgDirs>,
    mut console: EventWriter<PrintConsoleLine>,
) {
fn handle_save_events(mut events: EventReader<SaveEvent>, cfg_dirs: Res<cfg::CfgDirs>) {
    for event in events.iter() {
        match &event.value {
            SaveEventValue::Settings(value) => {


@@ 90,7 81,6 @@ fn handle_save_events(
                    cfg_dirs.0.data_local_dir().to_str().unwrap(),
                    cfg::FILE_CFG_SETTINGS,
                    &value,
                    &mut console,
                );
            }
            SaveEventValue::User(value) => {


@@ 98,7 88,6 @@ fn handle_save_events(
                    cfg_dirs.0.data_local_dir().to_str().unwrap(),
                    cfg::FILE_CFG_USER,
                    &value,
                    &mut console,
                );
            }
            SaveEventValue::Dev(value) => {


@@ 106,7 95,6 @@ fn handle_save_events(
                    cfg_dirs.0.data_local_dir().to_str().unwrap(),
                    cfg::FILE_CFG_DEV,
                    &value,
                    &mut console,
                );
            }
        }

M client/src/plugins/menu/mod.rs => client/src/plugins/menu/mod.rs +9 -9
@@ 7,7 7,6 @@
 */

use bevy::prelude::*;
use iyes_loopless::prelude::*;

use crate::GameState;



@@ 19,20 18,21 @@ impl Plugin for MenuPlugin {
    fn build(&self, app: &mut App) {
        app.
            // Start with no menu. The menu is loaded when the GameState::MainMenu is entered.
            add_loopless_state(MenuState::None)
            .add_enter_system(GameState::MainMenu, menu_setup)
            add_state::<MenuState>()
            .add_system(menu_setup.in_schedule(OnEnter(GameState::MainMenu)))
            .insert_resource(ui::connect::ConnectScreenData::default())
            .insert_resource(ui::play::PlayScreenData::default())
            .add_system(ui::connect::ui.run_in_state(MenuState::Connect))
            .add_system(ui::menu::ui.run_in_state(MenuState::Menu))
            .add_system(ui::settings::ui.run_in_state(MenuState::Settings))
            .add_system(ui::play::ui.run_in_state(MenuState::Play));
            .add_system(ui::connect::ui.run_if(in_state(MenuState::Connect)))
            .add_system(ui::menu::ui.run_if(in_state(MenuState::Menu)))
            .add_system(ui::settings::ui.run_if(in_state(MenuState::Settings)))
            .add_system(ui::play::ui.run_if(in_state(MenuState::Play)));
    }
}

/// Menu State
#[derive(Clone, Eq, PartialEq, Debug, Hash)]
#[derive(Clone, Eq, PartialEq, Debug, Hash, Default, States)]
pub enum MenuState {
    #[default]
    None,
    Connect,
    Menu,


@@ 41,5 41,5 @@ pub enum MenuState {
}

fn menu_setup(mut commands: Commands) {
    commands.insert_resource(NextState(MenuState::Connect))
    commands.insert_resource(NextState(Some(MenuState::Connect)))
}

M client/src/plugins/menu/ui/connect/ui.rs => client/src/plugins/menu/ui/connect/ui.rs +3 -3
@@ 7,7 7,7 @@
 */

use bevy::ecs::system::{Res, ResMut};
use bevy_inspector_egui::bevy_egui::{egui, EguiContext};
use bevy_egui::{egui, EguiContexts};
use laurelin_shared::server::messages::Auth;
use naia_bevy_client::Client;



@@ 19,13 19,13 @@ use crate::{
use super::{ConnectScreenData, ConnectState};

pub fn ui(
    mut egui_context: ResMut<EguiContext>,
    mut egui_contexts: EguiContexts,
    mut data: ResMut<ConnectScreenData>,
    mut client: Client,
    cfg_dev: Res<CfgDev>,
) {
    menuwindow(
        egui_context.ctx_mut(),
        egui_contexts.ctx_mut(),
        "Connect",
        &egui::Vec2::new(400., 600.),
        |ui| match data.state {

M client/src/plugins/menu/ui/menu.rs => client/src/plugins/menu/ui/menu.rs +5 -6
@@ 7,24 7,23 @@
 */

use bevy::prelude::*;
use bevy_inspector_egui::bevy_egui::{egui, EguiContext};
use iyes_loopless::state::NextState;
use bevy_egui::{egui, EguiContexts};

use crate::{plugins::menu::MenuState, util::egui::menuwindow, GracefulExit};

pub fn ui(
    mut commands: Commands,
    mut egui_context: ResMut<EguiContext>,
    mut egui_contexts: EguiContexts,
    mut exit_events: EventWriter<GracefulExit>,
) {
    menuwindow(
        egui_context.ctx_mut(),
        egui_contexts.ctx_mut(),
        "Laurelin",
        &egui::Vec2::new(400., 600.),
        |ui| {
            ui.vertical_centered(|ui| {
                if ui.button("Play").clicked() {
                    commands.insert_resource(NextState(MenuState::Play));
                    commands.insert_resource(NextState(Some(MenuState::Play)));
                }

                if ui.button("Account").clicked() {


@@ 32,7 31,7 @@ pub fn ui(
                }

                if ui.button("Settings").clicked() {
                    commands.insert_resource(NextState(MenuState::Settings));
                    commands.insert_resource(NextState(Some(MenuState::Settings)));
                }

                if ui.button("Quit").clicked() {

M client/src/plugins/menu/ui/play/ui.rs => client/src/plugins/menu/ui/play/ui.rs +4 -5
@@ 7,8 7,7 @@
 */

use bevy::prelude::*;
use bevy_inspector_egui::bevy_egui::{egui, EguiContext};
use iyes_loopless::prelude::*;
use bevy_egui::{egui, EguiContexts};

use crate::{cfg::CfgUser, plugins::menu::MenuState, util::egui::menuwindow};



@@ 16,12 15,12 @@ use super::{PlayScreenBrowseState, PlayScreenData, PlayScreenState};

pub fn ui(
    mut commands: Commands,
    mut egui_context: ResMut<EguiContext>,
    mut egui_contexts: EguiContexts,
    mut data: ResMut<PlayScreenData>,
    cfg_user: Res<CfgUser>,
) {
    menuwindow(
        egui_context.ctx_mut(),
        egui_contexts.ctx_mut(),
        data.state.clone().display(),
        &egui::Vec2::new(800., 600.),
        |ui| match data.state {


@@ 35,7 34,7 @@ pub fn ui(
                            }

                            if ui.button("Back").clicked() {
                                commands.insert_resource(NextState(MenuState::Menu));
                                commands.insert_resource(NextState(Some(MenuState::Menu)));
                            }
                        });
                    });

M client/src/plugins/menu/ui/settings/ui.rs => client/src/plugins/menu/ui/settings/ui.rs +5 -6
@@ 6,20 6,19 @@
 * See LICENSE for licensing information.
 */

use bevy::ecs::system::{Commands, ResMut};
use bevy_inspector_egui::bevy_egui::{egui, EguiContext};
use iyes_loopless::state::NextState;
use bevy::prelude::*;
use bevy_egui::{egui, EguiContexts};

use crate::{plugins::menu::MenuState, util::egui::menuwindow};

pub fn ui(mut commands: Commands, mut egui_context: ResMut<EguiContext>) {
pub fn ui(mut commands: Commands, mut egui_contexts: EguiContexts) {
    menuwindow(
        egui_context.ctx_mut(),
        egui_contexts.ctx_mut(),
        "Settings",
        &egui::Vec2::new(400., 600.),
        |ui| {
            if ui.button("Back").clicked() {
                commands.insert_resource(NextState(MenuState::Menu));
                commands.insert_resource(NextState(Some(MenuState::Menu)));
            }
        },
    );

M client/src/plugins/networking/systems/events.rs => client/src/plugins/networking/systems/events.rs +1 -2
@@ 7,7 7,6 @@
 */

use bevy::prelude::*;
use iyes_loopless::state::NextState;
use laurelin_shared::server::{channels::AfterAuthChannel, messages::AfterAuth};
use naia_bevy_client::{
    events::{ClientTickEvent, ConnectEvent, DisconnectEvent, MessageEvents, RejectEvent},


@@ 67,7 66,7 @@ pub fn message_events(
            data.state = ConnectState::Login;

            // take us to the main menu
            commands.insert_resource(NextState(MenuState::Menu));
            commands.insert_resource(NextState(Some(MenuState::Menu)));
        }
    }
}

M client/src/plugins/phases/loading/mod.rs => client/src/plugins/phases/loading/mod.rs +3 -4
@@ 12,7 12,6 @@ use bevy::{
    prelude::*,
    ui::{JustifyContent, Size, Style, Val},
};
use iyes_loopless::prelude::*;

use crate::{
    constants::TEXT_COLOR,


@@ 28,9 27,9 @@ impl Plugin for LoadingPlugin {
    fn build(&self, app: &mut App) {
        app
            // Load the loading screen when we enter the Loading state
            .add_enter_system(GameState::Loading, loading_setup)
            .add_system(loading_setup.in_schedule(OnEnter(GameState::Loading)))
            // Despawn when we exit the Loading state
            .add_exit_system(GameState::Loading, despawn_screen::<OnLoadingScreen>);
            .add_system(despawn_screen::<OnLoadingScreen>.in_schedule(OnExit(GameState::Loading)));
    }
}



@@ 88,5 87,5 @@ fn loading_setup(
        value: LoadEventValue::Dev,
    });

    commands.insert_resource(NextState(GameState::MainMenu));
    commands.insert_resource(NextState(Some(GameState::MainMenu)));
}

M client/src/plugins/phases/splash/mod.rs => client/src/plugins/phases/splash/mod.rs +9 -11
@@ 10,7 10,6 @@ use bevy::{
    prelude::*,
    ui::{JustifyContent, Size, Style, Val},
};
use iyes_loopless::prelude::*;

use crate::{despawn_screen, GameState};



@@ 21,16 20,11 @@ impl Plugin for SplashPlugin {
    fn build(&self, app: &mut App) {
        app
            // Load the splash when we enter the Splash state
            .add_enter_system(GameState::Splash, splash_setup)
            .add_system(splash_setup.in_schedule(OnEnter(GameState::Splash)))
            // Run a timer for a few seconds
            .add_system_set(
                ConditionSet::new()
                    .run_in_state(GameState::Splash)
                    .with_system(splash_timer)
                    .into(),
            )
            .add_system(splash_timer.run_if(in_state(GameState::Splash)))
            // Despawn when we exit the Splash state
            .add_exit_system(GameState::Splash, despawn_screen::<OnSplashScreen>);
            .add_system(despawn_screen::<OnSplashScreen>.in_schedule(OnExit(GameState::Splash)));
    }
}



@@ 64,7 58,11 @@ fn splash_setup(mut commands: Commands, asset_server: Res<AssetServer>) {
                    size: Size::new(Val::Px(1000.), Val::Auto),
                    ..Default::default()
                },
                image: UiImage(logo),
                image: UiImage {
                    texture: logo,
                    flip_x: false,
                    flip_y: false,
                },
                ..Default::default()
            });
        });


@@ 75,6 73,6 @@ fn splash_setup(mut commands: Commands, asset_server: Res<AssetServer>) {

fn splash_timer(mut commands: Commands, time: Res<Time>, mut timer: ResMut<SplashTimer>) {
    if timer.tick(time.delta()).finished() {
        commands.insert_resource(NextState(GameState::Loading))
        commands.insert_resource(NextState(Some(GameState::Loading)))
    }
}

M client/src/util/egui/menuwindow.rs => client/src/util/egui/menuwindow.rs +1 -1
@@ 6,7 6,7 @@
 * See LICENSE for licensing information.
 */

use bevy_inspector_egui::bevy_egui::egui;
use bevy_egui::egui;

/// wrapper for menu windows
pub fn menuwindow(

M client/src/util/egui/password.rs => client/src/util/egui/password.rs +3 -3
@@ 6,12 6,12 @@
 * See LICENSE for licensing information.
 */

use bevy_inspector_egui::bevy_egui::egui;
use bevy_egui::egui;

fn password_ui(ui: &mut egui::Ui, password: &mut String) -> egui::Response {
    let state_id = ui.id().with("show_plaintext");

    let mut show_plaintext = ui.data().get_temp::<bool>(state_id).unwrap_or(false);
    let mut show_plaintext = ui.data(|d| d.get_temp::<bool>(state_id).unwrap_or(false));

    let result = ui.with_layout(egui::Layout::left_to_right(egui::Align::Center), |ui| {
        // TODO: this was previously add_sized() with a max of ui.available_size()


@@ 27,7 27,7 @@ fn password_ui(ui: &mut egui::Ui, password: &mut String) -> egui::Response {
        }
    });

    ui.data().insert_temp(state_id, show_plaintext);
    ui.data(|d| d.insert_temp(state_id, show_plaintext));

    result.response
}

M client/src/util/sl.rs => client/src/util/sl.rs +9 -33
@@ 9,20 9,13 @@
// TODO: We should encode the configs as base64

use bevy::prelude::*;
use bevy_console::PrintConsoleLine;

pub fn load<T: Default + for<'a> serde::Deserialize<'a>>(
    target_dir: &str,
    file_name: &str,
    console: &mut EventWriter<PrintConsoleLine>,
) -> T {
pub fn load<T: Default + for<'a> serde::Deserialize<'a>>(target_dir: &str, file_name: &str) -> T {
    let file_path: String = format!("{}/{}", target_dir, file_name);

    match std::path::Path::new(&file_path).exists() {
        true => {
            console.send(PrintConsoleLine::new(
                format!("sl::load found '{}'", file_path).into(),
            ));
            info!("sl::load found '{}'", file_path);
            let json: Vec<u8> = std::fs::read(file_path.clone()).unwrap();
            serde_json::from_str(std::str::from_utf8(&json).unwrap()).expect(&format!(
                "sl::load couldn't deserialize the config at '{}'",


@@ 30,20 23,13 @@ pub fn load<T: Default + for<'a> serde::Deserialize<'a>>(
            ))
        }
        false => {
            console.send(PrintConsoleLine::new(
                format!("sl::load couldn't find '{}', using defaults", file_path).into(),
            ));
            warn!("sl::load couldn't find '{}', using defaults", file_path);
            T::default()
        }
    }
}

pub fn save<T>(
    target_dir: &str,
    file_name: &str,
    value: &T,
    console: &mut EventWriter<PrintConsoleLine>,
) -> bool
pub fn save<T>(target_dir: &str, file_name: &str, value: &T) -> bool
where
    T: ?Sized + serde::Serialize,
{


@@ 53,18 39,12 @@ where
    match std::path::Path::new(target_dir).exists() {
        true => {}
        false => {
            console.send(PrintConsoleLine::new(
                format!("sl::save creating target dir '{}'", target_dir).into(),
            ));
            info!("sl::save creating target dir '{}'", target_dir);
            match std::fs::create_dir_all(target_dir) {
                Ok(_) => {}
                Err(_) => {
                    console.send(PrintConsoleLine::new(
                        format!("sl::save couldn't create target dir '{}'", target_dir).into(),
                    ));
                    console.send(PrintConsoleLine::new(
                        format!("sl::save nothing will be saved!").into(),
                    ));
                    warn!("sl::save couldn't create target dir '{}'", target_dir);
                    warn!("sl::save nothing will be saved!");
                    return false;
                }
            }


@@ 73,15 53,11 @@ where

    match std::fs::write(&file_path, json) {
        Ok(_) => {
            console.send(PrintConsoleLine::new(
                format!("sl::save wrote file '{}'", file_path).into(),
            ));
            info!("sl::save wrote file '{}'", file_path);
            true
        }
        Err(_) => {
            console.send(PrintConsoleLine::new(
                format!("sl::save couldn't write file '{}'", file_path).into(),
            ));
            info!("sl::save couldn't write file '{}'", file_path);
            false
        }
    }

M server/Cargo.toml => server/Cargo.toml +5 -5
@@ 12,9 12,9 @@ publish = false
[dependencies]
laurelin_shared = { package = "shared", path = "../shared" }

naia-bevy-server = "0.18.0"
naia-bevy-server = "0.19.0"

bevy_app = { version = "0.9.1", default-features=false }
bevy_core = { version = "0.9.1", default-features=false }
bevy_ecs = { version = "0.9.1", default-features=false }
bevy_log = { version = "0.9.1", default-features=false }
bevy_app = { version = "0.10.0", default-features=false }
bevy_core = { version = "0.10.0", default-features=false }
bevy_ecs = { version = "0.10.0", default-features=false }
bevy_log = { version = "0.10.0", default-features=false }

M server/src/main.rs => server/src/main.rs +20 -11
@@ 6,14 6,14 @@
 * See LICENSE for licensing information.
 */

use std::collections::HashMap;
use std::{collections::HashMap, time::Duration};

use bevy_app::{App, ScheduleRunnerPlugin};
use bevy_core::CorePlugin;
use bevy_ecs::system::Resource;
use bevy_app::{App, ScheduleRunnerPlugin, ScheduleRunnerSettings};
use bevy_core::{FrameCountPlugin, TaskPoolPlugin, TypeRegistrationPlugin};
use bevy_ecs::{schedule::IntoSystemConfigs, system::Resource};
use bevy_log::{info, LogPlugin};

use naia_bevy_server::{Plugin as ServerPlugin, ServerConfig, UserKey};
use naia_bevy_server::{Plugin as ServerPlugin, ReceiveEvents, ServerConfig, UserKey};

use laurelin_shared::server::protocol::protocol;



@@ 40,7 40,10 @@ fn main() {

    server
        // plugins
        .add_plugin(CorePlugin::default())
        .add_plugin(TaskPoolPlugin::default())
        .add_plugin(TypeRegistrationPlugin::default())
        .add_plugin(FrameCountPlugin::default())
        .insert_resource(ScheduleRunnerSettings::run_loop(Duration::from_millis(3)))
        .add_plugin(ScheduleRunnerPlugin::default())
        .add_plugin(LogPlugin {
            // NOTE: overridden by RUST_LOG environment variable


@@ 57,11 60,17 @@ fn main() {
        // init system
        .add_startup_system(systems::init::init)
        // events
        .add_system(systems::event::auth_events)
        .add_system(systems::event::connect_events)
        .add_system(systems::event::disconnect_events)
        .add_system(systems::event::error_events)
        .add_system(systems::event::tick_events);
        .add_systems(
            (
                systems::event::auth_events,
                systems::event::connect_events,
                systems::event::disconnect_events,
                systems::event::error_events,
                systems::event::tick_events,
            )
                .chain()
                .in_set(ReceiveEvents),
        );

    info!("Laurelin server starting");
    server.run();

M server/src/systems/event/mod.rs => server/src/systems/event/mod.rs +3 -5
@@ 8,7 8,7 @@

use bevy_ecs::{
    event::EventReader,
    system::{Res, ResMut},
    system::{Commands, Res, ResMut},
};
use bevy_log::info;
use laurelin_shared::{


@@ 20,7 20,7 @@ use laurelin_shared::{
};
use naia_bevy_server::{
    events::{AuthEvents, ConnectEvent, DisconnectEvent, ErrorEvent, TickEvent},
    Server,
    CommandsExt, Random, Server,
};

use crate::{Config, RuntimeTemp};


@@ 105,7 105,7 @@ pub(crate) fn tick_events(mut ev: EventReader<TickEvent>, mut server: Server) {
        has_ticked = true;

        // Handle messages coming from clients
        let _messages = server.receive_tick_buffer_messages(server_tick);
        let mut _messages = server.receive_tick_buffer_messages(server_tick);
    }

    if has_ticked {


@@ 115,7 115,5 @@ pub(crate) fn tick_events(mut ev: EventReader<TickEvent>, mut server: Server) {
        //for (_, user_key, entity) in server.scope_checks() {
        // ...
        //}

        server.send_all_updates();
    }
}

M server/src/systems/init.rs => server/src/systems/init.rs +1 -3
@@ 6,12 6,10 @@
 * See LICENSE for licensing information.
 */

use bevy_ecs::system::Commands;
use bevy_log::info;

use naia_bevy_server::{Server, ServerAddrs};

pub(crate) fn init(mut commands: Commands, mut server: Server) {
pub(crate) fn init(mut server: Server) {
    info!("Laurelin server listening");

    let server_addrs = ServerAddrs::new(

M shared/Cargo.toml => shared/Cargo.toml +1 -1
@@ 10,7 10,7 @@ license = "GPL-3.0-only"
publish = false

[dependencies]
naia-bevy-shared = "0.18.0"
naia-bevy-shared = "0.19.0"

thiserror = "1.0.38"


M shared/src/server/protocol.rs => shared/src/server/protocol.rs +1 -1
@@ 16,7 16,7 @@ pub fn protocol() -> Protocol {
    Protocol::builder()
        // configuration
        .tick_interval(Duration::from_millis(16))
        .link_condition(LinkConditionerConfig::good_condition())
        .link_condition(LinkConditionerConfig::new(100, 0, 0.))
        // channels
        .add_plugin(ChannelsPlugin)
        // messages