diff --git a/Cargo.lock b/Cargo.lock index 18bfdf49def565bf453437bbf79ecb88643b9b34..80a85729cb313bcf8390acb3ebcdc4142551cf60 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "accesskit" @@ -104,7 +104,7 @@ dependencies = [ "ndk-context", "ndk-sys 0.6.0+11769913", "num_enum", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -247,18 +247,18 @@ checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "bevy" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e938630e9f472b1899c78ef84aa907081b23bad8333140e2295c620485b6ee7" +checksum = "043c9ad4b6fc4ca52d779873a8ca792a4e37842d07fce95363c9e17e36a1d8a0" dependencies = [ "bevy_internal", ] [[package]] name = "bevy_a11y" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e613f0e7d5a92637e59744f7185e374c9a59654ecc6d7575adcec9581db1363" +checksum = "ae1a976cb539d6a5a3ff579cdb78187a6bcfbffa7e8224ea28f23d8b983d9389" dependencies = [ "accesskit", "bevy_app", @@ -268,9 +268,9 @@ dependencies = [ [[package]] name = "bevy_app" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f548e9dab7d10c5f99e3b504c758c4bf87aa67df9bcb9cc8b317a0271770e72" +checksum = "a5361d0f8a8677a5d0102cfe7321a7ecd2a8b9a4f887ce0dde1059311cf9cd42" dependencies = [ "bevy_derive", "bevy_ecs", @@ -279,16 +279,16 @@ dependencies = [ "bevy_utils", "console_error_panic_hook", "downcast-rs", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "web-sys", ] [[package]] name = "bevy_asset" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d198e4c3419215de2ad981d4e734bbfab46469b7575e3b7150c912b9ec5175" +checksum = "60ec5ea257e1ebd3d411f669e29acf60beb715bebc7e1f374c17f49cd3aad46c" dependencies = [ "async-broadcast", "async-fs", @@ -309,7 +309,7 @@ dependencies = [ "parking_lot", "ron", "serde", - "thiserror", + "thiserror 1.0.69", "uuid", "wasm-bindgen", "wasm-bindgen-futures", @@ -318,36 +318,36 @@ dependencies = [ [[package]] name = "bevy_asset_macros" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11b2cbeba287a4b44e116c33dbaf37dce80a9d84477b2bb35ff459999d6c9e1b" +checksum = "c9eb05ce838d282f09d83380b4d6432aec7519d421dee8c75cc20e6148237e6e" dependencies = [ "bevy_macro_utils", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] [[package]] name = "bevy_color" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a933306f5c7dc9568209180f482b28b5f40d2f8d5b361bc1b270c0a588752c0" +checksum = "04842e9d38a93f0c75ab46f7f404ea24ef57ad83dbd159e5b4b35318b02257bb" dependencies = [ "bevy_math", "bevy_reflect", "bytemuck", "encase", "serde", - "thiserror", + "thiserror 1.0.69", "wgpu-types", ] [[package]] name = "bevy_core" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ddeed5ebf2fa75a4d4f32e2da9c60f11037e36252695059a151c6685cd3d72b" +checksum = "de706862871a1fe99ea619bff2f99d73e43ad82f19ef866a9e19a14c957c8537" dependencies = [ "bevy_app", "bevy_ecs", @@ -360,9 +360,9 @@ dependencies = [ [[package]] name = "bevy_core_pipeline" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b978220b5edc98f2c5cbbd14c118c74b3ec7216e5416d3c187c1097279b009b" +checksum = "2f6e1e122ada4cd811442e083fb5ad3e325c59a87271d5ef57193f1c2cad7f8c" dependencies = [ "bevy_app", "bevy_asset", @@ -380,25 +380,25 @@ dependencies = [ "radsort", "serde", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "bevy_derive" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8a8173bad3ed53fa158806b1beda147263337d6ef71a093780dd141b74386b1" +checksum = "3fbfc33a4c6b80760bb8bf850a2cc65a1e031da62fd3ca8b552189104dc98514" dependencies = [ "bevy_macro_utils", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] [[package]] name = "bevy_diagnostic" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7f82011fd70048be282526a99756d54bf00e874edafa9664ba0dc247678f03" +checksum = "bebb154e0cc78e3bbfbfdb42fb502b14c1cd47e72f16e6d4228dfe6233ba6cbd" dependencies = [ "bevy_app", "bevy_core", @@ -411,9 +411,9 @@ dependencies = [ [[package]] name = "bevy_ecs" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c77fdc3a7230eff2fcebe4bd17c155bd238c660a0089d0f98c39ba0d461b923" +checksum = "9ee4222406637f3c8e3991a99788cfcde76097bf997c311f1b6297364057483f" dependencies = [ "bevy_ecs_macros", "bevy_ptr", @@ -426,26 +426,26 @@ dependencies = [ "nonmax", "petgraph", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "bevy_ecs_macros" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9272b511958525306cd141726d3ca59740f79fc0707c439b55a007bcc3497308" +checksum = "36b573430b67aff7bde8292257494f39343401379bfbda64035ba4918bba7b20" dependencies = [ "bevy_macro_utils", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] [[package]] name = "bevy_encase_derive" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0452d8254c8bfae4bff6caca2a8be3b0c1b2e1a72b93e9b9f6a21c8dff807e0" +checksum = "d06c9693847a2a6ea61d6b86288dd4d8b6a79f05d4bf6e27b96d4f5c8d552fe4" dependencies = [ "bevy_macro_utils", "encase_derive_impl", @@ -453,9 +453,9 @@ dependencies = [ [[package]] name = "bevy_gizmos" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdbb0556f0c6e45f4a17aef9c708c06ebf15ae1bed4533d7eddb493409f9f025" +checksum = "dfe32af0666d8d8a7fd6eb6b5e41eceefdc6f2e5441c74b812e8f0902a9d7f52" dependencies = [ "bevy_app", "bevy_asset", @@ -475,21 +475,21 @@ dependencies = [ [[package]] name = "bevy_gizmos_macros" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ef351a4b6498c197d1317c62f46ba84b69fbde3dbeb57beb2e744bbe5b7c3e0" +checksum = "906b052f8cf3f3983f0f6df625fb10cbd9b27d44e362a327dc1ed51300d362bc" dependencies = [ "bevy_macro_utils", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] [[package]] name = "bevy_hierarchy" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "802eca6f341d19ade790ccfaba7044be4d823b708087eb5ac4c1f74e4ea0916a" +checksum = "a88b912b37e1bc4dbb2aa40723199f74c8b06c4fbb6da0bb4585131df28ef66e" dependencies = [ "bevy_app", "bevy_core", @@ -501,9 +501,9 @@ dependencies = [ [[package]] name = "bevy_input" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d050f1433f48ca23f1ea078734ebff119a3f76eb7d221725ab0f1fd9f81230b" +checksum = "8dd3a54e67cc3ba17971de7b1a7e64eda84493c1e7bb6bfa11c6cf8ac124377b" dependencies = [ "bevy_app", "bevy_ecs", @@ -512,14 +512,14 @@ dependencies = [ "bevy_utils", "serde", "smol_str", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "bevy_internal" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ddd2b23e44d3a1f8ae547cbee5b6661f8135cc456c5de206e8648789944e7a1" +checksum = "45d435cac77c568f3aef65f786a5fee0e53c81950c5258182dd2c1d6cd6c4fec" dependencies = [ "bevy_a11y", "bevy_app", @@ -551,9 +551,9 @@ dependencies = [ [[package]] name = "bevy_log" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab641fd0de254915ab746165a07677465b2d89b72f5b49367d73b9197548a35" +checksum = "67240c7596c8f0653e50fce35a60196516817449235193246599facba9002e02" dependencies = [ "android_log-sys", "bevy_app", @@ -566,50 +566,50 @@ dependencies = [ [[package]] name = "bevy_macro_utils" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ad860d35d74b35d4d6ae7f656d163b6f475aa2e64fc293ee86ac901977ddb7" +checksum = "bfc65e570012e64a21f3546df68591aaede8349e6174fb500071677f54f06630" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", "toml_edit 0.22.15", ] [[package]] name = "bevy_math" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51bd6ce2174d3237d30e0ab5b2508480cc7593ca4d96ffb3a3095f9fc6bbc34c" +checksum = "5421792749dda753ab3718e77d27bfce38443daf1850b836b97530b6245a4581" dependencies = [ "bevy_reflect", "glam", "rand", "serde", "smallvec", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "bevy_mikktspace" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7ce4266293629a2d10459cc112dffe3b3e9229a4f2b8a4d20061b8dd53316d0" +checksum = "66cf695a264b043f2c4edb92dd5c742e6892180d2b30dac870012d153f8557ea" dependencies = [ "glam", ] [[package]] name = "bevy_ptr" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c115c97a5c8a263bd0aa7001b999772c744ac5ba797d07c86f25734ce381ea69" +checksum = "61baa1bdc1f4a7ac2c18217570a7cc04e1cd54d38456e91782f0371c79afe0a8" [[package]] name = "bevy_reflect" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406ea0fce267169c2320c7302d97d09f605105686346762562c5f65960b5ca2f" +checksum = "2508785a4a5809f25a237eec4fee2c91a4dbcf81324b2bbc2d6c52629e603781" dependencies = [ "bevy_ptr", "bevy_reflect_derive", @@ -620,28 +620,28 @@ dependencies = [ "serde", "smallvec", "smol_str", - "thiserror", + "thiserror 1.0.69", "uuid", ] [[package]] name = "bevy_reflect_derive" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0427fdb4425fc72cc96d45e550df83ace6347f0503840de116c76a40843ba751" +checksum = "967d5da1882ec3bb3675353915d3da909cafac033cbf31e58727824a1ad2a288" dependencies = [ "bevy_macro_utils", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", "uuid", ] [[package]] name = "bevy_render" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c48acf1ff4267c231def4cbf573248d42ac60c9952108822d505019460bf36d" +checksum = "836cf8a513db013cbe7d55a331060088efd407e49fd5b05c8404700cd82e7619" dependencies = [ "async-channel", "bevy_app", @@ -677,7 +677,7 @@ dependencies = [ "send_wrapper", "serde", "smallvec", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "web-sys", "wgpu", @@ -685,21 +685,21 @@ dependencies = [ [[package]] name = "bevy_render_macros" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ddf4a96d71519c8eca3d74dabcb89a9c0d50ab5d9230638cb004145f46e9ed" +checksum = "cbc24e0e95061a38a7744218b9c7e52e4c08b53f1499f33480e2b749f3864432" dependencies = [ "bevy_macro_utils", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] [[package]] name = "bevy_scene" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7a9f0388612a116f02ab6187aeab66e52c9e91abbc21f919b8b50230c4d83e7" +checksum = "8ec57a72d75273bdbb6154390688fd07ba79ae9f6f99476d1937f799c736c2da" dependencies = [ "bevy_app", "bevy_asset", @@ -711,15 +711,15 @@ dependencies = [ "bevy_transform", "bevy_utils", "serde", - "thiserror", + "thiserror 1.0.69", "uuid", ] [[package]] name = "bevy_sprite" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d837e33ed27b9f2e5212eca4bdd5655a9ee64c52914112e6189c043cb25dd1ec" +checksum = "e045b4d8cc8e7422a4c29b1eadbe224f5cc42f170b88d43e7535892fcede3840" dependencies = [ "bevy_app", "bevy_asset", @@ -738,14 +738,14 @@ dependencies = [ "guillotiere", "radsort", "rectangle-pack", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "bevy_tasks" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8bfb8d484bdb1e9bec3789c75202adc5e608c4244347152e50fb31668a54f9" +checksum = "77865f310b1fc48fb05b7c4adbe76607ec01d0c14f8ab4caba4d714c86439946" dependencies = [ "async-executor", "futures-lite", @@ -754,9 +754,9 @@ dependencies = [ [[package]] name = "bevy_time" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6c3d3d14ee8b0dbe4819fd516cc75509b61946134d78e0ee89ad3d1835ffe6c" +checksum = "f4e4d53ec32a1b16492396951d04de0d2d90e924bf9adcb8d1adacab5ab6c17c" dependencies = [ "bevy_app", "bevy_ecs", @@ -764,14 +764,14 @@ dependencies = [ "bevy_utils", "crossbeam-channel", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "bevy_transform" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97e8aa6b16be573277c6ceda30aebf1d78af7c6ede19b448dcb052fb8601d815" +checksum = "d5493dce84427d00a9266e8e4386d738a72ee8640423b62dfcecb6dfccbfe0d2" dependencies = [ "bevy_app", "bevy_ecs", @@ -779,14 +779,14 @@ dependencies = [ "bevy_math", "bevy_reflect", "serde", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "bevy_ui" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d9f864c646f3742ff77f67bcd89a13a7ab024b68ca2f1bfbab8245bcb1c06c" +checksum = "56d2cba6603b39a3765f043212ae530e25550af168a7eec6b23b9b93c19bc5f7" dependencies = [ "bevy_a11y", "bevy_app", @@ -809,14 +809,14 @@ dependencies = [ "serde", "smallvec", "taffy", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "bevy_utils" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fab364910e8f5839578aba9cfda00a8388e9ebe352ceb8491a742ce6af9ec6e" +checksum = "ffb0ec333b5965771153bd746f92ffd8aeeb9d008a8620ffd9ed474859381a5e" dependencies = [ "ahash", "bevy_utils_proc_macros", @@ -829,20 +829,20 @@ dependencies = [ [[package]] name = "bevy_utils_proc_macros" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad9db261ab33a046e1f54b35f885a44f21fcc80aa2bc9050319466b88fe58fe3" +checksum = "38f1ab8f2f6f58439d260081d89a42b02690e5fdd64f814edc9417d33fcf2857" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] [[package]] name = "bevy_window" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9ea5777f933bf7ecaeb3af1a30845720ec730e007972ca7d4aba2d3512abe24" +checksum = "c89e88a20db64ea8204540afb4699295947c454738fd50293f7b32ab8be857a6" dependencies = [ "bevy_a11y", "bevy_app", @@ -857,9 +857,9 @@ dependencies = [ [[package]] name = "bevy_winit" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c2213bbf14debe819ec8ad4913f233c596002d087bc6f1f20d533e2ebaf8c6" +checksum = "d0bef8ec3e4b45db943ad4d1c0bf59b09e382ce0651a706e2f33a70fa955303c" dependencies = [ "accesskit_winit", "approx", @@ -963,9 +963,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" -version = "1.16.1" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b236fc92302c97ed75b38da1f4917b5cdda4984745740f153a5d3059e48d725e" +checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" dependencies = [ "bytemuck_derive", ] @@ -976,16 +976,16 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ee891b04274a59bd38b412188e24b849617b2e45a0fd8d057deb63e7403761b" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] [[package]] -name = "byteorder" -version = "1.5.0" +name = "byteorder-lite" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" @@ -1004,7 +1004,7 @@ dependencies = [ "polling", "rustix", "slab", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1068,7 +1068,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d375883580a668c7481ea6631fc1a8863e33cc335bf56bfad8d7e6d4b04b13a5" dependencies = [ "com_macros_support", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "syn 1.0.109", ] @@ -1078,7 +1078,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad899a1087a9296d5644792d7cb72b8e34c1bec8e7d4fbc002230169a6e8710c" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "syn 1.0.109", ] @@ -1300,9 +1300,9 @@ dependencies = [ [[package]] name = "document-features" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5282ad69563b5fc40319526ba27e0e7363d552a896f0297d54f767717f9b95" +checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" dependencies = [ "litrs", ] @@ -1328,7 +1328,7 @@ dependencies = [ "const_panic", "encase_derive", "glam", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1346,9 +1346,9 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd31dbbd9743684d339f907a87fe212cb7b51d75b9e8e74181fe363199ee9b47" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] [[package]] @@ -1462,9 +1462,9 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] [[package]] @@ -1581,7 +1581,7 @@ checksum = "6f56f6318968d03c18e1bcf4857ff88c61157e9da8e47c5f29055d60e1228884" dependencies = [ "log", "presser", - "thiserror", + "thiserror 1.0.69", "winapi", "windows 0.52.0", ] @@ -1643,7 +1643,7 @@ dependencies = [ "com", "libc", "libloading 0.8.4", - "thiserror", + "thiserror 1.0.69", "widestring", "winapi", ] @@ -1678,20 +1678,20 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "image" -version = "0.25.1" +version = "0.25.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11" +checksum = "cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b" dependencies = [ "bytemuck", - "byteorder", + "byteorder-lite", "num-traits", ] [[package]] name = "immutable-chunkmap" -version = "2.0.5" +version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4419f022e55cc63d5bbd6b44b71e1d226b9c9480a47824c706e9d54e5c40c5eb" +checksum = "12f97096f508d54f8f8ab8957862eee2ccd628847b6217af1a335e1c44dee578" dependencies = [ "arrayvec", ] @@ -1732,7 +1732,7 @@ dependencies = [ "combine", "jni-sys", "log", - "thiserror", + "thiserror 1.0.69", "walkdir", "windows-sys 0.45.0", ] @@ -1754,10 +1754,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "a865e038f7f6ed956f788f0d7d60c541fff74c7bd74272c5d4cf15c63743e705" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -1890,16 +1891,16 @@ dependencies = [ [[package]] name = "micro_autotile" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78eda07db196df5c028f17242e7f5e9fd26efadf83d1e10d4927b56754155996" +checksum = "1f42e6e5c0d0782633603655ed705160f1c7a298424175b69da56772ada0af20" dependencies = [ "fastrand 1.9.0", ] [[package]] name = "micro_ldtk" -version = "0.11.0" +version = "0.12.0" dependencies = [ "anyhow", "bevy", @@ -1909,7 +1910,7 @@ dependencies = [ "quadtree_rs", "serde", "serde_json", - "thiserror", + "thiserror 2.0.3", ] [[package]] @@ -1930,8 +1931,8 @@ dependencies = [ "rustc-hash", "spirv", "termcolor", - "thiserror", - "unicode-xid 0.2.4", + "thiserror 1.0.69", + "unicode-xid 0.2.6", ] [[package]] @@ -1949,7 +1950,7 @@ dependencies = [ "regex", "regex-syntax 0.8.4", "rustc-hash", - "thiserror", + "thiserror 1.0.69", "tracing", "unicode-ident", ] @@ -1966,7 +1967,7 @@ dependencies = [ "ndk-sys 0.6.0+11769913", "num_enum", "raw-window-handle", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -2101,9 +2102,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] [[package]] @@ -2320,9 +2321,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "orbclient" @@ -2399,9 +2400,9 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] [[package]] @@ -2448,7 +2449,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb458bb7f6e250e6eb79d5026badc10a3ebb8f9a15d1fff0f13d17c71f4d6dee" dependencies = [ - "unicode-xid 0.2.4", + "unicode-xid 0.2.6", ] [[package]] @@ -2477,9 +2478,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -2515,7 +2516,7 @@ version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", ] [[package]] @@ -2698,9 +2699,9 @@ version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] [[package]] @@ -2803,18 +2804,18 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.70" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0209b68b3613b093e0ec905354eccaedcfe83b8cb37cbdeae64026c3064c16" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", "unicode-ident", ] @@ -2843,22 +2844,42 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.61" +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.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.3", ] [[package]] name = "thiserror-impl" -version = "1.0.61" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +dependencies = [ + "proc-macro2 1.0.92", + "quote 1.0.36", + "syn 2.0.90", ] [[package]] @@ -2916,9 +2937,9 @@ version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] [[package]] @@ -3003,9 +3024,9 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "uuid" @@ -3047,46 +3068,48 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "d15e63b4482863c109d70a7b8706c1e364eb6ea449b201a76c5b89cedcec2d5c" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "8d36ef12e3aaca16ddd3f67922bc63e48e953f126de60bd33ccc0101ef9998cd" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "9dfaf8f50e5f293737ee323940c7d8b08a66a95a419223d9f41610ca08b0833d" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "705440e08b42d3e4b36de7d66c944be628d579796b8090bfa3471478a2260051" dependencies = [ "quote 1.0.36", "wasm-bindgen-macro-support", @@ -3094,28 +3117,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "98c9ae5a76e46f4deecd0f0255cc223cfa18dc9b261213b8aa0c7b36f61b3f1d" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "6ee99da9c5ba11bd675621338ef6fa52296b76b83305e9b6e5c77d4c286d6d49" [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "a98bc3c33f0fe7e59ad7cd041b89034fa82a7c2d4365ca538dda6cdaf513863c" dependencies = [ "js-sys", "wasm-bindgen", @@ -3178,7 +3201,7 @@ dependencies = [ "raw-window-handle", "rustc-hash", "smallvec", - "thiserror", + "thiserror 1.0.69", "web-sys", "wgpu-hal", "wgpu-types", @@ -3222,7 +3245,7 @@ dependencies = [ "renderdoc-sys", "rustc-hash", "smallvec", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "web-sys", "wgpu-types", @@ -3324,9 +3347,9 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "942ac266be9249c84ca862f0a164a39533dc2f6f33dc98ec89c8da99b82ea0bd" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] [[package]] @@ -3335,9 +3358,9 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da33557140a288fae4e1d5f8873aaf9eb6613a9cf82c3e070223ff177f598b60" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] [[package]] @@ -3586,7 +3609,7 @@ version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ - "proc-macro2 1.0.86", + "proc-macro2 1.0.92", "quote 1.0.36", - "syn 2.0.70", + "syn 2.0.90", ] diff --git a/Cargo.toml b/Cargo.toml index 95d760b66d9751eabee05c25f35bfb1fed115d2d..19c2021676812a85fe03ece414f36dccdccf0188 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "micro_ldtk" -version = "0.11.0" +version = "0.12.0" edition = "2021" authors = [ @@ -27,21 +27,22 @@ ldtk_1_1_2 = ["_supports_ldtk"] ldtk_1_1_1 = ["_supports_ldtk"] ldtk_1_1_0 = ["_supports_ldtk"] ldtk_1_0_0 = ["_supports_ldtk"] -autotile = ["micro_autotile"] +autotile = ["dep:micro_autotile"] +bevy = ["dep:bevy"] _supports_intgridgroup = [] _supports_ldtk = [] _optional_tile_list = [] no_panic = [] [dependencies] -bevy = { version = "0.14", default-features = false, features = ["bevy_render", "bevy_sprite", "bevy_asset", "serialize"] } +bevy = { optional = true, version = "0.14", default-features = false, features = ["bevy_render", "bevy_sprite", "bevy_asset", "serialize"] } anyhow = "1.0" -thiserror = "1.0" +thiserror = "2.0" log = "0.4" -serde = "1.0" +serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" num-traits = "0.2" quadtree_rs = "0.1" -micro_autotile = { version = "0.1", optional = true } +micro_autotile = { version = "0.2", optional = true } diff --git a/src/ldtk/mod.rs b/src/ldtk/mod.rs index cdf6a521e114ee1d227041d7c8f94c3ebce9aebb..e41dc4ae4d189a71935758e521c38671e204ff40 100644 --- a/src/ldtk/mod.rs +++ b/src/ldtk/mod.rs @@ -19,10 +19,6 @@ mod data_1_4_0; #[cfg(any(feature = "ldtk_1_5_3"))] mod data_1_5_3; -use bevy::asset::io::Reader; -use bevy::asset::{AssetLoader, AsyncReadExt, LoadContext, UntypedAssetId, VisitAssetDependencies}; -use bevy::prelude::{Asset, Handle}; -use bevy::reflect::TypePath; use crate::ldtk; #[cfg(feature = "ldtk_1_0_0")] @@ -89,37 +85,134 @@ impl<'a> LdtkFromBytes<'a> for Project {} impl_from_bytes!(Level); impl_from_bytes!(Project); -impl TypePath for Project { - fn type_path() -> &'static str { - "micro_ldtk::ldtk::Project" +#[cfg(feature = "bevy")] +mod _bevy_impl { + use super::*; + use bevy::asset::io::Reader; + use bevy::asset::{AssetLoader, AsyncReadExt, LoadContext, UntypedAssetId, VisitAssetDependencies}; + use bevy::prelude::{Asset, Handle}; + use bevy::reflect::TypePath; + + + impl TypePath for Project { + fn type_path() -> &'static str { + "micro_ldtk::ldtk::Project" + } + + fn short_type_path() -> &'static str { + "Project" + } } - fn short_type_path() -> &'static str { - "Project" + impl VisitAssetDependencies for Project { + fn visit_dependencies(&self, _visit: &mut impl FnMut(UntypedAssetId)) {} } -} -impl VisitAssetDependencies for Project { - fn visit_dependencies(&self, _visit: &mut impl FnMut(UntypedAssetId)) {} -} + impl Asset for Project {} -impl Asset for Project {} + impl TypePath for Level { + fn type_path() -> &'static str { + "micro_ld0tk::ldtk::Level" + } -impl TypePath for Level { - fn type_path() -> &'static str { - "micro_ld0tk::ldtk::Level" + fn short_type_path() -> &'static str { + "Level" + } } - fn short_type_path() -> &'static str { - "Level" + impl VisitAssetDependencies for Level { + fn visit_dependencies(&self, _visit: &mut impl FnMut(UntypedAssetId)) {} } -} -impl VisitAssetDependencies for Level { - fn visit_dependencies(&self, _visit: &mut impl FnMut(UntypedAssetId)) {} + impl Asset for Level {} + + + #[derive(Asset, TypePath)] + pub struct LevelSet(pub Vec<Handle<Level>>); + + #[derive(Default)] + pub struct LdtkLoader; + impl AssetLoader for LdtkLoader { + type Asset = Project; + type Settings = (); + type Error = LdtkLoadError; + + async fn load<'a>( + &'a self, + reader: &'a mut Reader<'_>, + _settings: &'a Self::Settings, + load_context: &'a mut LoadContext<'_>, + ) -> Result<Self::Asset, Self::Error> { + let mut bytes = Vec::new(); + reader.read_to_end(&mut bytes).await?; + let project = Project::from_bytes(bytes.as_slice())?; + + let levels = project + .levels + .iter() + .flat_map(|level| { + log::debug!( + "Checking if level is external: {} [{}]", + level.identifier, + level.external_rel_path.is_some() + ); + + level + .external_rel_path + .as_ref() + .map(|path| (level.identifier.clone(), path)) + }) + .collect::<Vec<(String, &String)>>(); + + let parent_path = load_context.path().parent().map(|pp| pp.to_path_buf()); + let mut level_set = Vec::with_capacity(levels.len()); + + for (_, path) in levels { + level_set.push(match &parent_path { + Some(parent) => load_context.load::<Level>(parent.join(path)), + None => load_context.load::<Level>(path), + }); + } + + load_context.add_labeled_asset( + format!("{}ExternalLevels", project.iid), + LevelSet(level_set), + ); + + Ok(project) + } + + fn extensions(&self) -> &[&str] { + &["ldtk"] + } + } + + #[derive(Default)] + pub struct LdtkLevelLoader; + impl AssetLoader for LdtkLevelLoader { + type Asset = Level; + type Settings = (); + type Error = LdtkLoadError; + + async fn load<'a>( + &'a self, + reader: &'a mut Reader<'_>, + _settings: &'a Self::Settings, + _load_context: &'a mut LoadContext<'_>, + ) -> Result<Self::Asset, Self::Error> { + let mut bytes = Vec::new(); + reader.read_to_end(&mut bytes).await?; + let level = Level::from_bytes(bytes.as_slice())?; + Ok(level) + } + fn extensions(&self) -> &[&str] { + &["ldtkl"] + } + } } -impl Asset for Level {} +#[cfg(feature = "bevy")] +pub use _bevy_impl::{LdtkLoader, LdtkLevelLoader, LevelSet}; impl Project { pub fn get_all_levels(&self) -> Vec<&Level> { @@ -173,88 +266,6 @@ pub enum LdtkLoadError { pub type LdtkProject = Project; -#[derive(Asset, TypePath)] -pub(crate) struct LevelSet(pub Vec<Handle<Level>>); - -#[derive(Default)] -pub struct LdtkLoader; -impl AssetLoader for LdtkLoader { - type Asset = Project; - type Settings = (); - type Error = LdtkLoadError; - - async fn load<'a>( - &'a self, - reader: &'a mut Reader<'_>, - _settings: &'a Self::Settings, - load_context: &'a mut LoadContext<'_>, - ) -> Result<Self::Asset, Self::Error> { - let mut bytes = Vec::new(); - reader.read_to_end(&mut bytes).await?; - let project = Project::from_bytes(bytes.as_slice())?; - - let levels = project - .levels - .iter() - .flat_map(|level| { - log::debug!( - "Checking if level is external: {} [{}]", - level.identifier, - level.external_rel_path.is_some() - ); - - level - .external_rel_path - .as_ref() - .map(|path| (level.identifier.clone(), path)) - }) - .collect::<Vec<(String, &String)>>(); - - let parent_path = load_context.path().parent().map(|pp| pp.to_path_buf()); - let mut level_set = Vec::with_capacity(levels.len()); - - for (_, path) in levels { - level_set.push(match &parent_path { - Some(parent) => load_context.load::<Level>(parent.join(path)), - None => load_context.load::<Level>(path), - }); - } - - load_context.add_labeled_asset( - format!("{}ExternalLevels", project.iid), - LevelSet(level_set), - ); - - Ok(project) - } - - fn extensions(&self) -> &[&str] { - &["ldtk"] - } -} - -#[derive(Default)] -pub struct LdtkLevelLoader; -impl AssetLoader for LdtkLevelLoader { - type Asset = Level; - type Settings = (); - type Error = LdtkLoadError; - - async fn load<'a>( - &'a self, - reader: &'a mut Reader<'_>, - _settings: &'a Self::Settings, - _load_context: &'a mut LoadContext<'_>, - ) -> Result<Self::Asset, Self::Error> { - let mut bytes = Vec::new(); - reader.read_to_end(&mut bytes).await?; - let level = Level::from_bytes(bytes.as_slice())?; - Ok(level) - } - fn extensions(&self) -> &[&str] { - &["ldtkl"] - } -} #[cfg(feature = "autotile")] mod autotile_support { @@ -268,7 +279,7 @@ mod autotile_support { rule.tile_rects_ids .iter() .flatten() - .map(|val| *val as usize) + .map(|val| *val as i32) .collect(), ) } @@ -287,36 +298,21 @@ mod autotile_support { 1 => Some(AutoTileRule { chance: rule.chance as f32, output: create_output(rule), - matcher: TileMatcher::single_match(TileStatus::from_ldtk_value( + matcher: TileMatcher::single(TileStatus::from( rule.pattern[0], )), }), - 3 => { - if rule.pattern.len() == 9 { - let matcher = TileMatcher([ - TileStatus::from_ldtk_value(rule.pattern[0]), - TileStatus::from_ldtk_value(rule.pattern[1]), - TileStatus::from_ldtk_value(rule.pattern[2]), - TileStatus::from_ldtk_value(rule.pattern[3]), - TileStatus::from_ldtk_value(rule.pattern[4]), - TileStatus::from_ldtk_value(rule.pattern[5]), - TileStatus::from_ldtk_value(rule.pattern[6]), - TileStatus::from_ldtk_value(rule.pattern[7]), - TileStatus::from_ldtk_value(rule.pattern[8]), - ]); - - let rule = AutoTileRule { - chance: rule.chance as f32, + _ => { + TileMatcher::try_from(rule.pattern.as_slice()) + .ok().map(|matcher| { + AutoTileRule { matcher, - output: create_output(rule), - }; + chance: rule.chance as f32, + output: create_output(rule), + } + }) - Some(rule) - } else { - None - } } - _ => None, }) .collect(); diff --git a/src/lib.rs b/src/lib.rs index 58a29947bff81a7674af640d4c3172fa75219654..65855fad18a537d4f0a3c16fe570bcdee801d950 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,7 +1,10 @@ -#[cfg(feature = "_supports_ldtk")] +#[cfg(all(feature = "_supports_ldtk", feature = "bevy"))] mod assets; +#[cfg(feature = "bevy")] mod camera; +#[cfg(feature = "bevy")] mod map_query; +#[cfg(feature = "bevy")] mod pregen; mod system; @@ -23,6 +26,7 @@ pub fn set_ldtk_tile_scale_f32(scale: f32) { } } +#[cfg(feature = "bevy")] mod __plugin { use bevy::ecs::query::QueryFilter; use std::marker::PhantomData; @@ -85,13 +89,19 @@ mod __plugin { } use std::sync::atomic::{AtomicU32, Ordering}; - +#[cfg(feature = "bevy")] pub use __plugin::{MicroLDTKCameraPlugin, MicroLDTKPlugin}; +#[cfg(feature = "bevy")] pub use assets::{LevelIndex, TileMetadata, TilesetIndex}; +#[cfg(feature = "bevy")] pub use camera::CameraBounder; -pub use ldtk::{LdtkLoader, LdtkProject}; +pub use ldtk::{LdtkProject, Level, AutoLayerRuleGroup}; +#[cfg(feature = "bevy")] +pub use ldtk::LdtkLoader; +#[cfg(feature = "bevy")] pub use map_query::{CameraBounds, InstanceRef, MapQuery}; #[cfg(feature = "autotile")] pub use micro_autotile as autotile; +#[cfg(feature = "bevy")] pub use pregen::{write_layer_to_texture, write_map_to_texture, Rasterise}; pub use system::*; diff --git a/src/system/mod.rs b/src/system/mod.rs index 95310029952fb4e03cc2b600494e112625f95e57..45d44c8a67301d9dfb88152919bf9c2d6947e1b6 100644 --- a/src/system/mod.rs +++ b/src/system/mod.rs @@ -1,7 +1,11 @@ +#[cfg(feature = "bevy")] mod locator; +#[cfg(feature = "bevy")] mod types; mod utils; +#[cfg(feature = "bevy")] pub use locator::*; +#[cfg(feature = "bevy")] pub use types::*; pub use utils::*; diff --git a/src/system/types.rs b/src/system/types.rs index 161fb41d0e8a1856221a03fcac3d6491113c74a3..8debdbd5651ea660d8e1c1c52339556b67694efc 100644 --- a/src/system/types.rs +++ b/src/system/types.rs @@ -3,7 +3,9 @@ use std::fmt::{Debug, Formatter}; use std::ops::{Deref, DerefMut, Index}; use std::path::Path; +#[cfg(feature = "bevy")] use bevy::math::{IVec2, Rect, UVec2, Vec2}; +#[cfg(feature = "bevy")] use bevy::prelude::Event; use num_traits::AsPrimitive; use quadtree_rs::area::AreaBuilder; @@ -14,9 +16,12 @@ use serde_json::{Map, Number, Value}; use crate::ldtk::{EntityInstance, FieldInstance, LayerInstance, Level, TileInstance}; use crate::system::Indexer; -use crate::{get_ldtk_tile_scale, px_to_grid, MapQuery}; +use crate::{get_ldtk_tile_scale, px_to_grid}; +#[cfg(feature = "bevy")] +use crate::MapQuery; -#[derive(Default, Clone, Debug, Ord, PartialOrd, PartialEq, Eq, Event)] +#[derive(Default, Clone, Debug, Ord, PartialOrd, PartialEq, Eq)] +#[cfg_attr(feature = "bevy", derive(Event))] pub struct LevelDataUpdated(pub String); pub struct TileRef<'a> { @@ -88,11 +93,13 @@ where Self(value.0.as_(), value.1.as_()) } } +#[cfg(feature = "bevy")] impl From<UVec2> for SpatialIndex { fn from(value: UVec2) -> Self { Self(value.x as i64, value.y as i64) } } +#[cfg(feature = "bevy")] impl From<IVec2> for SpatialIndex { fn from(value: IVec2) -> Self { Self(value.x as i64, value.y as i64) diff --git a/src/system/utils.rs b/src/system/utils.rs index 2af7f3babc72de8f859552b8603395448238d948..be47c5e2a84b6e62363713e43015222cbbc6700b 100644 --- a/src/system/utils.rs +++ b/src/system/utils.rs @@ -1,3 +1,4 @@ +#[cfg(feature = "bevy")] use bevy::prelude::{Component, IVec2, Resource}; use num_traits::AsPrimitive; @@ -18,10 +19,11 @@ pub fn entity_centre(level_height: i64, entity: &EntityInstance) -> (f32, f32) { (x as f32, y as f32) } -#[derive(Component)] +#[cfg_attr(feature="bevy", derive(Component))] pub struct WorldLinked; -#[derive(Default, Resource, Clone, Debug)] +#[derive(Default, Clone, Debug)] +#[cfg_attr(feature="bevy", derive(Resource))] pub struct ActiveLevel { pub map: String, pub dirty: bool, @@ -87,6 +89,7 @@ impl Indexer { x >= 0 && x < self.width && y >= 0 && y < self.height } + #[cfg(feature = "bevy")] /// Perform a transformation to flip a grid point (top down coordinates) into a render /// point (bottom up coordinates) pub fn flip_y(&self, point: IVec2) -> IVec2 {