diff --git a/Cargo.lock b/Cargo.lock index 2fc7399674d73f707641dfead1ade401653e9fb6..bb83e714143c4e7b01d9daf15380d4bf50fad081 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,7 +97,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8cbd542dd180566fad88fd2729a53a62a734843c626638006a9d63ec0688484e" dependencies = [ "android_log-sys 0.1.2", - "env_logger", + "env_logger 0.7.1", "lazy_static", "log", ] @@ -172,6 +172,17 @@ version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi 0.3.9", +] + [[package]] name = "autocfg" version = "1.0.1" @@ -184,6 +195,15 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" +[[package]] +name = "base64" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" +dependencies = [ + "byteorder", +] + [[package]] name = "base64" version = "0.13.0" @@ -361,6 +381,18 @@ dependencies = [ "syn", ] +[[package]] +name = "bevy_ecs_tilemap" +version = "0.4.0" +source = "git+https://github.com/StarArawn/bevy_ecs_tilemap#5717a632a2e951641389bdc772147cd1f2ad481c" +dependencies = [ + "anyhow", + "bevy", + "log", + "morton-encoding", + "tiled", +] + [[package]] name = "bevy_gilrs" version = "0.5.0" @@ -381,7 +413,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9233bfb7e2cf053b51f01d2e57ea5a549438c0e5f08735d595b6a6504d00639e" dependencies = [ "anyhow", - "base64", + "base64 0.13.0", "bevy_app", "bevy_asset", "bevy_core", @@ -739,6 +771,10 @@ name = "bevytest" version = "0.1.0" dependencies = [ "bevy", + "bevy_ecs_tilemap", + "env_logger 0.8.4", + "log", + "rand", ] [[package]] @@ -1229,6 +1265,19 @@ dependencies = [ "regex", ] +[[package]] +name = "env_logger" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", +] + [[package]] name = "erased-serde" version = "0.3.16" @@ -1749,6 +1798,12 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + [[package]] name = "ident_case" version = "1.0.1" @@ -1765,7 +1820,7 @@ dependencies = [ "byteorder", "color_quant", "num-iter", - "num-rational", + "num-rational 0.3.2", "num-traits", "png", "scoped_threadpool", @@ -1926,6 +1981,18 @@ version = "0.2.98" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790" +[[package]] +name = "libflate" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9135df43b1f5d0e333385cb6e7897ecd1a43d7d11b91ac003f4d2c2d2401fdd" +dependencies = [ + "adler32", + "crc32fast", + "rle-decode-fast", + "take_mut", +] + [[package]] name = "libloading" version = "0.6.7" @@ -2142,6 +2209,16 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "morton-encoding" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f66c953d92a578cd98a4598021e3b473520d214665917eb51dba49dc227936c8" +dependencies = [ + "num", + "num-traits", +] + [[package]] name = "naga" version = "0.3.2" @@ -2289,6 +2366,41 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational 0.2.4", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "num-traits", +] + [[package]] name = "num-derive" version = "0.3.3" @@ -2321,6 +2433,18 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", +] + [[package]] name = "num-rational" version = "0.3.2" @@ -2669,6 +2793,12 @@ version = "0.6.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" +[[package]] +name = "rle-decode-fast" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cabe4fa914dec5870285fa7f71f602645da47c486e68486d2b4ceb4a343e90ac" + [[package]] name = "rodio" version = "0.13.1" @@ -2685,7 +2815,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "064ea8613fb712a19faf920022ec8ddf134984f100090764a4e1d768f3827f1f" dependencies = [ - "base64", + "base64 0.13.0", "bitflags", "serde", ] @@ -2760,18 +2890,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.126" +version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03" +checksum = "f03b9878abf6d14e6779d3f24f07b2cfa90352cfec4acc5aab8f1ac7f146fae8" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.126" +version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43" +checksum = "a024926d3432516606328597e0f224a51355a493b49fdd67e9209187cbe55ecc" dependencies = [ "proc-macro2", "quote", @@ -2780,9 +2910,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.64" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" +checksum = "336b10da19a12ad094b59d870ebde26a45402e5b470add4b5fd03c5048a32127" dependencies = [ "itoa", "ryu", @@ -3027,6 +3157,21 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "take_mut" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" + +[[package]] +name = "termcolor" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +dependencies = [ + "winapi-util", +] + [[package]] name = "thiserror" version = "1.0.26" @@ -3062,6 +3207,17 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7572415bd688d401c52f6e36f4c8e805b9ae1622619303b9fa835d531db0acae" +[[package]] +name = "tiled" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9b76189425fed476c9cb0e2a97adb0c6c9d370bf69a57cb951814e77a5fe63" +dependencies = [ + "base64 0.10.1", + "libflate", + "xml-rs", +] + [[package]] name = "toml" version = "0.5.8" @@ -3465,3 +3621,9 @@ name = "xi-unicode" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" + +[[package]] +name = "xml-rs" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" diff --git a/src/main.rs b/src/main.rs index ed11af351c67bc828bfc165588f902b538f1476f..ed11d268c906be51b67786c38f26616dd8af7952 100644 --- a/src/main.rs +++ b/src/main.rs @@ -91,7 +91,7 @@ fn setup( texture_atlas: atlas_handle, transform: Transform { - translation: Vec3::new(0., bottom / 2.0, 10.0), + translation: Vec3::new(0., bottom / 2.0, 2.5), scale: Vec3::new(1., 1., 1.0), ..Default::default() }, @@ -268,13 +268,23 @@ pub fn camera( } } +enum Layers { + Cloud, +} + // parallaxing -pub fn parallax(mut query: Query<(&mut Transform, &Layer)>) { - println!("parallax"); - for (mut _transform, layer) in query.iter_mut() { - print!( - "layer_id {:?}, map_id {:?}", - layer.settings.layer_id, layer.settings.map_id - ); +pub fn parallax( + mut layer_query: Query<(&mut Transform, &Layer)>, + camera_query: Query<&Transform, (With<Camera>, Without<Layer>)>, +) { + let camera_x = camera_query.single().unwrap().translation.x; + for (mut transform, layer) in layer_query.iter_mut() { + match layer.settings.layer_id { + 0 => transform.translation.x = camera_x / 2.0, + 1 => {} + 2 => {} + 3 => transform.translation.x = camera_x * 0.5, + _ => panic!("illegal layer id"), + } } }