From c1994382c1de0eedae627bc5c382310cf13e09bb Mon Sep 17 00:00:00 2001 From: Tobias Berger Date: Sat, 3 Sep 2022 21:40:18 +0200 Subject: [PATCH] Add feature equivalence to abdea34c8e81676861df2ccd9e789eaf3c828d9f --- Cargo.lock | 2572 +++++++++++++++++++++++++++++++- Cargo.toml | 6 +- src/planet.plnt => planet.plnt | 0 save/Cargo.lock | 2068 ++++++++++++++++++++++++- save/Cargo.toml | 13 +- save/src/lib.rs | 1539 +------------------ save/src/math_util.rs | 71 + save/src/world.rs | 135 ++ save/src/world_manager.rs | 21 + src/main.rs | 188 ++- 10 files changed, 5077 insertions(+), 1536 deletions(-) rename src/planet.plnt => planet.plnt (100%) create mode 100644 save/src/math_util.rs create mode 100644 save/src/world.rs create mode 100644 save/src/world_manager.rs diff --git a/Cargo.lock b/Cargo.lock index 31a0b5e..5c4cf2f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,19 +2,1859 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "ab_glyph" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "846ffacb9d0c8b879ef9e565b59e18fb76d6a61013e5bd24ecc659864e6b1a1f" +dependencies = [ + "ab_glyph_rasterizer", + "owned_ttf_parser", +] + +[[package]] +name = "ab_glyph_rasterizer" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13739d7177fbd22bb0ed28badfff9f372f8bef46c863db4e1c6248f6b223b6e" + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom 0.2.7", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +dependencies = [ + "memchr", +] + +[[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.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9ed09b18365ed295d722d0b5ed59c01b79a826ff2d2a8f73d5ecca8e6fb2f66" +dependencies = [ + "android_log-sys", + "env_logger", + "lazy_static", + "log", +] + +[[package]] +name = "android_system_properties" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e" +dependencies = [ + "libc", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anyhow" +version = "1.0.62" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1485d4d2cc45e7b201ee3767015c96faa5904387c9d87c6efdd0fb511f12d305" + +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "arrayvec" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" + +[[package]] +name = "ash" +version = "0.37.0+1.3.209" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "006ca68e0f2b03f22d6fa9f2860f85aed430d257fec20f8879b2145e7c7ae1a6" +dependencies = [ + "libloading", +] + +[[package]] +name = "async-channel" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-executor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "once_cell", + "slab", +] + +[[package]] +name = "async-task" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] +name = "bevy" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea147ef1ebb92d41294cfad804c40de151b174c711ce6e0a4a40eba23eae1a4" +dependencies = [ + "bevy_internal", +] + +[[package]] +name = "bevy_app" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e4ae0a6ed2adf3b153511b4645241660a93f747c05ecd1e5a909dafc803cad4" +dependencies = [ + "bevy_derive", + "bevy_ecs", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "bevy_asset" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ec773c861a7e9d9978771f59f385500ec6da3a1ab5487705cddb054393d3d19" +dependencies = [ + "anyhow", + "bevy_app", + "bevy_diagnostic", + "bevy_ecs", + "bevy_log", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "crossbeam-channel", + "downcast-rs", + "fastrand", + "js-sys", + "ndk-glue", + "parking_lot 0.12.1", + "serde", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "bevy_core" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c53172003d5cde7780870b5403c66c8ede3581faf3e510e916d8b4baa5b538d2" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "bytemuck", +] + +[[package]] +name = "bevy_core_pipeline" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e60efd10d593f6d122f2687f74c09ad55835a8f999c35bed6380ddd8e6ff7f2" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_derive", + "bevy_ecs", + "bevy_reflect", + "bevy_render", + "bevy_transform", + "bevy_utils", + "radsort", + "serde", +] + +[[package]] +name = "bevy_derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e6345431bbe6d7b6c165cd860ecd0b35da929779571259c5df970ac256d45f9" +dependencies = [ + "bevy_macro_utils", + "quote", + "syn", +] + +[[package]] +name = "bevy_diagnostic" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58ac9f4c2815f412be4b6e21e4b299cdafa710f651d064f6d40b2a8377a0d17c" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_log", + "bevy_time", + "bevy_utils", +] + +[[package]] +name = "bevy_ecs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c174066a24ed8a14d15ea58b0aea1c1f5c763f4bb36ebdc2b1dc78026007d0f5" +dependencies = [ + "async-channel", + "bevy_ecs_macros", + "bevy_ptr", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "downcast-rs", + "fixedbitset", + "fxhash", + "serde", + "thread_local", +] + +[[package]] +name = "bevy_ecs_macros" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc50c39e49e8febccc74e8e731680adb0cb4aef1f53275740cbaa95c6da71f4f" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "bevy_encase_derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68bc194009c5e9b97da64a08142dd183c264885d99c985cf849868103018adf1" +dependencies = [ + "bevy_macro_utils", + "encase_derive_impl", +] + +[[package]] +name = "bevy_gltf" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79db7d7e71b47a69953fbe8407ded5c6308eaeecf9a05efd5dfb42992f400a16" +dependencies = [ + "anyhow", + "base64", + "bevy_app", + "bevy_asset", + "bevy_core", + "bevy_core_pipeline", + "bevy_ecs", + "bevy_hierarchy", + "bevy_log", + "bevy_math", + "bevy_pbr", + "bevy_reflect", + "bevy_render", + "bevy_scene", + "bevy_tasks", + "bevy_transform", + "bevy_utils", + "gltf", + "percent-encoding", + "thiserror", +] + +[[package]] +name = "bevy_hierarchy" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eb1ec76099ea5a716de08ea42ff41f036ebe2502df1d569168b58f16458a85e" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_reflect", + "bevy_utils", + "smallvec", +] + +[[package]] +name = "bevy_input" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1821c4b760ba6ddb4fe61806e9cc33f40b09a884557aca4553a29b8c7d73c6b4" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_math", + "bevy_utils", +] + +[[package]] +name = "bevy_internal" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee63ad1e3f95a26ff2c227fadb1534a7bfe3a098e0e45c347f2f2575a573d9bc" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_core", + "bevy_core_pipeline", + "bevy_derive", + "bevy_diagnostic", + "bevy_ecs", + "bevy_gltf", + "bevy_hierarchy", + "bevy_input", + "bevy_log", + "bevy_math", + "bevy_pbr", + "bevy_ptr", + "bevy_reflect", + "bevy_render", + "bevy_scene", + "bevy_sprite", + "bevy_tasks", + "bevy_text", + "bevy_time", + "bevy_transform", + "bevy_ui", + "bevy_utils", + "bevy_window", + "bevy_winit", + "ndk-glue", +] + +[[package]] +name = "bevy_log" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "092daf498887814a064331dfcd1cf487a5ddab01fd38629b84a35b8b664462a1" +dependencies = [ + "android_log-sys", + "bevy_app", + "bevy_utils", + "console_error_panic_hook", + "tracing-log", + "tracing-subscriber", + "tracing-wasm", +] + +[[package]] +name = "bevy_macro_utils" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43fb5137e5198302d7c6c33d1e454cf48a586e7c6fd12f4860f12863951e16b9" +dependencies = [ + "quote", + "syn", + "toml", +] + +[[package]] +name = "bevy_math" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531f2b90c7e861a96f418b3d560131b3354c5e67a67eba3953a45a56ea0114d2" +dependencies = [ + "glam", +] + +[[package]] +name = "bevy_mikktspace" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "941e7d3d4e1dbb735f040e4cdc1558be1d3c38d43f1d9fdbb039c39a7849a00b" +dependencies = [ + "glam", +] + +[[package]] +name = "bevy_pbr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "176073021a4caeb8b448f24ce790fb57fde74b114f345064a8b102d2f7bed905" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_core_pipeline", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bitflags", + "bytemuck", + "radsort", +] + +[[package]] +name = "bevy_ptr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9960c19e582b43cebe1894b6679520a4f50802d1cc5b6fa432f8d685ed232f09" + +[[package]] +name = "bevy_reflect" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fc689dd7a7df3b3768884a4754711d406aa302ea48da483c03b52715fa95045" +dependencies = [ + "bevy_ptr", + "bevy_reflect_derive", + "bevy_utils", + "downcast-rs", + "erased-serde", + "glam", + "once_cell", + "parking_lot 0.12.1", + "serde", + "smallvec", + "thiserror", +] + +[[package]] +name = "bevy_reflect_derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c36fa5100832c787c10558d31632ddc454c221e8dfacbbef836938f59614754" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn", + "uuid", +] + +[[package]] +name = "bevy_render" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "600bcef85c7efac6e38ed725707f0e5b7c59b510430034ba2f743f472493f845" +dependencies = [ + "anyhow", + "bevy_app", + "bevy_asset", + "bevy_core", + "bevy_derive", + "bevy_ecs", + "bevy_encase_derive", + "bevy_hierarchy", + "bevy_log", + "bevy_math", + "bevy_mikktspace", + "bevy_reflect", + "bevy_render_macros", + "bevy_time", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bitflags", + "codespan-reporting", + "copyless", + "downcast-rs", + "encase", + "futures-lite", + "hex", + "hexasphere", + "image", + "naga", + "once_cell", + "parking_lot 0.12.1", + "regex", + "serde", + "smallvec", + "thiserror", + "thread_local", + "wgpu", +] + +[[package]] +name = "bevy_render_macros" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1be90adc9e5d5808833e363670818da5fe68ccafd7ca983a457f90957d2a430b" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "bevy_scene" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a045d575d2c8f776d8ea965363c81660243fefbfc3712ead938b00dfd6797216" +dependencies = [ + "anyhow", + "bevy_app", + "bevy_asset", + "bevy_derive", + "bevy_ecs", + "bevy_hierarchy", + "bevy_reflect", + "bevy_render", + "bevy_transform", + "bevy_utils", + "ron", + "serde", + "thiserror", + "uuid", +] + +[[package]] +name = "bevy_sprite" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69c419f3db09d7ac1f4d45e0874d349d5d6f47f48bc10d55cd0da36413e2331e" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_core_pipeline", + "bevy_ecs", + "bevy_log", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_transform", + "bevy_utils", + "bitflags", + "bytemuck", + "copyless", + "fixedbitset", + "guillotiere", + "rectangle-pack", + "serde", + "thiserror", +] + +[[package]] +name = "bevy_tasks" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b753acb3d5b9dbfd77038560fe1893c17d4ee0a4242c2ee70da9d59430537" +dependencies = [ + "async-channel", + "async-executor", + "event-listener", + "futures-lite", + "num_cpus", + "once_cell", + "wasm-bindgen-futures", +] + +[[package]] +name = "bevy_text" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c265b7515faf55a3b92fd6ce0ab65dd246f247e11d737d6f5cdaf49c2be42c63" +dependencies = [ + "ab_glyph", + "anyhow", + "bevy_app", + "bevy_asset", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_sprite", + "bevy_transform", + "bevy_utils", + "bevy_window", + "glyph_brush_layout", + "serde", + "thiserror", +] + +[[package]] +name = "bevy_time" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22830665b8476292b861216383fd79922aef2b540f9fd09d49144e3e5e94550e" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_reflect", + "bevy_utils", + "crossbeam-channel", +] + +[[package]] +name = "bevy_transform" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4bb8760f03e9667e7499a5ceec1f7630fc3e45702781ac0df56cb969e8ae668" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_hierarchy", + "bevy_math", + "bevy_reflect", +] + +[[package]] +name = "bevy_ui" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "062ce086de1a4a470e5df48cb5c16a1dc97ab610e635cafabdef26c4a1ef5756" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_core_pipeline", + "bevy_derive", + "bevy_ecs", + "bevy_hierarchy", + "bevy_input", + "bevy_log", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_sprite", + "bevy_text", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bytemuck", + "serde", + "smallvec", + "taffy", +] + +[[package]] +name = "bevy_utils" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e9aa1866c1cf7ee000f281ce9e90d02d701f5c7380a107252017e58e2f5246" +dependencies = [ + "ahash", + "getrandom 0.2.7", + "hashbrown", + "instant", + "tracing", + "uuid", +] + +[[package]] +name = "bevy_window" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707dbbebfac72b1e63e874e7a11a345feab8c440355c0bd71e6dff26709fba9a" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_input", + "bevy_math", + "bevy_utils", + "raw-window-handle", + "web-sys", +] + +[[package]] +name = "bevy_winit" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98b15fee4b75472e3441b0c7221467303e4ce59b342a94a328e447e7cdb5a43c" +dependencies = [ + "approx", + "bevy_app", + "bevy_ecs", + "bevy_input", + "bevy_math", + "bevy_utils", + "bevy_window", + "crossbeam-channel", + "raw-window-handle", + "wasm-bindgen", + "web-sys", + "winit", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "bumpalo" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" + +[[package]] +name = "bytemuck" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9e1f5fa78f69496407a27ae9ed989e3c3b072310286f5ef385525e4cbc24a9" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "cache-padded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" + +[[package]] +name = "cc" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "cocoa" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832" +dependencies = [ + "bitflags", + "block", + "cocoa-foundation", + "core-foundation 0.9.3", + "core-graphics 0.22.3", + "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 0.9.3", + "core-graphics-types", + "foreign-types", + "libc", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[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 = "console_error_panic_hook" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen", +] + +[[package]] +name = "const_panic" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c0358e41e90e443c69b2b2811f6ec9892c228b93620634cf4344fe89967fa9f" + +[[package]] +name = "copyless" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2df960f5d869b2dd8532793fde43eb5427cceb126c929747a26823ab0eeb536" + +[[package]] +name = "core-foundation" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" +dependencies = [ + "core-foundation-sys 0.7.0", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys 0.8.3", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "core-graphics" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923" +dependencies = [ + "bitflags", + "core-foundation 0.7.0", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags", + "core-foundation 0.9.3", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" +dependencies = [ + "bitflags", + "core-foundation 0.9.3", + "foreign-types", + "libc", +] + +[[package]] +name = "core-video-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34ecad23610ad9757664d644e369246edde1803fcb43ed72876565098a5d3828" +dependencies = [ + "cfg-if 0.1.10", + "core-foundation-sys 0.7.0", + "core-graphics 0.19.2", + "libc", + "objc", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" +dependencies = [ + "cfg-if 1.0.0", + "once_cell", +] + +[[package]] +name = "cty" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" + +[[package]] +name = "d3d12" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "827914e1f53b1e0e025ecd3d967a7836b7bcb54520f90e21ef8df7b4d88a2759" +dependencies = [ + "bitflags", + "libloading", + "winapi", +] + +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "encase" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a516181e9a36e8982cb37933c5e7dba638c42938cacde46ee4e5b4156f881b9" +dependencies = [ + "const_panic", + "encase_derive", + "glam", + "thiserror", +] + +[[package]] +name = "encase_derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5b802412eea315f29f2bb2da3a5963cd6121f56eaa06aebcdc0c54eea578f22" +dependencies = [ + "encase_derive_impl", +] + +[[package]] +name = "encase_derive_impl" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f2f4de457d974f548d2c2a16f709ebd81013579e543bd1a9b19ced88132c2cf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "env_logger" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "erased-serde" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54558e0ba96fbe24280072642eceb9d7d442e32c7ec0ea9e7ecd7b4ea2cf4e11" +dependencies = [ + "serde", +] + +[[package]] +name = "euclid" +version = "0.22.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b52c2ef4a78da0ba68fbe1fd920627411096d2ac478f7f4c9f3a54ba6705bade" +dependencies = [ + "num-traits", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "futures-core" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" + +[[package]] +name = "futures-io" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" + +[[package]] +name = "futures-lite" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "glam" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "518faa5064866338b013ff9b2350dc318e14cc4fcd6cb8206d7e7c9886c98815" +dependencies = [ + "bytemuck", + "serde", +] + +[[package]] +name = "glow" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8bd5877156a19b8ac83a29b2306fe20537429d318f3ff0a1a2119f8d9c61919" +dependencies = [ + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gltf" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e0a0eace786193fc83644907097285396360e9e82e30f81a21e9b1ba836a3e" +dependencies = [ + "byteorder", + "gltf-json", + "lazy_static", +] + +[[package]] +name = "gltf-derive" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdd53d6e284bb2bf02a6926e4cc4984978c1990914d6cd9deae4e31cf37cd113" +dependencies = [ + "inflections", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "gltf-json" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9949836a9ec5e7f83f76fb9bbcbc77f254a577ebbdb0820867bc11979ef97cad" +dependencies = [ + "gltf-derive", + "serde", + "serde_derive", + "serde_json", +] + +[[package]] +name = "glyph_brush_layout" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc32c2334f00ca5ac3695c5009ae35da21da8c62d255b5b96d56e2597a637a38" +dependencies = [ + "ab_glyph", + "approx", + "xi-unicode", +] + +[[package]] +name = "gpu-alloc" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fc59e5f710e310e76e6707f86c561dd646f69a8876da9131703b2f717de818d" +dependencies = [ + "bitflags", + "gpu-alloc-types", +] + +[[package]] +name = "gpu-alloc-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54804d0d6bc9d7f26db4eaec1ad10def69b599315f487d32c334a80d1efe67a5" +dependencies = [ + "bitflags", +] + +[[package]] +name = "gpu-descriptor" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b0c02e1ba0bdb14e965058ca34e09c020f8e507a760df1121728e0aef68d57a" +dependencies = [ + "bitflags", + "gpu-descriptor-types", + "hashbrown", +] + +[[package]] +name = "gpu-descriptor-types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "363e3677e55ad168fef68cf9de3a4a310b53124c5e784c53a1d70e92d23f2126" +dependencies = [ + "bitflags", +] + +[[package]] +name = "guillotiere" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782" +dependencies = [ + "euclid", + "svg_fmt", +] + +[[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" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", + "serde", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +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 = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9652f2ed7ee9c6374a061039f60fc6e25d7adac7fa10f83365669af3b24b0bf0" +dependencies = [ + "glam", + "once_cell", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "image" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e30ca2ecf7666107ff827a8e481de6a132a9b687ed3bb20bb1c144a36c00964" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-rational", + "num-traits", +] + +[[package]] +name = "indexmap" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "inflections" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a" + +[[package]] +name = "inplace_it" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67f0347836f3f6362c1e7efdadde2b1c4b4556d211310b70631bae7eb692070b" + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "itoa" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "js-sys" +version = "0.3.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "khronos-egl" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3" +dependencies = [ + "libc", + "libloading", + "pkg-config", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.132" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" + +[[package]] +name = "libloading" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" +dependencies = [ + "cfg-if 1.0.0", + "winapi", +] + +[[package]] +name = "lock_api" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f80bf5aacaf25cbfc8210d1cfb718f2bf3b11c4c54e5afe36c236853a8ec390" +dependencies = [ + "autocfg", + "scopeguard", +] + [[package]] name = "log" version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "metal" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060" +dependencies = [ + "bitflags", + "block", + "core-graphics-types", + "foreign-types", + "log", + "objc", +] + +[[package]] +name = "naga" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f50357e1167a3ab92d6b3c7f4bf5f7fd13fde3f4b28bf0d5ea07b5100fdb6c0" +dependencies = [ + "bit-set", + "bitflags", + "codespan-reporting", + "hexf-parse", + "indexmap", + "log", + "num-traits", + "petgraph", + "pp-rs", + "rustc-hash", + "spirv", + "termcolor", + "thiserror", + "unicode-xid", +] + +[[package]] +name = "ndk" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d868f654c72e75f8687572699cdabe755f03effbb62542768e995d5b8d699d" +dependencies = [ + "bitflags", + "jni-sys", + "ndk-sys", + "num_enum", + "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.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71bee8ea72d685477e28bd004cfe1bf99c754d688cd78cad139eae4089484d4" +dependencies = [ + "android_logger", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-macro", + "ndk-sys", +] + +[[package]] +name = "ndk-macro" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c" +dependencies = [ + "darling", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "ndk-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121" + +[[package]] +name = "noise" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82051dd6745d5184c6efb7bc8be14892a7f6d4f3ad6dbf754d1c7d7d5fe24b43" +dependencies = [ + "rand 0.7.3", + "rand_xorshift", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "once_cell" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e" + +[[package]] +name = "owned_ttf_parser" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07ef1a404ae479dd6906f4fa2c88b3c94028f1284beb42a47c183a7c27ee9a3e" +dependencies = [ + "ttf-parser", +] + +[[package]] +name = "parking" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.5", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.3", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +dependencies = [ + "cfg-if 1.0.0", + "instant", + "libc", + "redox_syscall", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "smallvec", + "windows-sys", +] + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "petgraph" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pkg-config" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" + +[[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.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" + +[[package]] +name = "proc-macro-crate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +dependencies = [ + "once_cell", + "thiserror", + "toml", ] [[package]] @@ -26,6 +1866,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "profiling" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f61dcf0b917cd75d4521d7343d1ffff3d1583054133c9b5cbea3375c703c40d" + [[package]] name = "quote" version = "1.0.21" @@ -35,13 +1881,192 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radsort" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17fd96390ed3feda12e1dfe2645ed587e0bea749e319333f104a33ff62f77a0b" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.3", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.3", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom 0.2.7", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_xorshift" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "range-alloc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e935c45e09cc6dcf00d2f0b2d630a58f4095320223d47fc68918722f0538b6" + +[[package]] +name = "raw-window-handle" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41" +dependencies = [ + "cty", +] + +[[package]] +name = "rectangle-pack" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb" + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regex" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" + +[[package]] +name = "renderdoc-sys" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1382d1f0a252c4bf97dc20d979a2fdd05b024acd7c2ed0f7595d7817666a157" + +[[package]] +name = "ron" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a" +dependencies = [ + "base64", + "bitflags", + "serde", +] + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "ryu" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" + [[package]] name = "save" version = "0.1.0" dependencies = [ - "serde", + "bevy", + "noise", + "rand 0.8.5", ] +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + [[package]] name = "serde" version = "1.0.144" @@ -51,18 +2076,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-xml-rs" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65162e9059be2f6a3421ebbb4fef3e74b7d9e7c60c50a0e292c6239f19f1edfa" -dependencies = [ - "log", - "serde", - "thiserror", - "xml-rs", -] - [[package]] name = "serde_derive" version = "1.0.144" @@ -74,6 +2087,75 @@ dependencies = [ "syn", ] +[[package]] +name = "serde_json" +version = "1.0.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "slab" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slotmap" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" +dependencies = [ + "version_check", +] + +[[package]] +name = "smallvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" +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 = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "svg_fmt" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2" + [[package]] name = "syn" version = "1.0.99" @@ -85,6 +2167,28 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "taffy" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec27dea659b100d489dffa57cf0efc6d7bfefb119af817b92cc14006c0b214e3" +dependencies = [ + "arrayvec", + "hash32", + "hash32-derive", + "num-traits", + "typenum", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + [[package]] name = "thiserror" version = "1.0.32" @@ -105,6 +2209,109 @@ dependencies = [ "syn", ] +[[package]] +name = "thread_local" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +dependencies = [ + "once_cell", +] + +[[package]] +name = "toml" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +dependencies = [ + "serde", +] + +[[package]] +name = "tracing" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" +dependencies = [ + "cfg-if 1.0.0", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b" +dependencies = [ + "ansi_term", + "matchers", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tracing-wasm" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07" +dependencies = [ + "tracing", + "tracing-subscriber", + "wasm-bindgen", +] + +[[package]] +name = "ttf-parser" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b3e06c9b9d80ed6b745c7159c40b311ad2916abb34a49e9be2653b90db0d8dd" + +[[package]] +name = "typenum" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" + [[package]] name = "unicode-ident" version = "1.0.3" @@ -112,15 +2319,338 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" [[package]] -name = "worlds-sim-rust" -version = "0.1.0" +name = "unicode-width" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" + +[[package]] +name = "unicode-xid" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" + +[[package]] +name = "uuid" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f" dependencies = [ - "save", - "serde-xml-rs", + "getrandom 0.2.7", + "serde", ] [[package]] -name = "xml-rs" -version = "0.8.4" +name = "valuable" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "waker-fn" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" + +[[package]] +name = "web-sys" +version = "0.3.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wgpu" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "277e967bf8b7820a76852645a6bce8bbd31c32fda2042e82d8e3ea75fda8892d" +dependencies = [ + "arrayvec", + "js-sys", + "log", + "naga", + "parking_lot 0.12.1", + "raw-window-handle", + "smallvec", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "wgpu-core", + "wgpu-hal", + "wgpu-types", +] + +[[package]] +name = "wgpu-core" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b92788dec9d0c1bed849a1b83f01b2ee12819bf04a79c90f68e4173f7b5ba2" +dependencies = [ + "arrayvec", + "bit-vec", + "bitflags", + "cfg_aliases", + "codespan-reporting", + "copyless", + "fxhash", + "log", + "naga", + "parking_lot 0.12.1", + "profiling", + "raw-window-handle", + "smallvec", + "thiserror", + "web-sys", + "wgpu-hal", + "wgpu-types", +] + +[[package]] +name = "wgpu-hal" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cbdfc3d0637dba3d5536b93adef3d26023a0b96f0e1ee5ee9560a401d9f646" +dependencies = [ + "android_system_properties", + "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 0.12.1", + "profiling", + "range-alloc", + "raw-window-handle", + "renderdoc-sys", + "thiserror", + "wasm-bindgen", + "web-sys", + "wgpu-types", + "winapi", +] + +[[package]] +name = "wgpu-types" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f762cbc08e1a51389859cf9c199c7aef544789cf3510889aab12c607f701604" +dependencies = [ + "bitflags", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +dependencies = [ + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" + +[[package]] +name = "winit" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b43cc931d58b99461188607efd7acb2a093e65fc621f54cad78517a6063e73a" +dependencies = [ + "bitflags", + "cocoa", + "core-foundation 0.9.3", + "core-graphics 0.22.3", + "core-video-sys", + "dispatch", + "instant", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-glue", + "ndk-sys", + "objc", + "parking_lot 0.11.2", + "raw-window-handle", + "wasm-bindgen", + "web-sys", + "winapi", +] + +[[package]] +name = "worlds-sim-rust" +version = "0.1.0" +dependencies = [ + "bevy", + "save", +] + +[[package]] +name = "xi-unicode" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" diff --git a/Cargo.toml b/Cargo.toml index 383247f..05c9eab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,5 +8,7 @@ edition = "2021" [dependencies.save] path = "save" -[dependencies.serde-xml-rs] -version = "0.5.1" +[dependencies.bevy] +version = "0.8" +default-features = false +features = ["bevy_asset", "bevy_winit", "bevy_scene", "render"] diff --git a/src/planet.plnt b/planet.plnt similarity index 100% rename from src/planet.plnt rename to planet.plnt diff --git a/save/Cargo.lock b/save/Cargo.lock index 0046503..1156cfe 100644 --- a/save/Cargo.lock +++ b/save/Cargo.lock @@ -2,6 +2,1442 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom 0.2.7", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +dependencies = [ + "memchr", +] + +[[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.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9ed09b18365ed295d722d0b5ed59c01b79a826ff2d2a8f73d5ecca8e6fb2f66" +dependencies = [ + "android_log-sys", + "env_logger", + "lazy_static", + "log", +] + +[[package]] +name = "android_system_properties" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e" +dependencies = [ + "libc", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anyhow" +version = "1.0.62" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1485d4d2cc45e7b201ee3767015c96faa5904387c9d87c6efdd0fb511f12d305" + +[[package]] +name = "arrayvec" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" + +[[package]] +name = "ash" +version = "0.37.0+1.3.209" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "006ca68e0f2b03f22d6fa9f2860f85aed430d257fec20f8879b2145e7c7ae1a6" +dependencies = [ + "libloading", +] + +[[package]] +name = "async-channel" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-executor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", + "futures-lite", + "once_cell", + "slab", +] + +[[package]] +name = "async-task" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "bevy" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea147ef1ebb92d41294cfad804c40de151b174c711ce6e0a4a40eba23eae1a4" +dependencies = [ + "bevy_internal", +] + +[[package]] +name = "bevy_app" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e4ae0a6ed2adf3b153511b4645241660a93f747c05ecd1e5a909dafc803cad4" +dependencies = [ + "bevy_derive", + "bevy_ecs", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "bevy_asset" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ec773c861a7e9d9978771f59f385500ec6da3a1ab5487705cddb054393d3d19" +dependencies = [ + "anyhow", + "bevy_app", + "bevy_diagnostic", + "bevy_ecs", + "bevy_log", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "crossbeam-channel", + "downcast-rs", + "fastrand", + "js-sys", + "ndk-glue", + "parking_lot", + "serde", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "bevy_core" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c53172003d5cde7780870b5403c66c8ede3581faf3e510e916d8b4baa5b538d2" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "bytemuck", +] + +[[package]] +name = "bevy_core_pipeline" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e60efd10d593f6d122f2687f74c09ad55835a8f999c35bed6380ddd8e6ff7f2" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_derive", + "bevy_ecs", + "bevy_reflect", + "bevy_render", + "bevy_transform", + "bevy_utils", + "radsort", + "serde", +] + +[[package]] +name = "bevy_derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e6345431bbe6d7b6c165cd860ecd0b35da929779571259c5df970ac256d45f9" +dependencies = [ + "bevy_macro_utils", + "quote", + "syn", +] + +[[package]] +name = "bevy_diagnostic" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58ac9f4c2815f412be4b6e21e4b299cdafa710f651d064f6d40b2a8377a0d17c" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_log", + "bevy_time", + "bevy_utils", +] + +[[package]] +name = "bevy_ecs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c174066a24ed8a14d15ea58b0aea1c1f5c763f4bb36ebdc2b1dc78026007d0f5" +dependencies = [ + "async-channel", + "bevy_ecs_macros", + "bevy_ptr", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "downcast-rs", + "fixedbitset", + "fxhash", + "serde", + "thread_local", +] + +[[package]] +name = "bevy_ecs_macros" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc50c39e49e8febccc74e8e731680adb0cb4aef1f53275740cbaa95c6da71f4f" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "bevy_encase_derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68bc194009c5e9b97da64a08142dd183c264885d99c985cf849868103018adf1" +dependencies = [ + "bevy_macro_utils", + "encase_derive_impl", +] + +[[package]] +name = "bevy_hierarchy" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eb1ec76099ea5a716de08ea42ff41f036ebe2502df1d569168b58f16458a85e" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_reflect", + "bevy_utils", + "smallvec", +] + +[[package]] +name = "bevy_input" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1821c4b760ba6ddb4fe61806e9cc33f40b09a884557aca4553a29b8c7d73c6b4" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_math", + "bevy_utils", +] + +[[package]] +name = "bevy_internal" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee63ad1e3f95a26ff2c227fadb1534a7bfe3a098e0e45c347f2f2575a573d9bc" +dependencies = [ + "bevy_app", + "bevy_core", + "bevy_core_pipeline", + "bevy_derive", + "bevy_diagnostic", + "bevy_ecs", + "bevy_hierarchy", + "bevy_input", + "bevy_log", + "bevy_math", + "bevy_pbr", + "bevy_ptr", + "bevy_reflect", + "bevy_render", + "bevy_tasks", + "bevy_time", + "bevy_transform", + "bevy_utils", + "bevy_window", + "ndk-glue", +] + +[[package]] +name = "bevy_log" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "092daf498887814a064331dfcd1cf487a5ddab01fd38629b84a35b8b664462a1" +dependencies = [ + "android_log-sys", + "bevy_app", + "bevy_utils", + "console_error_panic_hook", + "tracing-log", + "tracing-subscriber", + "tracing-wasm", +] + +[[package]] +name = "bevy_macro_utils" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43fb5137e5198302d7c6c33d1e454cf48a586e7c6fd12f4860f12863951e16b9" +dependencies = [ + "quote", + "syn", + "toml", +] + +[[package]] +name = "bevy_math" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531f2b90c7e861a96f418b3d560131b3354c5e67a67eba3953a45a56ea0114d2" +dependencies = [ + "glam", +] + +[[package]] +name = "bevy_mikktspace" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "941e7d3d4e1dbb735f040e4cdc1558be1d3c38d43f1d9fdbb039c39a7849a00b" +dependencies = [ + "glam", +] + +[[package]] +name = "bevy_pbr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "176073021a4caeb8b448f24ce790fb57fde74b114f345064a8b102d2f7bed905" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_core_pipeline", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bitflags", + "bytemuck", + "radsort", +] + +[[package]] +name = "bevy_ptr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9960c19e582b43cebe1894b6679520a4f50802d1cc5b6fa432f8d685ed232f09" + +[[package]] +name = "bevy_reflect" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fc689dd7a7df3b3768884a4754711d406aa302ea48da483c03b52715fa95045" +dependencies = [ + "bevy_ptr", + "bevy_reflect_derive", + "bevy_utils", + "downcast-rs", + "erased-serde", + "glam", + "once_cell", + "parking_lot", + "serde", + "smallvec", + "thiserror", +] + +[[package]] +name = "bevy_reflect_derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c36fa5100832c787c10558d31632ddc454c221e8dfacbbef836938f59614754" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn", + "uuid", +] + +[[package]] +name = "bevy_render" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "600bcef85c7efac6e38ed725707f0e5b7c59b510430034ba2f743f472493f845" +dependencies = [ + "anyhow", + "bevy_app", + "bevy_asset", + "bevy_core", + "bevy_derive", + "bevy_ecs", + "bevy_encase_derive", + "bevy_hierarchy", + "bevy_log", + "bevy_math", + "bevy_mikktspace", + "bevy_reflect", + "bevy_render_macros", + "bevy_time", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bitflags", + "codespan-reporting", + "copyless", + "downcast-rs", + "encase", + "futures-lite", + "hex", + "hexasphere", + "image", + "naga", + "once_cell", + "parking_lot", + "regex", + "serde", + "smallvec", + "thiserror", + "thread_local", + "wgpu", +] + +[[package]] +name = "bevy_render_macros" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1be90adc9e5d5808833e363670818da5fe68ccafd7ca983a457f90957d2a430b" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "bevy_tasks" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b753acb3d5b9dbfd77038560fe1893c17d4ee0a4242c2ee70da9d59430537" +dependencies = [ + "async-channel", + "async-executor", + "event-listener", + "futures-lite", + "num_cpus", + "once_cell", + "wasm-bindgen-futures", +] + +[[package]] +name = "bevy_time" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22830665b8476292b861216383fd79922aef2b540f9fd09d49144e3e5e94550e" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_reflect", + "bevy_utils", + "crossbeam-channel", +] + +[[package]] +name = "bevy_transform" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4bb8760f03e9667e7499a5ceec1f7630fc3e45702781ac0df56cb969e8ae668" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_hierarchy", + "bevy_math", + "bevy_reflect", +] + +[[package]] +name = "bevy_utils" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e9aa1866c1cf7ee000f281ce9e90d02d701f5c7380a107252017e58e2f5246" +dependencies = [ + "ahash", + "getrandom 0.2.7", + "hashbrown", + "instant", + "tracing", + "uuid", +] + +[[package]] +name = "bevy_window" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707dbbebfac72b1e63e874e7a11a345feab8c440355c0bd71e6dff26709fba9a" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_input", + "bevy_math", + "bevy_utils", + "raw-window-handle", + "web-sys", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "bumpalo" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" + +[[package]] +name = "bytemuck" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9e1f5fa78f69496407a27ae9ed989e3c3b072310286f5ef385525e4cbc24a9" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "cache-padded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" + +[[package]] +name = "cc" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[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 = "console_error_panic_hook" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] + +[[package]] +name = "const_panic" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c0358e41e90e443c69b2b2811f6ec9892c228b93620634cf4344fe89967fa9f" + +[[package]] +name = "copyless" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2df960f5d869b2dd8532793fde43eb5427cceb126c929747a26823ab0eeb536" + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "core-graphics-types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" +dependencies = [ + "bitflags", + "core-foundation", + "foreign-types", + "libc", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "cty" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" + +[[package]] +name = "d3d12" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "827914e1f53b1e0e025ecd3d967a7836b7bcb54520f90e21ef8df7b4d88a2759" +dependencies = [ + "bitflags", + "libloading", + "winapi", +] + +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "encase" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a516181e9a36e8982cb37933c5e7dba638c42938cacde46ee4e5b4156f881b9" +dependencies = [ + "const_panic", + "encase_derive", + "glam", + "thiserror", +] + +[[package]] +name = "encase_derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5b802412eea315f29f2bb2da3a5963cd6121f56eaa06aebcdc0c54eea578f22" +dependencies = [ + "encase_derive_impl", +] + +[[package]] +name = "encase_derive_impl" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f2f4de457d974f548d2c2a16f709ebd81013579e543bd1a9b19ced88132c2cf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "env_logger" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "erased-serde" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54558e0ba96fbe24280072642eceb9d7d442e32c7ec0ea9e7ecd7b4ea2cf4e11" +dependencies = [ + "serde", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "futures-core" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" + +[[package]] +name = "futures-io" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" + +[[package]] +name = "futures-lite" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "glam" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "518faa5064866338b013ff9b2350dc318e14cc4fcd6cb8206d7e7c9886c98815" +dependencies = [ + "bytemuck", + "serde", +] + +[[package]] +name = "glow" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8bd5877156a19b8ac83a29b2306fe20537429d318f3ff0a1a2119f8d9c61919" +dependencies = [ + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gpu-alloc" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fc59e5f710e310e76e6707f86c561dd646f69a8876da9131703b2f717de818d" +dependencies = [ + "bitflags", + "gpu-alloc-types", +] + +[[package]] +name = "gpu-alloc-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54804d0d6bc9d7f26db4eaec1ad10def69b599315f487d32c334a80d1efe67a5" +dependencies = [ + "bitflags", +] + +[[package]] +name = "gpu-descriptor" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b0c02e1ba0bdb14e965058ca34e09c020f8e507a760df1121728e0aef68d57a" +dependencies = [ + "bitflags", + "gpu-descriptor-types", + "hashbrown", +] + +[[package]] +name = "gpu-descriptor-types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "363e3677e55ad168fef68cf9de3a4a310b53124c5e784c53a1d70e92d23f2126" +dependencies = [ + "bitflags", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", + "serde", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +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 = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9652f2ed7ee9c6374a061039f60fc6e25d7adac7fa10f83365669af3b24b0bf0" +dependencies = [ + "glam", + "once_cell", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "image" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e30ca2ecf7666107ff827a8e481de6a132a9b687ed3bb20bb1c144a36c00964" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-rational", + "num-traits", +] + +[[package]] +name = "indexmap" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "inplace_it" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67f0347836f3f6362c1e7efdadde2b1c4b4556d211310b70631bae7eb692070b" + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "js-sys" +version = "0.3.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "khronos-egl" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3" +dependencies = [ + "libc", + "libloading", + "pkg-config", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.132" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" + +[[package]] +name = "libloading" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "lock_api" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f80bf5aacaf25cbfc8210d1cfb718f2bf3b11c4c54e5afe36c236853a8ec390" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "metal" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060" +dependencies = [ + "bitflags", + "block", + "core-graphics-types", + "foreign-types", + "log", + "objc", +] + +[[package]] +name = "naga" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f50357e1167a3ab92d6b3c7f4bf5f7fd13fde3f4b28bf0d5ea07b5100fdb6c0" +dependencies = [ + "bit-set", + "bitflags", + "codespan-reporting", + "hexf-parse", + "indexmap", + "log", + "num-traits", + "petgraph", + "pp-rs", + "rustc-hash", + "spirv", + "termcolor", + "thiserror", + "unicode-xid", +] + +[[package]] +name = "ndk" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d868f654c72e75f8687572699cdabe755f03effbb62542768e995d5b8d699d" +dependencies = [ + "bitflags", + "jni-sys", + "ndk-sys", + "num_enum", + "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.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71bee8ea72d685477e28bd004cfe1bf99c754d688cd78cad139eae4089484d4" +dependencies = [ + "android_logger", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-macro", + "ndk-sys", +] + +[[package]] +name = "ndk-macro" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c" +dependencies = [ + "darling", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "ndk-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121" + +[[package]] +name = "noise" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82051dd6745d5184c6efb7bc8be14892a7f6d4f3ad6dbf754d1c7d7d5fe24b43" +dependencies = [ + "rand 0.7.3", + "rand_xorshift", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "once_cell" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e" + +[[package]] +name = "parking" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys", +] + +[[package]] +name = "petgraph" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pkg-config" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" + +[[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.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" + +[[package]] +name = "proc-macro-crate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +dependencies = [ + "once_cell", + "thiserror", + "toml", +] + [[package]] name = "proc-macro2" version = "1.0.43" @@ -11,6 +1447,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "profiling" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f61dcf0b917cd75d4521d7343d1ffff3d1583054133c9b5cbea3375c703c40d" + [[package]] name = "quote" version = "1.0.21" @@ -20,13 +1462,169 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radsort" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17fd96390ed3feda12e1dfe2645ed587e0bea749e319333f104a33ff62f77a0b" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.3", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.3", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom 0.2.7", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_xorshift" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "range-alloc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e935c45e09cc6dcf00d2f0b2d630a58f4095320223d47fc68918722f0538b6" + +[[package]] +name = "raw-window-handle" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41" +dependencies = [ + "cty", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regex" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" + +[[package]] +name = "renderdoc-sys" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1382d1f0a252c4bf97dc20d979a2fdd05b024acd7c2ed0f7595d7817666a157" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + [[package]] name = "save" version = "0.1.0" dependencies = [ - "serde", + "bevy", + "noise", + "rand 0.8.5", ] +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + [[package]] name = "serde" version = "1.0.144" @@ -47,6 +1645,58 @@ dependencies = [ "syn", ] +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "slab" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slotmap" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" +dependencies = [ + "version_check", +] + +[[package]] +name = "smallvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" +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 = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + [[package]] name = "syn" version = "1.0.99" @@ -58,8 +1708,424 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "1.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +dependencies = [ + "once_cell", +] + +[[package]] +name = "toml" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +dependencies = [ + "serde", +] + +[[package]] +name = "tracing" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" +dependencies = [ + "cfg-if", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b" +dependencies = [ + "ansi_term", + "matchers", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tracing-wasm" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07" +dependencies = [ + "tracing", + "tracing-subscriber", + "wasm-bindgen", +] + [[package]] name = "unicode-ident" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" + +[[package]] +name = "unicode-width" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" + +[[package]] +name = "unicode-xid" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" + +[[package]] +name = "uuid" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f" +dependencies = [ + "getrandom 0.2.7", + "serde", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "waker-fn" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" + +[[package]] +name = "web-sys" +version = "0.3.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wgpu" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "277e967bf8b7820a76852645a6bce8bbd31c32fda2042e82d8e3ea75fda8892d" +dependencies = [ + "arrayvec", + "js-sys", + "log", + "naga", + "parking_lot", + "raw-window-handle", + "smallvec", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "wgpu-core", + "wgpu-hal", + "wgpu-types", +] + +[[package]] +name = "wgpu-core" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b92788dec9d0c1bed849a1b83f01b2ee12819bf04a79c90f68e4173f7b5ba2" +dependencies = [ + "arrayvec", + "bit-vec", + "bitflags", + "cfg_aliases", + "codespan-reporting", + "copyless", + "fxhash", + "log", + "naga", + "parking_lot", + "profiling", + "raw-window-handle", + "smallvec", + "thiserror", + "web-sys", + "wgpu-hal", + "wgpu-types", +] + +[[package]] +name = "wgpu-hal" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cbdfc3d0637dba3d5536b93adef3d26023a0b96f0e1ee5ee9560a401d9f646" +dependencies = [ + "android_system_properties", + "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.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f762cbc08e1a51389859cf9c199c7aef544789cf3510889aab12c607f701604" +dependencies = [ + "bitflags", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +dependencies = [ + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" diff --git a/save/Cargo.toml b/save/Cargo.toml index 5403c3f..e5c3b9d 100644 --- a/save/Cargo.toml +++ b/save/Cargo.toml @@ -3,8 +3,13 @@ name = "save" version = "0.1.0" edition = "2021" -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[dependencies.noise] +version = "0.7.0" +default-features = false -[dependencies.serde] -version = "1.0.144" -features = ["derive"] \ No newline at end of file +[dependencies.rand] +version = "0.8.5" + +[dependencies.bevy] +version = "0.8" +default-features = false diff --git a/save/src/lib.rs b/save/src/lib.rs index 86b51db..14edc5e 100644 --- a/save/src/lib.rs +++ b/save/src/lib.rs @@ -1,1499 +1,40 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Serialize, Deserialize)] -pub struct Save { - #[serde(rename = "World")] - world: World, -} - -#[derive(Serialize, Deserialize)] -pub struct World { - #[serde(rename = "EventsTriggered")] - events_triggered: String, - - #[serde(rename = "EventsEvaluated")] - events_evaluated: String, - - #[serde(rename = "ModPaths")] - mod_paths: ExistingDiscoveryIds, - - #[serde(rename = "LayerSettings")] - layer_settings: String, - - #[serde(rename = "EventsToHappen")] - events_to_happen: EventsToHappen, - - #[serde(rename = "TerrainCellAlterationList")] - terrain_cell_alteration_list: TerrainCellAlterationList, - - #[serde(rename = "CulturalPreferenceInfoList")] - cultural_preference_info_list: CulturalPreferenceInfoList, - - #[serde(rename = "CulturalActivityInfoList")] - cultural_activity_info_list: CulturalActivityInfoList, - - #[serde(rename = "CulturalSkillInfoList")] - cultural_skill_info_list: CulturalSkillInfoList, - - #[serde(rename = "CulturalKnowledgeInfoList")] - cultural_knowledge_info_list: CulturalKnowledgeInfoList, - - #[serde(rename = "ExistingDiscoveryIds")] - existing_discovery_ids: ExistingDiscoveryIds, - - #[serde(rename = "CellGroups")] - cell_groups: CellGroups, - - #[serde(rename = "MemorableAgents")] - memorable_agents: String, - - #[serde(rename = "FactionInfos")] - faction_infos: FactionInfos, - - #[serde(rename = "PolityInfos")] - polity_infos: PolityInfos, - - #[serde(rename = "RegionInfos")] - region_infos: RegionInfos, - - #[serde(rename = "Languages")] - languages: Languages, - - #[serde(rename = "EventMessageIds")] - event_message_ids: EventMessageIdsClass, - - #[serde(rename = "_xmlns:xsd")] - xmlns_xsd: String, - - #[serde(rename = "_xmlns:xsi")] - xmlns_xsi: String, - - #[serde(rename = "_Width")] - width: String, - - #[serde(rename = "_Height")] - height: String, - - #[serde(rename = "_Seed")] - seed: String, - - #[serde(rename = "_CurrentDate")] - current_date: String, - - #[serde(rename = "_MaxTimeToSkip")] - max_time_to_skip: String, - - #[serde(rename = "_CellGroupCount")] - cell_group_count: String, - - #[serde(rename = "_MemorableAgentCount")] - memorable_agent_count: String, - - #[serde(rename = "_FactionCount")] - faction_count: String, - - #[serde(rename = "_PolityCount")] - polity_count: String, - - #[serde(rename = "_RegionCount")] - region_count: String, - - #[serde(rename = "_LanguageCount")] - language_count: String, - - #[serde(rename = "_TerrainCellAlterationListCount")] - terrain_cell_alteration_list_count: String, - - #[serde(rename = "_AltitudeScale")] - altitude_scale: String, - - #[serde(rename = "_SeaLevelOffset")] - sea_level_offset: String, - - #[serde(rename = "_RiverStrength")] - river_strength: String, - - #[serde(rename = "_RainfallOffset")] - rainfall_offset: String, - - #[serde(rename = "_TemperatureOffset")] - temperature_offset: String, - - #[serde(rename = "_SerializedEventCount")] - serialized_event_count: String, -} - -#[derive(Serialize, Deserialize)] -pub struct CellGroups { - #[serde(rename = "CellGroup")] - cell_group: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct CellGroup { - #[serde(rename = "SeaMigrationRoute")] - sea_migration_route: Option, - - #[serde(rename = "Flags")] - flags: Flags, - - #[serde(rename = "Culture")] - culture: CellGroupCulture, - - #[serde(rename = "Properties")] - properties: PropertiesUnion, - - #[serde(rename = "FactionCoreIds")] - faction_core_ids: String, - - #[serde(rename = "PolityProminences")] - polity_prominences: PolityProminencesUnion, - - #[serde(rename = "LastPopulationMigration")] - last_population_migration: LastPopulationMigration, - - #[serde(rename = "_Id")] - id: String, - - #[serde(rename = "_MT")] - mt: String, - - #[serde(rename = "_PEP")] - pep: String, - - #[serde(rename = "_EP")] - ep: String, - - #[serde(rename = "_P")] - p: String, - - #[serde(rename = "_LUD")] - lud: String, - - #[serde(rename = "_NUD")] - nud: String, - - #[serde(rename = "_UESD")] - uesd: String, - - #[serde(rename = "_OP")] - op: String, - - #[serde(rename = "_Lo")] - lo: String, - - #[serde(rename = "_La")] - la: String, - - #[serde(rename = "_STF")] - stf: String, - - #[serde(rename = "_TPP")] - tpp: String, - - #[serde(rename = "_MEv")] - m_ev: String, - - #[serde(rename = "_MD")] - md: String, - - #[serde(rename = "_MSD")] - msd: String, - - #[serde(rename = "_MLo")] - m_lo: String, - - #[serde(rename = "_MLa")] - m_la: String, - - #[serde(rename = "_MED")] - med: String, - - #[serde(rename = "_MET")] - met: String, - - #[serde(rename = "_MPPer")] - mp_per: String, - - #[serde(rename = "_TFEv")] - tf_ev: String, - - #[serde(rename = "_TFD")] - tfd: String, - - #[serde(rename = "_ArM")] - ar_m: String, - - #[serde(rename = "_AcM")] - ac_m: String, - - #[serde(rename = "_NvM")] - nv_m: String, - - #[serde(rename = "_MPPId")] - mpp_id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct CellGroupCulture { - #[serde(rename = "Preferences")] - preferences: PurplePreferences, - - #[serde(rename = "Activities")] - activities: PurpleActivities, - - #[serde(rename = "Skills")] - skills: PurpleSkills, - - #[serde(rename = "Knowledges")] - knowledges: PurpleKnowledges, - - #[serde(rename = "DiscoveryIds")] - discovery_ids: DiscoveryIds, - - #[serde(rename = "KnowledgeLimits")] - knowledge_limits: KnowledgeLimits, - - #[serde(rename = "_LId")] - l_id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct PurpleActivities { - #[serde(rename = "CulturalActivity")] - cultural_activity: CulturalActivity, -} - -#[derive(Serialize, Deserialize)] -pub struct Cultural { - #[serde(rename = "_xsi:type")] - xsi_type: Option, - - #[serde(rename = "_Id")] - id: CulturalActivityId, - - #[serde(rename = "_V")] - v: String, - - #[serde(rename = "_C")] - c: Option, - - #[serde(rename = "_RO")] - ro: Option, - - #[serde(rename = "_AL")] - al: Option, -} - -#[derive(Serialize, Deserialize)] -pub struct DiscoveryIds { - #[serde(rename = "string")] - string: StringUnion, -} - -#[derive(Serialize, Deserialize)] -pub struct KnowledgeLimits { - #[serde(rename = "KnowledgeLimit")] - knowledge_limit: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct KnowledgeLimit { - #[serde(rename = "_Id")] - id: CulturalActivityId, - - #[serde(rename = "_V")] - v: String, -} - -#[derive(Serialize, Deserialize)] -pub struct PurpleKnowledges { - #[serde(rename = "CulturalKnowledge")] - cultural_knowledge: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct PurplePreferences { - #[serde(rename = "CulturalPreference")] - cultural_preference: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct PurpleSkills { - #[serde(rename = "CulturalSkill")] - cultural_skill: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct LastPopulationMigration { - #[serde(rename = "_P")] - p: String, - - #[serde(rename = "_SD")] - sd: String, - - #[serde(rename = "_ED")] - ed: String, - - #[serde(rename = "_SGId")] - sg_id: String, - - #[serde(rename = "_PId")] - p_id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct PolityProminencesClass { - #[serde(rename = "PolityProminence")] - polity_prominence: PolityProminence, -} - -#[derive(Serialize, Deserialize)] -pub struct PolityProminence { - #[serde(rename = "_V")] - v: String, - - #[serde(rename = "_FCT")] - fct: String, - - #[serde(rename = "_PD")] - pd: String, - - #[serde(rename = "_P")] - p: String, - - #[serde(rename = "_CFId")] - cf_id: String, - - #[serde(rename = "_PId")] - p_id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct PropertiesClass { - #[serde(rename = "string")] - string: String, -} - -#[derive(Serialize, Deserialize)] -pub struct SeaMigrationRoute { - #[serde(rename = "_U")] - u: String, - - #[serde(rename = "_C")] - c: String, - - #[serde(rename = "_CD")] - cd: String, - - #[serde(rename = "_SLo")] - s_lo: String, - - #[serde(rename = "_SLa")] - s_la: String, -} - -#[derive(Serialize, Deserialize)] -pub struct CulturalActivityInfoList { - #[serde(rename = "CulturalActivityInfo")] - cultural_activity_info: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct CulturalActivityInfo { - #[serde(rename = "_Id")] - id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct CulturalKnowledgeInfoList { - #[serde(rename = "CulturalKnowledgeInfo")] - cultural_knowledge_info: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct CulturalPreferenceInfoList { - #[serde(rename = "CulturalPreferenceInfo")] - cultural_preference_info: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct CulturalSkillInfoList { - #[serde(rename = "CulturalSkillInfo")] - cultural_skill_info: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct EventMessageIdsClass { - #[serde(rename = "long")] - long: String, -} - -#[derive(Serialize, Deserialize)] -pub struct EventsToHappen { - #[serde(rename = "FactionModEvent")] - faction_mod_event: Vec, - - #[serde(rename = "CellGroupModEvent")] - cell_group_mod_event: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct CellGroupModEvent { - #[serde(rename = "GroupId")] - group_id: CulturalActivityInfo, - - #[serde(rename = "_TId")] - t_id: String, - - #[serde(rename = "_TD")] - td: String, - - #[serde(rename = "_SD")] - sd: String, - - #[serde(rename = "_Id")] - id: String, - - #[serde(rename = "_GenId")] - gen_id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct FactionModEvent { - #[serde(rename = "_TId")] - t_id: String, - - #[serde(rename = "_TD")] - td: String, - - #[serde(rename = "_SD")] - sd: String, - - #[serde(rename = "_Id")] - id: String, - - #[serde(rename = "_FId")] - f_id: String, - - #[serde(rename = "_OPId")] - op_id: String, - - #[serde(rename = "_GenId")] - gen_id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct ExistingDiscoveryIds { - #[serde(rename = "string")] - string: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct FactionInfos { - #[serde(rename = "FactionInfo")] - faction_info: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct FactionInfo { - #[serde(rename = "Name")] - name: Name, - - #[serde(rename = "Faction")] - faction: Option, - - #[serde(rename = "_Id")] - id: String, - - #[serde(rename = "_T")] - t: FactionInfoT, -} - -#[derive(Serialize, Deserialize)] -pub struct Faction { - #[serde(rename = "Flags")] - flags: Flags, - - #[serde(rename = "Culture")] - culture: FactionCulture, - - #[serde(rename = "Relationships")] - relationships: RelationshipsUnion, - - #[serde(rename = "EventDataList")] - event_data_list: String, - - #[serde(rename = "LastLeader")] - last_leader: LastLeader, - - #[serde(rename = "_xsi:type")] - xsi_type: FactionXsiType, - - #[serde(rename = "_Inf")] - inf: String, - - #[serde(rename = "_SP")] - sp: String, - - #[serde(rename = "_IsDom")] - is_dom: String, - - #[serde(rename = "_LastUpDate")] - last_up_date: String, - - #[serde(rename = "_LeadStDate")] - lead_st_date: String, - - #[serde(rename = "_IsCon")] - is_con: String, - - #[serde(rename = "_PId")] - p_id: String, - - #[serde(rename = "_CGId")] - cg_id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct FactionCulture { - #[serde(rename = "Preferences")] - preferences: FluffyPreferences, - - #[serde(rename = "Activities")] - activities: FluffyActivities, - - #[serde(rename = "Skills")] - skills: FluffySkills, - - #[serde(rename = "Knowledges")] - knowledges: FluffyKnowledges, - - #[serde(rename = "DiscoveryIds")] - discovery_ids: ExistingDiscoveryIds, - - #[serde(rename = "_LId")] - l_id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct FluffyActivities { - #[serde(rename = "CulturalActivity")] - cultural_activity: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct FluffyKnowledges { - #[serde(rename = "CulturalKnowledge")] - cultural_knowledge: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct FluffyPreferences { - #[serde(rename = "CulturalPreference")] - cultural_preference: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct FluffySkills { - #[serde(rename = "CulturalSkill")] - cultural_skill: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct LastLeader { - #[serde(rename = "BirthCellPosition")] - birth_cell_position: Position, - - #[serde(rename = "_Id")] - id: String, - - #[serde(rename = "_Fem")] - fem: String, - - #[serde(rename = "_Cha")] - cha: String, - - #[serde(rename = "_Wis")] - wis: String, - - #[serde(rename = "_SP")] - sp: String, - - #[serde(rename = "_LId")] - l_id: String, - - #[serde(rename = "_RId")] - r_id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct Position { - #[serde(rename = "_X")] - x: String, - - #[serde(rename = "_Y")] - y: String, -} - -#[derive(Serialize, Deserialize)] -pub struct RelationshipsClass { - #[serde(rename = "FactionRelationship")] - faction_relationship: FactionRelationshipUnion, -} - -#[derive(Serialize, Deserialize)] -pub struct FactionRelationshipElement { - #[serde(rename = "_Id")] - id: String, - - #[serde(rename = "_Val")] - val: String, -} - -#[derive(Serialize, Deserialize)] -pub struct Name { - #[serde(rename = "_Tm")] - tm: String, - - #[serde(rename = "_LId")] - l_id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct Languages { - #[serde(rename = "Language")] - language: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct Language { - #[serde(rename = "ArticleSyllables")] - article_syllables: Syllables, - - #[serde(rename = "DerivativeArticleStartSyllables")] - derivative_article_start_syllables: Syllables, - - #[serde(rename = "DerivativeArticleNextSyllables")] - derivative_article_next_syllables: Syllables, - - #[serde(rename = "NounIndicativeSyllables")] - noun_indicative_syllables: Syllables, - - #[serde(rename = "DerivativeNounIndicativeStartSyllables")] - derivative_noun_indicative_start_syllables: Syllables, - - #[serde(rename = "DerivativeNounIndicativeNextSyllables")] - derivative_noun_indicative_next_syllables: Syllables, - - #[serde(rename = "VerbIndicativeSyllables")] - verb_indicative_syllables: Syllables, - - #[serde(rename = "DerivativeVerbIndicativeStartSyllables")] - derivative_verb_indicative_start_syllables: Syllables, - - #[serde(rename = "DerivativeVerbIndicativeNextSyllables")] - derivative_verb_indicative_next_syllables: Syllables, - - #[serde(rename = "AdpositionStartSyllables")] - adposition_start_syllables: Syllables, - - #[serde(rename = "AdpositionNextSyllables")] - adposition_next_syllables: Syllables, - - #[serde(rename = "AdjectiveStartSyllables")] - adjective_start_syllables: Syllables, - - #[serde(rename = "AdjectiveNextSyllables")] - adjective_next_syllables: Syllables, - - #[serde(rename = "NounStartSyllables")] - noun_start_syllables: Syllables, - - #[serde(rename = "NounNextSyllables")] - noun_next_syllables: Syllables, - - #[serde(rename = "VerbStartSyllables")] - verb_start_syllables: Syllables, - - #[serde(rename = "VerbNextSyllables")] - verb_next_syllables: Syllables, - - #[serde(rename = "Articles")] - articles: Articles, - - #[serde(rename = "NounIndicatives")] - noun_indicatives: NounIndicatives, - - #[serde(rename = "VerbIndicatives")] - verb_indicatives: NounIndicatives, - - #[serde(rename = "Adpositions")] - adpositions: AdpositionsUnion, - - #[serde(rename = "Adjectives")] - adjectives: Adjectives, - - #[serde(rename = "Nouns")] - nouns: Nouns, - - #[serde(rename = "Verbs")] - verbs: String, - - #[serde(rename = "_Id")] - id: String, - - #[serde(rename = "_AP")] - ap: String, - - #[serde(rename = "_NIP")] - nip: String, - - #[serde(rename = "_VIP")] - vip: String, - - #[serde(rename = "_AAP")] - aap: String, - - #[serde(rename = "_NIAP")] - niap: String, - - #[serde(rename = "_VIAP")] - viap: String, - - #[serde(rename = "_AdpAP")] - adp_ap: String, - - #[serde(rename = "_AdjAP")] - adj_ap: String, - - #[serde(rename = "_NAP")] - nap: String, -} - -#[derive(Serialize, Deserialize)] -pub struct Syllables { - #[serde(rename = "_OSALC")] - osalc: String, - - #[serde(rename = "_NSALC")] - nsalc: String, - - #[serde(rename = "_CSALC")] - csalc: String, -} - -#[derive(Serialize, Deserialize)] -pub struct Nouns { - #[serde(rename = "Morpheme")] - morpheme: MorphemeUnion, -} - -#[derive(Serialize, Deserialize)] -pub struct MorphemeElement { - #[serde(rename = "_M")] - m: String, - - #[serde(rename = "_V")] - v: String, - - #[serde(rename = "_T")] - t: MorphemeT, - - #[serde(rename = "_P")] - p: String, -} - -#[derive(Serialize, Deserialize)] -pub struct AdpositionsClass { - #[serde(rename = "Morpheme")] - morpheme: MorphemeElement, -} - -#[derive(Serialize, Deserialize)] -pub struct NounIndicatives { - #[serde(rename = "Morpheme")] - morpheme: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct PolityInfos { - #[serde(rename = "PolityInfo")] - polity_info: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct PolityInfo { - #[serde(rename = "Name")] - name: Name, - - #[serde(rename = "Polity")] - polity: Option, - - #[serde(rename = "Type")] - polity_info_type: Type, - - #[serde(rename = "_Id")] - id: String, - - #[serde(rename = "_T")] - t: PolityInfoT, -} - -#[derive(Serialize, Deserialize)] -pub struct Polity { - #[serde(rename = "CoreRegionIds")] - core_region_ids: Ids, - - #[serde(rename = "ProminenceClusters")] - prominence_clusters: ProminenceClusters, - - #[serde(rename = "Territory")] - territory: Territory, - - #[serde(rename = "Culture")] - culture: PolityCulture, - - #[serde(rename = "FactionIds")] - faction_ids: Ids, - - #[serde(rename = "EventMessageIds")] - event_message_ids: EventMessageIdsUnion, - - #[serde(rename = "EventDataList")] - event_data_list: String, - - #[serde(rename = "_xsi:type")] - xsi_type: Type, - - #[serde(rename = "_AC")] - ac: String, - - #[serde(rename = "_P")] - p: String, - - #[serde(rename = "_A")] - a: String, - - #[serde(rename = "_CRS")] - crs: String, - - #[serde(rename = "_NC")] - nc: String, - - #[serde(rename = "_SP")] - sp: String, - - #[serde(rename = "_IF")] - polity_if: String, - - #[serde(rename = "_DFId")] - df_id: String, - - #[serde(rename = "_CGId")] - cg_id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct Ids { - #[serde(rename = "Identifier")] - identifier: Identifier, -} - -#[derive(Serialize, Deserialize)] -pub struct PolityCulture { - #[serde(rename = "Preferences")] - preferences: FluffyPreferences, - - #[serde(rename = "Activities")] - activities: FluffyActivities, - - #[serde(rename = "Skills")] - skills: FluffySkills, - - #[serde(rename = "Knowledges")] - knowledges: PurpleKnowledges, - - #[serde(rename = "DiscoveryIds")] - discovery_ids: ExistingDiscoveryIds, - - #[serde(rename = "_LId")] - l_id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct ProminenceClusters { - #[serde(rename = "PolityProminenceCluster")] - polity_prominence_cluster: PolityProminenceClusterUnion, -} - -#[derive(Serialize, Deserialize)] -pub struct PolityProminenceClusterElement { - #[serde(rename = "ProminenceIds")] - prominence_ids: Ids, - - #[serde(rename = "_Id")] - id: String, - - #[serde(rename = "_TAC")] - tac: String, - - #[serde(rename = "_TP")] - tp: String, - - #[serde(rename = "_PA")] - pa: String, - - #[serde(rename = "_NC")] - nc: String, - - #[serde(rename = "_RId")] - r_id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct Territory { - #[serde(rename = "CellPositions")] - cell_positions: TerritoryCellPositions, - - #[serde(rename = "EnclosedAreas")] - enclosed_areas: EnclosedAreasUnion, - - #[serde(rename = "RegionAccesses")] - region_accesses: RegionAccesses, -} - -#[derive(Serialize, Deserialize)] -pub struct TerritoryCellPositions { - #[serde(rename = "WorldPosition")] - world_position: WorldPosition, -} - -#[derive(Serialize, Deserialize)] -pub struct EnclosedAreasClass { - #[serde(rename = "CellArea")] - cell_area: CellAreaUnion, -} - -#[derive(Serialize, Deserialize)] -pub struct CellAreaElement { - #[serde(rename = "CellPositions")] - cell_positions: TerritoryCellPositions, -} - -#[derive(Serialize, Deserialize)] -pub struct PurpleCellArea { - #[serde(rename = "CellPositions")] - cell_positions: PurpleCellPositions, -} - -#[derive(Serialize, Deserialize)] -pub struct PurpleCellPositions { - #[serde(rename = "WorldPosition")] - world_position: Position, -} - -#[derive(Serialize, Deserialize)] -pub struct RegionAccesses { - #[serde(rename = "RegionAccess")] - region_access: RegionAccessUnion, -} - -#[derive(Serialize, Deserialize)] -pub struct RegionAccessElement { - #[serde(rename = "_C")] - c: String, - - #[serde(rename = "_RId")] - r_id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct RegionInfos { - #[serde(rename = "RegionInfo")] - region_info: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct RegionInfo { - #[serde(rename = "Region")] - region: Region, - - #[serde(rename = "OriginCellPosition")] - origin_cell_position: Position, - - #[serde(rename = "_Id")] - id: String, - - #[serde(rename = "_R")] - r: String, - - #[serde(rename = "_LId")] - l_id: String, -} - -#[derive(Serialize, Deserialize)] -pub struct Region { - #[serde(rename = "CellPositions")] - cell_positions: Option, - - #[serde(rename = "_xsi:type")] - xsi_type: RegionXsiType, - - #[serde(rename = "SubRegionIds")] - sub_region_ids: Option, -} - -#[derive(Serialize, Deserialize)] -pub struct TerrainCellAlterationList { - #[serde(rename = "CellAlt")] - cell_alt: Vec, -} - -#[derive(Serialize, Deserialize)] -pub struct CellAlt { - #[serde(rename = "LayerData")] - layer_data: LayerDataUnion, - - #[serde(rename = "_Lon")] - lon: String, - - #[serde(rename = "_Lat")] - lat: String, - - #[serde(rename = "_BA")] - ba: String, - - #[serde(rename = "_BT")] - bt: String, - - #[serde(rename = "_BR")] - br: String, - - #[serde(rename = "_BTO")] - bto: String, - - #[serde(rename = "_BRO")] - bro: String, - - #[serde(rename = "_Fp")] - fp: String, - - #[serde(rename = "_Ar")] - ar: String, - - #[serde(rename = "_Acc")] - acc: String, - - #[serde(rename = "_M")] - m: String, -} - -#[derive(Serialize, Deserialize)] -pub struct LayerDataClass { - #[serde(rename = "CellLayerData")] - cell_layer_data: CellLayerData, -} - -#[derive(Serialize, Deserialize)] -pub struct CellLayerData { - #[serde(rename = "_Id")] - id: String, - - #[serde(rename = "_O")] - o: String, -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum CulturalActivity { - Cultural(Cultural), - - CulturalArray(Vec), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum StringUnion { - Enum(FluffyString), - - EnumArray(Vec), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum Flags { - DiscoveryIds(DiscoveryIds), - - String(String), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum PolityProminencesUnion { - PolityProminencesClass(PolityProminencesClass), - - String(String), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum PropertiesUnion { - PropertiesClass(PropertiesClass), - - String(String), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum RelationshipsUnion { - RelationshipsClass(RelationshipsClass), - - String(String), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum FactionRelationshipUnion { - FactionRelationshipElement(FactionRelationshipElement), - - FactionRelationshipElementArray(Vec), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum Adjectives { - Nouns(Nouns), - - String(String), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum MorphemeUnion { - MorphemeElement(MorphemeElement), - - MorphemeElementArray(Vec), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum AdpositionsUnion { - AdpositionsClass(AdpositionsClass), - - String(String), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum Articles { - NounIndicatives(NounIndicatives), - - String(String), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum Identifier { - CulturalActivityInfo(CulturalActivityInfo), - - CulturalActivityInfoArray(Vec), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum EventMessageIdsUnion { - EventMessageIdsClass(EventMessageIdsClass), - - String(String), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum PolityProminenceClusterUnion { - PolityProminenceClusterElement(PolityProminenceClusterElement), - - PolityProminenceClusterElementArray(Vec), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum WorldPosition { - Position(Position), - - PositionArray(Vec), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum EnclosedAreasUnion { - EnclosedAreasClass(EnclosedAreasClass), - - String(String), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum CellAreaUnion { - CellAreaElementArray(Vec), - - PurpleCellArea(PurpleCellArea), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum RegionAccessUnion { - RegionAccessElement(RegionAccessElement), - - RegionAccessElementArray(Vec), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum SubRegionIds { - Ids(Ids), - - String(String), -} - -#[derive(Serialize, Deserialize)] -#[serde(untagged)] -pub enum LayerDataUnion { - LayerDataClass(LayerDataClass), - - String(String), -} - -#[derive(Serialize, Deserialize)] -pub enum CulturalActivityId { - #[serde(rename = "aggression")] - Aggression, - - #[serde(rename = "agriculture")] - Agriculture, - - #[serde(rename = "authority")] - Authority, - - #[serde(rename = "black_fungi_survival")] - BlackFungiSurvival, - - #[serde(rename = "cohesion")] - Cohesion, - - #[serde(rename = "desert_survival")] - DesertSurvival, - - #[serde(rename = "desertic_tundra_survival")] - DeserticTundraSurvival, - - #[serde(rename = "farming")] - Farming, - - #[serde(rename = "fishing")] - Fishing, - - #[serde(rename = "foraging")] - Foraging, - - #[serde(rename = "forest_survival")] - ForestSurvival, - - #[serde(rename = "fungi_survival")] - FungiSurvival, - - #[serde(rename = "grassland_survival")] - GrasslandSurvival, - - #[serde(rename = "ice_sheet_survival")] - IceSheetSurvival, - - #[serde(rename = "ice_shelf_survival")] - IceShelfSurvival, - - #[serde(rename = "isolation")] - Isolation, - - #[serde(rename = "rainforest_survival")] - RainforestSurvival, - - #[serde(rename = "red_forest_survival")] - RedForestSurvival, - - #[serde(rename = "scarlet_desert_survival")] - ScarletDesertSurvival, - - #[serde(rename = "seafaring")] - Seafaring, - - #[serde(rename = "shipbuilding")] - Shipbuilding, - - #[serde(rename = "social_organization")] - SocialOrganization, - - #[serde(rename = "taiga_survival")] - TaigaSurvival, - - #[serde(rename = "tundra_survival")] - TundraSurvival, -} - -#[derive(Serialize, Deserialize)] -pub enum CulturalActivityXsiType { - #[serde(rename = "BiomeSurvivalSkill")] - BiomeSurvivalSkill, - - #[serde(rename = "CellCulturalActivity")] - CellCulturalActivity, - - #[serde(rename = "CellCulturalPreference")] - CellCulturalPreference, - - #[serde(rename = "PolityCulturalKnowledge")] - PolityCulturalKnowledge, - - #[serde(rename = "SeafaringSkill")] - SeafaringSkill, - - #[serde(rename = "ShipbuildingKnowledge")] - ShipbuildingKnowledge, - - #[serde(rename = "SocialOrganizationKnowledge")] - SocialOrganizationKnowledge, -} - -#[derive(Serialize, Deserialize)] -pub enum PurpleString { - #[serde(rename = "boat_making")] - BoatMaking, - - #[serde(rename = "clan_decide_form_new_tribe_set")] - ClanDecideFormNewTribeSet, - - #[serde(rename = "clan_decide_performing_influence_demand_set")] - ClanDecidePerformingInfluenceDemandSet, - - #[serde(rename = "clan_decide_split_set")] - ClanDecideSplitSet, - - #[serde(rename = "expand_toward_region_set")] - ExpandTowardRegionSet, - - #[serde(rename = "gain_plant_cultivation_discovery_set")] - GainPlantCultivationDiscoverySet, - - #[serde(rename = "improve_relationship_with_neighbors_clan_set")] - ImproveRelationshipWithNeighborsClanSet, - - #[serde(rename = "keels")] - Keels, - - #[serde(rename = "rudders")] - Rudders, - - #[serde(rename = "sailing")] - Sailing, - - #[serde(rename = "tribalism")] - Tribalism, - - #[serde(rename = "tribe_invites_clan_join_set")] - TribeInvitesClanJoinSet, -} - -#[derive(Serialize, Deserialize)] -pub enum FluffyString { - #[serde(rename = "boat_making")] - BoatMaking, - - #[serde(rename = "expand_toward_region_set")] - ExpandTowardRegionSet, - - #[serde(rename = "gain_sailing_discovery_set")] - GainSailingDiscoverySet, -} - -#[derive(Serialize, Deserialize)] -pub enum ExistingDiscoveryIdsString { - #[serde(rename = "AAAAAA")] - Aaaaaa, - - #[serde(rename = "boat_making")] - BoatMaking, - - #[serde(rename = "keels")] - Keels, - - #[serde(rename = "Mods\\Base")] - ModsBase, - - #[serde(rename = "Mods\\WeirdBiomesMod")] - ModsWeirdBiomesMod, - - #[serde(rename = "plant_cultivation")] - PlantCultivation, - - #[serde(rename = "rudders")] - Rudders, - - #[serde(rename = "sailing")] - Sailing, - - #[serde(rename = "Test")] - Test, - - #[serde(rename = "tribalism")] - Tribalism, -} - -#[derive(Serialize, Deserialize)] -pub enum FactionXsiType { - #[serde(rename = "Clan")] - Clan, -} - -#[derive(Serialize, Deserialize)] -pub enum FactionInfoT { - #[serde(rename = "clan")] - Clan, -} - -#[derive(Serialize, Deserialize)] -pub enum MorphemeT { - #[serde(rename = "Adjective")] - Adjective, - - #[serde(rename = "Adposition")] - Adposition, - - #[serde(rename = "Article")] - Article, - - #[serde(rename = "Indicative")] - Indicative, - - #[serde(rename = "Noun")] - Noun, -} - -#[derive(Serialize, Deserialize)] -pub enum Type { - #[serde(rename = "Tribe")] - Tribe, -} - -#[derive(Serialize, Deserialize)] -pub enum PolityInfoT { - #[serde(rename = "tribe")] - Tribe, -} - -#[derive(Serialize, Deserialize)] -pub enum RegionXsiType { - #[serde(rename = "CellRegion")] - CellRegion, - - #[serde(rename = "SuperRegion")] - SuperRegion, -} +#![warn(absolute_paths_not_starting_with_crate)] +#![warn(box_pointers)] +#![warn(elided_lifetimes_in_paths)] +#![warn(explicit_outlives_requirements)] +#![warn(keyword_idents)] +#![warn(macro_use_extern_crate)] +#![warn(meta_variable_misuse)] +#![warn(missing_abi)] +#![warn(missing_copy_implementations)] +#![warn(missing_debug_implementations)] +// #![warn(missing_docs)] +#![warn(non_ascii_idents)] +#![warn(noop_method_call)] +#![warn(pointer_structural_match)] +#![warn(rust_2021_incompatible_closure_captures)] +#![warn(rust_2021_incompatible_or_patterns)] +#![warn(rust_2021_prefixes_incompatible_syntax)] +#![warn(rust_2021_prelude_collisions)] +#![warn(single_use_lifetimes)] +#![warn(trivial_casts)] +#![warn(trivial_numeric_casts)] +#![warn(unreachable_pub)] +#![warn(unsafe_code)] +#![warn(unsafe_op_in_unsafe_fn)] +#![warn(unstable_features)] +#![warn(unused_crate_dependencies)] +#![warn(unused_extern_crates)] +#![warn(unused_import_braces)] +#![warn(unused_lifetimes)] +#![warn(unused_macro_rules)] +#![warn(unused_qualifications)] +#![warn(unused_results)] +#![warn(variant_size_differences)] + +pub mod world; +pub use world::*; +pub mod world_manager; +pub use world_manager::*; +pub mod math_util; +pub use math_util::*; diff --git a/save/src/math_util.rs b/save/src/math_util.rs new file mode 100644 index 0000000..817b532 --- /dev/null +++ b/save/src/math_util.rs @@ -0,0 +1,71 @@ +use std::{ + error::Error, + f32::consts::{PI, TAU}, + fmt::{Debug, Display}, +}; + +use bevy::math::Vec3A; +use rand::Rng; + +#[derive(Debug, Copy, Clone)] +pub enum CartesianError { + InvalidAlpha(f32), +} +impl Error for CartesianError { + fn source(&self) -> Option<&(dyn Error + 'static)> { + None + } + + fn description(&self) -> &str { + "description() is deprecated; use Display" + } + + fn cause(&self) -> Option<&dyn Error> { + self.source() + } +} +impl Display for CartesianError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + CartesianError::InvalidAlpha(alpha) => { + f.write_fmt(format_args!("Alpha value must be [0..PI], was {}", alpha)) + } + } + } +} + +pub fn cartesian_coordinates(alpha: f32, beta: f32, radius: f32) -> Result { + if alpha < 0.0 || alpha > PI { + return Err(CartesianError::InvalidAlpha(alpha)); + } + let mut beta = beta.clone(); + + while beta < 0.0 { + beta += PI; + } + while beta >= TAU { + beta -= TAU; + } + + let sin_alpha = f32::sin(alpha); + + Ok(Vec3A::new( + sin_alpha * f32::cos(beta) * radius, + f32::cos(alpha) * radius, + sin_alpha * f32::sin(beta) * radius, + )) +} + +pub fn random_point_in_sphere(radius: f32) -> Vec3A { + let mut rng = rand::thread_rng(); + let x = rng.gen_range(-radius..radius); + let y = rng.gen_range(-radius..radius); + let z = rng.gen_range(-radius..radius); + let mult = 1.0 / (x * x + y * y + z * z).sqrt(); + + if x == 0.0 && y == 0.0 && z == 0.0 { + return Vec3A::X; + } + + Vec3A::new(mult * x, mult * y, mult * z) +} diff --git a/save/src/world.rs b/save/src/world.rs new file mode 100644 index 0000000..989957a --- /dev/null +++ b/save/src/world.rs @@ -0,0 +1,135 @@ +use std::{ + error::Error, + f32::consts::{PI, TAU}, + fmt::Display, +}; + +use noise::{NoiseFn, Perlin, Seedable}; + +use crate::{cartesian_coordinates, random_point_in_sphere, CartesianError}; + +#[derive(Debug, Clone, Copy)] +pub enum WorldGenError { + CartesianError(CartesianError), +} +impl Error for WorldGenError { + fn source(&self) -> Option<&(dyn Error + 'static)> { + match *self { + WorldGenError::CartesianError(ref e) => Some(e), + } + } + + fn description(&self) -> &str { + "description() is deprecated; use Display" + } + + fn cause(&self) -> Option<&dyn Error> { + self.source() + } +} +impl Display for WorldGenError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + WorldGenError::CartesianError(err) => err.fmt(f), + } + } +} + +#[derive(Debug)] +pub struct World { + pub width: i32, + pub height: i32, + pub seed: u32, + + pub terrain: Vec>, +} + +#[derive(Debug, Copy, Clone, Default)] +pub struct TerrainCell { + pub altitude: f32, + pub rainfall: f32, +} + +impl World { + pub fn new(width: i32, height: i32, seed: u32) -> World { + let terrain = vec![ + vec![TerrainCell::default(); width.try_into().unwrap()]; + height.try_into().unwrap() + ]; + + World { + width, + height, + seed, + terrain, + } + } + + pub const MIN_ALTITUDE: f32 = -10000.0; + pub const MAX_ALTITUDE: f32 = 10000.0; + pub const ALTITUDE_SPAN: f32 = Self::MAX_ALTITUDE - Self::MIN_ALTITUDE; + + pub const MIN_RAINFALL: f32 = -10.0; + pub const MAX_RAINFALL: f32 = 100.0; + pub const RAINFALL_SPAN: f32 = Self::MAX_RAINFALL - Self::MIN_RAINFALL; + pub const RAINFALL_ALTITUDE_FACTOR: f32 = 1.0; + + pub fn generate(&mut self) -> Result<(), WorldGenError> { + let perlin = Perlin::new().set_seed(self.seed); + + if let Err(err) = self.generate_altitude(&perlin) { + return Err(WorldGenError::CartesianError(err)); + } + if let Err(err) = self.generate_rainfall(&perlin) { + return Err(WorldGenError::CartesianError(err)); + } + + Ok(()) + } + fn generate_altitude(&mut self, perlin: &Perlin) -> Result<(), CartesianError> { + let offset = random_point_in_sphere(1000.0); + const RADIUS: f32 = 2.0; + + for (y, row) in self.terrain.iter_mut().enumerate() { + let alpha = (y as f32 / self.height as f32) * PI; + + for (x, cell) in row.iter_mut().enumerate() { + let beta = (x as f32 / self.width as f32) * TAU; + let pos = cartesian_coordinates(alpha, beta, RADIUS)? + offset; + + let value = Perlin::get(perlin, [pos.x.into(), pos.y.into(), pos.z.into()]) as f32; + + let altitude = Self::MIN_ALTITUDE + (value * Self::ALTITUDE_SPAN); + + cell.altitude = altitude; + } + } + Ok(()) + } + + fn generate_rainfall(&mut self, perlin: &Perlin) -> Result<(), CartesianError> { + let offset = random_point_in_sphere(1000.0); + const RADIUS: f32 = 2.0; + + for (y, row) in self.terrain.iter_mut().enumerate() { + let alpha = (y as f32 / self.height as f32) * PI; + for (x, cell) in row.iter_mut().enumerate() { + let beta = (x as f32 / self.width as f32) * TAU; + + let pos = cartesian_coordinates(alpha, beta, RADIUS)? + offset; + + let value = Perlin::get(perlin, [pos.x.into(), pos.y.into(), pos.z.into()]) as f32; + + let base_rainfall = (value * Self::RAINFALL_SPAN + Self::MIN_RAINFALL) + .clamp(0.0, World::MAX_RAINFALL); + let altitude_factor = ((cell.altitude / Self::MAX_ALTITUDE) + * World::RAINFALL_ALTITUDE_FACTOR) + .clamp(0.0, 1.0); + let rainfall = base_rainfall * (1.0 - altitude_factor); + + cell.rainfall = rainfall; + } + } + Ok(()) + } +} diff --git a/save/src/world_manager.rs b/save/src/world_manager.rs new file mode 100644 index 0000000..dd60f60 --- /dev/null +++ b/save/src/world_manager.rs @@ -0,0 +1,21 @@ +use crate::{World, WorldGenError}; +use rand::random; + +#[derive(Debug)] +pub struct WorldManager { + world: Option, +} +impl WorldManager { + pub fn new() -> WorldManager { + WorldManager { world: None } + } + pub fn get_world(&self) -> Option<&World> { + self.world.as_ref() + } + pub fn new_world(&mut self) -> Result<&World, WorldGenError> { + let mut new_world = World::new(800, 600, random()); + new_world.generate()?; + self.world = Some(new_world); + Ok(self.get_world().unwrap()) + } +} diff --git a/src/main.rs b/src/main.rs index 8e18a2d..c6dfa43 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,12 +1,182 @@ -use save::Save; -use std::fs; +#![warn(absolute_paths_not_starting_with_crate)] +// #![warn(box_pointers)] +#![warn(elided_lifetimes_in_paths)] +#![warn(explicit_outlives_requirements)] +#![warn(keyword_idents)] +#![warn(macro_use_extern_crate)] +#![warn(meta_variable_misuse)] +#![warn(missing_abi)] +#![warn(missing_copy_implementations)] +#![warn(missing_debug_implementations)] +// #![warn(missing_docs)] +#![warn(non_ascii_idents)] +#![warn(noop_method_call)] +#![warn(pointer_structural_match)] +#![warn(rust_2021_incompatible_closure_captures)] +#![warn(rust_2021_incompatible_or_patterns)] +#![warn(rust_2021_prefixes_incompatible_syntax)] +#![warn(rust_2021_prelude_collisions)] +#![warn(single_use_lifetimes)] +#![warn(trivial_casts)] +#![warn(trivial_numeric_casts)] +#![warn(unreachable_pub)] +#![warn(unsafe_code)] +#![warn(unsafe_op_in_unsafe_fn)] +#![warn(unstable_features)] +#![warn(unused_crate_dependencies)] +#![warn(unused_extern_crates)] +#![warn(unused_import_braces)] +#![warn(unused_lifetimes)] +#![warn(unused_macro_rules)] +#![warn(unused_qualifications)] +#![warn(unused_results)] +#![warn(variant_size_differences)] -use serde_xml_rs::from_reader; +use bevy::{ + app::App, + asset::Assets, + core_pipeline::core_2d::Camera2dBundle, + diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin}, + ecs::{ + change_detection::ResMut, + system::{Commands, Res}, + }, + hierarchy::BuildChildren, + render::{ + color::Color, + render_resource::{ + Extent3d, TextureDescriptor, TextureDimension, TextureFormat, TextureUsages, + }, + texture::{Image, ImageSettings}, + }, + ui::{ + entity::{ImageBundle, NodeBundle}, + Size, Style, UiImage, Val, + }, + utils::default, + window::WindowDescriptor, + winit::WinitSettings, + DefaultPlugins, +}; +use save::*; -fn main() { - println!("Start"); - let planet_file = fs::File::open("planet.plnt").unwrap(); - println!("Opened"); - let planet: Save = from_reader(planet_file).unwrap(); - println!("Deserialized!"); +fn get_color(cell: &TerrainCell) -> Color { + let altitude_color = gen_altitude_color(cell.altitude); + let rainfall_color = gen_rainfall_color(cell.rainfall); + + let normalized_rainfall = f32::max(cell.rainfall / World::MAX_RAINFALL, 0.0); + + let red = (altitude_color.r() * (1.0 - normalized_rainfall)) + + rainfall_color.r() * normalized_rainfall; + let green = (altitude_color.g() * (1.0 - normalized_rainfall)) + + rainfall_color.g() * normalized_rainfall; + let blue = (altitude_color.b() * (1.0 - normalized_rainfall)) + + rainfall_color.b() * normalized_rainfall; + + Color::rgb(red, green, blue) +} + +fn gen_altitude_color(altitude: f32) -> Color { + if altitude < 0.0 { + Color::BLUE + } else { + let mult = (altitude - World::MIN_ALTITUDE) / World::ALTITUDE_SPAN; + + Color::rgb(0.58 * mult, 0.29 * mult, 0.0) + } +} + +fn gen_rainfall_color(rainfall: f32) -> Color { + if rainfall < 0.0 { + Color::BLACK + } else { + let mult = rainfall / World::MAX_RAINFALL; + Color::GREEN * mult + } +} + +fn generate_texture( + mut commands: Commands<'_, '_>, + mut images: ResMut<'_, Assets>, + world_manager: Res<'_, WorldManager>, +) { + let world = world_manager.get_world().unwrap(); + let terrain_cells: Vec<_> = world.terrain.iter().rev().flatten().collect(); + let colors: Vec<_> = terrain_cells.iter().map(|cell| get_color(cell)).collect(); + let data: Vec<_> = colors + .iter() + .flat_map(|color| { + color + .as_rgba_f32() + .iter() + .flat_map(|num| num.to_le_bytes()) + .collect::>() + }) + .collect(); + + let image_handle = images.add(Image { + data, + texture_descriptor: TextureDescriptor { + label: None, + size: Extent3d { + width: world.width as u32, + height: world.height as u32, + ..default() + }, + dimension: TextureDimension::D2, + format: TextureFormat::Rgba32Float, + mip_level_count: 1, + sample_count: 1, + usage: TextureUsages::COPY_DST | TextureUsages::TEXTURE_BINDING, + }, + ..default() + }); + + _ = commands.spawn_bundle(Camera2dBundle::default()); + _ = commands + .spawn_bundle(NodeBundle { + style: Style { + size: Size::new(Val::Percent(100.0), Val::Percent(100.0)), + ..default() + }, + color: Color::NONE.into(), + ..default() + }) + .with_children(|parent| { + _ = parent.spawn_bundle(ImageBundle { + style: Style { + size: Size::new(Val::Percent(100.0), Val::Percent(100.0)), + ..default() + }, + image: UiImage(image_handle), + ..default() + }); + // }); + }); +} + +fn main() -> Result<(), Box> { + let mut manager = WorldManager::new(); + let world = manager.new_world()?; + + App::new() + // Only run the app when there is user input. This will significantly reduce CPU/GPU use. + .insert_resource(WinitSettings::desktop_app()) + // Use nearest-neighbor rendering for cripsier pixels + .insert_resource(ImageSettings::default_nearest()) + .insert_resource(WindowDescriptor { + width: world.width as f32, + height: world.height as f32, + title: String::from("World-RS"), + resizable: true, + ..default() + }) + .insert_resource(manager) + .add_startup_system(generate_texture) + .add_plugins(DefaultPlugins) + .add_plugin(LogDiagnosticsPlugin::default()) + .add_plugin(FrameTimeDiagnosticsPlugin::default()) + .run(); + + Ok(()) }