From 0a9659f3641ee4a36a800e1cee228d6b5f3edaad Mon Sep 17 00:00:00 2001 From: Joe Ardent Date: Sun, 7 Nov 2021 23:58:43 -0800 Subject: [PATCH] switch to bevy 0.5 for egui-inspector compat; get spinny lights --- .rustfmt.toml | 4 + Cargo.lock | 1200 ++++++++++++++++++++++++++++++------------------- Cargo.toml | 3 +- src/flycam.rs | 26 +- src/main.rs | 106 ++++- 5 files changed, 861 insertions(+), 478 deletions(-) create mode 100644 .rustfmt.toml diff --git a/.rustfmt.toml b/.rustfmt.toml new file mode 100644 index 0000000..4c8d0e1 --- /dev/null +++ b/.rustfmt.toml @@ -0,0 +1,4 @@ +imports_granularity = "Crate" +group_imports = "StdExternalCrate" +wrap_comments = true +edition = "2021" diff --git a/Cargo.lock b/Cargo.lock index e4e2e17..4654790 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -108,7 +108,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -128,17 +128,17 @@ dependencies = [ [[package]] name = "arrayvec" -version = "0.7.2" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "ash" -version = "0.33.3+1.2.191" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc4f1d82f164f838ae413296d1131aa6fa79b917d25bebaa7033d25620c09219" +checksum = "c69a8137596e84c22d57f3da1b5de1d4230b1742a710091c85f4d7ce50f00f38" dependencies = [ - "libloading", + "libloading 0.6.7", ] [[package]] @@ -172,6 +172,12 @@ version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" +[[package]] +name = "atomic_refcell" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73b5e5f48b927f04e952dedc932f31995a65a0bf65ec971c74436e51bf6e970d" + [[package]] name = "autocfg" version = "1.0.1" @@ -193,8 +199,11 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "bevy" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6b14f8ba7c373fdf7bd27547bb95f2849b2569bf02bbf3d19ca54e9d692de4f" dependencies = [ "bevy_internal", + "syn", ] [[package]] @@ -203,21 +212,52 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d5f2f58f0aec3c50a20799792c3705e80dd7df327e79791cacec197e84e5e61" +[[package]] +name = "bevy-inspector-egui" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6abaea0fd1c88e0f6f90b1748f0475b0c3e330496875d3a3cfc6867003214533" +dependencies = [ + "bevy", + "bevy-inspector-egui-derive", + "bevy_egui", + "emath", + "image", + "pretty-type-name", + "rand", +] + +[[package]] +name = "bevy-inspector-egui-derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597c9d3f603a1fa88cfec941661e73ea18fc0010962777f3dbc5866ea3376919" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "bevy_app" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "845be45f00d9c031071f8c68f7681bf791796634efa5f58937275337154cb019" dependencies = [ "bevy_derive", "bevy_ecs", "bevy_reflect", "bevy_utils", + "serde", "wasm-bindgen", "web-sys", ] [[package]] name = "bevy_asset" -version = "0.5.0" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd798cfbed1fcd406c9b3c978a8cb0a278aa03c4c8abd6edf460ee7cad0987e0" dependencies = [ "anyhow", "bevy_app", @@ -234,6 +274,7 @@ dependencies = [ "notify", "parking_lot", "rand", + "ron", "serde", "thiserror", "wasm-bindgen", @@ -244,6 +285,8 @@ dependencies = [ [[package]] name = "bevy_audio" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ca3cf9ce76696665e37a68b27ad6f6b0e2d0d85ccad36d8f018d3006812dbde" dependencies = [ "anyhow", "bevy_app", @@ -258,6 +301,8 @@ dependencies = [ [[package]] name = "bevy_core" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa5b6d7f68752cfb5b498fc5ea9ad5cfb5de871cdd4d894f2e046fef2e2898ea" dependencies = [ "bevy_app", "bevy_derive", @@ -266,26 +311,17 @@ dependencies = [ "bevy_reflect", "bevy_tasks", "bevy_utils", - "bytemuck", -] - -[[package]] -name = "bevy_core_pipeline" -version = "0.5.0" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_core", - "bevy_ecs", - "bevy_render2", ] [[package]] name = "bevy_derive" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd6fd06d325cfb4998b26fc84476380611ce6a2d0a8a99b501328c79d7bda104" dependencies = [ "Inflector", - "bevy_macro_utils", + "find-crate", + "proc-macro2", "quote", "syn", ] @@ -293,34 +329,43 @@ dependencies = [ [[package]] name = "bevy_diagnostic" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2933425d2febac4a8aadc8aed05ddac2d5891c91ae60dd191b24a6e093dcbeba" dependencies = [ "bevy_app", "bevy_core", "bevy_ecs", "bevy_log", "bevy_utils", + "parking_lot", ] [[package]] name = "bevy_dynamic_plugin" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3219befe938ee89dd8b2b78a02cfd835ef93fa930113a91631b093381005ed" dependencies = [ "bevy_app", - "libloading", + "libloading 0.7.1", ] [[package]] name = "bevy_ecs" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf4745460111bd4285ed6c3e6caa4d882db95471edb02b88c6ad4eac89b923c" dependencies = [ "async-channel", "bevy_ecs_macros", "bevy_reflect", "bevy_tasks", "bevy_utils", + "bitflags", "downcast-rs", - "fixedbitset", + "fixedbitset 0.4.0", "fxhash", + "parking_lot", "rand", "serde", "thiserror", @@ -329,16 +374,34 @@ dependencies = [ [[package]] name = "bevy_ecs_macros" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65323f6896068407b768c16ec1aa5c8891d49a28b725d0cbabc663d7f47baaec" dependencies = [ - "bevy_macro_utils", + "find-crate", "proc-macro2", "quote", "syn", ] +[[package]] +name = "bevy_egui" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb6d7ab5bd9077a6d2608e5fbc23f60688ba1e026c3cfe81656381863b29e7a7" +dependencies = [ + "bevy", + "clipboard", + "egui", + "thread_local", + "webbrowser", + "winit", +] + [[package]] name = "bevy_gilrs" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b28a12e991a63fe044605aacf806b8dcdc5aa3af2d4482ba6cb9a1b74fc9392" dependencies = [ "bevy_app", "bevy_ecs", @@ -348,8 +411,10 @@ dependencies = [ ] [[package]] -name = "bevy_gltf2" +name = "bevy_gltf" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9233bfb7e2cf053b51f01d2e57ea5a549438c0e5f08735d595b6a6504d00639e" dependencies = [ "anyhow", "base64", @@ -357,22 +422,21 @@ dependencies = [ "bevy_asset", "bevy_core", "bevy_ecs", - "bevy_log", "bevy_math", - "bevy_pbr2", + "bevy_pbr", "bevy_reflect", - "bevy_render2", + "bevy_render", "bevy_scene", "bevy_transform", "gltf", - "percent-encoding", "thiserror", - "wgpu", ] [[package]] name = "bevy_input" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91a3a768c59a5965f491cda74fd75a72b4cd7c51c85b5a731dd4d8688582dc5" dependencies = [ "bevy_app", "bevy_ecs", @@ -383,29 +447,27 @@ dependencies = [ [[package]] name = "bevy_internal" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53c568981b2911567cba7f6dae7190bac295ffd411bca777edb1b5152b1ccd62" dependencies = [ "bevy_app", "bevy_asset", "bevy_audio", "bevy_core", - "bevy_core_pipeline", "bevy_derive", "bevy_diagnostic", "bevy_dynamic_plugin", "bevy_ecs", "bevy_gilrs", - "bevy_gltf2", + "bevy_gltf", "bevy_input", "bevy_log", "bevy_math", "bevy_pbr", - "bevy_pbr2", "bevy_reflect", "bevy_render", - "bevy_render2", "bevy_scene", "bevy_sprite", - "bevy_sprite2", "bevy_tasks", "bevy_text", "bevy_transform", @@ -420,77 +482,56 @@ dependencies = [ [[package]] name = "bevy_log" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae100fe4e6fc8f7bbf28c121cda0ced7ab79088374beb7ab8be39120603beb18" dependencies = [ "android_log-sys 0.2.0", "bevy_app", "bevy_utils", "console_error_panic_hook", - "tracing-log", - "tracing-subscriber", + "tracing-subscriber 0.2.25", "tracing-wasm", ] -[[package]] -name = "bevy_macro_utils" -version = "0.5.0" -dependencies = [ - "cargo-manifest", - "quote", - "syn", -] - [[package]] name = "bevy_math" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb36a879cdc96f554b62dd7c7c02392a9a10e94082e4bc686a8242e1d674e7cc" dependencies = [ "bevy_reflect", - "glam 0.15.2", + "glam 0.13.1", ] [[package]] name = "bevy_pbr" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71f267c27b70d298de91ceac644908fa876cb04857ccb80615dadb1ae969425f" dependencies = [ "bevy_app", "bevy_asset", "bevy_core", + "bevy_derive", "bevy_ecs", "bevy_math", "bevy_reflect", "bevy_render", "bevy_transform", - "bytemuck", -] - -[[package]] -name = "bevy_pbr2" -version = "0.5.0" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_core", - "bevy_core_pipeline", - "bevy_ecs", - "bevy_math", - "bevy_reflect", - "bevy_render2", - "bevy_transform", - "bevy_utils", - "bitflags", - "bytemuck", - "crevice", - "wgpu", + "bevy_window", ] [[package]] name = "bevy_reflect" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d7f57646077e9b016f079e0f39fe2826dce407bb0dccc29b481a33ef7552847" dependencies = [ "bevy_reflect_derive", "bevy_utils", "downcast-rs", "erased-serde", - "glam 0.15.2", + "glam 0.13.1", "parking_lot", "serde", "smallvec", @@ -500,8 +541,10 @@ dependencies = [ [[package]] name = "bevy_reflect_derive" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbc3f45d1d49c6e984b492ee13564677d1392828cac50c030e025f74f69386e1" dependencies = [ - "bevy_macro_utils", + "find-crate", "proc-macro2", "quote", "syn", @@ -511,6 +554,8 @@ dependencies = [ [[package]] name = "bevy_render" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "765f2b966619d16bdb89132848461d9580a622acb5b2bba73cb252e43c9c8830" dependencies = [ "anyhow", "bevy-glsl-to-spirv", @@ -533,45 +578,16 @@ dependencies = [ "parking_lot", "serde", "shaderc", + "smallvec", "spirv-reflect", "thiserror", ] -[[package]] -name = "bevy_render2" -version = "0.5.0" -dependencies = [ - "anyhow", - "bevy_app", - "bevy_asset", - "bevy_core", - "bevy_derive", - "bevy_ecs", - "bevy_math", - "bevy_reflect", - "bevy_transform", - "bevy_utils", - "bevy_window", - "bitflags", - "crevice", - "downcast-rs", - "futures-lite", - "hex", - "hexasphere", - "image", - "naga", - "once_cell", - "parking_lot", - "regex", - "serde", - "smallvec", - "thiserror", - "wgpu", -] - [[package]] name = "bevy_scene" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf1eaa680e61749cc226bcdcd0d968c396fe52c2a4e9e1718422888953ba6c3b" dependencies = [ "anyhow", "bevy_app", @@ -580,6 +596,7 @@ dependencies = [ "bevy_reflect", "bevy_transform", "bevy_utils", + "parking_lot", "ron", "serde", "thiserror", @@ -589,6 +606,8 @@ dependencies = [ [[package]] name = "bevy_sprite" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b9ddb7699b4597794071ebb93b5a0c414407ab8956dc4dc86e59dde721a663d" dependencies = [ "bevy_app", "bevy_asset", @@ -601,29 +620,6 @@ dependencies = [ "bevy_transform", "bevy_utils", "bevy_window", - "bytemuck", - "guillotiere", - "rectangle-pack", - "serde", - "thiserror", -] - -[[package]] -name = "bevy_sprite2" -version = "0.5.0" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_core", - "bevy_core_pipeline", - "bevy_ecs", - "bevy_log", - "bevy_math", - "bevy_reflect", - "bevy_render2", - "bevy_transform", - "bevy_utils", - "bytemuck", "guillotiere", "rectangle-pack", "serde", @@ -633,11 +629,14 @@ dependencies = [ [[package]] name = "bevy_tasks" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77243565dde30ce01e538c615db54bc939a36e4c468b271e86a980004bac7bc9" dependencies = [ "async-channel", "async-executor", "event-listener", "futures-lite", + "instant", "num_cpus", "wasm-bindgen-futures", ] @@ -645,6 +644,8 @@ dependencies = [ [[package]] name = "bevy_text" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21dfc4f2108582afd5a8995904ea55cd594787f210dac5d1df453cbe92eaab26" dependencies = [ "ab_glyph", "anyhow", @@ -666,6 +667,8 @@ dependencies = [ [[package]] name = "bevy_transform" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d166fe11f67dc195b42207e7b096f36680f611afc8f4105b3d81865b66ecf91" dependencies = [ "bevy_app", "bevy_ecs", @@ -678,6 +681,8 @@ dependencies = [ [[package]] name = "bevy_ui" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef67dfa943511b8bbca6bf730f183ac5c602a35a7659e58bdf7471154018889d" dependencies = [ "bevy_app", "bevy_asset", @@ -702,9 +707,10 @@ dependencies = [ [[package]] name = "bevy_utils" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c384a69b670329f968f59abdcf6506f183cf18b8619d6ec1cbfe33e268e5da20" dependencies = [ "ahash 0.7.6", - "bevy_derive", "getrandom", "instant", "tracing", @@ -714,6 +720,8 @@ dependencies = [ [[package]] name = "bevy_wgpu" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e16919cc645aa9a7e988c8644836d0f91c5f1bd23e17bdd9b461a32bf7667b" dependencies = [ "bevy_app", "bevy_asset", @@ -734,26 +742,29 @@ dependencies = [ [[package]] name = "bevy_window" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b96496cb0a9c79ca6744a25e69edff4ba363c14b6070897a66a597db208405f0" dependencies = [ "bevy_app", "bevy_ecs", "bevy_math", "bevy_utils", - "raw-window-handle", "web-sys", ] [[package]] name = "bevy_winit" version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "522dcea62526be0aa5ee35781e98a9f309047050cf684758bc0cd498820111f6" dependencies = [ "bevy_app", "bevy_ecs", "bevy_input", + "bevy_log", "bevy_math", "bevy_utils", "bevy_window", - "raw-window-handle", "wasm-bindgen", "web-sys", "winit", @@ -816,20 +827,6 @@ name = "bytemuck" version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72957246c41db82b8ef88a5486143830adeb8227ef9837740bdec67724cf2c5b" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e215f8c2f9f79cb53c8335e687ffd07d5bfcb6fe5fc80723762d0be46e7cc54" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] [[package]] name = "byteorder" @@ -849,17 +846,6 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" -[[package]] -name = "cargo-manifest" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af6d65c7592744998c67947ec771c62687c76f00179a83ffd563c0482046bb98" -dependencies = [ - "serde", - "serde_derive", - "toml", -] - [[package]] name = "cc" version = "1.0.71" @@ -911,7 +897,7 @@ dependencies = [ "libc", "num-integer", "num-traits", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -922,7 +908,29 @@ checksum = "fa66045b9cb23c2e9c1520732030608b02ee07e5cfaa5a521ec15ded7fa24c90" dependencies = [ "glob", "libc", - "libloading", + "libloading 0.7.1", +] + +[[package]] +name = "clipboard" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a904646c0340239dcf7c51677b33928bf24fdf424b79a57909c0109075b2e7" +dependencies = [ + "clipboard-win", + "objc", + "objc-foundation", + "objc_id", + "x11-clipboard", +] + +[[package]] +name = "clipboard-win" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a093d6fed558e5fe24c3dfc85a68bb68f1c824f440d3ba5aca189e2998786b" +dependencies = [ + "winapi 0.3.9", ] [[package]] @@ -965,16 +973,6 @@ dependencies = [ "objc", ] -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] - [[package]] name = "color_quant" version = "1.1.0" @@ -1155,7 +1153,7 @@ dependencies = [ "stdweb 0.1.3", "thiserror", "web-sys", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -1167,39 +1165,6 @@ dependencies = [ "cfg-if 1.0.0", ] -[[package]] -name = "crevice" -version = "0.6.0" -dependencies = [ - "bytemuck", - "crevice-derive", - "glam 0.15.2", - "mint", -] - -[[package]] -name = "crevice-derive" -version = "0.6.0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "crossbeam" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae5588f6b3c3cb05239e90bd110f257254aecd01e4635400391aeae07497845" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - [[package]] name = "crossbeam-channel" version = "0.5.1" @@ -1210,40 +1175,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "crossbeam-deque" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils", - "lazy_static", - "memoffset", - "scopeguard", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b10ddc024425c88c2ad148c1b0fd53f4c6d38db9697c9f1588381212fa657c9" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils", -] - [[package]] name = "crossbeam-utils" version = "0.8.5" @@ -1259,17 +1190,18 @@ name = "cyber_rider" version = "0.1.0" dependencies = [ "bevy", + "bevy-inspector-egui", ] [[package]] name = "d3d12" -version = "0.4.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2daefd788d1e96e0a9d66dee4b828b883509bc3ea9ce30665f04c3246372690c" +checksum = "d0a60cceb22c7c53035f8980524fdc7f17cf49681a3c154e6757d30afbec6ec4" dependencies = [ "bitflags", - "libloading", - "winapi", + "libloading 0.6.7", + "winapi 0.3.9", ] [[package]] @@ -1346,6 +1278,21 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +[[package]] +name = "egui" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f9b394ccacc0cccb30f6de7371038a116931aa3186acd908b9ec61f405f15c" +dependencies = [ + "epaint", +] + +[[package]] +name = "emath" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80eea7508c08a7b4e2a041adcdca6f400d8606622c6bb980ecbbdc5f1aff9a4c" + [[package]] name = "env_logger" version = "0.7.1" @@ -1356,6 +1303,19 @@ dependencies = [ "regex", ] +[[package]] +name = "epaint" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "132e30d483d9fa252fe06aa112de777d068503c379fa51bc5834204ee3258fce" +dependencies = [ + "ab_glyph", + "ahash 0.7.6", + "atomic_refcell", + "emath", + "ordered-float", +] + [[package]] name = "erased-serde" version = "0.3.16" @@ -1398,9 +1358,24 @@ dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", - "winapi", + "winapi 0.3.9", ] +[[package]] +name = "find-crate" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59a98bbaacea1c0eb6a0876280051b892eb73594fd90cf3b20e9c817029c57d2" +dependencies = [ + "toml", +] + +[[package]] +name = "fixedbitset" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" + [[package]] name = "fixedbitset" version = "0.4.0" @@ -1437,6 +1412,22 @@ dependencies = [ "libc", ] +[[package]] +name = "fuchsia-zircon" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +dependencies = [ + "bitflags", + "fuchsia-zircon-sys", +] + +[[package]] +name = "fuchsia-zircon-sys" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" + [[package]] name = "futures-core" version = "0.3.17" @@ -1486,6 +1477,153 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "gfx-auxil" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7b33ecf067f2117668d91c9b0f2e5f223ebd1ffec314caa2f3de27bb580186d" +dependencies = [ + "fxhash", + "gfx-hal", + "spirv_cross", +] + +[[package]] +name = "gfx-backend-dx11" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f851d03c2e8f117e3702bf41201a4fafa447d5cb1276d5375870ae7573d069dd" +dependencies = [ + "arrayvec", + "bitflags", + "gfx-auxil", + "gfx-hal", + "libloading 0.6.7", + "log", + "parking_lot", + "range-alloc", + "raw-window-handle", + "smallvec", + "spirv_cross", + "thunderdome", + "winapi 0.3.9", + "wio", +] + +[[package]] +name = "gfx-backend-dx12" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5032d716a2a5f4dafb4675a794c5dc32081af8fbc7303c93ad93ff5413c6559f" +dependencies = [ + "arrayvec", + "bit-set", + "bitflags", + "d3d12", + "gfx-auxil", + "gfx-hal", + "log", + "parking_lot", + "range-alloc", + "raw-window-handle", + "smallvec", + "spirv_cross", + "thunderdome", + "winapi 0.3.9", +] + +[[package]] +name = "gfx-backend-empty" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f07ef26a65954cfdd7b4c587f485100d1bb3b0bd6a51b02d817d6c87cca7a91" +dependencies = [ + "gfx-hal", + "log", + "raw-window-handle", +] + +[[package]] +name = "gfx-backend-gl" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6717c50ab601efe4a669bfb44db615e3888695ac8263222aeaa702642b9fbc2" +dependencies = [ + "arrayvec", + "bitflags", + "gfx-auxil", + "gfx-hal", + "glow", + "js-sys", + "khronos-egl", + "libloading 0.6.7", + "log", + "naga", + "parking_lot", + "raw-window-handle", + "spirv_cross", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gfx-backend-metal" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc54b456ece69ef49f8893269ebf24ac70969ed34ba2719c3f3abcc8fbff14e" +dependencies = [ + "arrayvec", + "bitflags", + "block", + "cocoa-foundation", + "copyless", + "foreign-types", + "gfx-auxil", + "gfx-hal", + "log", + "metal", + "naga", + "objc", + "parking_lot", + "range-alloc", + "raw-window-handle", + "spirv_cross", + "storage-map", +] + +[[package]] +name = "gfx-backend-vulkan" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dabe88b1a5c91e0f969b441cc57e70364858066e4ba937deeb62065654ef9bd9" +dependencies = [ + "arrayvec", + "ash", + "byteorder", + "core-graphics-types", + "gfx-hal", + "inplace_it", + "log", + "naga", + "objc", + "parking_lot", + "raw-window-handle", + "smallvec", + "winapi 0.3.9", +] + +[[package]] +name = "gfx-hal" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1d9cc8d3b573dda62d0baca4f02e0209786e22c562caff001d77c389008781d" +dependencies = [ + "bitflags", + "naga", + "raw-window-handle", + "thiserror", +] + [[package]] name = "gilrs" version = "0.8.1" @@ -1515,7 +1653,17 @@ dependencies = [ "stdweb 0.4.20", "uuid", "vec_map", - "winapi", + "winapi 0.3.9", +] + +[[package]] +name = "glam" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70155b56080764b8b758e91e4c63d06da0262c0c939f2cd991cd1382087147df" +dependencies = [ + "serde", + "spirv-std", ] [[package]] @@ -1523,16 +1671,6 @@ name = "glam" version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3abb554f8ee44336b72d522e0a7fe86a29e09f839a36022fa869a7dfe941a54b" -dependencies = [ - "bytemuck", - "serde", -] - -[[package]] -name = "glam" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525a3e490ba77b8e326fb67d4b44b4bd2f920f44d4cc73ccec50adc68e3bee34" [[package]] name = "glob" @@ -1542,9 +1680,9 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" [[package]] name = "glow" -version = "0.11.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f04649123493bc2483cbef4daddb45d40bbdae5adb221a63a23efdb0cc99520" +checksum = "072136d2c3783f3a92f131acb227bc806d3886278e2a4dc1e9990ec89ef9e70b" dependencies = [ "js-sys", "slotmap", @@ -1554,9 +1692,9 @@ dependencies = [ [[package]] name = "gltf" -version = "0.16.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ff38b75359a0096dd0a8599b6e4f37a6ee41d5df300cc7669e62aafa697f7a2" +checksum = "d6fb0d1d772daf10ea74528c3aeb12215f6d5b820adf2ecfc93a6578d6779c3c" dependencies = [ "byteorder", "gltf-json", @@ -1565,9 +1703,9 @@ dependencies = [ [[package]] name = "gltf-derive" -version = "0.16.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f2a9333e0f9c7bca94dfc20bcf44fa12a61eeec662d6e007563ff748aa59c70" +checksum = "f6636de7bf52227363554f1ca2d9cd180fc666129ddd0933097e1f227dfa7293" dependencies = [ "inflections", "proc-macro2", @@ -1577,9 +1715,9 @@ dependencies = [ [[package]] name = "gltf-json" -version = "0.16.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1414d3a98cbaabdb2f134328b1f6036d14b282febc1df51952a435d2ca17fb6" +checksum = "e3fc3deb81e6fa04bf808f6be7c3983229552a95b77f687ad96af00f6d3e7d6c" dependencies = [ "gltf-derive", "serde", @@ -1600,12 +1738,13 @@ dependencies = [ [[package]] name = "gpu-alloc" -version = "0.5.2" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e64cbb8d36508d3e19da95e56e196a84f674fc190881f2cc010000798838aa6" +checksum = "739e1e53f1e4b5093342e753bcb868e53d28e0c69da9c9ce9632455bfa37ba30" dependencies = [ "bitflags", "gpu-alloc-types", + "tracing", ] [[package]] @@ -1619,13 +1758,14 @@ dependencies = [ [[package]] name = "gpu-descriptor" -version = "0.2.1" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a237f0419ab10d17006d55c62ac4f689a6bf52c75d3f38b8361d249e8d4b0b" +checksum = "e8a70f1e87a3840ed6a3e99e02c2b861e4dbdf26f0d07e38f42ea5aff46cfce2" dependencies = [ "bitflags", "gpu-descriptor-types", "hashbrown 0.9.1", + "tracing", ] [[package]] @@ -1662,6 +1802,15 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "hermit-abi" version = "0.1.19" @@ -1679,20 +1828,14 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hexasphere" -version = "4.1.1" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b69824ef63443efe6187c621d24ef1a3c6a0381881cc024ff47be38a8bfc1127" +checksum = "497fa99092cc737fe649ae39194b515fbc15ae27ebd437c9e3d9c8210341e0fc" dependencies = [ - "glam 0.18.0", + "glam 0.15.2", "lazy_static", ] -[[package]] -name = "hexf-parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" - [[package]] name = "ident_case" version = "1.0.1" @@ -1779,6 +1922,15 @@ dependencies = [ "mach 0.2.3", ] +[[package]] +name = "iovec" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +dependencies = [ + "libc", +] + [[package]] name = "itoa" version = "0.4.8" @@ -1816,21 +1968,31 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.55" +version = "0.3.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" +checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175" dependencies = [ "wasm-bindgen", ] [[package]] -name = "khronos-egl" -version = "4.1.0" +name = "kernel32-sys" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "khronos-egl" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b19cc4a81304db2a0ad69740e83cdc3a9364e3f9bd6d88a87288a4c2deec927b" dependencies = [ "libc", - "libloading", + "libloading 0.6.7", ] [[package]] @@ -1847,9 +2009,19 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.106" +version = "0.2.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a60553f9a9e039a333b4e9b20573b9e9b9c0bb3a11e201ccc48ef4283456d673" +checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219" + +[[package]] +name = "libloading" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "351a32417a12d5f7e82c368a66781e307834dae04c6ce0cd4456d52989229883" +dependencies = [ + "cfg-if 1.0.0", + "winapi 0.3.9", +] [[package]] name = "libloading" @@ -1858,7 +2030,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0cf036d15402bea3c5d4de17b3fce76b3e4a56ebc1f577be0e7a72f7c607cf0" dependencies = [ "cfg-if 1.0.0", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -1867,6 +2039,12 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" +[[package]] +name = "libm" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" + [[package]] name = "libudev-sys" version = "0.1.4" @@ -1937,24 +2115,15 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" -[[package]] -name = "memoffset" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9" -dependencies = [ - "autocfg", -] - [[package]] name = "metal" -version = "0.23.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0514f491f4cc03632ab399ee01e2c1c1b12d3e1cf2d667c1ff5f87d6dcd2084" +checksum = "4598d719460ade24c7d91f335daf055bf2a7eec030728ce751814c50cdd6a26c" dependencies = [ "bitflags", "block", - "core-graphics-types", + "cocoa-foundation", "foreign-types", "log", "objc", @@ -1990,10 +2159,23 @@ dependencies = [ ] [[package]] -name = "mint" -version = "0.5.8" +name = "mio" +version = "0.6.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162e591484b4b8fe9e1ca16ebf07ab584fdc3334508d76a788cd54d89cfc20dc" +checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" +dependencies = [ + "cfg-if 0.1.10", + "fuchsia-zircon", + "fuchsia-zircon-sys", + "iovec", + "kernel32-sys", + "libc", + "log", + "miow 0.2.2", + "net2", + "slab", + "winapi 0.2.8", +] [[package]] name = "mio" @@ -2003,21 +2185,33 @@ checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" dependencies = [ "libc", "log", - "miow", + "miow 0.3.7", "ntapi", - "winapi", + "winapi 0.3.9", ] [[package]] -name = "mio-misc" -version = "1.2.1" +name = "mio-extras" +version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ddf05411bb159cdb5801bb10002afb66cb4572be656044315e363460ce69dc2" +checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" dependencies = [ - "crossbeam", - "crossbeam-queue", + "lazycell", "log", - "mio", + "mio 0.6.23", + "slab", +] + +[[package]] +name = "miow" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" +dependencies = [ + "kernel32-sys", + "net2", + "winapi 0.2.8", + "ws2_32-sys", ] [[package]] @@ -2026,26 +2220,22 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] name = "naga" -version = "0.7.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda66d09f712e1f0a6ab436137da4fac312f78301f6d4ac7cb8bfe96e988734f" +checksum = "05089b2acdf0e6a962cdbf5e328402345a27f59fcde1a59fe97a73e8149d416f" dependencies = [ "bit-set", "bitflags", - "codespan-reporting", "fxhash", - "hexf-parse", - "indexmap", "log", "num-traits", "petgraph", - "pp-rs", - "spirv", + "spirv_headers", "thiserror", ] @@ -2148,6 +2338,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c44922cb3dbb1c70b5e5f443d63b64363a898564d739ba5198e3a9138442868d" +[[package]] +name = "net2" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "winapi 0.3.9", +] + [[package]] name = "nix" version = "0.20.0" @@ -2182,9 +2383,9 @@ dependencies = [ "fsevent-sys", "inotify", "libc", - "mio", + "mio 0.7.14", "walkdir", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -2193,7 +2394,7 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -2246,6 +2447,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" dependencies = [ "autocfg", + "libm 0.2.1", ] [[package]] @@ -2312,6 +2514,17 @@ dependencies = [ "objc_exception", ] +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + [[package]] name = "objc_exception" version = "0.1.2" @@ -2321,6 +2534,15 @@ dependencies = [ "cc", ] +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + [[package]] name = "oboe" version = "0.4.4" @@ -2350,6 +2572,15 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" +[[package]] +name = "ordered-float" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97c9d06878b3a851e8026ef94bf7fef9ba93062cd412601da4d9cf369b1cc62d" +dependencies = [ + "num-traits", +] + [[package]] name = "owned_ttf_parser" version = "0.12.1" @@ -2387,7 +2618,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -2404,11 +2635,11 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" [[package]] name = "petgraph" -version = "0.6.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a13a2fa9d0b63e5f22328828741e523766fff0ee9e779316902290dff3f824f" +checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" dependencies = [ - "fixedbitset", + "fixedbitset 0.2.0", "indexmap", ] @@ -2436,21 +2667,18 @@ dependencies = [ "miniz_oxide", ] -[[package]] -name = "pp-rs" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb458bb7f6e250e6eb79d5026badc10a3ebb8f9a15d1fff0f13d17c71f4d6dee" -dependencies = [ - "unicode-xid", -] - [[package]] name = "ppv-lite86" version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba" +[[package]] +name = "pretty-type-name" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8815d101cfb4cb491154896bdab292a395a7ac9ab185a9941a2f5be0135900d" + [[package]] name = "proc-macro-crate" version = "0.1.5" @@ -2479,12 +2707,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "profiling" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9926767b8b8244d7b6b64546585121d193c3d0b4856ccd656b7bfa9deb91ab6a" - [[package]] name = "quote" version = "1.0.10" @@ -2551,9 +2773,9 @@ dependencies = [ [[package]] name = "rectangle-pack" -version = "0.4.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb" +checksum = "831eb2fcb5b72b09c72a3f2d24c09a28d79886512827cd4674d9bac10557f16a" [[package]] name = "redox_syscall" @@ -2590,17 +2812,11 @@ version = "0.6.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" -[[package]] -name = "renderdoc-sys" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1382d1f0a252c4bf97dc20d979a2fdd05b024acd7c2ed0f7595d7817666a157" - [[package]] name = "rodio" -version = "0.14.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d98f5e557b61525057e2bc142c8cd7f0e70d75dc32852309bec440e6e046bf9" +checksum = "b65c2eda643191f6d1bb12ea323a9db8d9ba95374e9be3780b5a9fb5cfb8520f" dependencies = [ "cpal", "minimp3", @@ -2640,7 +2856,7 @@ checksum = "d2aa654bc32eb9ca14cce1a084abc9dfe43949a4547c35269a094c39272db3bb" dependencies = [ "lazy_static", "log", - "winapi", + "winapi 0.3.9", ] [[package]] @@ -2771,17 +2987,14 @@ checksum = "31ef6ee280cdefba6d2d0b4b78a84a1c1a3f3a4cec98c2d4231c8bc225de0f25" dependencies = [ "libc", "mach 0.3.2", - "winapi", + "winapi 0.3.9", ] [[package]] name = "slotmap" -version = "1.0.6" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" -dependencies = [ - "version_check", -] +checksum = "6bf34684c5767b87de9119790e92e9a1d60056be2ceeaf16a8e6ef13082aeab1" [[package]] name = "smallvec" @@ -2792,16 +3005,6 @@ dependencies = [ "serde", ] -[[package]] -name = "spirv" -version = "0.2.0+1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830" -dependencies = [ - "bitflags", - "num-traits", -] - [[package]] name = "spirv-reflect" version = "0.2.3" @@ -2816,6 +3019,48 @@ dependencies = [ "spirv_headers", ] +[[package]] +name = "spirv-std" +version = "0.4.0-alpha.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e2676f3e58345b7c742b266b5bec022445b43e6471b9a00895faec03a52723e" +dependencies = [ + "bitflags", + "num-traits", + "spirv-std-macros", + "spirv-types", +] + +[[package]] +name = "spirv-std-macros" +version = "0.4.0-alpha.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "207e8515dfbb48bff03f64bf5f8388d4e0f2f526ee769cc6556df98477098ca5" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "spirv-types", + "syn", +] + +[[package]] +name = "spirv-types" +version = "0.4.0-alpha.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71cc4b8f7ec707459fdeddb4f137109947045592f5b0c139f7bf1360058bac6b" + +[[package]] +name = "spirv_cross" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60647fadbf83c4a72f0d7ea67a7ca3a81835cf442b8deae5c134c3e0055b2e14" +dependencies = [ + "cc", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "spirv_headers" version = "1.5.0" @@ -2883,6 +3128,15 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" +[[package]] +name = "storage-map" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418bb14643aa55a7841d5303f72cf512cfb323b8cc221d51580500a1ca75206c" +dependencies = [ + "lock_api", +] + [[package]] name = "stretch" version = "0.3.2" @@ -2890,7 +3144,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b0dc6d20ce137f302edf90f9cd3d278866fd7fb139efca6f246161222ad6d87" dependencies = [ "lazy_static", - "libm", + "libm 0.1.4", ] [[package]] @@ -2907,24 +3161,15 @@ checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2" [[package]] name = "syn" -version = "1.0.81" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966" +checksum = "f3a1d708c221c5a612956ef9f75b37e454e88d1f7b899fbd3a18d4252012d663" dependencies = [ "proc-macro2", "quote", "unicode-xid", ] -[[package]] -name = "termcolor" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" -dependencies = [ - "winapi-util", -] - [[package]] name = "thiserror" version = "1.0.30" @@ -2954,13 +3199,18 @@ dependencies = [ "once_cell", ] +[[package]] +name = "thunderdome" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7572415bd688d401c52f6e36f4c8e805b9ae1622619303b9fa835d531db0acae" + [[package]] name = "toml" version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" dependencies = [ - "indexmap", "serde", ] @@ -3040,13 +3290,24 @@ dependencies = [ ] [[package]] -name = "tracing-wasm" -version = "0.2.0" +name = "tracing-subscriber" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae741706df70547fca8715f74a8569677666e7be3454313af70f6e158034485" +checksum = "80a4ddde70311d8da398062ecf6fc2c309337de6b0f77d6c27aff8d53f6fca52" +dependencies = [ + "sharded-slab", + "thread_local", + "tracing-core", +] + +[[package]] +name = "tracing-wasm" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07" dependencies = [ "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.1", "wasm-bindgen", ] @@ -3057,10 +3318,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ae2f58a822f08abdaf668897e96a5656fe72f5a9ce66422423e8849384872e6" [[package]] -name = "unicode-width" -version = "0.1.9" +name = "unicode-segmentation" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" +checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" [[package]] name = "unicode-xid" @@ -3103,7 +3364,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" dependencies = [ "same-file", - "winapi", + "winapi 0.3.9", "winapi-util", ] @@ -3115,9 +3376,9 @@ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] name = "wasm-bindgen" -version = "0.2.78" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" +checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -3125,9 +3386,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.78" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" +checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62" dependencies = [ "bumpalo", "lazy_static", @@ -3140,9 +3401,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.28" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39" +checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -3152,9 +3413,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.78" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" +checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3162,9 +3423,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.78" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" +checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549" dependencies = [ "proc-macro2", "quote", @@ -3175,110 +3436,102 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.78" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" +checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158" [[package]] name = "web-sys" -version = "0.3.55" +version = "0.3.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" +checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3" dependencies = [ "js-sys", "wasm-bindgen", ] [[package]] -name = "wgpu" -version = "0.11.0" +name = "webbrowser" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1577ecc4f6992b9e965878ac594efb24eed2bdf089c11f45b3d1c5f216e2e30" +checksum = "ecad156490d6b620308ed411cfee90d280b3cbd13e189ea0d3fada8acc89158a" +dependencies = [ + "web-sys", + "widestring", + "winapi 0.3.9", +] + +[[package]] +name = "wgpu" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79a0a0a63fac9492cfaf6e7e4bdf9729c128f1e94124b9e4cbc4004b8cb6d1d8" dependencies = [ "arrayvec", "js-sys", - "log", "naga", "parking_lot", "raw-window-handle", "smallvec", + "syn", + "tracing", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", "wgpu-core", - "wgpu-hal", "wgpu-types", ] [[package]] name = "wgpu-core" -version = "0.11.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bdcbfa4885b32c2b1feb2faeb8b6a76065b752b8f08751b82f994e937687f46" +checksum = "c89fa2cc5d72236461ac09c5be967012663e29cb62f1a972654cbf35e49dffa8" dependencies = [ "arrayvec", "bitflags", "cfg_aliases", "copyless", "fxhash", - "log", + "gfx-backend-dx11", + "gfx-backend-dx12", + "gfx-backend-empty", + "gfx-backend-gl", + "gfx-backend-metal", + "gfx-backend-vulkan", + "gfx-hal", + "gpu-alloc", + "gpu-descriptor", "naga", "parking_lot", - "profiling", "raw-window-handle", "smallvec", "thiserror", - "wgpu-hal", + "tracing", "wgpu-types", ] -[[package]] -name = "wgpu-hal" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e493835d9edb153d5c8a9d8d016e1811dbe32ddb707a110be1453c7b051d3ec" -dependencies = [ - "arrayvec", - "ash", - "bit-set", - "bitflags", - "block", - "core-graphics-types", - "d3d12", - "foreign-types", - "fxhash", - "glow", - "gpu-alloc", - "gpu-descriptor", - "inplace_it", - "js-sys", - "khronos-egl", - "libloading", - "log", - "metal", - "naga", - "objc", - "parking_lot", - "profiling", - "range-alloc", - "raw-window-handle", - "renderdoc-sys", - "thiserror", - "wasm-bindgen", - "web-sys", - "wgpu-types", - "winapi", -] - [[package]] name = "wgpu-types" -version = "0.11.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e15e44ba88ec415466e18e91881319e7c9e96cb905dc623305168aea65b85ccc" +checksum = "72fa9ba80626278fd87351555c363378d08122d7601e58319be3d6fa85a87747" dependencies = [ "bitflags", ] +[[package]] +name = "widestring" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c" + +[[package]] +name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + [[package]] name = "winapi" version = "0.3.9" @@ -3289,6 +3542,12 @@ dependencies = [ "winapi-x86_64-pc-windows-gnu", ] +[[package]] +name = "winapi-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" @@ -3301,7 +3560,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "winapi", + "winapi 0.3.9", ] [[package]] @@ -3312,9 +3571,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winit" -version = "0.25.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79610794594d5e86be473ef7763f604f2159cbac8c94debd00df8fb41e86c2f8" +checksum = "da4eda6fce0eb84bd0a33e3c8794eb902e1033d0a1d5a31bc4f19b1b4bbff597" dependencies = [ "bitflags", "cocoa", @@ -3326,22 +3585,49 @@ dependencies = [ "lazy_static", "libc", "log", - "mio", - "mio-misc", - "ndk 0.3.0", - "ndk-glue 0.3.0", + "mio 0.6.23", + "mio-extras", + "ndk 0.2.1", + "ndk-glue 0.2.1", "ndk-sys", "objc", "parking_lot", "percent-encoding", "raw-window-handle", - "scopeguard", "wasm-bindgen", "web-sys", - "winapi", + "winapi 0.3.9", "x11-dl", ] +[[package]] +name = "wio" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "ws2_32-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "x11-clipboard" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89bd49c06c9eb5d98e6ba6536cf64ac9f7ee3a009b2f53996d405b3944f6bcea" +dependencies = [ + "xcb", +] + [[package]] name = "x11-dl" version = "2.19.1" @@ -3353,6 +3639,16 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "xcb" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e917a3f24142e9ff8be2414e36c649d47d6cc2ba81f16201cdef96e533e02de" +dependencies = [ + "libc", + "log", +] + [[package]] name = "xi-unicode" version = "0.3.0" diff --git a/Cargo.toml b/Cargo.toml index e96a460..bd83831 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,4 +6,5 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy = { path = "../bevy" } +bevy = "0.5" +bevy-inspector-egui = "0.6.1" diff --git a/src/flycam.rs b/src/flycam.rs index 9ce107e..48847d2 100644 --- a/src/flycam.rs +++ b/src/flycam.rs @@ -1,8 +1,12 @@ -use bevy::app::{Events, ManualEventReader}; -use bevy::input::mouse::MouseMotion; -use bevy::prelude::*; +use bevy::{ + app::{Events, ManualEventReader}, + input::{mouse::MouseMotion, Input}, + prelude::*, +}; -// stolen with neither shame nor pity from git@github.com:sburris0/bevy_flycam.git, b90f6fc, which is copyright 2020 Spencer Burris +// stolen with neither shame nor pity from +// git@github.com:sburris0/bevy_flycam.git, b90f6fc, which is copyright 2020 +// Spencer Burris /// Keeps track of mouse motion events, pitch, and yaw #[derive(Default)] @@ -28,7 +32,7 @@ impl Default for MovementSettings { } /// Used in queries when you want flycams and not other cameras -#[derive(Debug, Component)] +#[derive(Debug)] pub struct FlyCam; /// Grabs/ungrabs mouse cursor @@ -46,7 +50,7 @@ fn initial_grab_cursor(mut windows: ResMut) { fn setup_player(mut commands: Commands) { commands .spawn_bundle(PerspectiveCameraBundle { - transform: Transform::from_xyz(-2.0, 5.0, 5.0).looking_at(Vec3::ZERO, Vec3::Y), + transform: Transform::from_xyz(0.0, 0.0, -1200.0).looking_at(Vec3::ZERO, Vec3::Y), ..Default::default() }) .insert(FlyCam); @@ -101,7 +105,8 @@ fn player_look( for (_camera, mut transform) in query.iter_mut() { for ev in state.reader_motion.iter(&motion) { if window.cursor_locked() { - // Using smallest of height or width ensures equal vertical and horizontal sensitivity + // Using smallest of height or width ensures equal vertical and horizontal + // sensitivity let window_scale = window.height().min(window.width()); state.pitch -= (settings.sensitivity * ev.delta.y * window_scale).to_radians(); @@ -124,10 +129,11 @@ fn cursor_grab(keys: Res>, mut windows: ResMut) { } } -/// Contains everything needed to add first-person fly camera behavior to your game +/// Contains everything needed to add first-person fly camera behavior to your +/// game pub struct PlayerPlugin; impl Plugin for PlayerPlugin { - fn build(&self, app: &mut App) { + fn build(&self, app: &mut bevy::prelude::AppBuilder) { app.init_resource::() .init_resource::() .add_startup_system(setup_player.system()) @@ -141,7 +147,7 @@ impl Plugin for PlayerPlugin { /// Same as `PlayerPlugin` but does not spawn a camera pub struct NoCameraPlayerPlugin; impl Plugin for NoCameraPlayerPlugin { - fn build(&self, app: &mut App) { + fn build(&self, app: &mut bevy::prelude::AppBuilder) { app.init_resource::() .init_resource::() .add_startup_system(initial_grab_cursor.system()) diff --git a/src/main.rs b/src/main.rs index 5e1adc1..b6aea0f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,19 +1,23 @@ use bevy::prelude::*; -use cyber_rider::flycam::MovementSettings; -use cyber_rider::flycam::PlayerPlugin; +use bevy_inspector_egui::WorldInspectorPlugin; +use cyber_rider::flycam::{MovementSettings, PlayerPlugin}; -// stolen with neither shame nor pity from git@github.com:sburris0/bevy_flycam.git, b90f6fc, which is copyright 2020 Spencer Burris +// stolen with neither shame nor pity from +// git@github.com:sburris0/bevy_flycam.git, b90f6fc, which is copyright 2020 +// Spencer Burris fn main() { - App::new() + App::build() .insert_resource(Msaa { samples: 4 }) .add_plugins(DefaultPlugins) .add_plugin(PlayerPlugin) + .add_plugin(WorldInspectorPlugin::new()) .insert_resource(MovementSettings { sensitivity: 0.00015, // default: 0.00012 speed: 12.0, // default: 12.0 }) .add_startup_system(setup.system()) + .add_system(animate_lights.system()) .run(); } @@ -23,22 +27,94 @@ fn setup( mut meshes: ResMut>, mut materials: ResMut>, ) { - // plane + let red_light = Light { + intensity: 50_000.0, + range: 1800.0, + color: Color::RED, + ..Default::default() + }; + + let blue_light = Light { + intensity: 50_000.0, + range: 1800.0, + color: Color::BLUE, + ..Default::default() + }; + + let purple_light = Light { + intensity: 50_000.0, + range: 1800.0, + color: Color::PURPLE, + ..Default::default() + }; + + // world commands.spawn_bundle(PbrBundle { - mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })), - material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()), + mesh: meshes.add(Mesh::from(shape::Icosphere { + radius: 300.0, + subdivisions: 5, + })), + material: materials.add(StandardMaterial { + base_color: Color::GRAY, + metallic: 0.7, + roughness: 0.2, + ..Default::default() + }), + ..Default::default() }); - // cube - commands.spawn_bundle(PbrBundle { - mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })), - material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()), - transform: Transform::from_xyz(0.0, 0.5, 0.0), + // east light + commands.spawn_bundle(LightBundle { + transform: Transform::from_xyz(750.0, 0.0, 0.0), + light: purple_light.clone(), ..Default::default() }); - // light - commands.spawn_bundle(PointLightBundle { - transform: Transform::from_xyz(4.0, 8.0, 4.0), + // west light + commands.spawn_bundle(LightBundle { + transform: Transform::from_xyz(-750.0, 0.0, 0.0), + light: purple_light.clone(), + ..Default::default() + }); + // north light + commands.spawn_bundle(LightBundle { + transform: Transform::from_xyz(0.0, 0.0, 750.0), + light: purple_light.clone(), + ..Default::default() + }); + // south light + commands.spawn_bundle(LightBundle { + transform: Transform::from_xyz(0.0, 0.0, -750.0), + light: purple_light, + ..Default::default() + }); + // up light + commands.spawn_bundle(LightBundle { + transform: Transform::from_xyz(0.0, 750.0, 0.0), + light: red_light, + ..Default::default() + }); + // down light + commands.spawn_bundle(LightBundle { + transform: Transform::from_xyz(0.0, 750.0, 0.0), + light: blue_light, ..Default::default() }); } + +fn animate_lights(mut query: Query<&mut Transform, With>) { + for mut transform in query.iter_mut() { + let translation = &transform.translation; + let x = translation.x; + let y = if translation.y.abs() < 0.1 { + translation.y + 0.15 + } else { + translation.y + }; + + let theta = y.atan2(x) + 0.174533; // 10 degrees == 0.174533 radians + let x_new = 750.0 * theta.cos(); + let y_new = 750.0 * theta.sin(); + + *transform = Transform::from_xyz(x_new, y_new, 0.0); + } +}