diff --git a/Cargo.lock b/Cargo.lock index 8efcecc..60d564f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -79,6 +79,15 @@ dependencies = [ "winit", ] +[[package]] +name = "addr2line" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" +dependencies = [ + "gimli", +] + [[package]] name = "adler2" version = "2.0.1" @@ -107,6 +116,28 @@ dependencies = [ "memchr", ] +[[package]] +name = "alsa" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed7572b7ba83a31e20d1b48970ee402d2e3e0537dcfe0a3ff4d6eb7508617d43" +dependencies = [ + "alsa-sys", + "bitflags 2.9.4", + "cfg-if", + "libc", +] + +[[package]] +name = "alsa-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527" +dependencies = [ + "libc", + "pkg-config", +] + [[package]] name = "android-activity" version = "0.6.0" @@ -121,9 +152,9 @@ dependencies = [ "jni-sys", "libc", "log", - "ndk", + "ndk 0.9.0", "ndk-context", - "ndk-sys", + "ndk-sys 0.6.0+11769913", "num_enum", "thiserror 1.0.69", ] @@ -149,6 +180,12 @@ dependencies = [ "libc", ] +[[package]] +name = "anyhow" +version = "1.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" + [[package]] name = "approx" version = "0.5.1" @@ -245,6 +282,24 @@ dependencies = [ "futures-lite", ] +[[package]] +name = "async-io" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" +dependencies = [ + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix 1.1.2", + "slab", + "windows-sys 0.61.1", +] + [[package]] name = "async-lock" version = "3.4.1" @@ -290,6 +345,21 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +[[package]] +name = "backtrace" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-link 0.2.0", +] + [[package]] name = "base64" version = "0.22.1" @@ -429,6 +499,23 @@ dependencies = [ "syn", ] +[[package]] +name = "bevy_audio" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83620c82f281848c02ed4b65133a0364512b4eca2b39cd21a171e50e2986d89" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_transform", + "coreaudio-sys", + "rodio", + "tracing", +] + [[package]] name = "bevy_camera" version = "0.17.2" @@ -759,6 +846,7 @@ dependencies = [ "bevy_anti_alias", "bevy_app", "bevy_asset", + "bevy_audio", "bevy_camera", "bevy_color", "bevy_core_pipeline", @@ -779,6 +867,7 @@ dependencies = [ "bevy_platform", "bevy_ptr", "bevy_reflect", + "bevy_remote", "bevy_render", "bevy_scene", "bevy_shader", @@ -859,7 +948,7 @@ dependencies = [ "bevy_reflect", "derive_more", "glam", - "itertools", + "itertools 0.14.0", "libm", "rand", "rand_distr", @@ -1027,6 +1116,31 @@ dependencies = [ "uuid", ] +[[package]] +name = "bevy_remote" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5e053684d1735e62d8e491cb68f5d9f7219edcb6528d1ac5fe179f24e5fe497" +dependencies = [ + "anyhow", + "async-channel", + "async-io", + "bevy_app", + "bevy_asset", + "bevy_derive", + "bevy_ecs", + "bevy_log", + "bevy_platform", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "http-body-util", + "hyper", + "serde", + "serde_json", + "smol-hyper", +] + [[package]] name = "bevy_render" version = "0.17.2" @@ -1218,6 +1332,7 @@ checksum = "18839182775f30d26f0f84d9de85d25361bb593c99517a80b64ede6cbaf41adc" dependencies = [ "async-channel", "async-executor", + "async-io", "async-task", "atomic-waker", "bevy_platform", @@ -1408,6 +1523,24 @@ dependencies = [ "winit", ] +[[package]] +name = "bindgen" +version = "0.72.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" +dependencies = [ + "bitflags 2.9.4", + "cexpr", + "clang-sys", + "itertools 0.13.0", + "proc-macro2", + "quote", + "regex", + "rustc-hash 2.1.1", + "shlex", + "syn", +] + [[package]] name = "bit-set" version = "0.8.0" @@ -1574,6 +1707,15 @@ 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-if" version = "1.0.3" @@ -1586,6 +1728,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[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 = "codespan-reporting" version = "0.12.0" @@ -1724,6 +1877,26 @@ dependencies = [ "libc", ] +[[package]] +name = "coreaudio-rs" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace" +dependencies = [ + "bitflags 1.3.2", + "core-foundation-sys", + "coreaudio-sys", +] + +[[package]] +name = "coreaudio-sys" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ceec7a6067e62d6f931a2baf6f3a751f4a892595bcec1461a3c94ef9949864b6" +dependencies = [ + "bindgen", +] + [[package]] name = "cosmic-text" version = "0.14.2" @@ -1734,7 +1907,7 @@ dependencies = [ "fontdb", "log", "rangemap", - "rustc-hash", + "rustc-hash 1.1.0", "rustybuzz", "self_cell", "smol_str", @@ -1747,6 +1920,29 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "cpal" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779" +dependencies = [ + "alsa", + "core-foundation-sys", + "coreaudio-rs", + "dasp_sample", + "jni", + "js-sys", + "libc", + "mach2", + "ndk 0.8.0", + "ndk-context", + "oboe", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.54.0", +] + [[package]] name = "crc32fast" version = "1.5.0" @@ -1809,6 +2005,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f" +[[package]] +name = "dasp_sample" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" + [[package]] name = "data-encoding" version = "2.9.0" @@ -2186,15 +2388,15 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "js-sys", "libc", "r-efi", - "wasi 0.14.7+wasi-0.2.4", + "wasip2", "wasm-bindgen", ] @@ -2232,6 +2434,12 @@ dependencies = [ "windows 0.62.1", ] +[[package]] +name = "gimli" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" + [[package]] name = "gl_generator" version = "0.14.0" @@ -2255,6 +2463,12 @@ dependencies = [ "serde_core", ] +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + [[package]] name = "glow" version = "0.16.0" @@ -2416,6 +2630,73 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" +[[package]] +name = "http" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "pin-utils", + "smallvec", + "tokio", +] + [[package]] name = "image" version = "0.25.8" @@ -2480,6 +2761,26 @@ dependencies = [ "mach2", ] +[[package]] +name = "io-uring" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" +dependencies = [ + "bitflags 2.9.4", + "cfg-if", + "libc", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.14.0" @@ -2489,6 +2790,12 @@ dependencies = [ "either", ] +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + [[package]] name = "jni" version = "0.21.1" @@ -2584,7 +2891,7 @@ dependencies = [ "dyn-clone", "dyn-eq", "dyn-hash", - "itertools", + "itertools 0.14.0", "leafwing_input_manager_macros", "serde", "serde_flexitos", @@ -2602,6 +2909,17 @@ dependencies = [ "syn", ] +[[package]] +name = "lewton" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030" +dependencies = [ + "byteorder", + "ogg", + "tinyvec", +] + [[package]] name = "libc" version = "0.2.176" @@ -2735,6 +3053,12 @@ dependencies = [ "paste", ] +[[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.9" @@ -2753,7 +3077,7 @@ checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "log", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "windows-sys 0.59.0", ] @@ -2788,7 +3112,7 @@ dependencies = [ "num-traits", "once_cell", "pp-rs", - "rustc-hash", + "rustc-hash 1.1.0", "spirv", "thiserror 2.0.17", "unicode-ident", @@ -2805,12 +3129,26 @@ dependencies = [ "indexmap", "naga", "regex", - "rustc-hash", + "rustc-hash 1.1.0", "thiserror 2.0.17", "tracing", "unicode-ident", ] +[[package]] +name = "ndk" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" +dependencies = [ + "bitflags 2.9.4", + "jni-sys", + "log", + "ndk-sys 0.5.0+25.2.9519653", + "num_enum", + "thiserror 1.0.69", +] + [[package]] name = "ndk" version = "0.9.0" @@ -2820,7 +3158,7 @@ dependencies = [ "bitflags 2.9.4", "jni-sys", "log", - "ndk-sys", + "ndk-sys 0.6.0+11769913", "num_enum", "raw-window-handle", "thiserror 1.0.69", @@ -2832,6 +3170,15 @@ 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" @@ -2853,6 +3200,16 @@ dependencies = [ "libc", ] +[[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" @@ -2905,6 +3262,17 @@ dependencies = [ "windows-sys 0.52.0", ] +[[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", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -3149,6 +3517,38 @@ dependencies = [ "objc2-foundation", ] +[[package]] +name = "object" +version = "0.37.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" +dependencies = [ + "memchr", +] + +[[package]] +name = "oboe" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb" +dependencies = [ + "jni", + "ndk 0.8.0", + "ndk-context", + "num-derive", + "num-traits", + "oboe-sys", +] + +[[package]] +name = "oboe-sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d" +dependencies = [ + "cc", +] + [[package]] name = "offset-allocator" version = "0.2.0" @@ -3159,6 +3559,15 @@ dependencies = [ "nonmax", ] +[[package]] +name = "ogg" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e" +dependencies = [ + "byteorder", +] + [[package]] name = "once_cell" version = "1.21.3" @@ -3259,6 +3668,12 @@ 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" @@ -3545,6 +3960,16 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" +[[package]] +name = "rodio" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ceb6607dd738c99bc8cb28eff249b7cd5c8ec88b9db96c0608c1480d140fb1" +dependencies = [ + "cpal", + "lewton", +] + [[package]] name = "ron" version = "0.10.1" @@ -3564,12 +3989,24 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" +[[package]] +name = "rustc-demangle" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" + [[package]] name = "rustc-hash" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + [[package]] name = "rustix" version = "0.38.44" @@ -3628,6 +4065,12 @@ dependencies = [ "twox-hash", ] +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + [[package]] name = "same-file" version = "1.0.6" @@ -3714,6 +4157,19 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_json" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", + "serde_core", +] + [[package]] name = "sharded-slab" version = "0.1.7" @@ -3794,6 +4250,19 @@ dependencies = [ "xkeysym", ] +[[package]] +name = "smol-hyper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7428a49d323867702cd12b97b08a6b0104f39ec13b49117911f101271321bc1a" +dependencies = [ + "async-executor", + "async-io", + "futures-io", + "hyper", + "pin-project-lite", +] + [[package]] name = "smol_str" version = "0.2.2" @@ -4004,6 +4473,20 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +[[package]] +name = "tokio" +version = "1.47.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +dependencies = [ + "backtrace", + "io-uring", + "libc", + "mio", + "pin-project-lite", + "slab", +] + [[package]] name = "toml_datetime" version = "0.7.2" @@ -4281,15 +4764,6 @@ version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" -[[package]] -name = "wasi" -version = "0.14.7+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" -dependencies = [ - "wasip2", -] - [[package]] name = "wasip2" version = "1.0.1+wasi-0.2.4" @@ -4547,7 +5021,7 @@ dependencies = [ "portable-atomic", "profiling", "raw-window-handle", - "rustc-hash", + "rustc-hash 1.1.0", "smallvec", "thiserror 2.0.17", "wgpu-core-deps-apple", @@ -4613,7 +5087,7 @@ dependencies = [ "log", "metal", "naga", - "ndk-sys", + "ndk-sys 0.6.0+11769913", "objc", "ordered-float", "parking_lot", @@ -4656,6 +5130,16 @@ dependencies = [ "windows-sys 0.61.1", ] +[[package]] +name = "windows" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" +dependencies = [ + "windows-core 0.54.0", + "windows-targets 0.52.6", +] + [[package]] name = "windows" version = "0.58.0" @@ -4709,6 +5193,16 @@ dependencies = [ "windows-core 0.62.1", ] +[[package]] +name = "windows-core" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" +dependencies = [ + "windows-result 0.1.2", + "windows-targets 0.52.6", +] + [[package]] name = "windows-core" version = "0.58.0" @@ -4846,6 +5340,15 @@ dependencies = [ "windows-link 0.2.0", ] +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-result" version = "0.2.0" @@ -5172,7 +5675,7 @@ dependencies = [ "js-sys", "libc", "memmap2", - "ndk", + "ndk 0.9.0", "objc2", "objc2-app-kit", "objc2-foundation", diff --git a/Cargo.toml b/Cargo.toml index 7534bde..0c3ed7a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,16 +12,22 @@ bevy = { version = "0.17.2", default-features = false, features = [ "bevy_sprite", "bevy_sprite_render", "bevy_text", + "bevy_ui", + "bevy_ui_render", + "bevy_gilrs", "bevy_window", "bevy_winit", "bevy_state", + "bevy_audio", + "default_font", "multi_threaded", "png", "std", + "vorbis", + "wayland", "webgl2", "x11", "zstd_rust", - "wayland" ] } bevy_embedded_assets = "0.14.0" leafwing-input-manager = "0.18.0" @@ -31,7 +37,7 @@ log = { version = "*", features = [ rand = "0.9.2" [target.wasm32-unknown-unknown.dependencies] -getrandom = { version = "0.3", features = ["wasm_js"] } +getrandom = { version = "0.3.4", features = ["wasm_js"] } [features] # Default to a native dev build. @@ -40,18 +46,18 @@ dev = [ "bevy/dynamic_linking", "bevy/bevy_dev_tools", "bevy/bevy_ui_debug", + "bevy/bevy_debug_stepping", "bevy/track_location", "bevy/trace", + "bevy/bevy_remote", + "bevy/reflect_auto_register", ] dev_native = [ "dev", - # Enable asset hot reloading for native dev builds. "bevy/file_watcher", - # Enable embedded asset hot reloading for native dev builds. "bevy/embedded_watcher", ] - [package.metadata.bevy_cli.release] # Disable dev features for release builds. default-features = false diff --git a/assets/credits.txt b/assets/credits.txt new file mode 100644 index 0000000..23ae8dd --- /dev/null +++ b/assets/credits.txt @@ -0,0 +1,11 @@ +https://opengameart.org/content/through-space +https://opengameart.org/content/space-theme +https://opengameart.org/content/background-space-track - My Very Own Dead Ship +https://opengameart.org/content/space-boss-battle-theme - Orbital Colossus +https://opengameart.org/content/space-bass - Space Bass +https://opengameart.org/content/the-last-parsec +https://opengameart.org/content/lunar-harvest +https://opengameart.org/content/overdrive-sex-machine + +https://opengameart.org/content/512-sound-effects-8-bit-style +https://opengameart.org/content/gui-sound-effects diff --git a/assets/font.ttf b/assets/font.ttf new file mode 100644 index 0000000..debfb78 Binary files /dev/null and b/assets/font.ttf differ diff --git a/assets/soundtrack/spacetheme.ogg b/assets/soundtrack/spacetheme.ogg new file mode 100644 index 0000000..a41c87c Binary files /dev/null and b/assets/soundtrack/spacetheme.ogg differ diff --git a/assets/sprites/fonts.aseprite b/assets/sprites/fonts.aseprite new file mode 100644 index 0000000..e585c84 Binary files /dev/null and b/assets/sprites/fonts.aseprite differ diff --git a/assets/sprites/fonts.png b/assets/sprites/fonts.png new file mode 100644 index 0000000..3b6b77b Binary files /dev/null and b/assets/sprites/fonts.png differ diff --git a/assets/sprites/jodainteractive.aseprite b/assets/sprites/jodainteractive.aseprite new file mode 100644 index 0000000..8dd4f73 Binary files /dev/null and b/assets/sprites/jodainteractive.aseprite differ diff --git a/assets/sprites/jodainteractive.png b/assets/sprites/jodainteractive.png new file mode 100644 index 0000000..35c1f27 Binary files /dev/null and b/assets/sprites/jodainteractive.png differ diff --git a/assets/sprites/newgame.aseprite b/assets/sprites/newgame.aseprite new file mode 100644 index 0000000..d6731e9 Binary files /dev/null and b/assets/sprites/newgame.aseprite differ diff --git a/assets/sprites/newgame.png b/assets/sprites/newgame.png new file mode 100644 index 0000000..7f55a21 Binary files /dev/null and b/assets/sprites/newgame.png differ diff --git a/assets/sprites/quit.aseprite b/assets/sprites/quit.aseprite new file mode 100644 index 0000000..59c4cc1 Binary files /dev/null and b/assets/sprites/quit.aseprite differ diff --git a/assets/sprites/quit.png b/assets/sprites/quit.png new file mode 100644 index 0000000..7482ea4 Binary files /dev/null and b/assets/sprites/quit.png differ diff --git a/assets/sprites/settings.aseprite b/assets/sprites/settings.aseprite new file mode 100644 index 0000000..ebf4e11 Binary files /dev/null and b/assets/sprites/settings.aseprite differ diff --git a/assets/sprites/settings.png b/assets/sprites/settings.png new file mode 100644 index 0000000..b6be752 Binary files /dev/null and b/assets/sprites/settings.png differ diff --git a/assets/sprites/title.aseprite b/assets/sprites/title.aseprite new file mode 100644 index 0000000..7f5aacb Binary files /dev/null and b/assets/sprites/title.aseprite differ diff --git a/assets/sprites/title.png b/assets/sprites/title.png new file mode 100644 index 0000000..212ecc8 Binary files /dev/null and b/assets/sprites/title.png differ diff --git a/src/audio/mod.rs b/src/audio/mod.rs new file mode 100644 index 0000000..ba6a940 --- /dev/null +++ b/src/audio/mod.rs @@ -0,0 +1,89 @@ +use bevy::{ + audio::{PlaybackMode, Volume}, + prelude::*, +}; + +pub(super) fn plugin(app: &mut App) { + app.add_systems(Startup, setup_audio); + // app.add_observer(on_play_soundtrack_event); + app.add_systems(Update, fade_in); +} + +#[derive(Resource)] +pub struct Soundtracks { + pub main_theme: Handle, + pub battle_theme: Handle, +} + +pub enum Soundtrack { + MainTheme, + BattleTheme, +} + +#[derive(Event)] +pub struct PlaySoundtrackEvent { + soundtrack: Soundtrack, +} + +fn setup_audio(mut commands: Commands, asset_server: Res) { + let main_handle = asset_server.load("soundtrack/spacetheme.ogg"); + let soundtracks = Soundtracks { + main_theme: main_handle.clone(), + battle_theme: asset_server.load("audio/soundtrack/battle_theme.ogg"), + }; + + commands.insert_resource(soundtracks); + + commands.spawn(( + AudioPlayer(main_handle.clone()), + PlaybackSettings { + mode: PlaybackMode::Loop, + volume: Volume::Linear(0.0), + ..default() + }, + FadeIn { duration: 4.0 }, + Transform::default(), + GlobalTransform::default(), + )); +} + +// fn on_play_soundtrack_event( +// soundtrack_event: On, +// soundtracks: Res, +// ) { +// let track_handle = match soundtrack_event.soundtrack { +// Soundtrack::MainTheme => soundtracks.main_theme.clone(), +// Soundtrack::BattleTheme => soundtracks.battle_theme.clone(), +// }; + +// commands.spawn(( +// AudioPlayer(track_handle), +// PlaybackSettings { +// mode: PlaybackMode::Loop, +// volume: Volume::Linear(1.0), +// ..default() +// }, +// )); +// } + +#[derive(Component)] +struct FadeIn { + duration: f32, +} + +fn fade_in( + mut commands: Commands, + mut audio_sink: Query<(&FadeIn, &mut AudioSink, Entity)>, + time: Res