From b6395891bcb5dfc38028ad5aa57358db4517ab88 Mon Sep 17 00:00:00 2001 From: Piotr Siuszko Date: Tue, 14 Jan 2025 11:58:34 +0100 Subject: [PATCH] Configs, docs, CLI --- .gitignore | 3 + Cargo.lock | 6831 ----------------- README.md | 107 +- crates/bevy_rpack/Cargo.toml | 4 +- crates/bevy_rpack/README.md | 8 +- crates/bevy_rpack/assets/Tilemap.png | Bin 8073 -> 60490 bytes crates/bevy_rpack/assets/tilemap.rpack.json | 275 +- .../bevy_rpack/example_config.rpack_gen.json | 14 + crates/bevy_rpack/examples/simple.rs | 4 +- crates/bevy_rpack/justfile | 5 + crates/bevy_rpack/src/plugin.rs | 40 +- .../tiles/agents/spaceAstronauts_004.png | Bin 0 -> 1275 bytes .../tiles/agents/spaceAstronauts_005.png | Bin 0 -> 1499 bytes .../tiles/agents/spaceAstronauts_008.png | Bin 0 -> 1658 bytes .../tiles/agents/spaceAstronauts_012.png | Bin 0 -> 1530 bytes .../tiles/agents/spaceAstronauts_018.png | Bin 0 -> 1656 bytes .../tiles/agents/spaceShips_003.png | Bin 0 -> 3521 bytes .../tiles/agents/spaceShips_006.png | Bin 0 -> 4515 bytes .../tiles/agents/spaceShips_009.png | Bin 0 -> 4474 bytes .../tiles/effects/spaceEffects_008.png | Bin 0 -> 560 bytes .../tiles/effects/spaceEffects_009.png | Bin 0 -> 640 bytes .../tiles/effects/spaceEffects_010.png | Bin 0 -> 733 bytes .../tiles/effects/spaceEffects_011.png | Bin 0 -> 665 bytes .../tiles/effects/spaceEffects_012.png | Bin 0 -> 831 bytes .../tiles/effects/spaceEffects_013.png | Bin 0 -> 923 bytes .../tiles/missiles/spaceMissiles_010.png | Bin 0 -> 516 bytes .../tiles/missiles/spaceMissiles_014.png | Bin 0 -> 434 bytes .../tiles/missiles/spaceMissiles_028.png | Bin 0 -> 372 bytes .../tiles/missiles/spaceMissiles_040.png | Bin 0 -> 747 bytes .../tiles/ship/spaceBuilding_001.png | Bin 0 -> 478 bytes .../tiles/ship/spaceBuilding_002.png | Bin 0 -> 423 bytes .../tiles/ship/spaceBuilding_006.png | Bin 0 -> 1140 bytes .../tiles/ship/spaceBuilding_012.png | Bin 0 -> 944 bytes .../tiles/ship/spaceStation_011.png | Bin 0 -> 400 bytes .../tiles/ship/spaceStation_012.png | Bin 0 -> 320 bytes .../tiles/ship/spaceStation_013.png | Bin 0 -> 583 bytes .../tiles/ship/spaceStation_014.png | Bin 0 -> 395 bytes .../tiles/ship/spaceStation_015.png | Bin 0 -> 679 bytes .../tiles/ship/spaceStation_016.png | Bin 0 -> 290 bytes .../tiles/ship/spaceStation_017.png | Bin 0 -> 726 bytes .../tiles/ship/spaceStation_018.png | Bin 0 -> 1256 bytes .../tiles/ship/spaceStation_019.png | Bin 0 -> 1251 bytes .../tiles/ship/spaceStation_021.png | Bin 0 -> 4058 bytes .../tiles/ship/spaceStation_022.png | Bin 0 -> 791 bytes .../tiles/ship/spaceStation_023.png | Bin 0 -> 788 bytes .../tiles/ship/spaceStation_025.png | Bin 0 -> 280 bytes .../tiles/ship/spaceStation_026.png | Bin 0 -> 231 bytes .../tiles/ship/spaceStation_027.png | Bin 0 -> 560 bytes crates/rpack/Cargo.toml | 2 + crates/rpack/src/app.rs | 9 +- crates/rpack/src/helpers.rs | 25 - crates/rpack_cli/Cargo.toml | 8 +- crates/rpack_cli/src/commands.rs | 183 +- crates/rpack_cli/src/lib.rs | 160 +- crates/rpack_cli/src/main.rs | 15 +- justfile | 2 + 56 files changed, 621 insertions(+), 7074 deletions(-) delete mode 100644 Cargo.lock create mode 100644 crates/bevy_rpack/example_config.rpack_gen.json create mode 100644 crates/bevy_rpack/justfile create mode 100644 crates/bevy_rpack/tiles/agents/spaceAstronauts_004.png create mode 100644 crates/bevy_rpack/tiles/agents/spaceAstronauts_005.png create mode 100644 crates/bevy_rpack/tiles/agents/spaceAstronauts_008.png create mode 100644 crates/bevy_rpack/tiles/agents/spaceAstronauts_012.png create mode 100644 crates/bevy_rpack/tiles/agents/spaceAstronauts_018.png create mode 100644 crates/bevy_rpack/tiles/agents/spaceShips_003.png create mode 100644 crates/bevy_rpack/tiles/agents/spaceShips_006.png create mode 100644 crates/bevy_rpack/tiles/agents/spaceShips_009.png create mode 100644 crates/bevy_rpack/tiles/effects/spaceEffects_008.png create mode 100644 crates/bevy_rpack/tiles/effects/spaceEffects_009.png create mode 100644 crates/bevy_rpack/tiles/effects/spaceEffects_010.png create mode 100644 crates/bevy_rpack/tiles/effects/spaceEffects_011.png create mode 100644 crates/bevy_rpack/tiles/effects/spaceEffects_012.png create mode 100644 crates/bevy_rpack/tiles/effects/spaceEffects_013.png create mode 100644 crates/bevy_rpack/tiles/missiles/spaceMissiles_010.png create mode 100644 crates/bevy_rpack/tiles/missiles/spaceMissiles_014.png create mode 100644 crates/bevy_rpack/tiles/missiles/spaceMissiles_028.png create mode 100644 crates/bevy_rpack/tiles/missiles/spaceMissiles_040.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceBuilding_001.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceBuilding_002.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceBuilding_006.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceBuilding_012.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceStation_011.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceStation_012.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceStation_013.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceStation_014.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceStation_015.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceStation_016.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceStation_017.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceStation_018.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceStation_019.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceStation_021.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceStation_022.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceStation_023.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceStation_025.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceStation_026.png create mode 100644 crates/bevy_rpack/tiles/ship/spaceStation_027.png create mode 100644 justfile diff --git a/.gitignore b/.gitignore index 215685e..b95f35c 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,7 @@ /dist skyline-packer-output.png result.png +/Cargo.lock +/.idea +/.vscode Cargo.lock diff --git a/Cargo.lock b/Cargo.lock deleted file mode 100644 index aff6a15..0000000 --- a/Cargo.lock +++ /dev/null @@ -1,6831 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "ab_glyph" -version = "0.2.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3672c180e71eeaaac3a541fbbc5f5ad4def8b747c595ad30d674e43049f7b0" -dependencies = [ - "ab_glyph_rasterizer", - "owned_ttf_parser", -] - -[[package]] -name = "ab_glyph_rasterizer" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" - -[[package]] -name = "accesskit" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3d3b8f9bae46a948369bc4a03e815d4ed6d616bd00de4051133a5019dc31c5a" -dependencies = [ - "enumn", - "serde", -] - -[[package]] -name = "accesskit_atspi_common" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c5dd55e6e94949498698daf4d48fb5659e824d7abec0d394089656ceaf99d4f" -dependencies = [ - "accesskit", - "accesskit_consumer", - "atspi-common", - "serde", - "thiserror 1.0.69", - "zvariant 4.2.0", -] - -[[package]] -name = "accesskit_consumer" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f47983a1084940ba9a39c077a8c63e55c619388be5476ac04c804cfbd1e63459" -dependencies = [ - "accesskit", - "hashbrown 0.15.2", - "immutable-chunkmap", -] - -[[package]] -name = "accesskit_macos" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7329821f3bd1101e03a7d2e03bd339e3ac0dc64c70b4c9f9ae1949e3ba8dece1" -dependencies = [ - "accesskit", - "accesskit_consumer", - "hashbrown 0.15.2", - "objc2", - "objc2-app-kit", - "objc2-foundation", -] - -[[package]] -name = "accesskit_unix" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcee751cc20d88678c33edaf9c07e8b693cd02819fe89053776f5313492273f5" -dependencies = [ - "accesskit", - "accesskit_atspi_common", - "async-channel", - "async-executor", - "async-task", - "atspi", - "futures-lite", - "futures-util", - "serde", - "zbus 4.4.0", -] - -[[package]] -name = "accesskit_windows" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24fcd5d23d70670992b823e735e859374d694a3d12bfd8dd32bd3bd8bedb5d81" -dependencies = [ - "accesskit", - "accesskit_consumer", - "hashbrown 0.15.2", - "paste", - "static_assertions", - "windows", - "windows-core", -] - -[[package]] -name = "accesskit_winit" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6a48dad5530b6deb9fc7a52cc6c3bf72cdd9eb8157ac9d32d69f2427a5e879" -dependencies = [ - "accesskit", - "accesskit_macos", - "accesskit_unix", - "accesskit_windows", - "raw-window-handle", - "winit", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "const-random", - "getrandom", - "once_cell", - "serde", - "version_check", - "zerocopy", -] - -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - -[[package]] -name = "aligned-vec" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1" - -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - -[[package]] -name = "android-activity" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" -dependencies = [ - "android-properties", - "bitflags 2.6.0", - "cc", - "cesu8", - "jni", - "jni-sys", - "libc", - "log", - "ndk", - "ndk-context", - "ndk-sys 0.6.0+11769913", - "num_enum", - "thiserror 1.0.69", -] - -[[package]] -name = "android-properties" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" - -[[package]] -name = "android_log-sys" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ecc8056bf6ab9892dcd53216c83d1597487d7dacac16c8df6b877d127df9937" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anstream" -version = "0.6.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" - -[[package]] -name = "anstyle-parse" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" -dependencies = [ - "anstyle", - "windows-sys 0.59.0", -] - -[[package]] -name = "anyhow" -version = "1.0.95" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" - -[[package]] -name = "approx" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" -dependencies = [ - "num-traits", -] - -[[package]] -name = "arbitrary" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" - -[[package]] -name = "arboard" -version = "3.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df099ccb16cd014ff054ac1bf392c67feeef57164b05c42f037cd40f5d4357f4" -dependencies = [ - "clipboard-win", - "log", - "objc2", - "objc2-app-kit", - "objc2-foundation", - "parking_lot", - "x11rb", -] - -[[package]] -name = "arg_enum_proc_macro" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "arrayref" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" - -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" - -[[package]] -name = "ash" -version = "0.38.0+1.3.281" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f" -dependencies = [ - "libloading", -] - -[[package]] -name = "ashpd" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c39d707614dbcc6bed00015539f488d8e3fe3e66ed60961efc0c90f4b380b3" -dependencies = [ - "async-fs", - "async-net", - "enumflags2", - "futures-channel", - "futures-util", - "rand", - "raw-window-handle", - "serde", - "serde_repr", - "url", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "zbus 5.2.0", -] - -[[package]] -name = "assert_type_match" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f548ad2c4031f2902e3edc1f29c29e835829437de49562d8eb5dc5584d3a1043" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "async-broadcast" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" -dependencies = [ - "event-listener 2.5.3", - "futures-core", -] - -[[package]] -name = "async-broadcast" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" -dependencies = [ - "event-listener 5.3.1", - "event-listener-strategy", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-channel" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" -dependencies = [ - "concurrent-queue", - "event-listener-strategy", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-executor" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "slab", -] - -[[package]] -name = "async-fs" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" -dependencies = [ - "async-lock", - "blocking", - "futures-lite", -] - -[[package]] -name = "async-io" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" -dependencies = [ - "async-lock", - "cfg-if", - "concurrent-queue", - "futures-io", - "futures-lite", - "parking", - "polling", - "rustix", - "slab", - "tracing", - "windows-sys 0.59.0", -] - -[[package]] -name = "async-lock" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" -dependencies = [ - "event-listener 5.3.1", - "event-listener-strategy", - "pin-project-lite", -] - -[[package]] -name = "async-net" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" -dependencies = [ - "async-io", - "blocking", - "futures-lite", -] - -[[package]] -name = "async-process" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" -dependencies = [ - "async-channel", - "async-io", - "async-lock", - "async-signal", - "async-task", - "blocking", - "cfg-if", - "event-listener 5.3.1", - "futures-lite", - "rustix", - "tracing", -] - -[[package]] -name = "async-recursion" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "async-signal" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" -dependencies = [ - "async-io", - "async-lock", - "atomic-waker", - "cfg-if", - "futures-core", - "futures-io", - "rustix", - "signal-hook-registry", - "slab", - "windows-sys 0.59.0", -] - -[[package]] -name = "async-task" -version = "4.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" - -[[package]] -name = "async-trait" -version = "0.1.85" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "atomicow" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "467163b50876d3a4a44da5f4dbd417537e522fc059ede8d518d57941cfb3d745" - -[[package]] -name = "atspi" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be534b16650e35237bb1ed189ba2aab86ce65e88cc84c66f4935ba38575cecbf" -dependencies = [ - "atspi-common", - "atspi-connection", - "atspi-proxies", -] - -[[package]] -name = "atspi-common" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1909ed2dc01d0a17505d89311d192518507e8a056a48148e3598fef5e7bb6ba7" -dependencies = [ - "enumflags2", - "serde", - "static_assertions", - "zbus 4.4.0", - "zbus-lockstep", - "zbus-lockstep-macros", - "zbus_names 3.0.0", - "zvariant 4.2.0", -] - -[[package]] -name = "atspi-connection" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "430c5960624a4baaa511c9c0fcc2218e3b58f5dbcc47e6190cafee344b873333" -dependencies = [ - "atspi-common", - "atspi-proxies", - "futures-lite", - "zbus 4.4.0", -] - -[[package]] -name = "atspi-proxies" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e6c5de3e524cf967569722446bcd458d5032348554d9a17d7d72b041ab7496" -dependencies = [ - "atspi-common", - "serde", - "zbus 4.4.0", - "zvariant 4.2.0", -] - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "av1-grain" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf" -dependencies = [ - "anyhow", - "arrayvec", - "log", - "nom", - "num-rational", - "v_frame", -] - -[[package]] -name = "avif-serialize" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e335041290c43101ca215eed6f43ec437eb5a42125573f600fc3fa42b9bddd62" -dependencies = [ - "arrayvec", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "basis-universal" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555fb05709f4e12fa2f6b93a480facf167eb0ecb2558ba41f610f588e77cbd14" -dependencies = [ - "basis-universal-sys", - "bitflags 1.3.2", - "lazy_static", -] - -[[package]] -name = "basis-universal-sys" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd9bde5e9547958fb0e77d79fc7879edcf91d5e0c8e372ef8959916cf35e8506" -dependencies = [ - "cc", -] - -[[package]] -name = "bcdec_rs" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9934c2b68e46448d814db20e34a840ef9b4e7b3b7c8b1da91161481230f6350" - -[[package]] -name = "bevy" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2a21c9f3306676077a88700bb8f354be779cf9caba9c21e94da9e696751af4" -dependencies = [ - "bevy_internal", -] - -[[package]] -name = "bevy_a11y" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f96642402d2cd7c8e58c5994bbd14a2e44ca72dd7e460a2edad82aa3bf0348f9" -dependencies = [ - "accesskit", - "bevy_app", - "bevy_derive", - "bevy_ecs", - "bevy_reflect", -] - -[[package]] -name = "bevy_app" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "454a8cfd134864dcdcba6ee56fb958531b981021bba6bb2037c9e3df6046603c" -dependencies = [ - "bevy_derive", - "bevy_ecs", - "bevy_reflect", - "bevy_tasks", - "bevy_utils", - "console_error_panic_hook", - "ctrlc", - "derive_more", - "downcast-rs", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "bevy_asset" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d762dd4422fb6219fd904e514a4a5d1d451711a0a8e1d6495dea15a545f04f3" -dependencies = [ - "async-broadcast 0.5.1", - "async-fs", - "async-lock", - "atomicow", - "bevy_app", - "bevy_asset_macros", - "bevy_ecs", - "bevy_reflect", - "bevy_tasks", - "bevy_utils", - "bevy_window", - "bitflags 2.6.0", - "blake3", - "crossbeam-channel", - "derive_more", - "disqualified", - "downcast-rs", - "either", - "futures-io", - "futures-lite", - "js-sys", - "parking_lot", - "ron", - "serde", - "stackfuture", - "uuid", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "bevy_asset_macros" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8db6957e3f9649d415ee613901cf487898d0339455aa9c3a2525fc37facee920" -dependencies = [ - "bevy_macro_utils", - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "bevy_color" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f00aa2966c7ca0c7dd39f5ba8f3b1eaa5c2005a93ffdefb7a4090150d8327678" -dependencies = [ - "bevy_math", - "bevy_reflect", - "bytemuck", - "derive_more", - "encase", - "serde", - "wgpu-types", -] - -[[package]] -name = "bevy_core" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ff28118f5ae3193f7f6cab30d4fd4246ba1802776910ab256dc7c20e8696381" -dependencies = [ - "bevy_app", - "bevy_ecs", - "bevy_reflect", - "bevy_tasks", - "bevy_utils", - "uuid", -] - -[[package]] -name = "bevy_core_pipeline" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0c0eea548a55fd04acf01d351bd16da4d1198037cb9c7b98dea6519f5d7dade" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_color", - "bevy_core", - "bevy_derive", - "bevy_ecs", - "bevy_image", - "bevy_math", - "bevy_reflect", - "bevy_render", - "bevy_transform", - "bevy_utils", - "bevy_window", - "bitflags 2.6.0", - "derive_more", - "nonmax", - "radsort", - "serde", - "smallvec", -] - -[[package]] -name = "bevy_derive" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b962df2a1bef274ae76ec75279eb6f8ef0ffd85b5e4c43433f5d08ba57b3d071" -dependencies = [ - "bevy_macro_utils", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "bevy_diagnostic" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21fe41b22fdf47bf11f0a3ca3e61975b003e86fa44d87e070f2dc7e752dd99f5" -dependencies = [ - "bevy_app", - "bevy_core", - "bevy_ecs", - "bevy_tasks", - "bevy_time", - "bevy_utils", - "const-fnv1a-hash", -] - -[[package]] -name = "bevy_ecs" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b747210d7db09dfacc237707d4fd31c8b43d7744cd5e5829e2c4ca86b9e47baf" -dependencies = [ - "arrayvec", - "bevy_ecs_macros", - "bevy_ptr", - "bevy_reflect", - "bevy_tasks", - "bevy_utils", - "bitflags 2.6.0", - "concurrent-queue", - "derive_more", - "disqualified", - "fixedbitset 0.5.7", - "nonmax", - "petgraph", - "serde", - "smallvec", -] - -[[package]] -name = "bevy_ecs_macros" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d36ba5874ee278d20f17b8934d2969f8fbab90f3ea3fcf8d3583814b3661ada" -dependencies = [ - "bevy_macro_utils", - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "bevy_encase_derive" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46db3d4ebc2ab23045a7d32fa1afb4be78894ec3fbe2f52b28f6cd6e4011e400" -dependencies = [ - "bevy_macro_utils", - "encase_derive_impl", -] - -[[package]] -name = "bevy_gizmos" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca821905afffe1f3aaf33b496903a24a0c980e4c83fa7523fb41eac16892a57a" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_color", - "bevy_core_pipeline", - "bevy_ecs", - "bevy_gizmos_macros", - "bevy_image", - "bevy_math", - "bevy_reflect", - "bevy_render", - "bevy_sprite", - "bevy_time", - "bevy_transform", - "bevy_utils", - "bytemuck", -] - -[[package]] -name = "bevy_gizmos_macros" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19843a638c93364950ca54a879832f325be7fa9b89f226fced3b4105594afb70" -dependencies = [ - "bevy_macro_utils", - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "bevy_hierarchy" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9aab2cd1684d30f2eedf953b6377a6416fd6b482f8145b6c05f4684bd60c3e" -dependencies = [ - "bevy_app", - "bevy_core", - "bevy_ecs", - "bevy_reflect", - "bevy_utils", - "disqualified", - "smallvec", -] - -[[package]] -name = "bevy_image" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c5942a7d681b81aa9723bb1d918135c2f88e7871331f5676119c86c01984759" -dependencies = [ - "bevy_asset", - "bevy_color", - "bevy_math", - "bevy_reflect", - "bevy_utils", - "bitflags 2.6.0", - "bytemuck", - "derive_more", - "futures-lite", - "image", - "serde", - "wgpu", -] - -[[package]] -name = "bevy_input" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9bbf39c1d2d33350e03354a67bebee5c21973c5203b1456a9a4b90a5e6f8e75" -dependencies = [ - "bevy_app", - "bevy_core", - "bevy_ecs", - "bevy_math", - "bevy_reflect", - "bevy_utils", - "derive_more", - "smol_str", -] - -[[package]] -name = "bevy_internal" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd7fc4db9a1793ee71f79abb15e7a8fcfe4e2081e5f18ed91b802bf6cf30e088" -dependencies = [ - "bevy_a11y", - "bevy_app", - "bevy_asset", - "bevy_color", - "bevy_core", - "bevy_core_pipeline", - "bevy_derive", - "bevy_diagnostic", - "bevy_ecs", - "bevy_gizmos", - "bevy_hierarchy", - "bevy_image", - "bevy_input", - "bevy_log", - "bevy_math", - "bevy_pbr", - "bevy_picking", - "bevy_ptr", - "bevy_reflect", - "bevy_render", - "bevy_scene", - "bevy_sprite", - "bevy_state", - "bevy_tasks", - "bevy_text", - "bevy_time", - "bevy_transform", - "bevy_ui", - "bevy_utils", - "bevy_window", - "bevy_winit", -] - -[[package]] -name = "bevy_log" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774238dcf70a0ef4d82aa2860b24b1cffdd4633f3694d3bcbfbb05c4f17ae4fe" -dependencies = [ - "android_log-sys", - "bevy_app", - "bevy_ecs", - "bevy_utils", - "tracing-log", - "tracing-oslog", - "tracing-subscriber", - "tracing-wasm", -] - -[[package]] -name = "bevy_macro_utils" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bdb3a681c24abace65bf18ed467ad8befbedb42468b32e459811bfdb01e506c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", - "toml_edit", -] - -[[package]] -name = "bevy_math" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edec18d90e6bab27b5c6131ee03172ece75b7edd0abe4e482a26d6db906ec357" -dependencies = [ - "bevy_reflect", - "derive_more", - "glam", - "itertools 0.13.0", - "rand", - "rand_distr", - "serde", - "smallvec", -] - -[[package]] -name = "bevy_mesh" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183abae7c6695a80d7408c860bd737410cd66d2a9f910dafc914485da06e43dc" -dependencies = [ - "bevy_asset", - "bevy_derive", - "bevy_ecs", - "bevy_image", - "bevy_math", - "bevy_mikktspace", - "bevy_reflect", - "bevy_transform", - "bevy_utils", - "bitflags 2.6.0", - "bytemuck", - "derive_more", - "hexasphere", - "serde", - "wgpu", -] - -[[package]] -name = "bevy_mikktspace" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b53f0cf879a0682280937f515ecf00ab2140f7224881d6a621f40093a36a2ef6" -dependencies = [ - "glam", -] - -[[package]] -name = "bevy_pbr" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7f17067399cf00f4441e93d39fb4c391a16cc223e0d35346ac388e66712c418" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_color", - "bevy_core_pipeline", - "bevy_derive", - "bevy_ecs", - "bevy_image", - "bevy_math", - "bevy_reflect", - "bevy_render", - "bevy_transform", - "bevy_utils", - "bevy_window", - "bitflags 2.6.0", - "bytemuck", - "derive_more", - "fixedbitset 0.5.7", - "nonmax", - "radsort", - "smallvec", - "static_assertions", -] - -[[package]] -name = "bevy_picking" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125e0c7327ec155c566c044c6eefd1a02e904134fa5dc0ba54665e06a35297b0" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_derive", - "bevy_ecs", - "bevy_hierarchy", - "bevy_input", - "bevy_math", - "bevy_reflect", - "bevy_render", - "bevy_time", - "bevy_transform", - "bevy_utils", - "bevy_window", - "uuid", -] - -[[package]] -name = "bevy_ptr" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa65df6a190b7dfc84d79f09cf02d47ae046fa86a613e202c31559e06d8d3710" - -[[package]] -name = "bevy_reflect" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab3264acc3b6f48bc23fbd09fdfea6e5d9b7bfec142e4f3333f532acf195bca" -dependencies = [ - "assert_type_match", - "bevy_ptr", - "bevy_reflect_derive", - "bevy_utils", - "derive_more", - "disqualified", - "downcast-rs", - "erased-serde", - "glam", - "serde", - "smallvec", - "smol_str", - "uuid", -] - -[[package]] -name = "bevy_reflect_derive" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f83876a322130ab38a47d5dcf75258944bf76b3387d1acdb3750920fda63e2" -dependencies = [ - "bevy_macro_utils", - "proc-macro2", - "quote", - "syn 2.0.95", - "uuid", -] - -[[package]] -name = "bevy_render" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b14d77d8ff589743237c98502c0e47fd31059cf348ab86a265c4f90bb5e2a22" -dependencies = [ - "async-channel", - "bevy_app", - "bevy_asset", - "bevy_color", - "bevy_core", - "bevy_derive", - "bevy_diagnostic", - "bevy_ecs", - "bevy_encase_derive", - "bevy_hierarchy", - "bevy_image", - "bevy_math", - "bevy_mesh", - "bevy_reflect", - "bevy_render_macros", - "bevy_tasks", - "bevy_time", - "bevy_transform", - "bevy_utils", - "bevy_window", - "bytemuck", - "codespan-reporting", - "derive_more", - "downcast-rs", - "encase", - "futures-lite", - "image", - "js-sys", - "naga", - "naga_oil", - "nonmax", - "offset-allocator", - "send_wrapper", - "serde", - "smallvec", - "wasm-bindgen", - "web-sys", - "wgpu", -] - -[[package]] -name = "bevy_render_macros" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "285769c193b832d67c5742a716c6063db573573d5df5ce0c41aa7584ef0e348e" -dependencies = [ - "bevy_macro_utils", - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "bevy_rpack" -version = "0.1.0" -dependencies = [ - "bevy", - "serde", - "serde_json", - "thiserror 2.0.9", -] - -[[package]] -name = "bevy_scene" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd00a08d01a190a826a5f6ad0fcb3dbf7bd1bd4f64ebe6108c38384691a21111" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_derive", - "bevy_ecs", - "bevy_hierarchy", - "bevy_reflect", - "bevy_render", - "bevy_transform", - "bevy_utils", - "derive_more", - "serde", - "uuid", -] - -[[package]] -name = "bevy_sprite" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c7d22da88e562fb2ae8fe7f8cc749d3024caa4dcb57a777d070ef9141577aa" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_color", - "bevy_core_pipeline", - "bevy_derive", - "bevy_ecs", - "bevy_image", - "bevy_math", - "bevy_picking", - "bevy_reflect", - "bevy_render", - "bevy_transform", - "bevy_utils", - "bevy_window", - "bitflags 2.6.0", - "bytemuck", - "derive_more", - "fixedbitset 0.5.7", - "guillotiere", - "nonmax", - "radsort", - "rectangle-pack", -] - -[[package]] -name = "bevy_state" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd10c8b01a982642596406fc4486fcd52239aa9c4aa47fed27abab93a69fba59" -dependencies = [ - "bevy_app", - "bevy_ecs", - "bevy_hierarchy", - "bevy_reflect", - "bevy_state_macros", - "bevy_utils", -] - -[[package]] -name = "bevy_state_macros" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23773797bf8077a6ad9299f10b063b6947f22dad311d855c4b3523102ab4381b" -dependencies = [ - "bevy_macro_utils", - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "bevy_tasks" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c28f2db2619203aa82342dbbe77e49aeea4f933212c0b7a1f285e94c4008e5b" -dependencies = [ - "async-channel", - "async-executor", - "concurrent-queue", - "futures-channel", - "futures-lite", - "pin-project", - "wasm-bindgen-futures", -] - -[[package]] -name = "bevy_text" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ee0b5f52946d222521f93773a6230f42e868548f881c4c5bddb1393a96298b" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_color", - "bevy_derive", - "bevy_ecs", - "bevy_hierarchy", - "bevy_image", - "bevy_math", - "bevy_reflect", - "bevy_render", - "bevy_sprite", - "bevy_transform", - "bevy_utils", - "bevy_window", - "cosmic-text", - "derive_more", - "serde", - "smallvec", - "sys-locale", - "unicode-bidi", -] - -[[package]] -name = "bevy_time" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3108ed1ef864bc40bc859ba4c9c3844213c7be3674f982203cf5d87c656848" -dependencies = [ - "bevy_app", - "bevy_ecs", - "bevy_reflect", - "bevy_utils", - "crossbeam-channel", -] - -[[package]] -name = "bevy_transform" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "056fabcedbf0503417af69447d47a983e18c7cfb5e6b6728636be3ec285cbcfa" -dependencies = [ - "bevy_app", - "bevy_ecs", - "bevy_hierarchy", - "bevy_math", - "bevy_reflect", - "derive_more", -] - -[[package]] -name = "bevy_ui" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4556fc2202c6339f95e0c24ca4c96ee959854b702e23ecf73e05fb20e67d67b0" -dependencies = [ - "accesskit", - "bevy_a11y", - "bevy_app", - "bevy_asset", - "bevy_color", - "bevy_core_pipeline", - "bevy_derive", - "bevy_ecs", - "bevy_hierarchy", - "bevy_image", - "bevy_input", - "bevy_math", - "bevy_picking", - "bevy_reflect", - "bevy_render", - "bevy_sprite", - "bevy_text", - "bevy_transform", - "bevy_utils", - "bevy_window", - "bytemuck", - "derive_more", - "nonmax", - "smallvec", - "taffy", -] - -[[package]] -name = "bevy_utils" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f01088c048960ea50ee847c3f668942ecf49ed26be12a1585a5e59b6a941d9a" -dependencies = [ - "ahash", - "bevy_utils_proc_macros", - "getrandom", - "hashbrown 0.14.5", - "thread_local", - "tracing", - "web-time", -] - -[[package]] -name = "bevy_utils_proc_macros" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0c3244d543cc964545b7aa074f6fb18a915a7121cf3de5d7ed37a4aae8662d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "bevy_window" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36139955777cc9e7a40a97833ff3a95b7401ce525a3dbac05fc52557968b31a7" -dependencies = [ - "android-activity", - "bevy_a11y", - "bevy_app", - "bevy_ecs", - "bevy_input", - "bevy_math", - "bevy_reflect", - "bevy_utils", - "raw-window-handle", - "smol_str", -] - -[[package]] -name = "bevy_winit" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36e84e7f94583cac93de4ba641029eb0b6551d35e559c829209f2b1b9fe532d8" -dependencies = [ - "accesskit", - "accesskit_winit", - "approx", - "bevy_a11y", - "bevy_app", - "bevy_derive", - "bevy_ecs", - "bevy_hierarchy", - "bevy_input", - "bevy_log", - "bevy_math", - "bevy_reflect", - "bevy_tasks", - "bevy_utils", - "bevy_window", - "cfg-if", - "crossbeam-channel", - "raw-window-handle", - "wasm-bindgen", - "web-sys", - "winit", -] - -[[package]] -name = "bindgen" -version = "0.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" -dependencies = [ - "bitflags 2.6.0", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "log", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", - "syn 2.0.95", -] - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec 0.6.3", -] - -[[package]] -name = "bit-set" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" -dependencies = [ - "bit-vec 0.8.0", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bit-vec" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" - -[[package]] -name = "bit_field" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" -dependencies = [ - "serde", -] - -[[package]] -name = "bitstream-io" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2" - -[[package]] -name = "blake3" -version = "1.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", -] - -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block2" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" -dependencies = [ - "objc2", -] - -[[package]] -name = "blocking" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" -dependencies = [ - "async-channel", - "async-task", - "futures-io", - "futures-lite", - "piper", -] - -[[package]] -name = "built" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c360505aed52b7ec96a3636c3f039d99103c37d1d9b4f7a8c743d3ea9ffcd03b" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytemuck" -version = "1.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "byteorder-lite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "calloop" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" -dependencies = [ - "bitflags 2.6.0", - "log", - "polling", - "rustix", - "slab", - "thiserror 1.0.69", -] - -[[package]] -name = "calloop-wayland-source" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" -dependencies = [ - "calloop", - "rustix", - "wayland-backend", - "wayland-client", -] - -[[package]] -name = "cc" -version = "1.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7" -dependencies = [ - "jobserver", - "libc", - "shlex", -] - -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - -[[package]] -name = "cfg-expr" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" -dependencies = [ - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cfg-if" -version = "1.0.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 = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "cgl" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff" -dependencies = [ - "libc", -] - -[[package]] -name = "clang-sys" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" -dependencies = [ - "glob", - "libc", - "libloading", -] - -[[package]] -name = "clap" -version = "4.5.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "clap_lex" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" - -[[package]] -name = "clipboard-win" -version = "5.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892" -dependencies = [ - "error-code", -] - -[[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 = "colorchoice" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" - -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[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-fnv1a-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b13ea120a812beba79e34316b3942a857c86ec1593cb34f27bb28272ce2cca" - -[[package]] -name = "const-random" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" -dependencies = [ - "const-random-macro", -] - -[[package]] -name = "const-random-macro" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" -dependencies = [ - "getrandom", - "once_cell", - "tiny-keccak", -] - -[[package]] -name = "const_panic" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53857514f72ee4a2b583de67401e3ff63a5472ca4acf289d09a9ea7636dfec17" - -[[package]] -name = "const_soft_float" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ca1caa64ef4ed453e68bb3db612e51cf1b2f5b871337f0fcab1c8f87cc3dff" - -[[package]] -name = "constant_time_eq" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" - -[[package]] -name = "constgebra" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1aaf9b65849a68662ac6c0810c8893a765c960b907dd7cfab9c4a50bf764fbc" -dependencies = [ - "const_soft_float", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "core-graphics" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.9.4", - "core-graphics-types", - "foreign-types", - "libc", -] - -[[package]] -name = "core-graphics-types" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" -dependencies = [ - "bitflags 1.3.2", - "core-foundation 0.9.4", - "libc", -] - -[[package]] -name = "cosmic-text" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59fd57d82eb4bfe7ffa9b1cec0c05e2fd378155b47f255a67983cb4afe0e80c2" -dependencies = [ - "bitflags 2.6.0", - "fontdb", - "log", - "rangemap", - "rayon", - "rustc-hash", - "rustybuzz", - "self_cell", - "swash", - "sys-locale", - "ttf-parser 0.21.1", - "unicode-bidi", - "unicode-linebreak", - "unicode-script", - "unicode-segmentation", -] - -[[package]] -name = "cpufeatures" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "ctrlc" -version = "3.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" -dependencies = [ - "nix", - "windows-sys 0.59.0", -] - -[[package]] -name = "cursor-icon" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" - -[[package]] -name = "data-encoding" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" - -[[package]] -name = "data-url" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" - -[[package]] -name = "ddsfile" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479dfe1e6737aa9e96c6ac7b69689dc4c32da8383f2c12744739d76afa8b66c4" -dependencies = [ - "bitflags 2.6.0", - "byteorder", - "enum-primitive-derive", - "num-traits", -] - -[[package]] -name = "derive_more" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" -dependencies = [ - "derive_more-impl", -] - -[[package]] -name = "derive_more-impl" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", - "unicode-xid", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "dispatch" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "disqualified" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9c272297e804878a2a4b707cfcfc6d2328b5bb936944613b4fdf2b9269afdfd" - -[[package]] -name = "dlib" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" -dependencies = [ - "libloading", -] - -[[package]] -name = "document-features" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" -dependencies = [ - "litrs", -] - -[[package]] -name = "downcast-rs" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" - -[[package]] -name = "dpi" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" - -[[package]] -name = "ecolor" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d72e9c39f6e11a2e922d04a34ec5e7ef522ea3f5a1acfca7a19d16ad5fe50f5" -dependencies = [ - "bytemuck", - "emath", - "serde", -] - -[[package]] -name = "eframe" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2f2d9e7ea2d11ec9e98a8683b6eb99f9d7d0448394ef6e0d6d91bd4eb817220" -dependencies = [ - "ahash", - "bytemuck", - "document-features", - "egui", - "egui-winit", - "egui_glow", - "glow 0.16.0", - "glutin", - "glutin-winit", - "home", - "image", - "js-sys", - "log", - "objc2", - "objc2-app-kit", - "objc2-foundation", - "parking_lot", - "percent-encoding", - "profiling", - "raw-window-handle", - "ron", - "serde", - "static_assertions", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "web-time", - "winapi", - "windows-sys 0.59.0", - "winit", -] - -[[package]] -name = "egui" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "252d52224d35be1535d7fd1d6139ce071fb42c9097773e79f7665604f5596b5e" -dependencies = [ - "accesskit", - "ahash", - "emath", - "epaint", - "log", - "nohash-hasher", - "profiling", - "ron", - "serde", -] - -[[package]] -name = "egui-winit" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e84c2919cd9f3a38a91e8f84ac6a245c19251fd95226ed9fae61d5ea564fce3" -dependencies = [ - "accesskit_winit", - "ahash", - "arboard", - "egui", - "log", - "profiling", - "raw-window-handle", - "serde", - "smithay-clipboard", - "web-time", - "webbrowser", - "winit", -] - -[[package]] -name = "egui_extras" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7a8198c088b1007108cb2d403bc99a5e370999b200db4f14559610d7330126" -dependencies = [ - "ahash", - "egui", - "ehttp", - "enum-map", - "image", - "log", - "mime_guess2", - "profiling", - "resvg", -] - -[[package]] -name = "egui_glow" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eaf6264cc7608e3e69a7d57a6175f438275f1b3889c1a551b418277721c95e6" -dependencies = [ - "ahash", - "bytemuck", - "egui", - "glow 0.16.0", - "log", - "memoffset", - "profiling", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "egui_json_tree" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81284e465c428d209a2641a3e2cb6f09d5495b1eb087f6e21fbb1b33c1cd716f" -dependencies = [ - "egui", - "serde_json", -] - -[[package]] -name = "ehttp" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a81c221a1e4dad06cb9c9deb19aea1193a5eea084e8cd42d869068132bf876" -dependencies = [ - "document-features", - "js-sys", - "ureq", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "either" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" - -[[package]] -name = "emath" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4fe73c1207b864ee40aa0b0c038d6092af1030744678c60188a05c28553515d" -dependencies = [ - "bytemuck", - "serde", -] - -[[package]] -name = "encase" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0a05902cf601ed11d564128448097b98ebe3c6574bd7b6a653a3d56d54aa020" -dependencies = [ - "const_panic", - "encase_derive", - "glam", - "thiserror 1.0.69", -] - -[[package]] -name = "encase_derive" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "181d475b694e2dd56ae919ce7699d344d1fd259292d590c723a50d1189a2ea85" -dependencies = [ - "encase_derive_impl", -] - -[[package]] -name = "encase_derive_impl" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f97b51c5cc57ef7c5f7a0c57c250251c49ee4c28f819f87ac32f4aceabc36792" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "endi" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" - -[[package]] -name = "enum-map" -version = "2.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9" -dependencies = [ - "enum-map-derive", - "serde", -] - -[[package]] -name = "enum-map-derive" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "enum-primitive-derive" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c375b9c5eadb68d0a6efee2999fef292f45854c3444c86f09d8ab086ba942b0e" -dependencies = [ - "num-traits", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "enumflags2" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" -dependencies = [ - "enumflags2_derive", - "serde", -] - -[[package]] -name = "enumflags2_derive" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "enumn" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "env_filter" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "humantime", - "log", -] - -[[package]] -name = "epaint" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5666f8d25236293c966fbb3635eac18b04ad1914e3bab55bc7d44b9980cafcac" -dependencies = [ - "ab_glyph", - "ahash", - "bytemuck", - "ecolor", - "emath", - "epaint_default_fonts", - "log", - "nohash-hasher", - "parking_lot", - "profiling", - "serde", -] - -[[package]] -name = "epaint_default_fonts" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66f6ddac3e6ac6fd4c3d48bb8b1943472f8da0f43a4303bcd8a18aa594401c80" - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "erased-serde" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" -dependencies = [ - "serde", - "typeid", -] - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "error-code" -version = "3.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f" - -[[package]] -name = "euclid" -version = "0.22.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad9cdb4b747e485a12abb0e6566612956c7a1bafa3bdb8d682c5b6d403589e48" -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 = "event-listener" -version = "5.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" -dependencies = [ - "event-listener 5.3.1", - "pin-project-lite", -] - -[[package]] -name = "exr" -version = "1.73.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0" -dependencies = [ - "bit_field", - "half", - "lebe", - "miniz_oxide", - "rayon-core", - "smallvec", - "zune-inflate", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fdeflate" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" -dependencies = [ - "simd-adler32", -] - -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - -[[package]] -name = "flate2" -version = "1.0.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "float-cmp" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" - -[[package]] -name = "foldhash" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" - -[[package]] -name = "font-types" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3971f9a5ca983419cdc386941ba3b9e1feba01a0ab888adf78739feb2798492" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "fontconfig-parser" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fcfcd44ca6e90c921fee9fa665d530b21ef1327a4c1a6c5250ea44b776ada7" -dependencies = [ - "roxmltree 0.20.0", -] - -[[package]] -name = "fontdb" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3" -dependencies = [ - "fontconfig-parser", - "log", - "memmap2", - "slotmap", - "tinyvec", - "ttf-parser 0.20.0", -] - -[[package]] -name = "foreign-types" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" -dependencies = [ - "foreign-types-macros", - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-macros" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "foreign-types-shared" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - -[[package]] -name = "futures-lite" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "parking", - "pin-project-lite", -] - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "gethostname" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" -dependencies = [ - "libc", - "windows-targets 0.48.5", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi", - "wasm-bindgen", -] - -[[package]] -name = "gif" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2" -dependencies = [ - "color_quant", - "weezl", -] - -[[package]] -name = "gl_generator" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" -dependencies = [ - "khronos_api", - "log", - "xml-rs", -] - -[[package]] -name = "glam" -version = "0.29.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc46dd3ec48fdd8e693a98d2b8bafae273a2d54c1de02a2a7e3d57d501f39677" -dependencies = [ - "bytemuck", - "rand", - "serde", -] - -[[package]] -name = "glob" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" - -[[package]] -name = "glow" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51fa363f025f5c111e03f13eda21162faeacb6911fe8caa0c0349f9cf0c4483" -dependencies = [ - "js-sys", - "slotmap", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "glow" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08" -dependencies = [ - "js-sys", - "slotmap", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "glutin" -version = "0.32.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec69412a0bf07ea7607e638b415447857a808846c2b685a43c8aa18bc6d5e499" -dependencies = [ - "bitflags 2.6.0", - "cfg_aliases 0.2.1", - "cgl", - "core-foundation 0.9.4", - "dispatch", - "glutin_egl_sys", - "glutin_wgl_sys", - "libloading", - "objc2", - "objc2-app-kit", - "objc2-foundation", - "once_cell", - "raw-window-handle", - "windows-sys 0.52.0", -] - -[[package]] -name = "glutin-winit" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85edca7075f8fc728f28cb8fbb111a96c3b89e930574369e3e9c27eb75d3788f" -dependencies = [ - "cfg_aliases 0.2.1", - "glutin", - "raw-window-handle", - "winit", -] - -[[package]] -name = "glutin_egl_sys" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae99fff4d2850dbe6fb8c1fa8e4fead5525bab715beaacfccf3fb994e01c827" -dependencies = [ - "gl_generator", - "windows-sys 0.52.0", -] - -[[package]] -name = "glutin_wgl_sys" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e1951bbd9434a81aa496fe59ccc2235af3820d27b85f9314e279609211e2c" -dependencies = [ - "gl_generator", -] - -[[package]] -name = "gpu-alloc" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" -dependencies = [ - "bitflags 2.6.0", - "gpu-alloc-types", -] - -[[package]] -name = "gpu-alloc-types" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" -dependencies = [ - "bitflags 2.6.0", -] - -[[package]] -name = "gpu-allocator" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c151a2a5ef800297b4e79efa4f4bec035c5f51d5ae587287c9b952bdf734cacd" -dependencies = [ - "log", - "presser", - "thiserror 1.0.69", - "windows", -] - -[[package]] -name = "gpu-descriptor" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf29e94d6d243368b7a56caa16bc213e4f9f8ed38c4d9557069527b5d5281ca" -dependencies = [ - "bitflags 2.6.0", - "gpu-descriptor-types", - "hashbrown 0.15.2", -] - -[[package]] -name = "gpu-descriptor-types" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" -dependencies = [ - "bitflags 2.6.0", -] - -[[package]] -name = "grid" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be136d9dacc2a13cc70bb6c8f902b414fb2641f8db1314637c6b7933411a8f82" - -[[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 = "half" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" -dependencies = [ - "bytemuck", - "cfg-if", - "crunchy", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", - "serde", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" -dependencies = [ - "foldhash", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "hermit-abi" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hexasphere" -version = "15.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c9e718d32b6e6b2b32354e1b0367025efdd0b11d6a740b905ddf5db1074679" -dependencies = [ - "constgebra", - "glam", - "tinyvec", -] - -[[package]] -name = "hexf-parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" - -[[package]] -name = "home" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "image" -version = "0.25.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b" -dependencies = [ - "bytemuck", - "byteorder-lite", - "color_quant", - "exr", - "gif", - "image-webp", - "num-traits", - "png", - "qoi", - "ravif", - "rayon", - "rgb", - "tiff", - "zune-core", - "zune-jpeg", -] - -[[package]] -name = "image-webp" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e031e8e3d94711a9ccb5d6ea357439ef3dcbed361798bd4071dc4d9793fbe22f" -dependencies = [ - "byteorder-lite", - "quick-error", -] - -[[package]] -name = "image_dds" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c6d1a2d80bc7dd2928b2a72a46d71bccbb6becf8ce207522b0b92daf0a417f" -dependencies = [ - "bcdec_rs", - "bytemuck", - "ddsfile", - "half", - "image", - "intel_tex_2", - "strum", - "thiserror 1.0.69", -] - -[[package]] -name = "imagesize" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284" - -[[package]] -name = "imgref" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408" - -[[package]] -name = "immutable-chunkmap" -version = "2.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f97096f508d54f8f8ab8957862eee2ccd628847b6217af1a335e1c44dee578" -dependencies = [ - "arrayvec", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown 0.15.2", -] - -[[package]] -name = "intel_tex_2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd699c0e6adcac28c06db24a220c834c8ec811e0d2d80f0261bb14e01737b4dc" -dependencies = [ - "ispc_rt", -] - -[[package]] -name = "interpolate_name" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - -[[package]] -name = "ispc_rt" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d30e08ddfd6fe26c3ee2e856dff022420cd0514ed16f5ccf2dc3e1d5cae578" -dependencies = [ - "libc", - "num_cpus", -] - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "jni" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" -dependencies = [ - "cesu8", - "cfg-if", - "combine", - "jni-sys", - "log", - "thiserror 1.0.69", - "walkdir", - "windows-sys 0.45.0", -] - -[[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - -[[package]] -name = "jobserver" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" -dependencies = [ - "libc", -] - -[[package]] -name = "jpeg-decoder" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "khronos-egl" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" -dependencies = [ - "libc", - "libloading", - "pkg-config", -] - -[[package]] -name = "khronos_api" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" - -[[package]] -name = "kurbo" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd85a5776cd9500c2e2059c8c76c3b01528566b7fcbaf8098b55a33fc298849b" -dependencies = [ - "arrayvec", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - -[[package]] -name = "lebe" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "libfuzzer-sys" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b9569d2f74e257076d8c6bfa73fb505b46b851e51ddaecc825944aa3bed17fa" -dependencies = [ - "arbitrary", - "cc", -] - -[[package]] -name = "libloading" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" -dependencies = [ - "cfg-if", - "windows-targets 0.52.6", -] - -[[package]] -name = "libm" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" - -[[package]] -name = "libredox" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" -dependencies = [ - "bitflags 2.6.0", - "libc", - "redox_syscall 0.5.8", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "litrs" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" - -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "loop9" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" -dependencies = [ - "imgref", -] - -[[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 0.1.10", -] - -[[package]] -name = "maybe-rayon" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" -dependencies = [ - "cfg-if", - "rayon", -] - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "memmap2" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - -[[package]] -name = "metal" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" -dependencies = [ - "bitflags 2.6.0", - "block", - "core-graphics-types", - "foreign-types", - "log", - "objc", - "paste", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess2" -version = "2.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a3333bb1609500601edc766a39b4c1772874a4ce26022f4d866854dc020c41" -dependencies = [ - "mime", - "unicase", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", - "simd-adler32", -] - -[[package]] -name = "naga" -version = "23.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "364f94bc34f61332abebe8cad6f6cd82a5b65cff22c828d05d0968911462ca4f" -dependencies = [ - "arrayvec", - "bit-set 0.8.0", - "bitflags 2.6.0", - "cfg_aliases 0.1.1", - "codespan-reporting", - "hexf-parse", - "indexmap", - "log", - "pp-rs", - "rustc-hash", - "spirv", - "termcolor", - "thiserror 1.0.69", - "unicode-xid", -] - -[[package]] -name = "naga_oil" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31ea1f080bb359927cd5404d0af1e5e6758f4f2d82ecfbebb0a0c434764e40f1" -dependencies = [ - "bit-set 0.5.3", - "codespan-reporting", - "data-encoding", - "indexmap", - "naga", - "once_cell", - "regex", - "regex-syntax 0.8.5", - "rustc-hash", - "thiserror 1.0.69", - "tracing", - "unicode-ident", -] - -[[package]] -name = "ndk" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" -dependencies = [ - "bitflags 2.6.0", - "jni-sys", - "log", - "ndk-sys 0.6.0+11769913", - "num_enum", - "raw-window-handle", - "thiserror 1.0.69", -] - -[[package]] -name = "ndk-context" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" - -[[package]] -name = "ndk-sys" -version = "0.5.0+25.2.9519653" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" -dependencies = [ - "jni-sys", -] - -[[package]] -name = "ndk-sys" -version = "0.6.0+11769913" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" -dependencies = [ - "jni-sys", -] - -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - -[[package]] -name = "nix" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" -dependencies = [ - "bitflags 2.6.0", - "cfg-if", - "cfg_aliases 0.2.1", - "libc", - "memoffset", -] - -[[package]] -name = "nohash-hasher" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nonmax" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51" - -[[package]] -name = "noop_proc_macro" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" - -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - -[[package]] -name = "num-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi 0.3.9", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "objc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -dependencies = [ - "malloc_buf", -] - -[[package]] -name = "objc-sys" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" - -[[package]] -name = "objc2" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" -dependencies = [ - "objc-sys", - "objc2-encode", -] - -[[package]] -name = "objc2-app-kit" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" -dependencies = [ - "bitflags 2.6.0", - "block2", - "libc", - "objc2", - "objc2-core-data", - "objc2-core-image", - "objc2-foundation", - "objc2-quartz-core", -] - -[[package]] -name = "objc2-cloud-kit" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" -dependencies = [ - "bitflags 2.6.0", - "block2", - "objc2", - "objc2-core-location", - "objc2-foundation", -] - -[[package]] -name = "objc2-contacts" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" -dependencies = [ - "block2", - "objc2", - "objc2-foundation", -] - -[[package]] -name = "objc2-core-data" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" -dependencies = [ - "bitflags 2.6.0", - "block2", - "objc2", - "objc2-foundation", -] - -[[package]] -name = "objc2-core-image" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" -dependencies = [ - "block2", - "objc2", - "objc2-foundation", - "objc2-metal", -] - -[[package]] -name = "objc2-core-location" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" -dependencies = [ - "block2", - "objc2", - "objc2-contacts", - "objc2-foundation", -] - -[[package]] -name = "objc2-encode" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" - -[[package]] -name = "objc2-foundation" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" -dependencies = [ - "bitflags 2.6.0", - "block2", - "dispatch", - "libc", - "objc2", -] - -[[package]] -name = "objc2-link-presentation" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" -dependencies = [ - "block2", - "objc2", - "objc2-app-kit", - "objc2-foundation", -] - -[[package]] -name = "objc2-metal" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" -dependencies = [ - "bitflags 2.6.0", - "block2", - "objc2", - "objc2-foundation", -] - -[[package]] -name = "objc2-quartz-core" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" -dependencies = [ - "bitflags 2.6.0", - "block2", - "objc2", - "objc2-foundation", - "objc2-metal", -] - -[[package]] -name = "objc2-symbols" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" -dependencies = [ - "objc2", - "objc2-foundation", -] - -[[package]] -name = "objc2-ui-kit" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" -dependencies = [ - "bitflags 2.6.0", - "block2", - "objc2", - "objc2-cloud-kit", - "objc2-core-data", - "objc2-core-image", - "objc2-core-location", - "objc2-foundation", - "objc2-link-presentation", - "objc2-quartz-core", - "objc2-symbols", - "objc2-uniform-type-identifiers", - "objc2-user-notifications", -] - -[[package]] -name = "objc2-uniform-type-identifiers" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" -dependencies = [ - "block2", - "objc2", - "objc2-foundation", -] - -[[package]] -name = "objc2-user-notifications" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" -dependencies = [ - "bitflags 2.6.0", - "block2", - "objc2", - "objc2-core-location", - "objc2-foundation", -] - -[[package]] -name = "offset-allocator" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e234d535da3521eb95106f40f0b73483d80bfb3aacf27c40d7e2b72f1a3e00a2" -dependencies = [ - "log", - "nonmax", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "orbclient" -version = "0.3.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43" -dependencies = [ - "libredox", -] - -[[package]] -name = "ordered-stream" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" -dependencies = [ - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "owned_ttf_parser" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec719bbf3b2a81c109a4e20b1f129b5566b7dce654bc3872f6a05abf82b2c4" -dependencies = [ - "ttf-parser 0.25.1", -] - -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.5.8", - "smallvec", - "windows-targets 0.52.6", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "petgraph" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = [ - "fixedbitset 0.4.2", - "indexmap", -] - -[[package]] -name = "pico-args" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" - -[[package]] -name = "pin-project" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "piper" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" -dependencies = [ - "atomic-waker", - "fastrand", - "futures-io", -] - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "png" -version = "0.17.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" -dependencies = [ - "bitflags 1.3.2", - "crc32fast", - "fdeflate", - "flate2", - "miniz_oxide", -] - -[[package]] -name = "polling" -version = "3.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" -dependencies = [ - "cfg-if", - "concurrent-queue", - "hermit-abi 0.4.0", - "pin-project-lite", - "rustix", - "tracing", - "windows-sys 0.59.0", -] - -[[package]] -name = "pollster" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" - -[[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.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "presser" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" - -[[package]] -name = "prettyplease" -version = "0.2.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483f8c21f64f3ea09fe0f30f5d48c3e8eefe5dac9129f0075f76593b4c1da705" -dependencies = [ - "proc-macro2", - "syn 2.0.95", -] - -[[package]] -name = "proc-macro-crate" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" -dependencies = [ - "toml_edit", -] - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "profiling" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d" -dependencies = [ - "profiling-procmacros", -] - -[[package]] -name = "profiling-procmacros" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30" -dependencies = [ - "quote", - "syn 2.0.95", -] - -[[package]] -name = "qoi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "quick-error" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" - -[[package]] -name = "quick-xml" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" -dependencies = [ - "memchr", - "serde", -] - -[[package]] -name = "quick-xml" -version = "0.36.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" -dependencies = [ - "memchr", -] - -[[package]] -name = "quote" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radsort" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "019b4b213425016d7d84a153c4c73afb0946fbb4840e4eece7ba8848b9d6da22" - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[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", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rand_distr" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" -dependencies = [ - "num-traits", - "rand", -] - -[[package]] -name = "range-alloc" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" - -[[package]] -name = "rangemap" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684" - -[[package]] -name = "rav1e" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" -dependencies = [ - "arbitrary", - "arg_enum_proc_macro", - "arrayvec", - "av1-grain", - "bitstream-io", - "built", - "cfg-if", - "interpolate_name", - "itertools 0.12.1", - "libc", - "libfuzzer-sys", - "log", - "maybe-rayon", - "new_debug_unreachable", - "noop_proc_macro", - "num-derive", - "num-traits", - "once_cell", - "paste", - "profiling", - "rand", - "rand_chacha", - "simd_helpers", - "system-deps", - "thiserror 1.0.69", - "v_frame", - "wasm-bindgen", -] - -[[package]] -name = "ravif" -version = "0.11.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2413fd96bd0ea5cdeeb37eaf446a22e6ed7b981d792828721e74ded1980a45c6" -dependencies = [ - "avif-serialize", - "imgref", - "loop9", - "quick-error", - "rav1e", - "rayon", - "rgb", -] - -[[package]] -name = "raw-window-handle" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "rctree" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f" - -[[package]] -name = "read-fonts" -version = "0.22.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69aacb76b5c29acfb7f90155d39759a29496aebb49395830e928a9703d2eec2f" -dependencies = [ - "bytemuck", - "font-types", -] - -[[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.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" -dependencies = [ - "bitflags 2.6.0", -] - -[[package]] -name = "regex" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-automata" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" - -[[package]] -name = "renderdoc-sys" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" - -[[package]] -name = "resvg" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cadccb3d99a9efb8e5e00c16fbb732cbe400db2ec7fc004697ee7d97d86cf1f4" -dependencies = [ - "log", - "pico-args", - "rgb", - "svgtypes", - "tiny-skia", - "usvg", -] - -[[package]] -name = "rfd" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a24763657bff09769a8ccf12c8b8a50416fb035fe199263b4c5071e4e3f006f" -dependencies = [ - "ashpd", - "block2", - "core-foundation 0.10.0", - "core-foundation-sys", - "js-sys", - "log", - "objc2", - "objc2-app-kit", - "objc2-foundation", - "pollster", - "raw-window-handle", - "urlencoding", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "rgb" -version = "0.8.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if", - "getrandom", - "libc", - "spin", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "ron" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" -dependencies = [ - "base64 0.21.7", - "bitflags 2.6.0", - "serde", - "serde_derive", -] - -[[package]] -name = "roxmltree" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f" - -[[package]] -name = "roxmltree" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" - -[[package]] -name = "rpack" -version = "0.1.0" -dependencies = [ - "anyhow", - "eframe", - "egui", - "egui_extras", - "egui_json_tree", - "env_logger", - "image", - "js-sys", - "log", - "rfd", - "rpack_cli", - "serde", - "serde_json", - "texture_packer", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "rpack_cli" -version = "0.0.0" -dependencies = [ - "anyhow", - "basis-universal", - "bevy_rpack", - "clap", - "glob", - "image", - "image_dds", - "serde", - "serde_json", - "texture_packer", - "thiserror 2.0.9", -] - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags 2.6.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "rustls" -version = "0.23.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" -dependencies = [ - "log", - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pki-types" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" - -[[package]] -name = "rustls-webpki" -version = "0.102.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" - -[[package]] -name = "rustybuzz" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c" -dependencies = [ - "bitflags 2.6.0", - "bytemuck", - "libm", - "smallvec", - "ttf-parser 0.21.1", - "unicode-bidi-mirroring", - "unicode-ccc", - "unicode-properties", - "unicode-script", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "self_cell" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe" - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - -[[package]] -name = "serde" -version = "1.0.217" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.217" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "serde_json" -version = "1.0.135" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_repr" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "serde_spanned" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" -dependencies = [ - "serde", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signal-hook-registry" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = [ - "libc", -] - -[[package]] -name = "simd-adler32" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" - -[[package]] -name = "simd_helpers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" -dependencies = [ - "quote", -] - -[[package]] -name = "simplecss" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9c6883ca9c3c7c90e888de77b7a5c849c779d25d74a1269b0218b14e8b136c" -dependencies = [ - "log", -] - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - -[[package]] -name = "skrifa" -version = "0.22.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1c44ad1f6c5bdd4eefed8326711b7dbda9ea45dfd36068c427d332aa382cbe" -dependencies = [ - "bytemuck", - "read-fonts", -] - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "slotmap" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" -dependencies = [ - "version_check", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "smithay-client-toolkit" -version = "0.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" -dependencies = [ - "bitflags 2.6.0", - "calloop", - "calloop-wayland-source", - "cursor-icon", - "libc", - "log", - "memmap2", - "rustix", - "thiserror 1.0.69", - "wayland-backend", - "wayland-client", - "wayland-csd-frame", - "wayland-cursor", - "wayland-protocols", - "wayland-protocols-wlr", - "wayland-scanner", - "xkeysym", -] - -[[package]] -name = "smithay-clipboard" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc8216eec463674a0e90f29e0ae41a4db573ec5b56b1c6c1c71615d249b6d846" -dependencies = [ - "libc", - "smithay-client-toolkit", - "wayland-backend", -] - -[[package]] -name = "smol_str" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" -dependencies = [ - "serde", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spirv" -version = "0.3.0+sdk-1.3.268.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" -dependencies = [ - "bitflags 2.6.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "stackfuture" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eae92052b72ef70dafa16eddbabffc77e5ca3574be2f7bc1127b36f0a7ad7f2" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strict-num" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" -dependencies = [ - "float-cmp", -] - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.95", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "svg_fmt" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce5d813d71d82c4cbc1742135004e4a79fd870214c155443451c139c9470a0aa" - -[[package]] -name = "svgtypes" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e44e288cd960318917cbd540340968b90becc8bc81f171345d706e7a89d9d70" -dependencies = [ - "kurbo", - "siphasher", -] - -[[package]] -name = "swash" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbd59f3f359ddd2c95af4758c18270eddd9c730dde98598023cdabff472c2ca2" -dependencies = [ - "skrifa", - "yazi", - "zeno", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.95" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f71c0377baf4ef1cc3e3402ded576dccc315800fbc62dfc7fe04b009773b4a" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "sys-locale" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" -dependencies = [ - "libc", -] - -[[package]] -name = "system-deps" -version = "6.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" -dependencies = [ - "cfg-expr", - "heck", - "pkg-config", - "toml", - "version-compare", -] - -[[package]] -name = "taffy" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cb893bff0f80ae17d3a57e030622a967b8dbc90e38284d9b4b1442e23873c94" -dependencies = [ - "arrayvec", - "grid", - "num-traits", - "serde", - "slotmap", -] - -[[package]] -name = "target-lexicon" -version = "0.12.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" - -[[package]] -name = "tempfile" -version = "3.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" -dependencies = [ - "cfg-if", - "fastrand", - "getrandom", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "texture_packer" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fd18766b2465d3a40ca28d9f62446ae872624ba0fdc060b24f11ee6b7e70d59" -dependencies = [ - "image", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc" -dependencies = [ - "thiserror-impl 2.0.9", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "thread_local" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" -dependencies = [ - "cfg-if", - "once_cell", -] - -[[package]] -name = "tiff" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" -dependencies = [ - "flate2", - "jpeg-decoder", - "weezl", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tiny-skia" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" -dependencies = [ - "arrayref", - "arrayvec", - "bytemuck", - "cfg-if", - "log", - "png", - "tiny-skia-path", -] - -[[package]] -name = "tiny-skia-path" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" -dependencies = [ - "arrayref", - "bytemuck", - "strict-num", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "toml" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.22.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" -dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-oslog" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528bdd1f0e27b5dd9a4ededf154e824b0532731e4af73bb531de46276e0aab1e" -dependencies = [ - "bindgen", - "cc", - "cfg-if", - "once_cell", - "parking_lot", - "tracing-core", - "tracing-subscriber", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" -dependencies = [ - "matchers", - "nu-ansi-term", - "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.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" - -[[package]] -name = "ttf-parser" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8" - -[[package]] -name = "ttf-parser" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" - -[[package]] -name = "typeid" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "uds_windows" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" -dependencies = [ - "memoffset", - "tempfile", - "winapi", -] - -[[package]] -name = "unicase" -version = "2.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" - -[[package]] -name = "unicode-bidi" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" - -[[package]] -name = "unicode-bidi-mirroring" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86" - -[[package]] -name = "unicode-ccc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "unicode-linebreak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" - -[[package]] -name = "unicode-properties" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" - -[[package]] -name = "unicode-script" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb421b350c9aff471779e262955939f565ec18b86c15364e6bdf0d662ca7c1f" - -[[package]] -name = "unicode-segmentation" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" - -[[package]] -name = "unicode-width" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" - -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "ureq" -version = "2.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d" -dependencies = [ - "base64 0.22.1", - "flate2", - "log", - "once_cell", - "rustls", - "rustls-pki-types", - "url", - "webpki-roots", -] - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "urlencoding" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" - -[[package]] -name = "usvg" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b0a51b72ab80ca511d126b77feeeb4fb1e972764653e61feac30adc161a756" -dependencies = [ - "base64 0.21.7", - "log", - "pico-args", - "usvg-parser", - "usvg-tree", - "xmlwriter", -] - -[[package]] -name = "usvg-parser" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd4e3c291f45d152929a31f0f6c819245e2921bfd01e7bd91201a9af39a2bdc" -dependencies = [ - "data-url", - "flate2", - "imagesize", - "kurbo", - "log", - "roxmltree 0.19.0", - "simplecss", - "siphasher", - "svgtypes", - "usvg-tree", -] - -[[package]] -name = "usvg-tree" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ee3d202ebdb97a6215604b8f5b4d6ef9024efd623cf2e373a6416ba976ec7d3" -dependencies = [ - "rctree", - "strict-num", - "svgtypes", - "tiny-skia-path", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", - "serde", -] - -[[package]] -name = "v_frame" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b" -dependencies = [ - "aligned-vec", - "num-traits", - "wasm-bindgen", -] - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "version-compare" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - -[[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.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.95", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "wayland-backend" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "056535ced7a150d45159d3a8dc30f91a2e2d588ca0b23f70e56033622b8016f6" -dependencies = [ - "cc", - "downcast-rs", - "rustix", - "scoped-tls", - "smallvec", - "wayland-sys", -] - -[[package]] -name = "wayland-client" -version = "0.31.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66249d3fc69f76fd74c82cc319300faa554e9d865dab1f7cd66cc20db10b280" -dependencies = [ - "bitflags 2.6.0", - "rustix", - "wayland-backend", - "wayland-scanner", -] - -[[package]] -name = "wayland-csd-frame" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" -dependencies = [ - "bitflags 2.6.0", - "cursor-icon", - "wayland-backend", -] - -[[package]] -name = "wayland-cursor" -version = "0.31.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b08bc3aafdb0035e7fe0fdf17ba0c09c268732707dca4ae098f60cb28c9e4c" -dependencies = [ - "rustix", - "wayland-client", - "xcursor", -] - -[[package]] -name = "wayland-protocols" -version = "0.32.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd0ade57c4e6e9a8952741325c30bf82f4246885dca8bf561898b86d0c1f58e" -dependencies = [ - "bitflags 2.6.0", - "wayland-backend", - "wayland-client", - "wayland-scanner", -] - -[[package]] -name = "wayland-protocols-wlr" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "782e12f6cd923c3c316130d56205ebab53f55d6666b7faddfad36cecaeeb4022" -dependencies = [ - "bitflags 2.6.0", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-scanner", -] - -[[package]] -name = "wayland-scanner" -version = "0.31.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" -dependencies = [ - "proc-macro2", - "quick-xml 0.36.2", - "quote", -] - -[[package]] -name = "wayland-sys" -version = "0.31.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efa8ac0d8e8ed3e3b5c9fc92c7881406a268e11555abe36493efabe649a29e09" -dependencies = [ - "dlib", - "log", - "once_cell", - "pkg-config", -] - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "web-time" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webbrowser" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea9fe1ebb156110ff855242c1101df158b822487e4957b0556d9ffce9db0f535" -dependencies = [ - "block2", - "core-foundation 0.10.0", - "home", - "jni", - "log", - "ndk-context", - "objc2", - "objc2-foundation", - "url", - "web-sys", -] - -[[package]] -name = "webpki-roots" -version = "0.26.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "weezl" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" - -[[package]] -name = "wgpu" -version = "23.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f70000db37c469ea9d67defdc13024ddf9a5f1b89cb2941b812ad7cde1735a" -dependencies = [ - "arrayvec", - "cfg_aliases 0.1.1", - "document-features", - "js-sys", - "log", - "naga", - "parking_lot", - "profiling", - "raw-window-handle", - "smallvec", - "static_assertions", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "wgpu-core", - "wgpu-hal", - "wgpu-types", -] - -[[package]] -name = "wgpu-core" -version = "23.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d63c3c478de8e7e01786479919c8769f62a22eec16788d8c2ac77ce2c132778a" -dependencies = [ - "arrayvec", - "bit-vec 0.8.0", - "bitflags 2.6.0", - "cfg_aliases 0.1.1", - "document-features", - "indexmap", - "log", - "naga", - "once_cell", - "parking_lot", - "profiling", - "raw-window-handle", - "rustc-hash", - "smallvec", - "thiserror 1.0.69", - "wgpu-hal", - "wgpu-types", -] - -[[package]] -name = "wgpu-hal" -version = "23.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89364b8a0b211adc7b16aeaf1bd5ad4a919c1154b44c9ce27838213ba05fd821" -dependencies = [ - "android_system_properties", - "arrayvec", - "ash", - "bit-set 0.8.0", - "bitflags 2.6.0", - "block", - "bytemuck", - "cfg_aliases 0.1.1", - "core-graphics-types", - "glow 0.14.2", - "glutin_wgl_sys", - "gpu-alloc", - "gpu-allocator", - "gpu-descriptor", - "js-sys", - "khronos-egl", - "libc", - "libloading", - "log", - "metal", - "naga", - "ndk-sys 0.5.0+25.2.9519653", - "objc", - "once_cell", - "parking_lot", - "profiling", - "range-alloc", - "raw-window-handle", - "renderdoc-sys", - "rustc-hash", - "smallvec", - "thiserror 1.0.69", - "wasm-bindgen", - "web-sys", - "wgpu-types", - "windows", - "windows-core", -] - -[[package]] -name = "wgpu-types" -version = "23.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "610f6ff27778148c31093f3b03abc4840f9636d58d597ca2f5977433acfe0068" -dependencies = [ - "bitflags 2.6.0", - "js-sys", - "web-sys", -] - -[[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.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" -dependencies = [ - "windows-sys 0.59.0", -] - -[[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" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" -dependencies = [ - "windows-core", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-result", - "windows-strings", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-implement" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "windows-interface" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "windows-result" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winit" -version = "0.30.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5d74280aabb958072864bff6cfbcf9025cf8bfacdde5e32b5e12920ef703b0f" -dependencies = [ - "android-activity", - "atomic-waker", - "bitflags 2.6.0", - "block2", - "calloop", - "cfg_aliases 0.2.1", - "concurrent-queue", - "core-foundation 0.9.4", - "core-graphics", - "cursor-icon", - "dpi", - "js-sys", - "libc", - "ndk", - "objc2", - "objc2-app-kit", - "objc2-foundation", - "objc2-ui-kit", - "orbclient", - "pin-project", - "raw-window-handle", - "redox_syscall 0.4.1", - "rustix", - "smol_str", - "tracing", - "unicode-segmentation", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "web-time", - "windows-sys 0.52.0", - "xkbcommon-dl", -] - -[[package]] -name = "winnow" -version = "0.6.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39281189af81c07ec09db316b302a3e67bf9bd7cbf6c820b50e35fee9c2fa980" -dependencies = [ - "memchr", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "x11rb" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" -dependencies = [ - "gethostname", - "rustix", - "x11rb-protocol", -] - -[[package]] -name = "x11rb-protocol" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" - -[[package]] -name = "xcursor" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef33da6b1660b4ddbfb3aef0ade110c8b8a781a3b6382fa5f2b5b040fd55f61" - -[[package]] -name = "xdg-home" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "xkbcommon-dl" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" -dependencies = [ - "bitflags 2.6.0", - "dlib", - "log", - "once_cell", - "xkeysym", -] - -[[package]] -name = "xkeysym" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" - -[[package]] -name = "xml-rs" -version = "0.8.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea8b391c9a790b496184c29f7f93b9ed5b16abb306c05415b68bcc16e4d06432" - -[[package]] -name = "xmlwriter" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" - -[[package]] -name = "yazi" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", - "synstructure", -] - -[[package]] -name = "zbus" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725" -dependencies = [ - "async-broadcast 0.7.2", - "async-executor", - "async-fs", - "async-io", - "async-lock", - "async-process", - "async-recursion", - "async-task", - "async-trait", - "blocking", - "enumflags2", - "event-listener 5.3.1", - "futures-core", - "futures-sink", - "futures-util", - "hex", - "nix", - "ordered-stream", - "rand", - "serde", - "serde_repr", - "sha1", - "static_assertions", - "tracing", - "uds_windows", - "windows-sys 0.52.0", - "xdg-home", - "zbus_macros 4.4.0", - "zbus_names 3.0.0", - "zvariant 4.2.0", -] - -[[package]] -name = "zbus" -version = "5.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb67eadba43784b6fb14857eba0d8fc518686d3ee537066eb6086dc318e2c8a1" -dependencies = [ - "async-broadcast 0.7.2", - "async-executor", - "async-fs", - "async-io", - "async-lock", - "async-process", - "async-recursion", - "async-task", - "async-trait", - "blocking", - "enumflags2", - "event-listener 5.3.1", - "futures-core", - "futures-util", - "hex", - "nix", - "ordered-stream", - "serde", - "serde_repr", - "static_assertions", - "tracing", - "uds_windows", - "windows-sys 0.59.0", - "winnow", - "xdg-home", - "zbus_macros 5.2.0", - "zbus_names 4.1.0", - "zvariant 5.1.0", -] - -[[package]] -name = "zbus-lockstep" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca2c5dceb099bddaade154055c926bb8ae507a18756ba1d8963fd7b51d8ed1d" -dependencies = [ - "zbus_xml", - "zvariant 4.2.0", -] - -[[package]] -name = "zbus-lockstep-macros" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "709ab20fc57cb22af85be7b360239563209258430bccf38d8b979c5a2ae3ecce" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", - "zbus-lockstep", - "zbus_xml", - "zvariant 4.2.0", -] - -[[package]] -name = "zbus_macros" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.95", - "zvariant_utils 2.1.0", -] - -[[package]] -name = "zbus_macros" -version = "5.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d49ebc960ceb660f2abe40a5904da975de6986f2af0d7884b39eec6528c57" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.95", - "zbus_names 4.1.0", - "zvariant 5.1.0", - "zvariant_utils 3.0.2", -] - -[[package]] -name = "zbus_names" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" -dependencies = [ - "serde", - "static_assertions", - "zvariant 4.2.0", -] - -[[package]] -name = "zbus_names" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "856b7a38811f71846fd47856ceee8bccaec8399ff53fb370247e66081ace647b" -dependencies = [ - "serde", - "static_assertions", - "winnow", - "zvariant 5.1.0", -] - -[[package]] -name = "zbus_xml" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab3f374552b954f6abb4bd6ce979e6c9b38fb9d0cd7cc68a7d796e70c9f3a233" -dependencies = [ - "quick-xml 0.30.0", - "serde", - "static_assertions", - "zbus_names 3.0.0", - "zvariant 4.2.0", -] - -[[package]] -name = "zeno" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd15f8e0dbb966fd9245e7498c7e9e5055d9e5c8b676b95bd67091cd11a1e697" - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "byteorder", - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "zune-core" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" - -[[package]] -name = "zune-inflate" -version = "0.2.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" -dependencies = [ - "simd-adler32", -] - -[[package]] -name = "zune-jpeg" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99a5bab8d7dedf81405c4bb1f2b83ea057643d9cb28778cea9eecddeedd2e028" -dependencies = [ - "zune-core", -] - -[[package]] -name = "zvariant" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe" -dependencies = [ - "endi", - "enumflags2", - "serde", - "static_assertions", - "zvariant_derive 4.2.0", -] - -[[package]] -name = "zvariant" -version = "5.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1200ee6ac32f1e5a312e455a949a4794855515d34f9909f4a3e082d14e1a56f" -dependencies = [ - "endi", - "enumflags2", - "serde", - "static_assertions", - "url", - "winnow", - "zvariant_derive 5.1.0", - "zvariant_utils 3.0.2", -] - -[[package]] -name = "zvariant_derive" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.95", - "zvariant_utils 2.1.0", -] - -[[package]] -name = "zvariant_derive" -version = "5.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "687e3b97fae6c9104fbbd36c73d27d149abf04fb874e2efbd84838763daa8916" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.95", - "zvariant_utils 3.0.2", -] - -[[package]] -name = "zvariant_utils" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "zvariant_utils" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20d1d011a38f12360e5fcccceeff5e2c42a8eb7f27f0dcba97a0862ede05c9c6" -dependencies = [ - "proc-macro2", - "quote", - "serde", - "static_assertions", - "syn 2.0.95", - "winnow", -] diff --git a/README.md b/README.md index ad9c1c6..8c245cc 100644 --- a/README.md +++ b/README.md @@ -27,4 +27,109 @@ Repository contains example how to use plugin in Bevy. ## rPack CLI -Command line interface for generating tilemaps. Code stored in `crates/rpack_cli` directory. Right now this is the part of the project that could change the most. \ No newline at end of file +Command line interface for generating tilemaps. + +```sh +Build rpack tilemaps with ease + +Usage: rpack_cli + +Commands: + generate Generates a tilemap + config-create Creates a tilemap generation config + generate-from-config Generates a tilemap from config + help Print this message or the help of the given subcommand(s) + +Options: + -h, --help + Print help (see a summary with '-h') + + -V, --version + Print version +``` + +Available at [crates/rpack_cli](https://github.com/Leinnan/rpack/tree/master/crates/v). + + +## Used formats + +rpack tools provides and work with two json based files. + +### Atlas files + +Tilemaps are using `.rpack.json` extension. + +Fields: + +- `size`: two element array- width and height of the tilemap +- `filename`: string- path to the atlas image file, relative to the config file +- `frames`: array- contain info about each frame in tilemap, contains `key` string field and `frame` field that is made up from fields: + - `h`- image height + - `w`- image width + - `x`- x start pos of the image in the tilemap + - `y`- y start pos of the image in the tilemap + +Example: + +```json +{ + "filename": "tilemap.png", + "frames": [ + { + "frame": { + "h": 42, + "w": 42, + "x": 418, + "y": 66 + }, + "key": "tiles/ship/spaceBuilding_001" + }, + { + "frame": { + "h": 44, + "w": 34, + "x": 2, + "y": 2 + }, + "key": "tiles/agents/spaceAstronauts_004" + }, + ], + "size": [ + 512, + 512 + ] +} +``` + +### Generation config files + +Config files are using `.rpack_gen.json` extension. + +Fields: + +- `output_path`: string- path relative to the config, without extension, this is where tilemap image and `.rpack.json` config file are going to be saved +- `asset_patterns`: array of strings- search patterns for images to be included, relative paths to the config +- `format`: optional(defaults to `Png`), format of the tilemap image, currently supported values: `Png`, `Dds` +- `size`: optional(defaults to `2048`), size of the tilemap image +- `texture_padding`: optional(defaults to `2`), size of the padding between frames in pixel +- `border_padding`: optional(defaults to `0`), size of the padding on the outer edge of the packed image in pixel + + +Example: + +```json +{ + "asset_patterns": [ + "tiles/agents/*", + "tiles/effects/*", + "tiles/missiles/*", + "tiles/ship/spaceBuilding_00*", + "tiles/ship/spaceBuilding_01*" + ], + "output_path": "assets/tilemap", + "format": "Png", + "size": 512, + "texture_padding": 2, + "border_padding": 2 +} +``` diff --git a/crates/bevy_rpack/Cargo.toml b/crates/bevy_rpack/Cargo.toml index e4debc4..410e4cf 100644 --- a/crates/bevy_rpack/Cargo.toml +++ b/crates/bevy_rpack/Cargo.toml @@ -3,10 +3,12 @@ name = "bevy_rpack" description = "Bevy plugin with rpack atlas support" version = "0.1.0" edition = "2021" -repository = "https://github.com/Leinnan/rpack" +repository = "https://github.com/Leinnan/rpack.git" +homepage = "https://github.com/Leinnan/rpack" authors = ["Piotr Siuszko "] license = "MIT OR Apache-2.0" keywords = ["bevy", "2d", "plugin"] +exclude = ["assets","tiles","*.rpack_gen.json", "justfile"] [features] default = ["bevy"] diff --git a/crates/bevy_rpack/README.md b/crates/bevy_rpack/README.md index e9ddf50..0f6010c 100644 --- a/crates/bevy_rpack/README.md +++ b/crates/bevy_rpack/README.md @@ -5,6 +5,8 @@ A Bevy plugin with support for the `rpack.json` atlases. ## Example ```rust +//! Simple example that loads the tilemap and once is loaded it creates a sprite with it. + use bevy::prelude::*; use bevy_rpack::prelude::*; @@ -21,7 +23,7 @@ fn main() { } fn setup(mut commands: Commands, asset_server: Res) { - commands.insert_resource(Holder(asset_server.load("Tilemap.rpack.json"))); + commands.insert_resource(Holder(asset_server.load("tilemap.rpack.json"))); commands.spawn(Camera2d); } @@ -35,13 +37,13 @@ fn on_loaded( continue; }; - if let Ok(sprite) = assets.make_sprite_from_atlas("Sword006") { + if let Ok(sprite) = assets.try_make_sprite_from_atlas("agents/spaceAstronauts_005") { commands.spawn(Sprite { color: Color::linear_rgb(1.0, 0.0, 0.0), ..sprite }); }; - if let Ok(image_node) = assets.make_image_node_from_atlas("Axe010") { + if let Ok(image_node) = assets.try_make_image_node_from_atlas("agents/spaceShips_006") { commands.spawn(image_node); } } diff --git a/crates/bevy_rpack/assets/Tilemap.png b/crates/bevy_rpack/assets/Tilemap.png index a2d197aa00b4e7dfa4cd8bd8cf1c94de56ec4b2e..5886085f61e8befd2d6947d7b927b561be407c86 100644 GIT binary patch literal 60490 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 IZ{7C)1$5B`$p8QV diff --git a/crates/bevy_rpack/assets/tilemap.rpack.json b/crates/bevy_rpack/assets/tilemap.rpack.json index 284c9a1..568fb09 100644 --- a/crates/bevy_rpack/assets/tilemap.rpack.json +++ b/crates/bevy_rpack/assets/tilemap.rpack.json @@ -1,72 +1,207 @@ { - "filename": "tilemap.png", - "frames": [ - { - "frame": { - "h": 34, - "w": 34, - "x": 74, - "y": 2 - }, - "key": "Sword007" - }, - { - "frame": { - "h": 34, - "w": 34, - "x": 38, - "y": 2 - }, - "key": "Axe011" - }, - { - "frame": { - "h": 34, - "w": 34, - "x": 2, - "y": 74 - }, - "key": "Axe010" - }, - { - "frame": { - "h": 34, - "w": 34, - "x": 2, - "y": 2 - }, - "key": "Sword006" - }, - { - "frame": { - "h": 34, - "w": 34, - "x": 2, - "y": 38 - }, - "key": "Sword009" - }, - { - "frame": { - "h": 34, - "w": 34, - "x": 74, - "y": 38 - }, - "key": "Axe009" - }, - { - "frame": { - "h": 34, - "w": 34, - "x": 38, - "y": 38 - }, - "key": "Sword008" - } - ], - "size": [ - 128, - 128 - ] + "filename": "tilemap.png", + "frames": [ + { + "frame": { + "h": 42, + "w": 42, + "x": 462, + "y": 89 + }, + "key": "ship/spaceBuilding_001" + }, + { + "frame": { + "h": 44, + "w": 50, + "x": 125, + "y": 2 + }, + "key": "agents/spaceAstronauts_012" + }, + { + "frame": { + "h": 44, + "w": 37, + "x": 41, + "y": 2 + }, + "key": "agents/spaceAstronauts_005" + }, + { + "frame": { + "h": 28, + "w": 30, + "x": 439, + "y": 31 + }, + "key": "effects/spaceEffects_010" + }, + { + "frame": { + "h": 44, + "w": 50, + "x": 180, + "y": 2 + }, + "key": "agents/spaceAstronauts_018" + }, + { + "frame": { + "h": 84, + "w": 42, + "x": 146, + "y": 92 + }, + "key": "ship/spaceBuilding_002" + }, + { + "frame": { + "h": 44, + "w": 37, + "x": 83, + "y": 2 + }, + "key": "agents/spaceAstronauts_008" + }, + { + "frame": { + "h": 57, + "w": 55, + "x": 268, + "y": 101 + }, + "key": "ship/spaceBuilding_012" + }, + { + "frame": { + "h": 36, + "w": 37, + "x": 158, + "y": 51 + }, + "key": "effects/spaceEffects_013" + }, + { + "frame": { + "h": 32, + "w": 32, + "x": 121, + "y": 51 + }, + "key": "effects/spaceEffects_012" + }, + { + "frame": { + "h": 82, + "w": 114, + "x": 2, + "y": 51 + }, + "key": "agents/spaceShips_009" + }, + { + "frame": { + "h": 46, + "w": 46, + "x": 217, + "y": 101 + }, + "key": "ship/spaceBuilding_006" + }, + { + "frame": { + "h": 21, + "w": 21, + "x": 439, + "y": 2 + }, + "key": "effects/spaceEffects_008" + }, + { + "frame": { + "h": 24, + "w": 28, + "x": 465, + "y": 2 + }, + "key": "effects/spaceEffects_009" + }, + { + "frame": { + "h": 22, + "w": 16, + "x": 474, + "y": 62 + }, + "key": "missiles/spaceMissiles_014" + }, + { + "frame": { + "h": 44, + "w": 34, + "x": 2, + "y": 2 + }, + "key": "agents/spaceAstronauts_004" + }, + { + "frame": { + "h": 148, + "w": 94, + "x": 340, + "y": 2 + }, + "key": "agents/spaceShips_006" + }, + { + "frame": { + "h": 48, + "w": 12, + "x": 200, + "y": 51 + }, + "key": "missiles/spaceMissiles_010" + }, + { + "frame": { + "h": 94, + "w": 100, + "x": 235, + "y": 2 + }, + "key": "agents/spaceShips_003" + }, + { + "frame": { + "h": 26, + "w": 26, + "x": 474, + "y": 31 + }, + "key": "effects/spaceEffects_011" + }, + { + "frame": { + "h": 33, + "w": 18, + "x": 439, + "y": 64 + }, + "key": "missiles/spaceMissiles_028" + }, + { + "frame": { + "h": 35, + "w": 20, + "x": 121, + "y": 88 + }, + "key": "missiles/spaceMissiles_040" + } + ], + "size": [ + 512, + 512 + ] } \ No newline at end of file diff --git a/crates/bevy_rpack/example_config.rpack_gen.json b/crates/bevy_rpack/example_config.rpack_gen.json new file mode 100644 index 0000000..4e79414 --- /dev/null +++ b/crates/bevy_rpack/example_config.rpack_gen.json @@ -0,0 +1,14 @@ +{ + "asset_patterns": [ + "tiles/agents/*", + "tiles/effects/*", + "tiles/missiles/*", + "tiles/ship/spaceBuilding_00*", + "tiles/ship/spaceBuilding_01*" + ], + "output_path": "assets/tilemap", + "format": "Png", + "texture_padding": 5, + "border_padding": 2, + "size": 512 +} \ No newline at end of file diff --git a/crates/bevy_rpack/examples/simple.rs b/crates/bevy_rpack/examples/simple.rs index 64f27d8..5c44af6 100644 --- a/crates/bevy_rpack/examples/simple.rs +++ b/crates/bevy_rpack/examples/simple.rs @@ -30,13 +30,13 @@ fn on_loaded( continue; }; - if let Ok(sprite) = assets.make_sprite_from_atlas("Sword006") { + if let Ok(sprite) = assets.try_make_sprite_from_atlas("agents/spaceAstronauts_005") { commands.spawn(Sprite { color: Color::linear_rgb(1.0, 0.0, 0.0), ..sprite }); }; - if let Ok(image_node) = assets.make_image_node_from_atlas("Axe010") { + if let Ok(image_node) = assets.try_make_image_node_from_atlas("agents/spaceShips_006") { commands.spawn(image_node); } } diff --git a/crates/bevy_rpack/justfile b/crates/bevy_rpack/justfile new file mode 100644 index 0000000..772d9d7 --- /dev/null +++ b/crates/bevy_rpack/justfile @@ -0,0 +1,5 @@ +build_atlas: + rpack_cli example_config.rpack_gen.json + +prepare: + cargo install --path ../rpack_cli \ No newline at end of file diff --git a/crates/bevy_rpack/src/plugin.rs b/crates/bevy_rpack/src/plugin.rs index a0b8351..1b69151 100644 --- a/crates/bevy_rpack/src/plugin.rs +++ b/crates/bevy_rpack/src/plugin.rs @@ -47,15 +47,23 @@ pub trait RpackAssetHelper { key: T, ) -> Result<(TextureAtlas, Handle), RpackAtlasError>; /// Creates a [`Sprite`] component for the given atlas key, if available in any of the loaded Atlases. - fn make_sprite_from_atlas>(&self, key: T) -> Result; + fn try_make_sprite_from_atlas>(&self, key: T) -> Result; /// Creates a [`ImageNode`] component for the given atlas key, if available in any of the loaded Atlases. - fn make_image_node_from_atlas>( + fn try_make_image_node_from_atlas>( &self, key: T, ) -> Result; + + /// Provides list of all loaded atlas data keys + fn atlas_data_keys(&self) -> Vec<&str>; } impl RpackAssetHelper for Assets { + fn atlas_data_keys(&self) -> Vec<&str> { + self.iter() + .flat_map(|(_, e)| e.files.keys().map(|e| e.as_ref())) + .collect() + } fn find_atlas_data_by_key>( &self, key: T, @@ -64,26 +72,26 @@ impl RpackAssetHelper for Assets { return Err(RpackAtlasError::NoAtlas); } for (_, a) in self.iter() { - if let Ok(atlas_data) = a.find_atlas_data_by_key(key.as_ref()) { + if let Ok(atlas_data) = a.get_atlas_data(key.as_ref()) { return Ok(atlas_data); } } Err(RpackAtlasError::WrongKey) } - fn make_sprite_from_atlas>(&self, key: T) -> Result { + fn try_make_sprite_from_atlas>(&self, key: T) -> Result { if self.is_empty() { return Err(RpackAtlasError::NoAtlas); } for (_, a) in self.iter() { - if let Ok(sprite) = a.make_sprite_from_atlas(key.as_ref()) { + if let Ok(sprite) = a.try_make_sprite(key.as_ref()) { return Ok(sprite); } } Err(RpackAtlasError::WrongKey) } - fn make_image_node_from_atlas>( + fn try_make_image_node_from_atlas>( &self, key: T, ) -> Result { @@ -91,7 +99,7 @@ impl RpackAssetHelper for Assets { return Err(RpackAtlasError::NoAtlas); } for (_, a) in self.iter() { - if let Ok(image_node) = a.make_image_node_from_atlas(key.as_ref()) { + if let Ok(image_node) = a.try_make_image_node(key.as_ref()) { return Ok(image_node); } } @@ -99,8 +107,9 @@ impl RpackAssetHelper for Assets { } } -impl RpackAssetHelper for RpackAtlasAsset { - fn find_atlas_data_by_key>( +impl RpackAtlasAsset { + /// Retrieves the atlas data (texture atlas and image) for the given atlas key, if available. + pub fn get_atlas_data>( &self, key: T, ) -> Result<(TextureAtlas, Handle), RpackAtlasError> { @@ -116,19 +125,18 @@ impl RpackAssetHelper for RpackAtlasAsset { } } - fn make_sprite_from_atlas>(&self, key: T) -> Result { - if let Ok((atlas, image)) = self.find_atlas_data_by_key(key) { + /// Creates a [`Sprite`] component for the given atlas key + pub fn try_make_sprite>(&self, key: T) -> Result { + if let Ok((atlas, image)) = self.get_atlas_data(key) { Ok(Sprite::from_atlas_image(image, atlas)) } else { Err(RpackAtlasError::WrongKey) } } - fn make_image_node_from_atlas>( - &self, - key: T, - ) -> Result { - if let Ok((atlas, image)) = self.find_atlas_data_by_key(key) { + /// Creates a [`ImageNode`] component for the given atlas key, if available in any of the loaded Atlases. + pub fn try_make_image_node>(&self, key: T) -> Result { + if let Ok((atlas, image)) = self.get_atlas_data(key) { Ok(ImageNode::from_atlas_image(image, atlas)) } else { Err(RpackAtlasError::WrongKey) diff --git a/crates/bevy_rpack/tiles/agents/spaceAstronauts_004.png b/crates/bevy_rpack/tiles/agents/spaceAstronauts_004.png new file mode 100644 index 0000000000000000000000000000000000000000..6237bb0702f870e7b7395c8dbaf402c5901f2ae9 GIT binary patch literal 1275 zcmV*l9M0SG21!4&?Mt$)k z_{6gx!H)pn;5z>s&Uokcww)OYlKew6o!chd zLimhp_|9?Bf0>z?wc4hCw9Qx?on&WcZ>6N9+)6kEo|-l)Dk@^7rKPN*qJmXbRdL}n zt~s4f9Z364IH3?QJ1t&QQ^PtsI%2B1xtYV_e*893mUuuAc0|*ILLhL=RbTg0lMMwa-XNVVy zkFv6|s31K(Jy8KjKFuAQ;UgtXXk&*3R@T|X^6IJ6?S3S{Bt^tWWo4xj#P9dVg&>V- z*(JM(w6OP)!;H+%e-}WKBjN)YBZCBkLDLYjb!1oVeEG(LZ#OuMWR+`%_&`v}AU>bZ z76?gp)%@;z4l*zmS~p~n7#}K-^FTlgo7)DEHy;jE?zv-#4;ds72%H-vFcUI>tbab@ zAma%hKLmu6ezQ1baeDwAoAh1dT^););rX->2V^1SUFWyhnnn`xt%=@(&rC`B93`6 zPE<#{Rjc5bpIKaD>-%8?#D?}ZCbvYKtYQa;I8lLE3EHW-dA5D@RsG`I+T{>0U(J4! z-oXFb28xqtZ(pz18y5mrPys-`*NghwH#Id?tVwRj-93*JR9-5O&dyH$U9_SITK%ve z0f6G@X;(LY$da;h=5)Ebqt+v0oS+IS^!L@2jq^rnd7`SrEzXWvp@$RXlnbE3JgB zD*h}^^fnV2gvwp+YXFH@p@u4!P-w%Aurk)n$jHFiaoyHL$nAFXhHG+iGNP4)h0yE3 zMWS#G0P;jY>-0)3HQ_=Jd?NP1c6(oB4A!tc#*(K3mp+z=HmHG#t%6Vko{(9ZIJ&|( z$}9vm-=;?rCg-Zdv?%IZGnSy(K!Kj<@n)D{Fv6sDO=WiC)oM=~@;Zewp`Wpbznf9?PP002ovPDHLkV1jJTSd;(& literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/agents/spaceAstronauts_005.png b/crates/bevy_rpack/tiles/agents/spaceAstronauts_005.png new file mode 100644 index 0000000000000000000000000000000000000000..5d73f3fb4e77407d0fc848b9b13c6dce709e3844 GIT binary patch literal 1499 zcmV<11tj{3P)+S93 z!h3wy+S+P@)V}*kd%eXP0M%YA%LYPd=mP!y{cL)A`azA3j&g9Toy2ZeRaHGHXNM|j zG3-VmAkx6VfDSP`JIm(h=h@iU7;9^5V~*w)w(JYtZKbl&&Aq+KQlPG}FhXM&h}7BH z$)Sdahgmor=5jCp$b9h>3#Jcr1yY$i-(K2P5GEh{Pjt6KLqkPFA&mI0!{N}OQpZ2D z+|37;dHasV&wgd$Y>tC%CA0UIyOs~vEx};Hsi`ThVxb^fM}#{4@RvcaPtNjS`#A#) zj3;IoZTsftCSR-+AP8Z{S}Q9ne4WF~D-%@W{4yWL>_-_$KYv^ zk&zJ&4h;?t@>hHYL(|UUxWJk)I@UV*?ROIt!f4tl9E$iNGK20&6hTc+PI7Mnz>WwU zYdf7z7LCVEK+w+N35PP69j7ntkPHNQJRW}cc41@@ROal$1a$KL4?P2AbMq|2U8$fJ z7Z(i|86O{Kb8~ad?RK-Jr6sNnpP$8!Pgx{;#9nO$*mv44(cf#C%o9cxy4dNtIdt$7 zc?scBK>+}Z1A29Jm3h5hlM*Mt7%q17?mgQG@9^)nw6yT`{fRV-f)^`gikH~Btr#*!Lp%(I}roa!PO0i+Keav7NDNX4S?>a z$AF^K8!8Be68ABnpn_2K_4OYC)!p6w|AC_V2`8=$RqAmdDw^826TWArk{3`-O-;(| zTVG!<3rapnQ35NB{#4cN>b{bpiaE_y2dGuqyXX%^1gI}fP@=C?kC|e33y+$ey#zbB zyfy$GYE=V;?!gmX_LT~%7{hPBjq0=- z9Tg1Z+ufrQ<)4|=wU<;Sc%$*8Kaug6sszzjs3=uXGcz;%cUA=+l)1Px!JyFle(oi| z;kJ%Ww(Jio>nTGQBl}A1WJRIuMRuZTKy`}pSBBcn9vXnQlWDyqrkh4*jOG(%3{{_0 zIhZFVy57Yv#A?kW<;H@`w;-3isknq10IdG7oFu#sHO7WT|qNU}yUB zIY&XZr!IwtW(Y&EP&C{Sj~ar)V@I4%K^w93i=xMi7#Z3HqQQpfC;luA1bL@i(j-sH zOb=ZE^}L-OA}_)C@Dsq0(MTS2%b0m;FxSdvwAk4vgt0V@s%6oTtk9gjtm&}gkiEBY zQIqf}%RkOMpAASnGQ@v>$fAFTkcwUZUmii$)(|HucK`qYEp$a#bW?9;ba!ELWdLG% zE@EtNZ)9Y7E@N_eaCC1jX>DO=WiC)oM=~@;Zewp`Wpbznf9?PP002ovPDHLkV1j)? B%8~#8 literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/agents/spaceAstronauts_008.png b/crates/bevy_rpack/tiles/agents/spaceAstronauts_008.png new file mode 100644 index 0000000000000000000000000000000000000000..def1929ac060c76c2bf4461aa3cb44c55c00bfba GIT binary patch literal 1658 zcmV-=28H>FP)A8sM#n)WL3oY#@IUrCS9>N)Z$H3%R}L}SPVR$jIVdY2|5G4X zgKye>jM2~uM&qX#-If&LHQwvZHbMqJ>uvvnd1Q+QL0zA*l!Src8ot4uVn)=oy_T&C zcsNVK+D-ddQrtlJR{UbHMkF9EU)f6td=VUb3l-S5!#n6Z>8S5yMU|9WS{l36E@!{% z#D(FSXo0xK@{M2S*Ro_fQ&vJ>n=By}RG58vrKa?VFwM=)X?DBa>ncu{FFacrI~3fA z&w7r$d~e*jkF1y4$ZT(+lKLh(Q)QLGPL@|KhqYQ=U0uqB3l}_2r;{K+4cqq9i{_m% zLqXhyYN*<_D;j-UQ@;gPY1P1(Os1qDjKpD}o}M0>nwp{q4<5t?1i|fqdSp?KyDmuv zsImszmK&>vG(bUD`8bTnmmndX8qJKwBC;9h2z!T@S5I56N0yoF%tIq95#eG+h5F`OI&G&cAwCxdTP6E3R!Y zx(@NgV`*VwK?vpV*ehTBVM7XSJn@le_1zrTY}V*lj~%; z*`skCkEfB5k+4wDCY=;%t*rh{E!Vn*VD;xqLjXrl7g@Nni;63PZp%1SP>>{yC*&g$ z)Y8%tMZ4D4*9~se-}X6DaYu05+*vEVJ ze5eB3p@CAz)5^+<0cv%1l@eKcck;l7>r_xX!^V>cYIAclA*hkxyc(#AM!U#`yTZnk z9%^oGjuKt746ynyQH=n&q0>%nB0$kHcLl)!>O-(^Uk z>bTNF#gffM2{c^U`(^&AA{Eq|1}Jr0>7n4ljg5_%VDPB<$c74 z`nVE3`;f1qO``Yxv((h-5kC7+vH<9-LaA8=^iJ4TipN#BD&cW|K|~-}M+5_%v*hs- z<;myAj%V^JAxA1H&o47)8>$3#T+PhPi0diWCvvqJuE4|U>K`(|pwRpMYzke=V$_=T z7L`gzg!PoBi_yo`#KeRUYNlH$hv&afqNS_pa`~%You z)hDkU3>`9$tKQyTA=E-oj-erVX}{n>J@4h05J%jGZX^ShR}L+4?Rz`JC0#(Ha- znjPXsl*d(TYb%Y8jtaXO^m@^@SL!y)Z;G><*|JusRqyQV6gH!1FrU{cO=lz^G^OYh zxux)T*8YCsRuKY8J8dyA_se1}|7 zB?(gmpD8#Tj%9#dIr9Mx*6xjamVj6S)Ox*g+>?@(-(K%d#`*H6!p|4?C|vf zlZR$-L#$AIxS<}JaVR`?)blCmM6oF~=J6t*oJ1o&*igq4^h_Ja;}kZdF@QNa7{=0kRIL{ul0}-cCo~<_jIJ|T8ZH=V zQ{kBUARCeuwE8Op;tLm4|NNmB|2c#!*6aTZA;5kMv{uz(0000jbVXQnQ*UN;cVTj6 z0AhJAVr*}3WMp|RV{&KQKGBibQV{c?-a;OG>?f?J)07*qoM6N<$ Ef=h=TBLDyZ literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/agents/spaceAstronauts_012.png b/crates/bevy_rpack/tiles/agents/spaceAstronauts_012.png new file mode 100644 index 0000000000000000000000000000000000000000..41cf53cc77c50508e1684af76966d85825bfca37 GIT binary patch literal 1530 zcmVqqRwm7h$t%0@;%LSc5-rZ_r&alFNEa0=e(cuK9~1> z-lV0)*(xh5kLmULEQ7(2S6yALf$$mM;kUF@Z&g)QIlckAYHMpLoN8)nJU%#`R;xXb zau9gyJkX}5CTeSIqwel*>h0|ngwOb{rKLp#^7W}rDF~Pi53awzpH^2_!)jt;LV(5f z=$jG{6%`c+83J!T5(LZXbc!>R5`F{oz+hlD(L%5~Iy&~>#Qago!EbeFXeee7m>4_% zzL=8l4VoFCzP_GpHXF^)&&Lb`@qLm8fKVxoOi+7!yD$^ukfsG6+1=fxQ0>;;-vU5bn5C|+F1o6( zq6;OzoLAjHdU|?7f^2MTP^7l%U8lO%TZ%9h^$qluwuHX?x!ChrLBT;){R81v2?U`w z+P3NQ6}gGAe!Ox`fXOc`s#VoLVE=NEsi`T7r(t&FrgqtAqOUKN3NU*f5<_QQ}!AJegY6k6%fu7YJ)(kfMERt5Nu2T?;slKUR(+iZ|Ida$D_ZJV_Mkk zaCt{5YHe?CCj=r-jzxw#b(~%9CvuQjvbs`Il$+HLm#+vQU;I=guDOmp`+U~Xr!(>n zr)OxQ6|P6Wkba`HM2U4)uuS=L%tej9#iA6Vw9Y7+6*Bu1hYlS${7k0p=!xejUL8r# z@Zdf{exd||d=hTeD{W&_Zn}2Uthmxl)MC7hj?mPMwZgxSspsK0$sG zYW0inBQ?x|5&%?IT_>)7KQGYcV2Q#5Id$e$I&(IcvUBqkbvoy)qR@};5#%S6lapb$ zx}i2zXf1baK>*lXJsKS&lgUJSgMluTmWk%YgTSCL;5Xj;NKv6cpdb+TlYxN&MGzDp zu+u}~0RaG8TY08=HX1gnHclkwq<6HfHTdWh7^lE_!e$v_58FEIHDkN)bYr@_g zTJp^pwzk->|2;k-UNfGf|-b=6vP@H9u`2%W;2;B)*z6V zvtJ84*ib^hAQ1noh-FgLxBB|}6zf{>6)wny6RyGaIEKJI?RGoef8Z2Bvd_IG4B~j^ z$(SM*3;l$sm7Zaacp`pS)ke7h%2h^bMVKQKGBibQV{c?-a;OG>?f?J)07*qoM6N<$g8T;49RL6T literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/agents/spaceAstronauts_018.png b/crates/bevy_rpack/tiles/agents/spaceAstronauts_018.png new file mode 100644 index 0000000000000000000000000000000000000000..2ed33436c4e02874dc2f24a41fa7676b8e66cf50 GIT binary patch literal 1656 zcmV-;28a2HP)V6vv;>`!M2%eOa=Q_+d*nmFX1SOh#N561O;#4Ptc3P;q9W8%}Y|Y1R#4lsBsa zB2XzxM?oeH36l{JCa`QI3r*0CsWBDGi>|PW%oj$;S^xL)TyO8ar7iV#-IM&&7w#?R z*XNw)JkL30Y>}gO2aBuQ&Jya5pg4t|#ShJG^V@C2r z2Z4+6;Ey;!X=!QfnKNhX7K?=-fLyNHK@TgR4jBaE?iDcrqtO`S1u$>`sI|3~1_uY} z)~#EMf`H(XLeP72Ohh2OZsgXm=3mJ{(2Nu8pd#7kV;CHev-9fxA zWdcZNXQv7Ra{p9B_e(_Mf`RY>%8wujRwsbS-AS&|i~D?xbJr!%yFAMd8M?;7Yi^?d{*S~ zF*P-%0-2tkrf`PR)v`;77-9g7Z7iZbOB^wVBmibBAh=i zUAm+K85$Z28^rO)waB;@jTI3e2ywkwDwxaC&4Dho30V6XtZnYwZ1f!%x@g? zP58fZh_$c3L9cB{3|hFJ-;2*t#fiV&@1Gr60U{k606hQ=z{@6-HA>mkI!ftKW{rQgb?^+Vmxq zW7sXZ7dHY%!Qhm%J(}_d0;xcFob>niYk~~7h)3PA<1sXOAxSveDo5YIRUe4vs&whN z%WGSQbC1&DLX)ti*9%05leV@tO_1@{eX63u9ZMYD?Z^<$?vT6l3*l&s^ZNCoXQb;; z^ag}|HzU)zItf%45FRJBwYAjK)1z5MK`krTQjokP@ux#`^njrAwo zrvjOu6{$?x*x0C9phMB^L8(}X3j~2e9qM3wM({Xdeo+G1wE2C(h?Q&ChqPjG;XYy2 zS`}~CJZQ-)j_vL3bmPViat-#XN}>Op5-W-*!pVjD7XXwMc@*mKy2e^6CdcEYw0eC4 zg_}p7e`#ghf;Hgk>S_;Q&L3Vwoh8YOuKgl505Vf1zHT|2>2p5W_VK5*<-^_d-UmDA z?af=Ap=5X|83t38w`IN%c3S~3{JlO)ir=jZPnP;LK+~Ae=z)ub3c?H6@=g~A!IlNf zFqUJUTlQxg_3LcOTW@Hm1q;E8*Yfy)ekqQlBYC-!@$+YRCo;bNZRs?Y!Hsep32r8M zY~Xst2VmfyScXw`{MxX`i6Vs8olPDe5{MQ&qnWMy)w27m4V0000 literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/agents/spaceShips_003.png b/crates/bevy_rpack/tiles/agents/spaceShips_003.png new file mode 100644 index 0000000000000000000000000000000000000000..637c5a66f31db638d6bf0521ddf3b4cf71c575c9 GIT binary patch literal 3521 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 literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/agents/spaceShips_006.png b/crates/bevy_rpack/tiles/agents/spaceShips_006.png new file mode 100644 index 0000000000000000000000000000000000000000..2d62a81626c89ca4e03fca89f43b3b0e971bad02 GIT binary patch literal 4515 zcmZ{IcQhMp^ndKyYS(UysuAV2+M-m^s8w6-8QR3Ey<@~IYSf4kdyfWbi4j{=RjYOt zp_CLsMbPr~zW@Aw-#@;8JkN9PIrsCq_nyx^_c`Y#85`;{Gw?A0003st<3}c!ul?o8 zzCwF>^OY8N0RUI!K#w%df){q|&eF}a`F=dOb51inSd(~9k{p@AOHJ*XaU2GqpmC*h zqKF@If?cC^zh0z<13Z?D)G9#ijZ%5sZNzM=b0wFf)KhOMX(|8xF-rWZD6H?kRX8$N*ETpF`I`$sR!?vHzlvXSILrk$ z7TkMj5p8APEg1~{iy5w|ZA|%($S&%8rr1q2yq4cZ4d>KNvlV@o(`scd27fMcEXkTS z*vm@2*l6wGPeHF&eY1c+wt2aywQ`a*BSTp9ZIc(+nT^tcy!QLts{6m_?-GqT1V5i| zp@L?pO{)yjDWgWh$jYqYEU=4}NuECV!l~mqe@gjuHIR5MoO^j6d!JGk+|IO1-d~Fa zWr=Gm0sciCZ2AYq(y7yQ0qY$ij;2@IXYCoQ^z+%r3-4wfxe&d{OzJ6nKX>7pjH-Il z+!t=#0oG8L7~f&uAZ4UM+uz|usk8InKZMG4)0={S;#0GxeFyxN zkw!oHPs!Dz+fU1N%;B+~rOuVM-~jbq+TUCeI?Eq+y)-uBUQ4@LY!bXAk}yaN26H3z z`5#Y!y7jMyiRmS_w94UVkeiW_(e&0-^-G)d5LA2ny)Ga8rAAcXPsPj<{l{P2CTb#> z?)r(+P&^1ZSTCgd$NPI1vaU|@CeglWvCl4pvPYZG=H3?IeHUV>Bj2|kG*!`qs7Pvj3=LzC%X^{&Aqg}e@Ql+U$G6=tvBN3y}rG7?2n`0LN0O^f~-4yR{Is$s3%Zv9~vk= z1|Xr^bVrO473a?Sys;`kU&vII0l&y3eJ;PU7qw-xJu^Cu_bLEmh3&n-QcaT&=+f2R z^xUEO+y9~;Lm@~X6@6bGjv5fNc_KCmE+~JGaWY7z2ec)AJj&pDE*z;sDTE`i{E20q zS@|IRVE>W7+&DBIht1kUL%6Ztt&6F|bU{}@CG|-#!G9&d9(SCq6(D`tW^#K!~ zP{eQ6l|9U-2$yd6pOe%*f3}FLees>0sVT96lO8Hrt%8W`XRjYNrN(ce zR3&|Lvi4nhFkGWUBz@Y0GsqzORpJ1=L)d44=jupth&hqYhua!cNVS86Jv-wX?3C-n(4R#o%XN9AhiYdJM zcMmYn_4x;=2lHeddK%V)lC3gLvNQ2R=f?xA*It$S`j@?ZD`(Z_@mUa-_T@%}fW}B! z@`hMLpt;KeCdgaC-53fVR1a04s<+BSZImWFBUVze6E9AFwWbb7o}X;ia6qBZF~b|9 z`vdGfwq(Ji{#SG^LwTC*H@K0`S1&>T1v|B99P{`^+FA50rfaE7%Pi)3QvXD;%CM+l zBWT*{u}+M$+X4+&iq%kN_H`l^`OE9-l8N_L&R=Wp^NCLV+lFHk?4NQwiyhuNYt#1D z52FGIGad~%S9vNb!^odf&n<0fE{kNjFzU(sn?iQ~qYin=w zNl91?0yw4D)}?Rbat0e3D243f<|Mip{Ka2CZs~f=!L8C}1}hQN(|o4lyN2bJvoLN* zq>!+R&&jGV^9+_-(f+n-R1qvhWgHNUA50RHk;;{IDE>~?a4>hV>JAN1&@rx8jWljy zkh%o|nXtE_ww>>t0R(Ec6=d{UkdoQ~RIG6|?kC$6j?t=8j`z4uW z;SgbLt41}8fC|#q-w}1AI6)n#xYD=f>g~f=9ZScGQo56nl~u7`QNimAamI(_fsNTJ z+dRq!Mdm-uQ(wtp9$#G-y**&9;z?-_7WPqk+v3K3JJE!~zT)91$b8xJ9S9A(Dxfow zX>v;p`ip8pyegjae6Z0*5<7ss8M&GI77nMaWM=Yg92k9O;?;HhJ&f2V!;Kw4_`FT> zysmwgSBcz``Z#^xBr4uhK8`GQxZWGf07O^L@4&1Ib0O z1ejqAhj}a@Avv}!-*xp!s~?A~kG@5OM(c{FWT}trogMF4E@0a(QKG&Tkp2pEopeiw z1ehb1BLJJ#5ErRL@p~y~`L^a}v@S9t>pJ|t;WwU*=vxS^D;2+3rQwG~k6@d#X!&F+ zA$FF%EejMTaK~A5mLh$w#VK}%je~IW?#gFn8~(hM*xEYz#)@nyM#w`;H+Wy7CR%Eq z&g>r?MI5~hkeKHaAZ7mA{qewuze`;qt$qk2H!A-2@b~JdCg~RXd36y4ujGKgUV7c+ zd--0QcV0uZ=U*zHjJ+ts!?y7Te{V+SLLEa8vQnU}8LrIR|xa08YbuyK6exW4crGaAh4qmIc;{^CC?A3FG5twQuGuze; zX5d4jFx2%(Beacjb@D)u;uu?uqD7@d+O8C2KY*ti3npbh*HR9>+z$tbZfpmOx*@Tq^?XRj94 zQSli;v+{qMo$t1F6_{Joh_9?J*Z5;pYqwdlan)*OO2h{=`i7u9t0#I{*}o!J%+Qg(+fmK&{=LcX$1HRo1{=DEa2d#RuI>#zKN`bto$#JjU zwuCG9?y$*iG06F4W><~HJmPhx;=ENHHsK+>GKieGS~)P{JY%|_@pE=A&$UjQ1I=fL zQlkm)9i!!bcXB6?OWZK?OT}u34m-EGyGoU(3Wtptxchk-4S6MepN_4T<_J;uEa!?Vts%TPlTOZb~L5U}58bT|Ap} zIn#cz58rJ9*@QAIeRtlbD{{PS9RySz4DvL!W}8(PQDcHO@ZU+R&uZdfjnI6J{PLkv zGS!TU@~r0eB%Qv|ng~LKpMMTl*%lzSXqv^K-CsJ!v@nOS6{eq765zH_3QzwuIiMa2lhA&(GSl9RUwY27aM!}}Op#Ok__S;R1t z<$ofj3XGv8ceUCi7O{AxWsr^zJGpb5ZrBq<{~HHfVUi!8vvo=Ix=si%cSnEnzdlxK zC&@vsgX%2o$g6qlpy|z&T1NMlk|8{?rpk0Cb>gvWT1lqbe`2?9W!X7CQ}Ho(FEo(u z6*)=t^YDH{U2Qp`p>cNo*apYiGN=#hsHE&rW; zFBgRTOY4YbBZ$$x6v^QqZ!M4y5mQ27h3xu*!)UQ-+|9n6uqIKdAagS-Yg);)S@ZlY zh;tG6lUjjxKx#?g8%OOq^vwlq6|^UdR@$|aPP!bz%3%}6l(2SY%JeBn(o4oJCx0u% z{oCP3NHOVAmyqG4A*;6tLc@)!9(|&+ttPgQ86`Z1OeL|s+1r1yh9`PXs%#q6h+Eak zPt6aCC)M8HFsz?axj1B=r$#Z4%M>DQ?~rymS+H6?gn0HH3c}RVy`FTNpRO-B2!ZwQ z!J`@W>1V<}GMS~l5A#`sd?>~rw@QWB9sg!Y+k-w-zb3IjCytnNy*;|Zm{I{#L1q~s zQLwd81y_m}A!;nk7_Z0==I)ms>q{Ku8$W%8$3aT4?Y4xi)U1j4HvExFcykItpES2H zh+Y9Rh9-eA|Hj~=?R^K;XHfE)MBy`}za>|~X z=jTK454$u%3Yj5cSbdU{^L{9hY+vbtUl=@zeA=D|p~47tlpZ!%?}wtpW%nN9G)b^m z2DX5etjj3cCJgtV%pZm-h0C5P_+24sqVkX_O0cev;ChJhpBz*BPw>6F+F7p*3e$5Z zXy3%v=Z-TrkNgM=AsBHrDft#hdq17WqBAqc6c73dP2tV*BW9QMDF%gfk$aZ&Sfxz% zgu{ag0x;a$M8Pj7zuus*p2s|;7UGyy@u-X|Zq|T~1@9-15X5`- zcD7L);}9rb`l~+8MtBBV6B#)NS*DJ7` zQmvir#EL+l4dQy|q<&d7mDJfjly;Rl7|RI|f6d$GZ9J~-K2$E*s4s5)t$Wt?OPSVi->N1pTfaJfT~@z=KUH}!V+4|4Kz12~5Oogv=duC5_K7rzi6e{Y~C k)CuecyxhXbD`j4=YDF)vI4 zJ*9cKmSY7n?D|Qy=Io+AwR@tjP7t zI1uyl^4JS6yx_=^C!gdFDt+JqRz7|_+x*~zDb8CqVFGuUb@eZgT0e{>j}M)o8+62L z=uG;<9s)Ef{W2271q&9iS6+FA%c~0)vNbkvt&cs%4o;cE_CEeNYq5SOA!m}atnZ44 z8Omh+XgpDe&dHOxZmqUH&>6bJhL>J?iOrcaCo=sq=Fou%`N#C>+%dS?;i!J=N^cb$ zxO37Z{(jNJ5A&;Ea8^xJ`e7`LiLpg6`z+m{BXq_4&|S18D*ZC%Amd~ZP1smBaUy@e z;L%6H+e{V*2B#Mq{+B#A=5i~~|Mc+sLo>@6!{aAPCn^W0p1&byWq>9bJ* zN#BpLFeb)sk@WFmWfb~lG?2@dE@f+NXXw}n*=A>tqQjyFlEOX4mh~}Vf&sQS>B*t!0=;X!9+Xl$|dGnmi(2b1{Dn%B>V#5X`#-fr#rIXA`2yD9TfPCAo z8!I1r$d!$m3Z%$N*ua|v*6Z5}NRf@*77N|j*fLC4yj#T3=|!xB4YH261(3u>Bobb1 z6oHI#4pPnGUOB5)+zcozEM(Qy)oka^oskH>8)IOsA{!jJDPY3NtOgP*3VzrqHUrjJ z>3u~-h2!wPzCL#O^5xLv{Q2{&qoc$5evDOOH!D<40WVg<)~p4RmW52&NX>wXB}-WC z=bv*2H#IeJr~mQCACbt{Uw`d@i80Ib^Oa2jPgYt#vl7VpPd(+EjeF+IVPBS)C$aFC zUw(-UM3NgfZm{m|ZfD&3(o(j^Vy9nL!se_4lGs>1VS*7Go0cte92qqWb#nUjX+AdB zqpFJSvLb^CE356bOxT=NAg;Ol?x`?r{r&f|{ZBmM%EsLAH|Q>U`Vci$ax7U~4LIP8ReR>Ux2C2YTK*vMJ9b!!p} zZ{EC_F(8saCy||q95OqzmX&U7Z!fP_GI*dVhrg_V{s!o;ZPuDkBko?wN5TT}xT z-*;b4IljA8I(3NC`h2`2Sz=MsAlO{QA+-28>xPs4}JEwKZXao`hn~0sL zIf<2xcH`eKE8%nao_tBulyhNNn5i6}pw)U@MHpP(By61%H;MHk8(|2|ja1|#^K)~^ zXay2NSuKF1xf0@smGCiqEpLtnCcuVvB>=OOuu31Gfk`?nWzauNVd>bh#X6R%*w|{9 z8N|qJ1(FyETgAE3idktw62DW4redEC587Um6d^a~1Pw?QvQ}W^`Er9^ZNDco_dpgs=88SCHIw(T*8;|DJ>{? zNxi*J3+x;q+w1H3{HUU^mq0n%5=f$ABMEhI&YU^p>JT_Bh_id!53uF=MeNn*{?6JO z_d0)XZ{EvhKQWKJ_Lrsn_b7mbO_a5&x;-K*N#HxW=>15Cy@49oaS*$^yYKAp?`LHw z53D!$xzO2^r8+i3&~%2eSoaGH$Q##hvWBV_ws_t<96%EMjn1jsTE~GTnLFz>{(#4QwGO>}@d~TlSfvEdFOZ^?uKkc*yl_c7E_5==SS=gfRz~~? zd=Cs%z655#4jAU(7s!u4{>YAP*q~iBZMVLx$4A)Jtv4c@qs~qcAOWHmfI)#I89Z`4 z5RlZ_!D4{hdZmfL*YLRx4`2n%2tP1#2)|spa)tf(+iyMhrr^o|NN!h`+v-0;!Q3Hu{Rb#t>2wV6Cx@}uh`18X`ya(TU?PG!fD_~|batL!|4PGQH znqnpX-@;t!CCHq56)bhzi-W6d*QQO}Xt!P~WHbQ@TXh5#~#7e|jCQpGZ4U|^!j&NxbVdV70ao%8$ezo$6!aQ|TBK=$<<^4-;e zE!3Jb*>MLy!DnqgeNAixR=~^#GM2Mv&z><9XOSu51h=`;OX3FSP^-?X!=vi%oESVk zB6Fk{kWNQOv!6%4@Pqmn*Z?D7MYsV&UQ1Hu`rUWmIjoG&m=Sm|ogn1ywXZ_zfVj<* zn9MT;NVgi2=0_~iAsThrc82XgU_xvJR!+uBhxH;~46l%r6&0Z>(PrNRNn$cjs%lBp zj!^@tswsc?;Rnz8v3d3CBpcg81`?PMJ``4godcvQyxz1@?XFlXR5m8HnBIJo8{gH{ zrF9Sra8=R~HIRNw57@wMdHr?cq|dJa3t*xRs{$)|ctw~X)X#NxhNg(zCEEA=^Pcr2 z?#WO&m3paB0Eu3#-;9;&$9^mH$z@nr{sR_-3ouFvt8`HIdid~R=L3-bH{M8F30)zK zn#-&2s&eYOcQ!``fa#$5>#IO<^2sHtKRZ3VD zSjn3Mr%s(px&qEv*;o{eGzqV&gvYcg5Clk7GvL~_Yrey3Sd4`4MJ#}g(*)2R)|=zS z-mCZp18=<*>KthrUR4Q?X$cYpNLA^9cA;BXZC<}#+p0{*XYjd*f!JFGR<0X=tO+zB z)|6p|SY5-t-BQ*qd%bk&Qs5FK2#|8=f$oyuY*lQ0hZRz#+A-m|1&?Yyf7OBP}AgtXZR7$p~v+ga8ZABuBx@a(w96v12J;=y!!Asi@U# zZRlCBz%}Vn&6C)h6E={ly*#L8-I5$c6qQX~0hj#_sJ*RQAds( zF$%A%{!q|B!o;m2$U7CF%BMu?@betW10Ro!lHi zmnYo~%5pbH)g-6e<+c_Scs?;QNS!DPb#Z*vjRvgbyU`CGJebmhRmnx`ydaCx^d!hK zdryz*9uZ9brcHDcAXQCrc@f#Ur=y{PmD+u|^MN=U=3{WLLs--R5dF2<##@c4jy*ZTNG_|&|?$c)- zAibU#DJC>>^V?0R6=$@A{Ar|$Un8m7C ziMmn@u{t0TQdKv-ifqJKR5K!^l0I%g!Y0_}hk+u9!p^uvPSl5(#mYMg{0f$8U^pd4 zbX)tDlJ#uco;a7SO)cz;n%a~#ORy3Qaw|u4K&r|Oc>^-7HGW$41uNb0r+l!oFzLS! zKzG=nT6XdywDKQH&1ib`^z=-nI4&%N!}$@{to_#raaV zT@qj-%wi{jvkUIRB_2+7cPopTD$R?vb#<(8)0QM%pc{0Au3_0tyW%397rhpsAr~%O z2*n_pA4)5?78jImPLhwe?nRVswidKcH~o@ z5Qfe09r@8{!8nSep`jrWCYa8>eww4Uwzh`4K9v0E_P&}5k|u;{N^YooV*#mkD(M*} zi16izfVgVas^TL1$&O)!*`%8`U5@(t`nU`x`l3OBq}$0Q5M47y-3GOw;S^)Sm+`LsaPs(h4rA(2^x!?J6KxR7{n}2e zL8^ubY=e#BJP3g=;1iv{Mhr+wb~-ydwaVeW%F0Si=C?$nsKp0I;EILN+<|685PhgL zp$?ELlf~btW8+m~m^4J7GwBaosKq8qJRavh@bVLU`QCf)4ga&xtyH-NgIkQyDv0-N z1@qB%!rVfSgHcJk?I{bGMG~)2y1s8TS;-0000jbVXQn zQ*UN;cVTj60AhJAVr*}3WMp|RV{&KQKGBibQV{c?-a;OG>?f?J) M07*qoM6N<$g5m&~Z2$lO literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/effects/spaceEffects_008.png b/crates/bevy_rpack/tiles/effects/spaceEffects_008.png new file mode 100644 index 0000000000000000000000000000000000000000..06fa75f8ddd93f2d14a2d397ac84f0ae9425ba2e GIT binary patch literal 560 zcmV-00?+-4P)NAHhfP5qtz6!JS(ZFVuyJ##AmX23g1g6ERU^)Wi}|f)_%<0*rvjMZ7I| z1RtUHpK_X+GDDF`{za!}zW(RTISqvrYh@=kr$vpd7B$Pf!jX6~G|h4jE^fpUwo1;& z2Kea2!1ahRPlwZ&*Y;JVCP+_b*t>AV{GAw#lyT^!Sh7p~AE{Dj7emKpIS{y{X)_4k zOzbOxP_fYlx!clXJYks!_RBgrgCTd5*gv5$rl1C&VC4 zPiUc_g&CH?F)c#Prde=~OC>n%d#FYO$(&_*J04;PySaefwW^{L9a%BKwc`jmX yZ*OE|c`jped2n=ZE@^FHXJsx>PDe5{MQ&qnWMy)w27m4V000071Q{0006GNklf#Oho)JQ4V-12UG# z4RBydiOu*XTUd`xg(8U&jAe2Ktvvj+0pIb6Ly`EFFG5OV>hRb>#=}v$qABT&L5j?H zB3o3HNnBh>Zfm8^P>K-9SL;7fCPtoWOSOydW*tWF2OmOGWaKx!YHMt?!3}jDFY*ZQ z`tRELbJKXb5$>1D#yx9YVN+N)D_DcM$C?cnFD)+dWxbZa@`(q2@#E`u9RXUwWLVkv{H4wblZE=a=Hq6gaB$=Z1xO? z*@%%b5|J65Tfg0OU$tVZFC=4e)#y6xP*A2&;03G5{8K}k#0K5Dv4m_oQ5RoiItsP+ z{}JLI+ox1RaG5oPd|9s`0C+1Km0Np|O2K80F;PpvV<=EW=r(;Yc^rKxyBSEWc+y;j ziqSIT=BjPdSa%;*jF%0;19l}QmSsoIau+VPHoXMza52x3xCjuR^uGY)m}V-0x1vOw z0$MNy;$;Ejf;G+7Nb#ArJDzaLnnFYVeh$(>q%y#}uDeh6P?}j{{8@rSXe)w@y>F%( zAEx*EUAh1O04;PySaefwW^{L9a%BKwc`jmXZ*OE|c`jped2n=ZE@^FHXJsx>PDe5{ aMQ&qnWMy)w27m4V0000 zNlqI<7=?WUj=&Le1dfm+c$Y0w0GmZ5P-HxGTM8^-K_pn9C`uy5CWOS0SeCp9qfHnS z$RbDJ2$lY9eq7yM)stdNPqJIp_3D51{=vCihR?HNabm9QOo5qFX)-tNPoZ4P7s}4r ze6_B06f4f(xg}?MJfszOK_^>WSyi>yo2s<7{`ibF|BVnSy@)p17?Ka&1J%CyybH^WZc@s*|GtKn?vGp1-UgE`F(RSGTbTSb6jAL3;N-G6RYgx5GlDi`ww>>ABiI>L((X$nlDW zbZ8=AGLc~a^0#XII2poIDsV{IHx#u}9vF;{GY(?#_2;$4U|v3p)Kn^c5$Ql$ zWFh1|$!)8%sm(TXLC#&JBKCZNDI?3Lw9mM7!e|^Si@XBreyDoUw&bCyY6+4=ZzGj~ z!I#H_wDO!5*8-7Va#XL$M9IB^AR(reA%S+w)kZc6PPpFK2^qw8f8vK=PnMR*-bPaY zKZ)9b1s0M%T P00000NkvXXu0mjfcbQcC literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/effects/spaceEffects_011.png b/crates/bevy_rpack/tiles/effects/spaceEffects_011.png new file mode 100644 index 0000000000000000000000000000000000000000..730e457265e2c7c39d77f8090231f8e4833dc869 GIT binary patch literal 665 zcmV;K0%rY*P)XMs>j1!k(JURU+2s@61xEC&K}zF>4w)HPk7C;RG7c)`i;DgX$CqM40woT+qV z`}GH7Lnpg$H@X5pwjkJ%=tNJYS>!Oobvt>$>};~#AB;8;wK5VIv1sr3loi_pRvP@6 z6z@)oC6=qyEH=`sa>dxhKUi#NiOe60ZP8BcoJ^wFEJen_@P|Uij%ERb=qWOsxdF7U zhnMgId6qwT?tin#?x)h(L+695Y7M|Ph=DlHj2&eeX zS6kdhT4;1FV5!UNaS9^|TOfQWJ9E?fR^Q|U#39;i;5{CIE=QDmt4{=k^>S2n{u=UU z$2go(q1j{E(ayYr*#bcjniK1c^YQ@Z7?H?4RQGMItpxLOW-=kLajGX?v|^6~G34$5 z#!UiZVVx)<*ipXd3WQXFX-KUMg3OreNE9?eN}>GWUA<$80A%sp8B{$_MRk!3sx*lp z)X9~NRRnS?UZhb4g6=MYC`W};MCfHaqS3FMGOU;9k>kX5DqbRl41!e26V}rxrzv}0 zDtj6UwiI>~N*}1{HlI)ebRH93PB_?jtW!P7#f#_U*#%FTr*zq;Fp?lgh)%qSh&P|9 zK}10h6r(d=tzs{*YqJ#Of9lKPSpEQo!xHP$Kx)+h001p?MObuGZ)S9NVRB^vVtFoN zY;SL5WO*)Qa(QrcZ!T$VVP|D7P)Z)9b1s0M%T00000NkvXXu0mjf(W)s0 literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/effects/spaceEffects_012.png b/crates/bevy_rpack/tiles/effects/spaceEffects_012.png new file mode 100644 index 0000000000000000000000000000000000000000..bb55e485e84065be919f2673630ff87fa022655e GIT binary patch literal 831 zcmV-F1Hk-=P)5cLgmgdBk*k${5n+KBAYmjDMF~>u!~qP6Wr;-`u))}1 zlg}bY@DV2SW>W2*n(p~$q_?qWx~i+*dtIH&rF@oO7>g@KWALoJVR7V3#-Ejvxweqc zKgebIEEkPOZeVk&3akPW`7gU%-`cj`w$H8BaALJ5zdblS?^>1JTJj`Nx_rs(&;o_( zjk2Uh)CPoVMr$~wFK;duvZQ9A>b0n*{6>iZAAKwrnd ztkcoGz{$@==PoWPc$ z5zv(#PvGOlb!G`b(m1%tj-Na)&q*zC4;-%hqpMNk1XL{m2WEC`c6<`#&W8_@CICP= zswAit!VQUpyaGw3CtET10WTRVn>qACcj_f^J{8bP&Ii#3-N6F`$s#xaHE9!|bDx_K zOeCuWP|4T{Kt^eUViWv025{C04p0jq51;)e2#f=Z`#%Ty0j6s~Lj1^IgqC$CBM&8V zwSs0x*#~SpuKS#j%g||sEhCVKkaRf3=suf_je%z*qc&tYfbtno+zt3aG^>Jp@j!{v zj^I>oI{U>nE$B`FE>J7L2i;&I&-uE`Nnp8y9t;Wc6%0E-AaH{~fur09L+5|}b!;}A zYA>61wO}NwJ0lpb9lN7Gs0PT1ATqExe&=O%G@ao23x4zgTJxI0y8r+HEp$a#bW?9; zba!ELWdLG%E@EtNZ)9Y7E@N_eaCC1jX>DO=WiC)oM=~@;Zewp`Wpbznf9?PP002ov JPDHLkV1oZqa~l8v literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/effects/spaceEffects_013.png b/crates/bevy_rpack/tiles/effects/spaceEffects_013.png new file mode 100644 index 0000000000000000000000000000000000000000..c25ef3cbcb1c087b91cebc427f922e51a5008d0f GIT binary patch literal 923 zcmV;M17!S(P)ViUF>6_Q0 zN9YlZe{Mc&{CUQX9XCY!FXFLh{`3EyGnL91zbn=1xv9E$ak|mI9Yei!nX$^Ge=J^Y zc*i%JGrkSe_4WzxOpM%(TJw@D-g>y?FLt^y%sqQykn;wm61!fjorgfuJna(}e6_mf z_mBQsvAnkF*A^B-Vu7MdW0PTLOeBlj@TAvw5)!=I-1TqGJP6-sb7T99EY5DVc|aB+ z0q+jgIxb9T>YjI12w{Rz7XEVh$N#W%=&x+=`ycmy#>RTPN0GYKM*C~vV;!P1mk;GJ zkKoOZZNKwvBgFFet;D#^{3v(rZu3GWDg1~Jh@Mditqcw#LIV8`0U>zQ?fG}+=A*QM z5Lu+cyn}<9lYTz<9h!&dpZ0%6&)#qCB?tjbmbDp48>Ea>QX;LM;O+Xry0{CNGm8|& zBgKNiN;MrJtS87rNYLHb2?HRF7=G)FOzM{_;xJPYQW^vR(di0;gwtbJ25k9&m<+;Tc?50Y{AaTCgn0;tZ0*EdHB4)ny6c4 z6C#RTwJ{cfLP}TsylJ4QPa%dR(nzg|k_upp!26G%4vDp9{|hP9lB!^qp;*46YTJCu zR@2IYt!RsHg|$$kZ{g+ZL_5OAXGKi6II+|q?FvkFAw_1hEtwc8(}b>;rPQoGg!Zch zDb$jF+|}Hb>SLCURyu}Q5~W2=>pIIUIrL^ai8{LllNgS#eQfNq6MRo&=sH|Pc`A)q zDY+{k!gr9-#aNe`)YjNl4^hsnV`c>D_81@3&TQ*G<-qDxNguOp(a1uOadnlD(czwT zg3j#I^-*iovtJ&F59PjVKu$@jS;W##FMNw{;tD7){v&q`xh_9=S=wYKvZV1je=zSHP(u!#rYdZ%(2+e=G2{9tzGH8InMF~XA_UEu zU6jdHqQE>7otnBeiy8v{7riX|2Tz+nK+$*dC;$KeEp$a#bW?9;ba!ELWdLG%E@EtN xZ)9Y7E@N_eaCC1jX>DO=WiC)oM=~@;Zewp`Wpbznf9?PP002ovPDHLkV1i!Fu;Bmz literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/missiles/spaceMissiles_010.png b/crates/bevy_rpack/tiles/missiles/spaceMissiles_010.png new file mode 100644 index 0000000000000000000000000000000000000000..68a8e69ce5b332674cfd36a08058bcdae3b77f5a GIT binary patch literal 516 zcmV+f0{i`mP)>b3GP zNv&mf{+sRo3dSHdOdRA?xCW4WVJ5>A!!XPy@up4p!HUId*Xn}=B-?lVH`)FHLjy<* zBnS2nP%Q(@*4niPiQ_#MH3*&~co( zZNu?1L!uBMS;LNt*KjHZ$-y<0wRQG`7%kIgfkOjZ2!Z54YRcQYAT?@vd-r~jKuymC z3=JSLkX%_?*LkqwqNWc0vbOH`Ai??xQ~s~mcNhhO#2^~F--Fb`O>dt$7i;nWiGk!G zPU_x27?U?JsP4l!gfK`gLuqSQJ}i{*VUQY-S^z0a9rBqLOsW6?04;PySaefwW^{L9 za%BKwc`jmXZ*OE|c`jped2n=ZE@^FHXJsx>PDe5{MQ&qnWMy)w27m4V0000+ literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/missiles/spaceMissiles_014.png b/crates/bevy_rpack/tiles/missiles/spaceMissiles_014.png new file mode 100644 index 0000000000000000000000000000000000000000..e7394b336ed3b8d02b3c5f05905efc9941611253 GIT binary patch literal 434 zcmV;j0ZsmiP)RIAK~V>eoQNno zao`fVglE48H&|+a0vYW?$MXN~5nR^8dpwh%L(8s_9GX$NTTFspyd z6t#B)VF4D-ExmM`HewdPXUWX&L`p(H`RDNt;mMwCSAkQ_T(Mkibi*Qc<~i+b2R!AE zjj)(MwtB)MGGt+*g4s&OmUj;-knaJLT)}dXw+m%gZ`4Zq^6k2>$dHAJ3W}w`UiZs- z=cumlKfn5l3|W}u3RbuL$+!hD1}<#+skKtr!VGI?`r_fq1aDqH%#4`vn8}cZfmN;- zK4N$WC;GH`XGFO9@*drp@#Ibx239d3Sq@Wxg!?Z@qQLcnZ@I)3tSW8?EAk`75e)1P z0lhOg67j{P0000jbVXQnQ*UN;cVTj60AhJAVr*}3WMp|RV{&KQK cGBibQV{c?-a;OG>?f?J)07*qoM6N<$f@qVydH?_b literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/missiles/spaceMissiles_028.png b/crates/bevy_rpack/tiles/missiles/spaceMissiles_028.png new file mode 100644 index 0000000000000000000000000000000000000000..89b95c21b594c0363827bfcbaeb2ac0ce5a84444 GIT binary patch literal 372 zcmV-)0gL{LP)kWc16ouKq5gfr09KjJ7!4VjN5juh+bOc6lgZi^+3e+Bh1}eRMCdQMHkd%Bmy-%7Z zplO=eIF5r5;?U&ELOQd^zVj@Il=5gCS!ZpI8@2+_$2kQoXT-FMZpRuja05R^vN_}FO?{u9u(3J7&V zfVwK(k3<9kXvR=6zOUykNa%aOWbVw&&K9f z!4Y>;-@+yie8I;V>I~H%HQ;=sBxhy!MLUg}09k(|_#0W`^?9hh{{-_7tk$5ItAYRk z04;PySaefwW^{L9a%BKwc`jmXZ*OE|c`jped2n=ZE@^FHXJsx>PDe5{MQ&qnWMy)w S27m4V0000)c{uF3u|%N@Lv5G^P$a!g<6Ey8G!##k@gil|vsiKxfEURX`le8%xx=rN zti7y88aK(gqf5QrV=yTF&Z?!Z1bY&RbhxAAszn(~1Qeo61o+uGVbD@G&(AX3G7!da zTFvbWK%O>=qX0BZaDuZN2=O*jNZG8wA#?Cq3e=ZV4A^o{@(5%wXmNd$?W47nfY$e) zQbjj2=K~&{oJy6*WYvJEARIpZ`XdD{q&653{i;;u_s2h^K;GqKR2U9?xTbdY1Yo{+q&8&ruC7Vq@l^Dy*Jxs6O8_G3+4~Ra zoZnxDZ9~|6Z*O41)RLVSBLo zCsgn5_VUfl=qPjGasvQ~krP-mD_&G!e23Vx)J|9azH#SBO z_dnJFv4%8J6xhOt`y*`)c{`y_&0W7C3<&ff8TJXbh;F{8XIiK>7VV0W@V!T6*~GzG zI2cA%2`byPx!qS0=l9INW96%ebK>Ct15gOxw(_KLPaK()CXMrX8Zo93X`SpBHM$@E z1z{ohKyx3_LI3~&Ep$a#bW?9;ba!ELWdLG%E@EtNZ)9Y7E@N_eaCC1jX>DO=WiC)o dM=~@;Zewp`Wpbznf9?PP002ovPDHLkV1n*VSCIe! literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/ship/spaceBuilding_001.png b/crates/bevy_rpack/tiles/ship/spaceBuilding_001.png new file mode 100644 index 0000000000000000000000000000000000000000..b0e60950b10577856606ff0c793bb58a3a40a828 GIT binary patch literal 478 zcmV<40U`d0P)Tjj2sT_qR?Z>UX@Hpj2w)OxFDsQwOmAQb^;HX@P45}CD zb?=@fXE*ivSSd&wtNmoSdl+ty&!i-zNpyZSiG{-}4QT=R2Kk9#dv&427 z-v-J8#XNVlyMB86{wW(;gcJc?1j!D~Lv~&UGN47sqP3hsyRRR)ND)wbTW2BJp^G9} zq01oIpvxjzpsOIALsvyQg|35i23;5F1d4$qhqj;JP>`h1#^Vzjk_?KCB!N;O(VMfpx8+At=}{y{~qcE@ee#ec`B`TG=(l0l@5{vqn3o7sK_(psCCZ7 zm*!=)*%5^Vo7Ln0UD@o%C#=|9B+QQIZJC-}LS`Z@Y>W4PDH&=%I<;-T=76D;4}udV z0000jbVXQnQ*UN;cVTj60AhJAVr*}3WMp|RV{&KQKGBibQV{c?- Ua;OG>?f?J)07*qoM6N<$g0H;GZU6uP literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/ship/spaceBuilding_002.png b/crates/bevy_rpack/tiles/ship/spaceBuilding_002.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ff0dc4fe3e7dbc4d16241903f49151d07282a2 GIT binary patch literal 423 zcmeAS@N?(olHy`uVBq!ia0vp^T0k7a!3HG1yk7c>fq~J~)5S5Q;?~>SzFvnNB#wRD z+32pBay_`B<&BMl=Hy4q6ejrx?#e!}s7cz9v*e*$mwUl=UvasG?j4oU%O(Uq);bsP zPv1tsNx}Zmf!!w;PceOb`b)_1N>k7ES>l=Z{wlIvHMKhD6n^0S1D!v@GpBU_dieFM zXIj7i{^VN6TM@G2w=cR{SibHBbSIqzygOxCRQ-xKf_#hN3h_9l$(4p~Dzj1)H zltpGN~i*<&qgvTm5f@?Oba3?w3;Uk8^i);-|$a9!)bX_?Ei*^PgLq z+k`cX#az{wJ$U3?=Mr_}RIc%w8?P*OZ_JHnVXoFOyM9&!7>>Fnt`Q}{`DrEPiAAXl zNtJp@Ir;f1DV2K3MU@35`FfeTiRr0&z?d*Ham`E4Pf0CW!B+ncsFA_b)z4*}Q$iB} D>EyD5 literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/ship/spaceBuilding_006.png b/crates/bevy_rpack/tiles/ship/spaceBuilding_006.png new file mode 100644 index 0000000000000000000000000000000000000000..864a8bf7f5628c8607156c90db8474481137b2bf GIT binary patch literal 1140 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 VWpbznf9?PP002ovPDHLkV1f;??sWhF literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/ship/spaceStation_014.png b/crates/bevy_rpack/tiles/ship/spaceStation_014.png new file mode 100644 index 0000000000000000000000000000000000000000..6f0409ac90f25b07c724f428630b92364cbf229f GIT binary patch literal 395 zcmV;60d)R}P)L zH*nkGFfhEEiKZzo(=?~HZJ%7%6_im0UZ{b+q3=M?^F$B?BF}Tuzyn)DhXyu6QGg$z zU4dDai8zi$7>1;Q2TEuG93ulI)N!0MGEhRRlSBnJLQ#N?P!u3T8OqRaL#fN}e6cLE z+U}HcpG>o2!z(ifP(k^~l9zBxTl5>#+m9CTeD6(_q!2EQ~NWN>XY>jNJ2X&edMs{A5=JGJ#8 z!M#2&>cFsn?tTrv0j@Xe1>}1+*8l(jEp$a#bW?9;ba!ELWdLG%E@EtNZ)9Y7E@N_e paCC1jX>DO=WiC)oM=~@;Zewp`Wpbznf9?PP002ovPDHLkV1lIUmyrMf literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/ship/spaceStation_015.png b/crates/bevy_rpack/tiles/ship/spaceStation_015.png new file mode 100644 index 0000000000000000000000000000000000000000..d87ced30986cfdeb19495b8426deba0298191d6f GIT binary patch literal 679 zcmV;Y0$BZtP)Zyb?Oji<_aD5AQ&VOh!iLkbSN-L=+Y|$K`-DVY^_+? zI{(()nVsLvci?*y9rnY*`1}24>#*I8L^(JOo*S*R-7PHIO9uT1-uVDH;dS-!6p7Lw z-$zI1A;4XSp1i&-0&q{D0qz+zz&(QoxM$D+_YB%K@cm|cr_t(6RR4Y!m3WWwUX4S$ z03PqtcHnhz$+HcIH<2j)@!dE0V>Ft+cmckO+#Os;x?Tj;$bSDg?5SbPp!0&K0G>ov zdC)~e$0kbHX`!>i+X~J?rUI>mofUdhc$>g^$dsU^*m*;zg)bUhglqzO_Wt=VS)hg3 zx}jC!ivX`wD%&DtiqKqa)6g>bBzUb>(;5*nRcI!5(a=2jaCo}_*9|Q~rVO3LwhlU( zdcCeSSr0=t9mZGzG@tU7j)V$(p5BxbJDxeUNDI(ajrtQ z`+z^ zY>Lop$gHM@4ro!Uk_WukY?e&7DOuRmpqa?Jx>qX02So#`VpA%ZaFO$ZPBTtq6R-+4 z6=)&yrqG)V2-*rP!=?Z&MOKB*GV)6SScGjmv=Xw;0e))0&JXbC4NVz%{Yp+Sw;wo| z8@-a_3NS9&0oYGy06Pv1V8@{W>^L-l9a(9P@&I-m8o>0|7aY^f*Ikl0Hvj+tEp$a# zbW?9;ba!ELWdLG%E@EtNZ)9Y7E@N_eaCC1jX>DO=WiC)oM=~@;Zewp`Wpbznf9?PP N002ovPDHLkV1lu0D7XLs literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/ship/spaceStation_016.png b/crates/bevy_rpack/tiles/ship/spaceStation_016.png new file mode 100644 index 0000000000000000000000000000000000000000..041304a7aa0a961dfa5d11a361a1f8f54c587e4e GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dE8$4YcLn>~)y|Iz2*+HP?Vda0b z-U(X0tsEOU%)Xh~P1)4gFl%?HK>qR>kKVWZmg-Obuwu4l_|>w{tL5{~p8LSlab&Ke zl2myM3-dYWCf4cBO`Ox6ns~RnHwkWcd-P)QcZ*!DUXg$UFIYrAWZjECFBIVL_bAgV zIgtPdM%EryyWRY6Rdct!|8lUy-d6QYaM6TrT&Zs%j~P%XJs8#tsN*r-wa!?Df-+you# zp+btnhK*`R9L#Pv&g%@_1Hud%QUo?=R43x>>6r^j_kb|NhJ?a;q2}}X&qdC%+3dau z;`v~db|OL{L6}iPLSSW4DPn&(F`bAakX+2TLGoZlQCWzhkW9?DL$Y9bsK#lx#6t7~ z>4}*%NH18!Fg8$+jXGf=`h|4GOgf|+tgh>%TrQJ?!$T&b45SlN8nRZa2}SgKvamd; zx33>&c)v$TghWV$L`Z~0NQ6Yl-MEljsaC7xs8S)LyZgW{=lhw zB5Jjhzk{+c{X$xZi7pYX`r4|o?RZvHRh`${-Klk0FHAp>8;D7Hw6MSU(6I0nMbR^v z%%0n;xErP@q$^@vA)RlKqIj$pgA-E((i1T*kZ!NyvUpHTC?pdxDoC$B&9?C%m=H)V zVpx!@&SB7aJWL)W2r(!~UN1Xryu=I$K&C6A#&aK8S@v_-fD<#Ykrn8?4+C#Cm>MQt z><6KD`T95h9|?L#7-1SH}~Kq4OgVJUWyhzD4|n=-dv68-pK0000jbVXQnQ*UN; zcVTj60AhJAVr*}3WMp|RV{&KQKGBibQV{c?-a;OG>?f?J)07*qo IM6N<$f~O%qQvd(} literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/ship/spaceStation_018.png b/crates/bevy_rpack/tiles/ship/spaceStation_018.png new file mode 100644 index 0000000000000000000000000000000000000000..2730c57bef77dec0700ec79ad2655cbcbabfa1c9 GIT binary patch literal 1256 zcmVP)_5CHIg7>%A3RJ{5T{0M%8g4ouZAeyA_Rf>2~M2aYdikKo2jPalcd-34WV^5wu zs6D{`3KWECKPT6zgPSeuvmsd9Pvbsd-q%pDNfU zS_T^jEJdu@fR)jTb>1HCoXpLBHQMM`d{2uUuxGG$VjpF&RIz3SR-kQy{ezb8X^{i= zOx{DWuavPGfxYnJd*_V(_(%J%{+eRLLk0Hc-QmT}em#Td7(974e?FcDo$wsX7hyev z=MHsUV&9tkNj?4ymJrsMXc=r`u<||at$V}kxnd247WPEGXJxQNz@Eb0zTp-zsU3H;X7lrZ2{APX(DU>e^<1+=kI#K>afDzh{tXX zs^hle7ue&hi(e>VZ7(le{B{}CcVvJVw55PG!74v~<9@X+|CN!;3n`<`0<6H=RlwZ@ zXo|K3u%=kMiiMg5+*Hw$2P3|OjYSMfhrPmXgrga&IhEtk{15pxCW zdt$+2^Q(JO1*|I1tOCouwIcV{Y6JWD^&vV>nHyMLo*DMQ_JafN ztrf7hRuilVRv#bDrUq+Lr6!{_1ST_bOgG~Syi`B;=M4xC)vFZ*X+Ms2yk-_@FYJ1Gv2U-kPlVjdkv<#L| zBMnomFvJ-rU64~waXqkB)2=VrdSC{d2rLHcNsy&;VHDBI*8^)cXjQapay<-|09Y(m z>9_12MYJKWhruQWYa3juXhUBQgC)|?*e1Bt(7Ix6yB=<6Os-`-bV1qPb^n$X^EWQR z?^zwXiOcu2ZFy$~ThNzsq(bW(D}O1+fAqCSvC+oBS~S=kdTZ(Ol04LTXYQ?)ptly( z1u#L};NDt^du#D<8{Atfa&Ijje!+5Yt-!stc(@Jjt;M~SvKqO?|2O?!QQIXeu5PDe5{MQ&qnWMy)w S27m4V00003*CqC? zy`R+M&tM5*jfs}QCI&0t(>{4IdXOvDP-tOK z+E*-etALv*TKZrmtQfGSXmbaP!HNP)6m1j#`LtT(atIC9YFaL*dn4uw*7wAM#pYSN zz-AZ!%ady7YFaI+FBaAaYc&O{%N~>pwkyxt1vdBiXE*x5_Mt5iY+s%=^a%|fp1^jY zEe)(L&&psk0&7wa8XBzb=edH_<(V05CSXnLL30PI%QF`PHuv6IeF4JMgO&icFVEch zri*)P#qF)t1r}QmS_;^%JaZ3N?yVKGx0VX*+m9FMJY{ZRb$Mpk1M3eCxVKig-db(2 zCRlxZG@BZ%NtK$6))*}J)(Y2KOFoZV+Db72(G%GU#HHE30IXmULamH=2RR_TA)V~S`) zUJrv!4AwTdRMCdM9tKOKp|MSHsiAens=6L-XiTnUJaj=hICTG(74tVP!S7iex{1s8 zw5q%_gDvPwIZ~nZjg`NY<3IY^qu6L;U@aSL2EDa(c}X7Kd1vmem7up4)CDj>+~D3? ziF<4Da2woPD{^lw9-hH+Z>_MswRpG0d*x$nI#5FD*ylhEp$a# zbW?9;ba!ELWdLG%E@EtNZ)9Y7E@N_eaCC1jX>DO=WiC)oM=~@;Zewp`Wpbznf9?PP N002ovPDHLkV1fWFSB(Gw literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/ship/spaceStation_021.png b/crates/bevy_rpack/tiles/ship/spaceStation_021.png new file mode 100644 index 0000000000000000000000000000000000000000..6ce17d6ed8797c39f5f9cdec070e0f52c8d0782b GIT binary patch literal 4058 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 literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/ship/spaceStation_022.png b/crates/bevy_rpack/tiles/ship/spaceStation_022.png new file mode 100644 index 0000000000000000000000000000000000000000..c1a5edc6a20028e3a5ae661ef36441af14479f7d GIT binary patch literal 791 zcmeAS@N?(olHy`uVBq!ia0vp^Yk*jTgAGU~3kZraFfc9kba4!+xb^nVUN2@x0rn3z zJ#N~pqPK0D`X4BBBwg_n@O?B-ENO9Thenf7Ft=;JU_YOW-v2N55x&fA#)S*K3iR>(17cg}z^x^fvagRO1vpwr z|9$%;JCVm$-B)_NwQF}) z>!kVbl6JeM3EbL|usGpr{=|#dh3_aSbFTH+&|`Yix8v`HV~ove z-`j6JVyn6&R`_aK%_r}hw;yeu-kl-&`u(o0w&B6HkMEt|*zs-V>ocxf9M_n*mvBAQ ziAr!yVbk59lw_-I#=9jpJIqE{?4c1<)U8|oF7G1kb6*$^0@JN-iEBhjaDG}zd16s2 zLsF$)Qciw;N=l_(a#3YLNxoiYZen_>9x&w_nYiX9=cl9=tzfHv2h_;m>FVdQ&MBb@ E01W$TVE_OC literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/ship/spaceStation_023.png b/crates/bevy_rpack/tiles/ship/spaceStation_023.png new file mode 100644 index 0000000000000000000000000000000000000000..601c1d8427c622cceeaee35f92654a5c2925dc8e GIT binary patch literal 788 zcmeAS@N?(olHy`uVBq!ia0vp^Yk*jTgAGU~3kZraFfc9hba4!+xb^mquh(G*5%v!< z$M&jEkUOZ%5w}2L+b&_3-xGHTn(q?G)L?a8p>4ja@bRLxB@Yj!_D@hgvgcN(r`6k( zOKm=J|M=&v_&cMr*8b3xl%zme9EotgP-_14&_s>5#J|((PX{FiMi&y8(>ME`D&Grv&czW0W zW4pa(<-a#S|GhEr37o#_;G-8ynKM58d&qBpTv~N+`?(oO^Hx0jI5 z6lSwVGyM&>56oiCP20e;;S;O0qxP#`|1Tx+OY81-^W5M4|8>J%wXoPNCx5P6rOq~u zGwfc1c*f*}qf!BDB1;cGYYb&yn{#dx&`_g8v-omKcvZX)&#yPG=t|vm^W^c+ginXG zf=u`2+1~lZxq*QjhN4|JXfdQRudb3wU=%|_+g`9lG_WGj9E%IAvuo-uu0P(%j4Yle zUQqvj&5nlKACL4JmFPd%S6g?IS7&eeHtrqMUvvJJtYN#lt6}$%h^NshGV2R7uWP1e zT&@X@Z#UDvVFD6-^7Y8J69!JFh2Jn`&zmg}zVIxQneMe-GeslE)BHIs+4pYmNzEud z_$uLU#cXrtEs6HW*O@-9dd#}Y_v(Ym+iaCNuK#sU_LsVFC!^0KJk<8hZ_8JaUpuoa z?{qDmwZiP_-1uAPW?EFu>znLA#x~U%YiNp z-lzoElwILDf*Hx#VRwYZ5{-ZYQ`mGjEbET{Bwy3IZPAmhz(lKC;u=vBoS#-wo>-L1 zkW{Icl#`#Il2WOcTvS<5lCPJUo0y)e2Tb-xCa!tO`6;PIE7h($ literal 0 HcmV?d00001 diff --git a/crates/bevy_rpack/tiles/ship/spaceStation_025.png b/crates/bevy_rpack/tiles/ship/spaceStation_025.png new file mode 100644 index 0000000000000000000000000000000000000000..75685369fc230aa8249fbf56bbb098ff5a55940c GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^0zmAX6MjjUG} z)KeHdc>T_%=H7kp*j4pR|KI+9H!?+dgqln2cHd8y2)cGnl7BPf?6eYR1-8;-&8E}0 zl>880EIC_IVef~1MuxKt_cFine#~X!Bq68me4l~gcXyHPN?zf;Ko{$lxJHx&=ckpF zCl;kLBvtAq<>cq5q*Ur97gZLN8H?kTWz9w(o+m!fdu~<)(LDs<)teA}E<4iHN z1|>bGnQZQAd&u*}%l8OzKd7~kNPoEPZphIO3Nl+8Ca^O6`+8;Jh8MSQ0v(`R;u=vB zoS#-wo>-L1kW{Icl#`#Il2WOcTvS<5lCPJUo0y)e2lR=NiECbReoAW53by)pK#dHZ Lu6{1-oD!Mq((Or6?Ptf#GW9JFK83(l0@ zgUI4~X$G$0-WCMw<;o0P=c+#7|76PM3?f%|YcnR;-}}!&RbN8n=KjIV&ok65J2)?! zXNcTBKAC}QxHs)!|CKwzGt?bK)-P{n#OE0U?d!XlzY{zzik;{f{1L){K@kwPG}8_O zTNoS& zCC+T24}*gtOOuZ-Hy8wjk1iHr7^Gle5k{?XPDe5{MQ&qnWMy)w27m4V0000"] edition = "2021" rust-version = "1.81" repository = "https://github.com/Leinnan/rpack.git" homepage = "https://github.com/Leinnan/rpack" +license = "MIT OR Apache-2.0" [dependencies] egui = "0.30" diff --git a/crates/rpack/src/app.rs b/crates/rpack/src/app.rs index b206bb7..926e150 100644 --- a/crates/rpack/src/app.rs +++ b/crates/rpack/src/app.rs @@ -61,7 +61,12 @@ impl Default for Application { impl Application { pub fn rebuild_image_data(&mut self) { - let prefix = crate::helpers::get_common_prefix(&self.dropped_files); + let file_paths: Vec = self + .dropped_files + .iter() + .map(|dropped_file| dropped_file.file_path()) + .collect(); + let prefix = rpack_cli::get_common_prefix(&file_paths); self.image_data = self .dropped_files @@ -254,7 +259,7 @@ impl eframe::App for Application { .color(MY_ACCENT_COLOR32) .strong(); ui.allocate_space(egui::vec2(TOP_SIDE_MARGIN, HEADER_HEIGHT)); - ui.add(egui::Label::new(text)); + ui.add(egui::Label::new(text).selectable(false)); }); }); ctx.input(|i| { diff --git a/crates/rpack/src/helpers.rs b/crates/rpack/src/helpers.rs index 4116488..d807b65 100644 --- a/crates/rpack/src/helpers.rs +++ b/crates/rpack/src/helpers.rs @@ -1,33 +1,8 @@ -use std::path::Path; - use egui::DroppedFile; use image::DynamicImage; use rpack_cli::ImageFile; use texture_packer::importer::ImageImporter; -pub fn get_common_prefix(paths: &[DroppedFile]) -> String { - if paths.is_empty() { - return String::new(); - } - let full_name = paths[0].file_path(); - let path = Path::new(&full_name) - .file_name() - .unwrap_or_default() - .to_str() - .unwrap_or_default(); - - let mut prefix = full_name.strip_suffix(&path).unwrap_or_default().to_owned(); - - for s in paths.iter().skip(1) { - let s = s.file_path(); - while !(s.starts_with(&prefix) || prefix.is_empty()) { - prefix.pop(); - } - } - - prefix -} - pub trait DroppedFileHelper { fn file_path(&self) -> String; fn create_image

(&self, prefix: P) -> Option<(String, ImageFile)> diff --git a/crates/rpack_cli/Cargo.toml b/crates/rpack_cli/Cargo.toml index 9264ce1..8d5a912 100644 --- a/crates/rpack_cli/Cargo.toml +++ b/crates/rpack_cli/Cargo.toml @@ -1,7 +1,11 @@ [package] name = "rpack_cli" authors = ["Piotr Siuszko "] -license = "MIT" +description = "CLI application for generating rpack atlases" +repository = "https://github.com/Leinnan/rpack.git" +homepage = "https://github.com/Leinnan/rpack" +license = "MIT OR Apache-2.0" +version = "0.1.0" edition = "2021" [features] @@ -21,6 +25,6 @@ thiserror = "2" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] clap = { version = "4", features = ["derive"], optional = true } basis-universal = { version = "0.3.1", optional = true } -image_dds = { version = "0.6.2", optional = true } +image_dds = { version = "0.7", optional = true } glob = { version = "0.3", optional = true } anyhow = "1" \ No newline at end of file diff --git a/crates/rpack_cli/src/commands.rs b/crates/rpack_cli/src/commands.rs index 00da693..ca4ca22 100644 --- a/crates/rpack_cli/src/commands.rs +++ b/crates/rpack_cli/src/commands.rs @@ -1,7 +1,7 @@ -use std::{io::Write, path::Path}; +use std::io::Write; use clap::Subcommand; -use rpack_cli::{ImageFile, Spritesheet, TilemapGenerationConfig}; +use rpack_cli::TilemapGenerationConfig; use rpack_cli::SaveImageFormat; @@ -12,14 +12,21 @@ pub enum Commands { /// Name of the tilemap to build, when no value is provided uses 'tilemap' #[clap(action)] name: Option, - /// size of the tilemap, default: 512 + /// size of the tilemap, default: 2048 #[arg(long)] size: Option, /// Image format #[clap(short, long)] format: Option, + /// Asset sources path, argument can be passed multiple times + #[clap(short, long)] + source_paths: Vec, + /// Size of the padding between frames in pixel. Default value is `2` + texture_padding: Option, + /// Size of the padding on the outer edge of the packed image in pixel. Default value is `0`. + border_padding: Option, }, - /// Creates a tilemap generation config that can be used by this tool + /// Creates a tilemap generation config ConfigCreate { /// path of the config to create #[clap(action)] @@ -27,7 +34,7 @@ pub enum Commands { /// path of the tilemap to build, when no value is provided uses '/tilemap' #[clap(long)] output_path: Option, - /// size of the tilemap, default: 512 + /// size of the tilemap, default: 2048 #[arg(long)] size: Option, /// Image format, png by default @@ -36,6 +43,10 @@ pub enum Commands { /// Asset sources path, argument can be passed multiple times #[clap(short, long)] source_paths: Vec, + /// Size of the padding between frames in pixel. Default value is `2` + texture_padding: Option, + /// Size of the padding on the outer edge of the packed image in pixel. Default value is `0`. + border_padding: Option, }, /// Generates a tilemap from config GenerateFromConfig { @@ -47,14 +58,38 @@ pub enum Commands { impl Commands { pub(crate) fn run(&self) -> anyhow::Result<()> { match self.clone() { - Commands::Generate { name, size, format } => Self::generate_tilemap(name, size, format), + Commands::Generate { + name, + size, + format, + source_paths, + texture_padding, + border_padding, + } => Self::generate_tilemap( + name, + size, + format, + source_paths, + texture_padding, + border_padding, + ), Commands::ConfigCreate { config_path, output_path, size, format, source_paths, - } => Self::create_config(config_path, output_path, size, format, source_paths), + texture_padding, + border_padding, + } => Self::create_config( + config_path, + output_path, + size, + format, + source_paths, + texture_padding, + border_padding, + ), Commands::GenerateFromConfig { config_path } => { Self::generate_tilemap_from_config(config_path) } @@ -65,72 +100,48 @@ impl Commands { name: Option, size: Option, format: Option, + source_paths: Vec, + texture_padding: Option, + border_padding: Option, ) -> anyhow::Result<()> { let name = name.unwrap_or("tilemap".to_owned()); - let format = format.unwrap_or_default(); - let atlas_filename = format!("{}{}", name, format); - let atlas_json_filename = format!("{}.rpack.json", name); - let size = size.unwrap_or(512); + let source_paths = if source_paths.is_empty() { + vec![".".to_owned()] + } else { + source_paths + }; + let config = TilemapGenerationConfig { + asset_patterns: source_paths, + output_path: name, + format, + size, + texture_padding, + border_padding, + ..Default::default() + }; - let images: Vec = glob::glob("**/*png")? - .flatten() - .flat_map(|f| ImageFile::at_path(&f, f.to_str().unwrap_or_default())) - .collect(); - let spritesheet = Spritesheet::build( - texture_packer::TexturePackerConfig { - max_width: size, - max_height: size, - allow_rotation: false, - force_max_dimensions: true, - border_padding: 2, - texture_padding: 2, - texture_extrusion: 2, - trim: false, - texture_outlines: false, - }, - &images, - &atlas_filename, - )?; - - if Path::new(&atlas_json_filename).exists() { - std::fs::remove_file(&atlas_json_filename).expect("Could not remove the old file"); - } - if Path::new(&atlas_filename).exists() { - std::fs::remove_file(&atlas_filename).expect("Could not remove the old file"); - } - match format { - SaveImageFormat::Dds => { - #[cfg(feature = "dds")] - spritesheet.save_as_dds(&atlas_filename); - #[cfg(not(feature = "dds"))] - panic!("Program is compiled without support for dds. Compile it yourself with feature `dds` enabled."); - } - f => { - spritesheet - .image_data - .save_with_format(&atlas_filename, f.into())?; - } - } - let json = serde_json::to_string_pretty(&spritesheet.atlas_asset_json)?; - let mut file = std::fs::File::create(&atlas_json_filename)?; - file.write_all(json.as_bytes())?; - Ok(()) + config.generate() } + fn create_config( config_path: String, output_path: Option, size: Option, format: Option, source_paths: Vec, + texture_padding: Option, + border_padding: Option, ) -> Result<(), anyhow::Error> { let name = output_path.unwrap_or("tilemap".to_owned()); - let format = format.unwrap_or_default(); - let size = size.unwrap_or(512); + let config = TilemapGenerationConfig { size, - asset_paths: source_paths, + asset_patterns: source_paths, output_path: name, format, + texture_padding, + border_padding, + ..Default::default() }; let json = serde_json::to_string_pretty(&config)?; @@ -141,61 +152,7 @@ impl Commands { } fn generate_tilemap_from_config(config_path: String) -> anyhow::Result<()> { - let config_file = std::fs::read_to_string(&config_path)?; - let config: TilemapGenerationConfig = serde_json::from_str(&config_file)?; - - let images: Vec = config - .asset_paths - .iter() - .flat_map(|path| { - let pattern = format!("{}/*png", path); - glob::glob(&pattern) - .unwrap() - .flatten() - .flat_map(|f| ImageFile::at_path(&f, f.to_str().unwrap_or_default())) - }) - .collect(); - let atlas_filename = format!("{}{}", config.output_path, config.format); - let atlas_json_filename = format!("{}.rpack.json", config.output_path); - let spritesheet = Spritesheet::build( - texture_packer::TexturePackerConfig { - max_width: config.size, - max_height: config.size, - allow_rotation: false, - force_max_dimensions: true, - border_padding: 2, - texture_padding: 2, - texture_extrusion: 2, - trim: false, - texture_outlines: false, - }, - &images, - &atlas_filename, - )?; - - if Path::new(&atlas_json_filename).exists() { - std::fs::remove_file(&atlas_json_filename).expect("Could not remove the old file"); - } - if Path::new(&atlas_filename).exists() { - std::fs::remove_file(&atlas_filename).expect("Could not remove the old file"); - } - match config.format { - SaveImageFormat::Dds => { - #[cfg(feature = "dds")] - spritesheet.save_as_dds(&atlas_filename); - #[cfg(not(feature = "dds"))] - panic!("Program is compiled without support for dds. Compile it yourself with feature `dds` enabled."); - } - f => { - spritesheet - .image_data - .save_with_format(&atlas_filename, f.into())?; - } - } - let json = serde_json::to_string_pretty(&spritesheet.atlas_asset_json)?; - let mut file = std::fs::File::create(&atlas_json_filename)?; - file.write_all(json.as_bytes())?; - - Ok(()) + let config = TilemapGenerationConfig::read_from_file(config_path)?; + config.generate() } } diff --git a/crates/rpack_cli/src/lib.rs b/crates/rpack_cli/src/lib.rs index 9e5ea55..62c475a 100644 --- a/crates/rpack_cli/src/lib.rs +++ b/crates/rpack_cli/src/lib.rs @@ -2,7 +2,13 @@ use bevy_rpack::{AtlasFrame, SerializableRect}; use image::DynamicImage; use serde::{Deserialize, Serialize}; use serde_json::Value; -use std::{fmt::Display, path::Path}; +#[cfg(all(feature = "cli", not(target_arch = "wasm32")))] +use std::io::Write; +use std::{ + ffi::OsStr, + fmt::Display, + path::{Path, PathBuf}, +}; use texture_packer::{importer::ImageImporter, TexturePacker, TexturePackerConfig}; use thiserror::Error; @@ -36,6 +42,34 @@ impl ImageFile { } } +pub fn get_common_prefix(paths: &[S]) -> String +where + S: AsRef + Sized, +{ + if paths.is_empty() { + return String::new(); + } + let path = Path::new(paths[0].as_ref()) + .file_name() + .unwrap_or_default() + .to_str() + .unwrap_or_default(); + + let mut prefix = String::from(paths[0].as_ref().to_string_lossy()) + .strip_suffix(&path) + .unwrap_or_default() + .to_owned(); + + for s in paths.iter().skip(1) { + let s = s.as_ref().to_string_lossy(); + while !(s.starts_with(&prefix) || prefix.is_empty()) { + prefix.pop(); + } + } + + prefix +} + #[derive(Clone, Debug, Default, Copy, Serialize, Deserialize)] #[cfg_attr( all(feature = "cli", not(target_arch = "wasm32")), @@ -132,7 +166,7 @@ impl Spritesheet { #[cfg(all(feature = "dds", not(target_arch = "wasm32")))] pub fn save_as_dds(&self, output_path: R) where - R: AsRef, + R: AsRef, { let rgba_image = self.image_data.to_rgba8(); @@ -152,7 +186,7 @@ impl Spritesheet { #[cfg(all(feature = "basis", not(target_arch = "wasm32")))] pub fn save_as_basis(&self, output_path: R) where - R: AsRef, + R: AsRef, { use basis_universal::{ BasisTextureFormat, Compressor, TranscodeParameters, Transcoder, @@ -268,10 +302,122 @@ impl Spritesheet { } } -#[derive(Clone, Serialize, Deserialize)] +#[derive(Clone, Serialize, Deserialize, Default)] pub struct TilemapGenerationConfig { - pub asset_paths: Vec, + pub asset_patterns: Vec, pub output_path: String, - pub format: SaveImageFormat, - pub size: u32, + /// Image format, png by default + pub format: Option, + /// Size of the tilemap texture. Default value is `2048`. + pub size: Option, + /// Size of the padding between frames in pixel. Default value is `2` + pub texture_padding: Option, + /// Size of the padding on the outer edge of the packed image in pixel. Default value is `0`. + pub border_padding: Option, + #[serde(skip)] + pub working_dir: Option, +} + +#[cfg(all(feature = "cli", not(target_arch = "wasm32")))] +impl TilemapGenerationConfig { + pub fn read_from_file

(path: P) -> anyhow::Result + where + P: AsRef, + { + let config_file = std::fs::read_to_string(path.as_ref())?; + let mut config: TilemapGenerationConfig = serde_json::from_str(&config_file)?; + config.working_dir = Path::new(path.as_ref()).parent().map(|p| p.to_path_buf()); + Ok(config) + } + + pub fn generate(&self) -> anyhow::Result<()> { + let dir = match &self.working_dir { + None => std::env::current_dir().expect("msg"), + Some(p) => { + if p.to_string_lossy().len() == 0 { + std::env::current_dir().expect("msg") + } else { + p.clone() + } + } + }; + let working_dir = match std::path::absolute(dir) { + Ok(p) => p, + Err(e) => panic!("DUPA {:?}", e), + }; + + let mut file_paths: Vec = self + .asset_patterns + .iter() + .flat_map(|pattern| { + let p = format!("{}/{}", working_dir.to_string_lossy(), pattern); + println!("{}", p); + glob::glob(&p).expect("Wrong pattern for assets").flatten() + }) + .collect(); + file_paths.sort(); + let prefix = get_common_prefix(&file_paths); + let images: Vec = file_paths + .iter() + .flat_map(|f| { + let id = f + .to_str() + .unwrap_or_default() + .strip_prefix(&prefix) + .unwrap_or_default(); + ImageFile::at_path(f, id) + }) + .collect(); + let atlas_image_path = working_dir.join(format!( + "{}{}", + self.output_path, + self.format.unwrap_or_default() + )); + let atlas_filename = Path::new(&atlas_image_path) + .file_name() + .expect("D") + .to_string_lossy() + .to_string(); + let atlas_config_path = working_dir.join(format!("{}.rpack.json", self.output_path)); + let spritesheet = Spritesheet::build( + texture_packer::TexturePackerConfig { + max_width: self.size.unwrap_or(2048), + max_height: self.size.unwrap_or(2048), + allow_rotation: false, + force_max_dimensions: true, + border_padding: self.border_padding.unwrap_or(0), + texture_padding: self.texture_padding.unwrap_or(2), + texture_extrusion: 0, + trim: false, + texture_outlines: false, + }, + &images, + &atlas_filename, + )?; + + if Path::new(&atlas_config_path).exists() { + std::fs::remove_file(&atlas_config_path).expect("Could not remove the old file"); + } + if Path::new(&atlas_image_path).exists() { + std::fs::remove_file(&atlas_image_path).expect("Could not remove the old file"); + } + match self.format.unwrap_or_default() { + SaveImageFormat::Dds => { + #[cfg(feature = "dds")] + spritesheet.save_as_dds(&atlas_image_path); + #[cfg(not(feature = "dds"))] + panic!("Program is compiled without support for dds. Compile it yourself with feature `dds` enabled."); + } + f => { + spritesheet + .image_data + .save_with_format(&atlas_image_path, f.into())?; + } + } + let json = serde_json::to_string_pretty(&spritesheet.atlas_asset_json)?; + let mut file = std::fs::File::create(&atlas_config_path)?; + file.write_all(json.as_bytes())?; + + Ok(()) + } } diff --git a/crates/rpack_cli/src/main.rs b/crates/rpack_cli/src/main.rs index cb1fa91..5f28942 100644 --- a/crates/rpack_cli/src/main.rs +++ b/crates/rpack_cli/src/main.rs @@ -1,16 +1,29 @@ +use std::path::Path; + use clap::Parser; +use rpack_cli::TilemapGenerationConfig; pub mod commands; /// Build rpack tilemaps with ease #[derive(Parser, Debug)] -#[command(version, about, long_about = "rpack CLI tool")] +#[command(version, about, long_about = "Build rpack tilemaps with ease")] +#[command(propagate_version = true)] struct Args { #[command(subcommand)] command: crate::commands::Commands, } fn main() -> anyhow::Result<()> { + let args_os = std::env::args_os(); + if args_os.len() == 2 { + let arg = format!("{}", args_os.last().expect("msg").to_string_lossy()); + if Path::new(&arg).exists() && arg.ends_with("rpack_gen.json") { + let config = TilemapGenerationConfig::read_from_file(&arg)?; + config.generate()?; + return Ok(()); + } + } let args = Args::parse(); args.command.run()?; diff --git a/justfile b/justfile new file mode 100644 index 0000000..68babb9 --- /dev/null +++ b/justfile @@ -0,0 +1,2 @@ +check_wasm_all: + cargo check --all-features --lib --target wasm32-unknown-unknown \ No newline at end of file