diff --git a/CHANGELOG.md b/CHANGELOG.md index 1113738e94..ef81ea0f2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Point and directional lights now cast realistic shadows, using shadow mapping. - Added leaf and chimney particles - Some more combat sound effects +- Beehives and bees +- Fireflies ### Changed diff --git a/Cargo.lock b/Cargo.lock index e35d60dd5f..58b7176035 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,18 +2,24 @@ # It is not intended for manual editing. [[package]] name = "addr2line" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a49806b9dadc843c61e7c97e72490ad7f7220ae249012fbda9ad0609457c0543" +checksum = "1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072" dependencies = [ "gimli", ] [[package]] -name = "adler32" -version = "1.0.4" +name = "adler" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2" +checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" [[package]] name = "ahash" @@ -26,9 +32,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.10" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada" +checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86" dependencies = [ "memchr", ] @@ -84,7 +90,16 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" dependencies = [ - "winapi 0.3.8", + "winapi 0.3.9", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi 0.3.9", ] [[package]] @@ -126,7 +141,7 @@ checksum = "0609c78bd572f4edc74310dfb63a01f5609d53fa8b4dd7c4d98aef3b3e8d72d1" dependencies = [ "proc-macro-hack", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -136,9 +151,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc755b23c19211c270ef000fa7ce871377825e6cc7d1bfd0311076f22c5e6ba1" dependencies = [ "proc-macro-error 0.4.12", - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -176,7 +191,7 @@ checksum = "538ecb01eb64eecd772087e5b6f7540cbc917f047727339a472dafed2185b267" dependencies = [ "async-task", "broadcaster", - "crossbeam-channel 0.4.2", + "crossbeam-channel 0.4.3", "crossbeam-deque", "crossbeam-utils 0.7.2", "futures-core", @@ -201,7 +216,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ac2c016b079e771204030951c366db398864f5026f84a44dafb0ff20f02085d" dependencies = [ "libc", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -231,7 +246,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ "hermit-abi", "libc", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -266,19 +281,20 @@ checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" [[package]] name = "autocfg" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "backtrace" -version = "0.3.48" +version = "0.3.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0df2f85c8a2abbe3b7d7e748052fdd9b76a0458fdeb16ad4223f5eca78c7c130" +checksum = "46254cf2fdcdf1badb5934448c1bcbe046a56537b3987d96c51a7afc5d03f293" dependencies = [ "addr2line", "cfg-if", "libc", + "miniz_oxide 0.4.1", "object", "rustc-demangle", ] @@ -297,15 +313,15 @@ checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" [[package]] name = "base64" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d1ccbaf7d9ec9537465a97bf19edc1a4e158ecb49fc16178202238c569cc42" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" [[package]] name = "bincode" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5753e2a71534719bf3f4e57006c3a4f0d2c672a4b676eec84161f763eca87dbf" +checksum = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d" dependencies = [ "byteorder", "serde", @@ -324,7 +340,7 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", "regex", "rustc-hash", @@ -446,7 +462,7 @@ checksum = "0395175ecba60accac076a02c31d143b9dcd9d5eb5316d7163a3273803b765c7" dependencies = [ "libc", "pkg-config", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -477,9 +493,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.54" +version = "1.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bbb73db36c1246e9034e307d0fba23f9a2e251faa47ade70c1bd252220c8311" +checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381" dependencies = [ "jobserver", ] @@ -490,7 +506,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27" dependencies = [ - "nom 5.1.1", + "nom 5.1.2", ] [[package]] @@ -510,9 +526,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.11" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2" +checksum = "942f72db697d8767c22d46a598e01f2d3b475501ea43d0db4f16d90259182d0b" dependencies = [ "num-integer", "num-traits", @@ -538,11 +554,11 @@ dependencies = [ [[package]] name = "clap" -version = "2.33.1" +version = "2.33.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129" +checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" dependencies = [ - "ansi_term", + "ansi_term 0.11.0", "atty", "bitflags", "strsim 0.8.0", @@ -557,7 +573,7 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3a093d6fed558e5fe24c3dfc85a68bb68f1c824f440d3ba5aca189e2998786b" dependencies = [ - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -672,9 +688,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d709e38f0f6100c0c8c0b3aefb0aa1f83af865d7b6b267e8402820513a0c0d8" dependencies = [ "darling", - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -789,9 +805,9 @@ dependencies = [ [[package]] name = "coreaudio-sys" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e81f1c165c33ffab90a03077ac3b03462b34d5947145dfa48102e063d581502c" +checksum = "d6570ee6e089131e928d5ec9236db9e818aa3cf850f48b0eec6ef700571271d4" dependencies = [ "bindgen", ] @@ -810,7 +826,7 @@ dependencies = [ "num-traits", "stdweb 0.1.3", "thiserror", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -824,9 +840,9 @@ dependencies = [ [[package]] name = "criterion" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63f696897c88b57f4ffe3c69d8e1a0613c7d0e6c4833363c8560fbde9c47b966" +checksum = "70daa7ceec6cf143990669a04c7df13391d55fb27bd4079d252fca774ba244d8" dependencies = [ "atty", "cast", @@ -841,6 +857,7 @@ dependencies = [ "rayon", "regex", "serde", + "serde_cbor", "serde_derive", "serde_json", "tinytemplate", @@ -849,9 +866,9 @@ dependencies = [ [[package]] name = "criterion-plot" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddeaf7989f00f2e1d871a26a110f3ed713632feac17f65f03ca938c542618b60" +checksum = "e022feadec601fba1649cfa83586381a4ad31c6bf3a9ab7d408118b05dd9889d" dependencies = [ "cast", "itertools", @@ -882,12 +899,12 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cced8691919c02aac3cb0a1bc2e9b73d89e832bf9a06fc579d4e71b68a2da061" +checksum = "09ee0cc8804d5393478d743b035099520087a5186f3b93fa58cec08fa62407b6" dependencies = [ + "cfg-if", "crossbeam-utils 0.7.2", - "maybe-uninit", ] [[package]] @@ -921,7 +938,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "cfg-if", "crossbeam-utils 0.7.2", "lazy_static", @@ -966,7 +983,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "cfg-if", "lazy_static", ] @@ -984,7 +1001,7 @@ dependencies = [ "mio 0.7.0", "parking_lot 0.10.2", "signal-hook", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -993,7 +1010,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "057b7146d02fb50175fd7dbe5158f6097f33d02831f43b4ee8ae4ddf67b68f5c" dependencies = [ - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -1025,7 +1042,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39858aa5bac06462d4dd4b9164848eb81ffc4aa5c479746393598fd193afa227" dependencies = [ "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -1055,10 +1072,10 @@ checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", "strsim 0.9.3", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -1069,14 +1086,14 @@ checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" dependencies = [ "darling_core", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] name = "dashmap" -version = "3.11.4" +version = "3.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cfcd41ae02d60edded204341d2798ba519c336c51a37330aa4b98a1128def32" +checksum = "0f260e2fc850179ef410018660006951c1b55b79e8087e87111a2c388994b9b5" dependencies = [ "ahash", "cfg-if", @@ -1085,9 +1102,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72aa14c04dfae8dd7d8a2b1cb7ca2152618cd01336dbfe704b8dcbf8d41dbd69" +checksum = "d4d0e2d24e5ee3b23a01de38eefdcd978907890701f08ffffd4cb457ca4ee8d6" [[package]] name = "deflate" @@ -1105,9 +1122,9 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb582b60359da160a9477ee80f15c8d784c477e69c217ef2cdd4169c24ea380f" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -1133,9 +1150,9 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45f5098f628d02a7a0f68ddba586fb61e80edec3bdc1be3b921f4ceec60858d3" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -1176,7 +1193,7 @@ checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a" dependencies = [ "libc", "redox_users", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -1187,7 +1204,7 @@ checksum = "9c60f7b8a8953926148223260454befb50c751d3c50e1c178c4fd1ace4083c9a" dependencies = [ "libc", "redox_users", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -1214,7 +1231,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b11f15d1e3268f140f68d390637d5e76d849782d971ae7063e0da69fe9709a76" dependencies = [ - "libloading 0.6.2", + "libloading 0.6.3", ] [[package]] @@ -1237,9 +1254,9 @@ checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" [[package]] name = "downcast-rs" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ba6eb47c2131e784a38b726eb54c1e1484904f013e576a25354d0124161af6" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "draw_state" @@ -1252,9 +1269,9 @@ dependencies = [ [[package]] name = "either" -version = "1.5.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" +checksum = "cd56b59865bce947ac5958779cfa508f6c3b9497cc762b7e24a12d11ccde2c4f" [[package]] name = "enum-iterator" @@ -1271,16 +1288,16 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e94aa31f7c0dc764f57896dc615ddd76fc13b0d5dca7eb6cc5e018a5a09ec06" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] name = "error-chain" -version = "0.12.2" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd" +checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" dependencies = [ "backtrace", "version_check 0.9.2", @@ -1296,9 +1313,9 @@ dependencies = [ [[package]] name = "euclid" -version = "0.20.13" +version = "0.20.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d51b9a929edb14183fad621e2d5736fc8760707a24246047288d4c142b6bd" +checksum = "2bb7ef65b3777a325d1eeefefab5b6d4959da54747e33bd6258e789640f307ad" dependencies = [ "num-traits", ] @@ -1319,9 +1336,9 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", "synstructure", ] @@ -1340,21 +1357,21 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccb5acb1045ebbfa222e2c50679e392a71dd77030b78fb0189f2d9c5974400f9" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] name = "filetime" -version = "0.2.10" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "affc17579b132fc2461adf7c575cc6e8b134ebca52c51f5411388965227dc695" +checksum = "3ed85775dcc68644b5c950ac06a2b23768d3bc9390464151aaf27136998dcf9e" dependencies = [ "cfg-if", "libc", "redox_syscall", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -1503,9 +1520,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" dependencies = [ "proc-macro-hack", - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -1675,7 +1692,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2d38164670920cfb7491bc0cf6f49f0554bd1c44cdbedc6c78d2bf91691ff5e" dependencies = [ - "gl_generator 0.14.0", + "gl_generator", ] [[package]] @@ -1709,14 +1726,14 @@ dependencies = [ "stdweb 0.4.20", "uuid", "vec_map", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] name = "gimli" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c" +checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724" [[package]] name = "gio" @@ -1748,9 +1765,9 @@ dependencies = [ [[package]] name = "git2" -version = "0.13.6" +version = "0.13.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11e4b2082980e751c4bf4273e9cbb4a02c655729c8ee8a79f66cad03c8f4d31e" +checksum = "86d97249f21e9542caeee9f8e1d150905cd875bf723f5ff771bdb4852eb83a24" dependencies = [ "bitflags", "libc", @@ -1761,17 +1778,6 @@ dependencies = [ "url 2.1.1", ] -[[package]] -name = "gl_generator" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca98bbde17256e02d17336a6bdb5a50f7d0ccacee502e191d3e3d0ec2f96f84a" -dependencies = [ - "khronos_api", - "log", - "xml-rs", -] - [[package]] name = "gl_generator" version = "0.14.0" @@ -1846,18 +1852,18 @@ dependencies = [ "osmesa-sys", "parking_lot 0.10.2", "wayland-client", - "winapi 0.3.8", + "winapi 0.3.9", "winit", ] [[package]] name = "glutin_egl_sys" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "772edef3b28b8ad41e4ea202748e65eefe8e5ffd1f4535f1219793dbb20b3d4c" +checksum = "2abb6aa55523480c4adc5a56bbaa249992e2dddb2fc63dc96e04a3355364c211" dependencies = [ - "gl_generator 0.13.1", - "winapi 0.3.8", + "gl_generator", + "winapi 0.3.9", ] [[package]] @@ -1868,31 +1874,31 @@ checksum = "80de4146df76e8a6c32b03007bc764ff3249dcaeb4f675d68a06caf1bac363f1" [[package]] name = "glutin_gles2_sys" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e853d96bebcb8e53e445225c3009758c6f5960d44f2543245f6f07b567dae0" +checksum = "e8094e708b730a7c8a1954f4f8a31880af00eb8a1c5b5bf85d28a0a3c6d69103" dependencies = [ - "gl_generator 0.13.1", + "gl_generator", "objc", ] [[package]] name = "glutin_glx_sys" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c243de74d6cf5ea100c788826d2fb9319de315485dd4b310811a663b3809c3" +checksum = "7e393c8fc02b807459410429150e9c4faffdb312d59b8c038566173c81991351" dependencies = [ - "gl_generator 0.13.1", + "gl_generator", "x11-dl", ] [[package]] name = "glutin_wgl_sys" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a93dba7ee3a0feeac0f437141ff25e71ce2066bcf1a706acab1559ffff94eb6a" +checksum = "3da5951a1569dbab865c6f2a863efafff193a93caf05538d193e9e3816d21696" dependencies = [ - "gl_generator 0.13.1", + "gl_generator", ] [[package]] @@ -1979,6 +1985,12 @@ dependencies = [ "tokio-io", ] +[[package]] +name = "half" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d36fab90f82edc3c747f9d438e06cf0a491055896f2a279638bb5beed6c40177" + [[package]] name = "hashbrown" version = "0.7.2" @@ -1986,11 +1998,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96282e96bfcd3da0d3aa9938bedf1e50df3269b6db08b4876d2da0bb1a0841cf" dependencies = [ "ahash", - "autocfg 1.0.0", + "autocfg 1.0.1", "rayon", "serde", ] +[[package]] +name = "hashbrown" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" +dependencies = [ + "autocfg 1.0.1", +] + [[package]] name = "heck" version = "0.3.1" @@ -2002,9 +2023,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.13" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91780f809e750b0a89f5544be56617ff6b1227ee485bcb06ebe10cdf89bd3b71" +checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9" dependencies = [ "libc", ] @@ -2165,11 +2186,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.4.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c398b2b113b55809ceb9ee3e753fcbac793f1956663f3c36549c1346015c2afe" +checksum = "86b45e59b16c76b11bf9738fd5d38879d3bd28ad292d7b313608becb17ae2df9" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", + "hashbrown 0.8.2", ] [[package]] @@ -2203,9 +2225,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7777a24a1ce5de49fcdde84ec46efa487c3af49d5b6e6e0a50367cc5c1096182" +checksum = "5b141fdc7836c525d4d594027d318c84161ca17aaf8113ab1f81ab93ae897485" [[package]] name = "io-kit-sys" @@ -2237,9 +2259,9 @@ dependencies = [ [[package]] name = "itoa" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" +checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6" [[package]] name = "jni-sys" @@ -2258,9 +2280,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.40" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce10c23ad2ea25ceca0093bd3192229da4c5b3c0f2de499c1ecac0d98d452177" +checksum = "85a7e2c92a4804dd459b86c339278d0fe87cf93757fae222c3fa3ae75458bc73" dependencies = [ "wasm-bindgen", ] @@ -2283,9 +2305,9 @@ checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" [[package]] name = "kv-log-macro" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ff57d6d215f7ca7eb35a9a64d656ba4d9d2bef114d741dc08048e75e2f5d418" +checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" dependencies = [ "log", ] @@ -2298,9 +2320,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "lazycell" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "lewton" @@ -2315,15 +2337,15 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.71" +version = "0.2.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49" +checksum = "755456fae044e6fa1ebbbd1b3e902ae19e73097ed4ed87bb79934a867c007bc3" [[package]] name = "libgit2-sys" -version = "0.12.7+1.0.0" +version = "0.12.12+1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcd07968649bcb7b9351ecfde53ca4d27673cccfdf57c84255ec18710f3153e0" +checksum = "0100ae90655025134424939f1f60e27e879460d451dff6afedde4f8226cbebfc" dependencies = [ "cc", "libc", @@ -2340,16 +2362,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" dependencies = [ "cc", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] name = "libloading" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cadb8e769f070c45df05c78c7520eb4cd17061d4ab262e43cfc68b4d00ac71c" +checksum = "2443d8f0478b16759158b2f66d525991a05491138bc05814ef52a250148ef4f9" dependencies = [ - "winapi 0.3.8", + "cfg-if", + "winapi 0.3.9", ] [[package]] @@ -2365,9 +2388,9 @@ dependencies = [ [[package]] name = "libssh2-sys" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d45f516b9b19ea6c940b9f36d36734062a153a2b4cc9ef31d82c54bb9780f525" +checksum = "ca46220853ba1c512fc82826d0834d87b06bcd3c2a42241b7de72f3d2fe17056" dependencies = [ "cc", "libc", @@ -2389,9 +2412,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.0.25" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe" +checksum = "af67924b8dd885cccea261866c8ce5b74d239d272e154053ff927dae839f5ae9" dependencies = [ "cc", "libc", @@ -2425,9 +2448,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.8" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" +checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" dependencies = [ "cfg-if", ] @@ -2497,16 +2520,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" dependencies = [ "libc", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] name = "memoffset" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8" +checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", ] [[package]] @@ -2525,9 +2548,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9753f12909fd8d923f75ae5c3258cae1ed3c8ec052e1b38c93c21a6d157f789c" dependencies = [ "migrations_internals", - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -2547,7 +2570,7 @@ dependencies = [ "orbclient", "raw-window-handle", "time", - "winapi 0.3.8", + "winapi 0.3.9", "x11-dl", ] @@ -2560,6 +2583,15 @@ dependencies = [ "adler32", ] +[[package]] +name = "miniz_oxide" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d7559a8a40d0f97e1edea3220f698f78b1c5ab67532e49f68fde3910323b722" +dependencies = [ + "adler", +] + [[package]] name = "mio" version = "0.6.22" @@ -2590,7 +2622,7 @@ dependencies = [ "log", "miow 0.3.5", "ntapi", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -2635,7 +2667,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e" dependencies = [ "socket2", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -2652,7 +2684,7 @@ dependencies = [ "cocoa 0.19.1", "gtk", "objc", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -2694,7 +2726,7 @@ checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7" dependencies = [ "cfg-if", "libc", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -2750,9 +2782,9 @@ dependencies = [ [[package]] name = "nom" -version = "5.1.1" +version = "5.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6" +checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" dependencies = [ "memchr", "version_check 0.9.2", @@ -2766,7 +2798,7 @@ checksum = "77d03607cf88b4b160ba0e9ed425fff3cee3b55ac813f0c685b3a3772da37d0e" dependencies = [ "anymap", "bitflags", - "crossbeam-channel 0.4.2", + "crossbeam-channel 0.4.3", "filetime", "fsevent", "fsevent-sys", @@ -2775,7 +2807,7 @@ dependencies = [ "mio 0.6.22", "mio-extras", "walkdir", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -2784,7 +2816,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a31937dea023539c72ddae0e3571deadc1414b300483fa7aaec176168cfa9d2" dependencies = [ - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -2818,7 +2850,7 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "num-integer", "num-traits", ] @@ -2829,7 +2861,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "num-traits", ] @@ -2839,7 +2871,7 @@ version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "num-traits", ] @@ -2849,7 +2881,7 @@ version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "num-integer", "num-traits", ] @@ -2860,7 +2892,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "num-bigint", "num-integer", "num-traits", @@ -2872,7 +2904,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5b4d7360f362cfb50dde8143501e6940b22f644be75a4cc90b2d81968908138" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "num-integer", "num-traits", ] @@ -2883,7 +2915,7 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", ] [[package]] @@ -2913,9 +2945,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffa5a33ddddfee04c0283a7653987d634e880347e96b5b2ed64de07efb59db9d" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -2949,9 +2981,9 @@ dependencies = [ [[package]] name = "object" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cbca9424c482ee628fa549d9c812e2cd22f1180b9222c9200fdfa6eb31aecb2" +checksum = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5" [[package]] name = "ogg" @@ -2975,15 +3007,15 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" +checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad" [[package]] name = "oorandom" -version = "11.1.1" +version = "11.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94af325bc33c7f60191be4e2c984d48aaa21e2854f473b85398344b60c9b6358" +checksum = "a170cebd8021a008ea92e4db85a72f80b35df514ec664b296fdcbb654eac0b2c" [[package]] name = "openssl-probe" @@ -2997,7 +3029,7 @@ version = "0.9.58" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "cc", "libc", "pkg-config", @@ -3016,9 +3048,9 @@ dependencies = [ [[package]] name = "ordered-float" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18869315e81473c951eb56ad5558bbc56978562d3ecfb87abb7a1e944cea4518" +checksum = "3741934be594d77de1c8461ebcbbe866f585ea616a9753aa78f2bdc69f0e4579" dependencies = [ "num-traits", ] @@ -3101,7 +3133,7 @@ dependencies = [ "redox_syscall", "rustc_version", "smallvec 0.6.13", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -3114,8 +3146,8 @@ dependencies = [ "cloudabi", "libc", "redox_syscall", - "smallvec 1.4.0", - "winapi 0.3.8", + "smallvec 1.4.2", + "winapi 0.3.9", ] [[package]] @@ -3147,22 +3179,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "0.4.20" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75373ff9037d112bb19bc61333a06a159eaeb217660dcfbea7d88e1db823919" +checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "0.4.20" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10b4b44893d3c370407a1d6a5cfde7c41ae0478e31c516c85f67eb3adc51be6d" +checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -3206,9 +3238,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" +checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33" [[package]] name = "plotters" @@ -3231,7 +3263,7 @@ dependencies = [ "bitflags", "crc32fast", "deflate", - "miniz_oxide", + "miniz_oxide 0.3.7", ] [[package]] @@ -3244,9 +3276,9 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" +checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20" [[package]] name = "proc-macro-crate" @@ -3264,9 +3296,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18f33027081eba0a6d8aba6d1b1c3a3be58cbb12106341c2d5759fcd9b5277e7" dependencies = [ "proc-macro-error-attr 0.4.12", - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", "version_check 0.9.2", ] @@ -3277,9 +3309,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr 1.0.4", - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", "version_check 0.9.2", ] @@ -3289,9 +3321,9 @@ version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a5b4b77fdb63c1eca72173d68d24501c54ab1269409f6b672c85deb18af69de" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", "syn-mid", "version_check 0.9.2", ] @@ -3302,22 +3334,22 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", "version_check 0.9.2", ] [[package]] name = "proc-macro-hack" -version = "0.5.16" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4" +checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598" [[package]] name = "proc-macro-nested" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0afe1bd463b9e9ed51d0e0f0b50b6b146aec855c56fd182bb242388710a9b6de" +checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" [[package]] name = "proc-macro2" @@ -3330,11 +3362,11 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa" +checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12" dependencies = [ - "unicode-xid 0.2.0", + "unicode-xid 0.2.1", ] [[package]] @@ -3374,7 +3406,7 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", ] [[package]] @@ -3393,7 +3425,7 @@ dependencies = [ "fuchsia-cprng", "libc", "rand_core 0.3.1", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -3412,7 +3444,7 @@ dependencies = [ "rand_os", "rand_pcg 0.1.2", "rand_xorshift", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -3508,7 +3540,7 @@ checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" dependencies = [ "libc", "rand_core 0.4.2", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -3522,7 +3554,7 @@ dependencies = [ "libc", "rand_core 0.4.2", "rdrand", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -3564,10 +3596,11 @@ dependencies = [ [[package]] name = "rayon" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098" +checksum = "cfd016f0c045ad38b5251be2c9c0ab806917f82da4d36b2a327e5166adad9270" dependencies = [ + "autocfg 1.0.1", "crossbeam-deque", "either", "rayon-core", @@ -3575,12 +3608,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9" +checksum = "91739a34c4355b5434ce54c9086c5895604a9c278586d1f1aa95e04f66b525a0" dependencies = [ + "crossbeam-channel 0.4.3", "crossbeam-deque", - "crossbeam-queue 0.2.3", "crossbeam-utils 0.7.2", "lazy_static", "num_cpus", @@ -3597,9 +3630,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.1.56" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" [[package]] name = "redox_users" @@ -3642,9 +3675,9 @@ checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" [[package]] name = "ring" -version = "0.16.14" +version = "0.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06b3fefa4f12272808f809a0af618501fdaba41a58963c5fb72238ab0be09603" +checksum = "952cd6b98c85bbc30efa1ba5783b8abf12fec8b3287ffa52605b9432313e34e4" dependencies = [ "cc", "libc", @@ -3652,7 +3685,7 @@ dependencies = [ "spin", "untrusted", "web-sys", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -3669,11 +3702,11 @@ dependencies = [ [[package]] name = "ron" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91260f321dbf3b5a16ff91c451dc9eb644ce72775a6812f9c3dfffe63818f8f" +checksum = "2a9d94cee22c8a4b5e2a1c7f9a20fdc315668ee8a75835949bb40d7456934634" dependencies = [ - "base64 0.12.1", + "base64 0.12.3", "bitflags", "serde", ] @@ -3708,7 +3741,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dab61250775933275e84053ac235621dfb739556d5c54a2f2e9313b7cf43a19" dependencies = [ - "base64 0.12.1", + "base64 0.12.3", "blake2b_simd", "constant_time_eq", ] @@ -3736,11 +3769,11 @@ dependencies = [ [[package]] name = "rustls" -version = "0.17.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0d4a31f5d68413404705d6982529b0e11a9aacd4839d1d6222ee3b8cb4015e1" +checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" dependencies = [ - "base64 0.11.0", + "base64 0.12.3", "log", "ring", "sct", @@ -3780,7 +3813,7 @@ checksum = "d2aa654bc32eb9ca14cce1a084abc9dfe43949a4547c35269a094c39272db3bb" dependencies = [ "lazy_static", "log", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -3864,29 +3897,39 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3" +checksum = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5" dependencies = [ "serde_derive", ] [[package]] -name = "serde_derive" -version = "1.0.114" +name = "serde_cbor" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e" +checksum = "1e18acfa2f90e8b735b2836ab8d538de304cbb6729a7360729ea5a895d15a622" dependencies = [ - "proc-macro2 1.0.18", + "half", + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.115" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48" +dependencies = [ + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] name = "serde_json" -version = "1.0.55" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec2c5d7e739bc07a3e73381a39d61fdb5f671c60c1df26a130690665803d8226" +checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c" dependencies = [ "itoa", "ryu", @@ -3911,9 +3954,9 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dc6b7951b17b051f3210b063f12cc17320e2fe30ae05b0fe2a3abb068551c76" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -3963,11 +4006,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5f08237e667ac94ad20f8878b5943d91a93ccb231428446c57c21c57779016d" dependencies = [ "arrayvec 0.5.1", - "hashbrown", + "hashbrown 0.7.2", "mopa", "rayon", "shred-derive", - "smallvec 1.4.0", + "smallvec 1.4.2", "tynm", ] @@ -3977,9 +4020,9 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1f37080f2751fbf091dbdebaa95bd6cf9dbf74ad1d50396b1908518a1747fdf" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -4026,9 +4069,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.4.0" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4" +checksum = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252" [[package]] name = "smithay-client-toolkit" @@ -4065,7 +4108,7 @@ dependencies = [ "cfg-if", "libc", "redox_syscall", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -4074,7 +4117,7 @@ version = "0.16.1" source = "git+https://github.com/amethyst/specs.git?rev=7a2e348ab2223818bad487695c66c43db88050a5#7a2e348ab2223818bad487695c66c43db88050a5" dependencies = [ "crossbeam-queue 0.2.3", - "hashbrown", + "hashbrown 0.7.2", "hibitset", "log", "rayon", @@ -4141,11 +4184,11 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", "serde", "serde_derive", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -4155,13 +4198,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" dependencies = [ "base-x", - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", "serde", "serde_derive", "serde_json", "sha1", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -4193,9 +4236,9 @@ checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" [[package]] name = "structopt" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5472fb24d7e80ae84a7801b7978f95a19ec32cb1876faea59ab711eb901976" +checksum = "6cc388d94ffabf39b5ed5fadddc40147cb21e605f53db6f8f36a625d27489ac5" dependencies = [ "clap", "lazy_static", @@ -4204,15 +4247,15 @@ dependencies = [ [[package]] name = "structopt-derive" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0eb37335aeeebe51be42e2dc07f031163fbabfa6ac67d7ea68b5c2f68d5f99" +checksum = "5e2513111825077552a6751dfad9e11ce0fba07d7276a3943a037d7e93e64c5f" dependencies = [ "heck", "proc-macro-error 1.0.4", - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -4240,13 +4283,13 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.33" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cd" +checksum = "891d8d6567fe7c7f8835a3a98af4208f3846fba258c1bc3c31d6e506239f11f9" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "unicode-xid 0.2.0", + "unicode-xid 0.2.1", ] [[package]] @@ -4255,9 +4298,9 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -4266,10 +4309,10 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", - "unicode-xid 0.2.0", + "syn 1.0.39", + "unicode-xid 0.2.1", ] [[package]] @@ -4296,9 +4339,9 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] @@ -4338,7 +4381,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" dependencies = [ "libc", - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -4366,9 +4409,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed" +checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117" [[package]] name = "tokio" @@ -4522,9 +4565,9 @@ dependencies = [ [[package]] name = "tracing" -version = "0.1.15" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41f40ed0e162c911ac6fcb53ecdc8134c46905fdbbae8c50add462a538b495f" +checksum = "6d79ca061b032d6ce30c660fded31189ca0b9922bf483cd70759f13a2d86786c" dependencies = [ "cfg-if", "tracing-attributes", @@ -4533,31 +4576,31 @@ dependencies = [ [[package]] name = "tracing-appender" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e86a61ff69b54f44ffdf02cf27f2da864639dde602d5f90d9f7ef2ea76629c0" +checksum = "7aa52d56cc0d79ab604e8a022a1cebc4de33cf09dc9933c94353bea2e00d6e88" dependencies = [ "chrono", - "crossbeam-channel 0.4.2", + "crossbeam-channel 0.4.3", "tracing-subscriber", ] [[package]] name = "tracing-attributes" -version = "0.1.8" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99bbad0de3fd923c9c3232ead88510b783e5a4d16a6154adffa3d53308de984c" +checksum = "80e0ccfc3378da0cce270c946b676a376943f5cd16aeba64568e7939806f4ada" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", ] [[package]] name = "tracing-core" -version = "0.1.10" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aa83a9a47081cd522c09c81b31aec2c9273424976f922ad61c053b58350b715" +checksum = "4f0e00789804e99b20f12bc7003ca416309d28a6f495d6af58d1e2c2842461b5" dependencies = [ "lazy_static", ] @@ -4583,34 +4626,22 @@ dependencies = [ "tracing-core", ] -[[package]] -name = "tracing-serde" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6ccba2f8f16e0ed268fc765d9b7ff22e965e7185d32f8f1ec8294fe17d86e79" -dependencies = [ - "serde", - "tracing-core", -] - [[package]] name = "tracing-subscriber" -version = "0.2.6" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04a11b459109e38ff6e1b580bafef4142a11d44889f5d07424cbce2fd2a2a119" +checksum = "abd165311cc4d7a555ad11cc77a37756df836182db0d81aac908c8184c584f40" dependencies = [ - "ansi_term", + "ansi_term 0.12.1", "chrono", "lazy_static", "matchers", "regex", - "serde", - "serde_json", "sharded-slab", - "smallvec 1.4.0", + "smallvec 1.4.2", + "thread_local", "tracing-core", "tracing-log", - "tracing-serde", ] [[package]] @@ -4625,9 +4656,9 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "tui" @@ -4659,7 +4690,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "367fb781963961b4a90a3362c54b1871caaecb081f011005778242230f39d34e" dependencies = [ - "nom 5.1.1", + "nom 5.1.2", ] [[package]] @@ -4673,11 +4704,11 @@ dependencies = [ [[package]] name = "unicode-normalization" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4" +checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977" dependencies = [ - "smallvec 1.4.0", + "tinyvec", ] [[package]] @@ -4688,9 +4719,9 @@ checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" [[package]] name = "unicode-width" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" +checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" [[package]] name = "unicode-xid" @@ -4700,9 +4731,9 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" [[package]] name = "unicode-xid" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" +checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" [[package]] name = "untrusted" @@ -4712,11 +4743,11 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "ureq" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677df6896edc382f1a2abcbb3e4058edfe973cdc4e1ed764b11891a7a289bfc0" +checksum = "b770aa61edaa144d3af86a8b0ccbb1bf8ca9dd0c1ac2a17081f35943aae6eb82" dependencies = [ - "base64 0.12.1", + "base64 0.12.3", "chunked_transfer", "lazy_static", "qstring", @@ -4769,6 +4800,17 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "uvth" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e5910f9106b96334c6cae1f1d77a764bda66ac4ca9f507f73259f184fe1bb6b" +dependencies = [ + "crossbeam-channel 0.3.9", + "log", + "num_cpus", +] + [[package]] name = "vcpkg" version = "0.2.10" @@ -4827,14 +4869,14 @@ dependencies = [ "futures-executor", "futures-timer", "futures-util", - "hashbrown", + "hashbrown 0.7.2", "image", "num 0.2.1", "num_cpus", "rayon", "specs", "tracing", - "uvth", + "uvth 3.1.1", "vek 0.12.0", "veloren-common", "veloren_network", @@ -4850,7 +4892,7 @@ dependencies = [ "crossbeam", "dot_vox", "enum-iterator", - "hashbrown", + "hashbrown 0.7.2", "image", "indexmap", "lazy_static", @@ -4884,7 +4926,7 @@ dependencies = [ "futures-executor", "futures-timer", "futures-util", - "hashbrown", + "hashbrown 0.7.2", "lazy_static", "libsqlite3-sys", "portpicker", @@ -4898,7 +4940,7 @@ dependencies = [ "specs-idvs", "tiny_http", "tracing", - "uvth", + "uvth 3.1.1", "vek 0.12.0", "veloren-common", "veloren-world", @@ -4948,7 +4990,7 @@ dependencies = [ "glsl-include", "glutin", "guillotiere", - "hashbrown", + "hashbrown 0.7.2", "image", "inline_tweak", "itertools", @@ -4967,7 +5009,7 @@ dependencies = [ "tracing-log", "tracing-subscriber", "treeculler", - "uvth", + "uvth 3.1.1", "vek 0.12.0", "veloren-client", "veloren-common", @@ -4985,7 +5027,7 @@ dependencies = [ "find_folder", "inline_tweak", "lazy_static", - "libloading 0.6.2", + "libloading 0.6.3", "notify", "tracing", "vek 0.12.0", @@ -5001,7 +5043,7 @@ dependencies = [ "bitvec", "criterion", "fxhash", - "hashbrown", + "hashbrown 0.7.2", "image", "itertools", "lazy_static", @@ -5029,7 +5071,7 @@ dependencies = [ "bincode", "bitflags", "clap", - "crossbeam-channel 0.4.2", + "crossbeam-channel 0.4.3", "futures 0.3.5", "lazy_static", "lz-fear", @@ -5041,7 +5083,7 @@ dependencies = [ "tracing", "tracing-futures", "tracing-subscriber", - "uvth", + "uvth 4.0.1", ] [[package]] @@ -5069,7 +5111,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" dependencies = [ "same-file", - "winapi 0.3.8", + "winapi 0.3.9", "winapi-util", ] @@ -5092,9 +5134,9 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasm-bindgen" -version = "0.2.63" +version = "0.2.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2dc4aa152834bc334f506c1a06b866416a8b6697d5c9f75b9a689c8486def0" +checksum = "f0563a9a4b071746dd5aedbc3a28c6fe9be4586fb3fbadb67c400d4f53c6b16c" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -5102,24 +5144,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.63" +version = "0.2.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded84f06e0ed21499f6184df0e0cb3494727b0c5da89534e0fcc55c51d812101" +checksum = "bc71e4c5efa60fb9e74160e89b93353bc24059999c0ae0fb03affc39770310b0" dependencies = [ "bumpalo", "lazy_static", "log", - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.63" +version = "0.2.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "838e423688dac18d73e31edce74ddfac468e37b1506ad163ffaf0a46f703ffe3" +checksum = "97c57cefa5fa80e2ba15641578b44d36e7a64279bc5ed43c6dbaf329457a2ed2" dependencies = [ "quote 1.0.7", "wasm-bindgen-macro-support", @@ -5127,22 +5169,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.63" +version = "0.2.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3156052d8ec77142051a533cdd686cba889537b213f948cd1d20869926e68e92" +checksum = "841a6d1c35c6f596ccea1f82504a192a60378f64b3bb0261904ad8f2f5657556" dependencies = [ - "proc-macro2 1.0.18", + "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.33", + "syn 1.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.63" +version = "0.2.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9ba19973a58daf4db6f352eda73dc0e289493cd29fb2632eb172085b6521acd" +checksum = "93b162580e34310e5931c4b792560108b10fd14d64915d7fff8ff00180e70092" [[package]] name = "wayland-client" @@ -5206,9 +5248,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.40" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b72fe77fd39e4bd3eaa4412fd299a0be6b3dfe9d2597e2f1c20beb968f41d17" +checksum = "dda38f4e5ca63eda02c059d243aa25b5f35ab98451e518c51612cd0f1bd19a47" dependencies = [ "js-sys", "wasm-bindgen", @@ -5226,9 +5268,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8eff4b7516a57307f9349c64bf34caa34b940b66fed4b2fb3136cb7386e5739" +checksum = "0f20dea7535251981a9670857150d571846545088359b28e4951d350bdaf179f" dependencies = [ "webpki", ] @@ -5241,9 +5283,9 @@ checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" [[package]] name = "winapi" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", @@ -5267,7 +5309,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "winapi 0.3.8", + "winapi 0.3.9", ] [[package]] @@ -5279,7 +5321,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winit" version = "0.22.2" -source = "git+https://github.com/Imberflur/winit.git?branch=macos-test#e98133adf2abbfc4368f6c069d0beb2b8b688b42" +source = "git+https://github.com/Imberflur/winit.git?branch=macos-test#62acb90cd7179a719c2aa537951ee9f70cb02e71" dependencies = [ "bitflags", "cocoa 0.20.2", @@ -5303,7 +5345,7 @@ dependencies = [ "serde", "smithay-client-toolkit", "wayland-client", - "winapi 0.3.8", + "winapi 0.3.9", "x11-dl", ] diff --git a/assets/common/items/lantern/black_0.ron b/assets/common/items/lantern/black_0.ron index 9eb9156099..38f282072e 100644 --- a/assets/common/items/lantern/black_0.ron +++ b/assets/common/items/lantern/black_0.ron @@ -5,8 +5,8 @@ Item( ( kind: "Black0", color: (r: 255, g: 128, b: 26), - strength_thousandths: 3000, - flicker_thousandths: 300, + strength_thousandths: 5000, + flicker_thousandths: 150, ), ), ) diff --git a/assets/common/items/lantern/blue_0.ron b/assets/common/items/lantern/blue_0.ron index a9e88083ed..c342ff14a7 100644 --- a/assets/common/items/lantern/blue_0.ron +++ b/assets/common/items/lantern/blue_0.ron @@ -5,7 +5,7 @@ Item( ( kind: "Blue0", color: (r: 255, g: 128, b: 26), - strength_thousandths: 4000, + strength_thousandths: 6000, flicker_thousandths: 250, ), ), diff --git a/assets/common/items/lantern/green_0.ron b/assets/common/items/lantern/green_0.ron index 8ccb9a38df..0409aba6a5 100644 --- a/assets/common/items/lantern/green_0.ron +++ b/assets/common/items/lantern/green_0.ron @@ -5,8 +5,8 @@ Item( ( kind: "Green0", color: (r: 255, g: 128, b: 26), - strength_thousandths: 4000, - flicker_thousandths: 500, + strength_thousandths: 6000, + flicker_thousandths: 250, ), ), ) diff --git a/assets/common/items/lantern/red_0.ron b/assets/common/items/lantern/red_0.ron index f320f8afbc..bac1264ba0 100644 --- a/assets/common/items/lantern/red_0.ron +++ b/assets/common/items/lantern/red_0.ron @@ -5,8 +5,8 @@ Item( ( kind: "Red0", color: (r: 255, g: 128, b: 26), - strength_thousandths: 3500, - flicker_thousandths: 1000, + strength_thousandths: 5000, + flicker_thousandths: 250, ), ), ) diff --git a/assets/voxygen/shaders/include/light.glsl b/assets/voxygen/shaders/include/light.glsl index 295abc2c0b..d5021a1615 100644 --- a/assets/voxygen/shaders/include/light.glsl +++ b/assets/voxygen/shaders/include/light.glsl @@ -140,9 +140,8 @@ float lights_at(vec3 wpos, vec3 wnorm, vec3 /*cam_to_frag*/view_dir, vec3 mu, ve float distance_2 = dot(difference, difference); // float strength = attenuation_strength(difference);// pow(attenuation_strength(difference), 0.6); - // // NOTE: This normalizes strength to 1.0 at the center of the point source. - // float strength = 1.0 / (1.0 + distance_2); - float strength = 1.0 / distance_2; + // NOTE: This normalizes strength to 0.25 at the center of the point source. + float strength = 1.0 / (4 + distance_2); // Multiply the vec3 only once const float PI = 3.1415926535897932384626433832795; diff --git a/assets/voxygen/shaders/particle-frag.glsl b/assets/voxygen/shaders/particle-frag.glsl index 12a4ad2c3b..ad4152bce3 100644 --- a/assets/voxygen/shaders/particle-frag.glsl +++ b/assets/voxygen/shaders/particle-frag.glsl @@ -71,6 +71,10 @@ void main() { max_light += lights_at(f_pos, f_norm, view_dir, k_a, k_d, k_s, alpha, emitted_light, reflected_light); + // Allow particles to glow at night + // TODO: Not this + emitted_light += max(f_col.rgb - 1.0, vec3(0)); + surf_color = illuminate(max_light, view_dir, surf_color * emitted_light, surf_color * reflected_light); #if (CLOUD_MODE == CLOUD_MODE_REGULAR) diff --git a/assets/voxygen/shaders/particle-vert.glsl b/assets/voxygen/shaders/particle-vert.glsl index d2dcb4dde7..32de189e4c 100644 --- a/assets/voxygen/shaders/particle-vert.glsl +++ b/assets/voxygen/shaders/particle-vert.glsl @@ -45,6 +45,8 @@ const int FIREWORK_PURPLE = 6; const int FIREWORK_RED = 7; const int FIREWORK_YELLOW = 8; const int LEAF = 9; +const int FIREFLY = 10; +const int BEE = 11; // meters per second squared (acceleration) const float earth_gravity = 9.807; @@ -214,6 +216,30 @@ void main() { vec4(vec3(0.2 + rand7 * 0.2, 0.2 + (0.5 + rand6 * 0.5) * 0.6, 0), 1), spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3 + lifetime * 5) ); + } else if (inst_mode == FIREFLY) { + float raise = pow(sin(3.1416 * lifetime / inst_lifespan), 0.2); + attr = Attr( + vec3(0, 0, raise * 5.0) + vec3( + sin(lifetime * 1.0 + rand0) + sin(lifetime * 7.0 + rand3) * 0.3, + sin(lifetime * 3.0 + rand1) + sin(lifetime * 8.0 + rand4) * 0.3, + sin(lifetime * 2.0 + rand2) + sin(lifetime * 9.0 + rand5) * 0.3 + ), + raise, + vec4(vec3(5, 5, 1.1), 1), + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3 + lifetime * 5) + ); + } else if (inst_mode == BEE) { + float lower = pow(sin(3.1416 * lifetime / inst_lifespan), 0.2); + attr = Attr( + vec3(0, 0, lower * -0.5) + vec3( + sin(lifetime * 2.0 + rand0) + sin(lifetime * 9.0 + rand3) * 0.3, + sin(lifetime * 3.0 + rand1) + sin(lifetime * 10.0 + rand4) * 0.3, + sin(lifetime * 4.0 + rand2) + sin(lifetime * 11.0 + rand5) * 0.3 + ) * 0.5, + lower, + vec4(vec3(1, 0.7, 0), 1), + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3 + lifetime * 5) + ); } else { attr = Attr( linear_motion( diff --git a/assets/voxygen/voxel/sprite/beehive/beehive.vox b/assets/voxygen/voxel/sprite/beehive/beehive.vox new file mode 100644 index 0000000000..519f84d930 Binary files /dev/null and b/assets/voxygen/voxel/sprite/beehive/beehive.vox differ diff --git a/assets/voxygen/voxel/sprite/reed/reed-0.vox b/assets/voxygen/voxel/sprite/reed/reed-0.vox new file mode 100644 index 0000000000..f121ce05a8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/reed/reed-0.vox differ diff --git a/assets/voxygen/voxel/sprite/reed/reed-1.vox b/assets/voxygen/voxel/sprite/reed/reed-1.vox new file mode 100644 index 0000000000..72f649c8b6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/reed/reed-1.vox differ diff --git a/assets/voxygen/voxel/sprite/reed/reed-2.vox b/assets/voxygen/voxel/sprite/reed/reed-2.vox new file mode 100644 index 0000000000..3958023a0f Binary files /dev/null and b/assets/voxygen/voxel/sprite/reed/reed-2.vox differ diff --git a/assets/voxygen/voxel/sprite/reed/reed-3.vox b/assets/voxygen/voxel/sprite/reed/reed-3.vox new file mode 100644 index 0000000000..9100965244 Binary files /dev/null and b/assets/voxygen/voxel/sprite/reed/reed-3.vox differ diff --git a/assets/voxygen/voxel/sprite/reed/reed-4.vox b/assets/voxygen/voxel/sprite/reed/reed-4.vox new file mode 100644 index 0000000000..508fcc0b23 Binary files /dev/null and b/assets/voxygen/voxel/sprite/reed/reed-4.vox differ diff --git a/assets/voxygen/voxel/sprite_manifest.ron b/assets/voxygen/voxel/sprite_manifest.ron index 5f74236719..494af6c792 100644 --- a/assets/voxygen/voxel/sprite_manifest.ron +++ b/assets/voxygen/voxel/sprite_manifest.ron @@ -1947,4 +1947,48 @@ GrassSnow: Some(( ], wind_sway: 0.2, )), + +// Reed +Reed: Some(( + variations: [ + ( + model: "voxygen.voxel.sprite.reed.reed-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.reed.reed-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.reed.reed-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.reed.reed-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.reed.reed-4", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ], + wind_sway: 0.3, +)), + +// Beehive +Beehive: Some(( + variations: [ + ( + model: "voxygen.voxel.sprite.beehive.beehive", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, +)), ) diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index 19a6670dc7..f4ae3795b2 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -21,6 +21,7 @@ use serde::{Deserialize, Serialize}; use specs::{Component, FlaggedStorage}; use specs_idvs::IdvStorage; use std::{fs::File, io::BufReader}; +use vek::*; make_case_elim!( body, @@ -505,6 +506,14 @@ impl Body { Body::QuadrupedLow(_) => 4.5, } } + + pub fn default_light_offset(&self) -> Vec3 { + // TODO: Make this a manifest + match self { + Body::Object(_) => Vec3::unit_z() * 0.5, + _ => Vec3::unit_z(), + } + } } impl Component for Body { diff --git a/common/src/lib.rs b/common/src/lib.rs index 89abe44963..428383d4dc 100644 --- a/common/src/lib.rs +++ b/common/src/lib.rs @@ -42,6 +42,7 @@ pub mod store; pub mod sync; pub mod sys; pub mod terrain; +pub mod time; pub mod typed; pub mod util; pub mod vol; diff --git a/common/src/state.rs b/common/src/state.rs index e856b45ed0..ab02bdf6af 100644 --- a/common/src/state.rs +++ b/common/src/state.rs @@ -5,6 +5,7 @@ use crate::{ sync::WorldSyncExt, sys, terrain::{Block, TerrainChunk, TerrainGrid}, + time::DayPeriod, vol::WriteVol, }; use hashbrown::{HashMap, HashSet}; @@ -230,6 +231,22 @@ impl State { /// localised timings. pub fn get_time_of_day(&self) -> f64 { self.ecs.read_resource::().0 } + /// Get the current in-game day period (period of the day/night cycle) + pub fn get_day_period(&self) -> DayPeriod { + let tod = self.get_time_of_day().rem_euclid(60.0 * 60.0 * 24.0); + if tod < 60.0 * 60.0 * 4.0 { + DayPeriod::Night + } else if tod < 60.0 * 60.0 * 10.0 { + DayPeriod::Morning + } else if tod < 60.0 * 60.0 * 16.0 { + DayPeriod::Noon + } else if tod < 60.0 * 60.0 * 20.0 { + DayPeriod::Evening + } else { + DayPeriod::Night + } + } + /// Get the current in-game time. /// /// Note that this does not correspond to the time of day. diff --git a/common/src/sys/projectile.rs b/common/src/sys/projectile.rs index 44dbf39a73..c833f7bb3b 100644 --- a/common/src/sys/projectile.rs +++ b/common/src/sys/projectile.rs @@ -156,9 +156,7 @@ impl<'a> System<'a> for Sys { _ => {}, } } - } - - if let Some(dir) = velocities + } else if let Some(dir) = velocities .get(entity) .and_then(|vel| vel.0.try_normalized()) { diff --git a/common/src/terrain/block.rs b/common/src/terrain/block.rs index 790aa3ab81..60674b0f95 100644 --- a/common/src/terrain/block.rs +++ b/common/src/terrain/block.rs @@ -93,6 +93,8 @@ make_case_elim!( DropGate = 0x50, DropGateBottom = 0x51, GrassSnow = 0x52, + Reed = 0x53, + Beehive = 0x54, } ); @@ -200,6 +202,8 @@ impl BlockKind { BlockKind::DropGate => false, BlockKind::DropGateBottom => false, BlockKind::GrassSnow => true, + BlockKind::Reed => true, + BlockKind::Beehive => true, _ => false, } } @@ -296,6 +300,8 @@ impl BlockKind { BlockKind::DropGate => false, BlockKind::DropGateBottom => false, BlockKind::GrassSnow => false, + BlockKind::Reed => false, + BlockKind::Beehive => false, _ => true, } } @@ -373,6 +379,7 @@ impl BlockKind { BlockKind::DropGate => true, BlockKind::DropGateBottom => false, BlockKind::GrassSnow => false, + BlockKind::Reed => false, _ => true, } } @@ -502,7 +509,8 @@ impl Block { | BlockKind::Chest | BlockKind::DropGate | BlockKind::DropGateBottom - | BlockKind::Door => Some(self.color[0] & 0b111), + | BlockKind::Door + | BlockKind::Beehive => Some(self.color[0] & 0b111), _ => None, } } diff --git a/common/src/time.rs b/common/src/time.rs new file mode 100644 index 0000000000..8434b131b2 --- /dev/null +++ b/common/src/time.rs @@ -0,0 +1,13 @@ +#[derive(Copy, Clone, PartialEq, Eq)] +pub enum DayPeriod { + Night, + Morning, + Noon, + Evening, +} + +impl DayPeriod { + pub fn is_dark(&self) -> bool { *self == DayPeriod::Night } + + pub fn is_light(&self) -> bool { !self.is_dark() } +} diff --git a/server/src/events/entity_creation.rs b/server/src/events/entity_creation.rs index 31600f7948..6d64946d65 100644 --- a/server/src/events/entity_creation.rs +++ b/server/src/events/entity_creation.rs @@ -1,8 +1,8 @@ use crate::{sys, Server, StateExt}; use common::{ comp::{ - self, Agent, Alignment, Body, Gravity, Item, ItemDrop, LightAnimation, LightEmitter, - Loadout, Pos, Projectile, Scale, Stats, Vel, WaypointArea, + self, Agent, Alignment, Body, Gravity, Item, ItemDrop, LightEmitter, Loadout, Pos, + Projectile, Scale, Stats, Vel, WaypointArea, }, outcome::Outcome, util::Dir, @@ -119,16 +119,12 @@ pub fn handle_create_waypoint(server: &mut Server, pos: Vec3) { .state .create_object(Pos(pos), comp::object::Body::CampfireLit) .with(LightEmitter { - col: Rgb::new(1.0, 0.8, 0.0), - strength: 8.0, + col: Rgb::new(1.0, 0.3, 0.1), + strength: 5.0, flicker: 1.0, animated: true, }) - .with(LightAnimation { - offset: Vec3::new(0.0, 0.0, 2.0), - col: Rgb::new(1.0, 0.8, 0.0), - strength: 8.0, - }) .with(WaypointArea::default()) + .with(comp::Mass(100000.0)) .build(); } diff --git a/server/src/events/interaction.rs b/server/src/events/interaction.rs index 3aba3e1b17..339ce8f41e 100644 --- a/server/src/events/interaction.rs +++ b/server/src/events/interaction.rs @@ -41,7 +41,7 @@ pub fn handle_lantern(server: &mut Server, entity: EcsEntity) { .insert(entity, comp::LightEmitter { col: lantern.color(), strength: lantern.strength(), - flicker: 1.0, + flicker: 0.35, animated: true, }); } diff --git a/server/src/lib.rs b/server/src/lib.rs index 4de5f4c577..b2ea02a8a8 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -358,6 +358,9 @@ impl Server { /// Get a reference to the server's world. pub fn world(&self) -> &World { &self.world } + /// Get a reference to the server's world map. + pub fn map(&self) -> &WorldMapMsg { &self.map } + /// Execute a single server tick, handle input and update the game state by /// the given duration. pub fn tick(&mut self, _input: Input, dt: Duration) -> Result, Error> { diff --git a/voxygen/src/render/pipelines/particle.rs b/voxygen/src/render/pipelines/particle.rs index dd3b383548..5854009517 100644 --- a/voxygen/src/render/pipelines/particle.rs +++ b/voxygen/src/render/pipelines/particle.rs @@ -103,6 +103,8 @@ pub enum ParticleMode { FireworkRed = 7, FireworkYellow = 8, Leaf = 9, + Firefly = 10, + Bee = 11, } impl ParticleMode { diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index e2b477f752..c871582ca4 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -43,6 +43,7 @@ use guillotiere::AtlasAllocator; use hashbrown::HashMap; use specs::{Entity as EcsEntity, Join, LazyUpdate, WorldExt}; use treeculler::{BVol, BoundingSphere}; +use vek::*; const DAMAGE_FADE_COEFFICIENT: f64 = 5.0; const MOVING_THRESHOLD: f32 = 0.7; @@ -363,13 +364,20 @@ impl FigureMgr { // TODO: Pending review in #587 pub fn update_lighting(&mut self, scene_data: &SceneData) { let ecs = scene_data.state.ecs(); - for (entity, light_emitter) in (&ecs.entities(), &ecs.read_storage::()).join() + for (entity, body, light_emitter) in ( + &ecs.entities(), + ecs.read_storage::().maybe(), + &ecs.read_storage::(), + ) + .join() { // Add LightAnimation for objects with a LightEmitter let mut anim_storage = ecs.write_storage::(); if let None = anim_storage.get_mut(entity) { let anim = LightAnimation { - offset: vek::Vec3::zero(), + offset: body + .map(|b| b.default_light_offset()) + .unwrap_or_else(Vec3::zero), col: light_emitter.col, strength: 0.0, }; diff --git a/voxygen/src/scene/particle.rs b/voxygen/src/scene/particle.rs index bec9b00fb2..407e2d4ef2 100644 --- a/voxygen/src/scene/particle.rs +++ b/voxygen/src/scene/particle.rs @@ -282,32 +282,85 @@ impl ParticleMgr { (e.floor() as i32).div_euclid(sz as i32) }); - type BoiFn<'a> = fn(&'a BlocksOfInterest) -> &'a [Vec3]; - // blocks, chunk range, emission density, lifetime, particle mode - // - // - blocks: the function to select the blocks of interest that we should emit - // from - // - chunk range: the range, in chunks, that the particles should be generated - // in from the player - // - emission density: the density, per block per second, of the generated - // particles - // - lifetime: the number of seconds that each particle should live for - // - particle mode: the visual mode of the generated particle - let particles: &[(BoiFn, usize, f32, f32, ParticleMode)] = &[ - (|boi| &boi.leaves, 4, 0.001, 30.0, ParticleMode::Leaf), - (|boi| &boi.embers, 2, 20.0, 0.25, ParticleMode::CampfireFire), - (|boi| &boi.embers, 8, 3.0, 40.0, ParticleMode::CampfireSmoke), + struct BlockParticles<'a> { + // The function to select the blocks of interest that we should emit from + blocks: fn(&'a BlocksOfInterest) -> &'a [Vec3], + // The range, in chunks, that the particles should be generated in from the player + range: usize, + // The emission rate, per block per second, of the generated particles + rate: f32, + // The number of seconds that each particle should live for + lifetime: f32, + // The visual mode of the generated particle + mode: ParticleMode, + // Condition that must be true + cond: fn(&SceneData) -> bool, + } + + let particles: &[BlockParticles] = &[ + BlockParticles { + blocks: |boi| &boi.leaves, + range: 4, + rate: 0.001, + lifetime: 30.0, + mode: ParticleMode::Leaf, + cond: |_| true, + }, + BlockParticles { + blocks: |boi| &boi.embers, + range: 2, + rate: 20.0, + lifetime: 0.25, + mode: ParticleMode::CampfireFire, + cond: |_| true, + }, + BlockParticles { + blocks: |boi| &boi.embers, + range: 8, + rate: 3.0, + lifetime: 40.0, + mode: ParticleMode::CampfireSmoke, + cond: |_| true, + }, + BlockParticles { + blocks: |boi| &boi.reeds, + range: 6, + rate: 0.004, + lifetime: 40.0, + mode: ParticleMode::Firefly, + cond: |sd| sd.state.get_day_period().is_dark(), + }, + BlockParticles { + blocks: |boi| &boi.flowers, + range: 5, + rate: 0.002, + lifetime: 40.0, + mode: ParticleMode::Firefly, + cond: |sd| sd.state.get_day_period().is_dark(), + }, + BlockParticles { + blocks: |boi| &boi.beehives, + range: 3, + rate: 0.5, + lifetime: 30.0, + mode: ParticleMode::Bee, + cond: |sd| sd.state.get_day_period().is_light(), + }, ]; let mut rng = thread_rng(); - for (get_blocks, range, rate, dur, mode) in particles.iter() { - for offset in Spiral2d::new().take((*range * 2 + 1).pow(2)) { + for particles in particles.iter() { + if !(particles.cond)(scene_data) { + continue; + } + + for offset in Spiral2d::new().take((particles.range * 2 + 1).pow(2)) { let chunk_pos = player_chunk + offset; terrain.get(chunk_pos).map(|chunk_data| { - let blocks = get_blocks(&chunk_data.blocks_of_interest); + let blocks = (particles.blocks)(&chunk_data.blocks_of_interest); - let avg_particles = dt * blocks.len() as f32 * *rate; + let avg_particles = dt * blocks.len() as f32 * particles.rate; let particle_count = avg_particles.trunc() as usize + (rng.gen::() < avg_particles.fract()) as usize; @@ -318,9 +371,9 @@ impl ParticleMgr { + blocks.choose(&mut rng).copied().unwrap(); // Can't fail Particle::new( - Duration::from_secs_f32(*dur), + Duration::from_secs_f32(particles.lifetime), time, - *mode, + particles.mode, block_pos.map(|e: i32| e as f32 + rng.gen::()), ) }) diff --git a/voxygen/src/scene/terrain/watcher.rs b/voxygen/src/scene/terrain/watcher.rs index 439462f12a..016a847b62 100644 --- a/voxygen/src/scene/terrain/watcher.rs +++ b/voxygen/src/scene/terrain/watcher.rs @@ -7,13 +7,21 @@ use vek::*; pub struct BlocksOfInterest { pub leaves: Vec>, + pub grass: Vec>, pub embers: Vec>, + pub beehives: Vec>, + pub reeds: Vec>, + pub flowers: Vec>, } impl BlocksOfInterest { pub fn from_chunk(chunk: &TerrainChunk) -> Self { let mut leaves = Vec::new(); + let mut grass = Vec::new(); let mut embers = Vec::new(); + let mut beehives = Vec::new(); + let mut reeds = Vec::new(); + let mut flowers = Vec::new(); chunk .vol_iter( @@ -24,14 +32,36 @@ impl BlocksOfInterest { chunk.get_max_z(), ), ) - .for_each(|(pos, block)| { - if block.kind() == BlockKind::Leaves && thread_rng().gen_range(0, 16) == 0 { - leaves.push(pos); - } else if block.kind() == BlockKind::Ember { - embers.push(pos); - } + .for_each(|(pos, block)| match block.kind() { + BlockKind::Leaves => { + if thread_rng().gen_range(0, 16) == 0 { + leaves.push(pos) + } + }, + BlockKind::Grass => { + if thread_rng().gen_range(0, 16) == 0 { + grass.push(pos) + } + }, + BlockKind::Ember => embers.push(pos), + BlockKind::Beehive => beehives.push(pos), + BlockKind::Reed => reeds.push(pos), + BlockKind::PinkFlower => flowers.push(pos), + BlockKind::PurpleFlower => flowers.push(pos), + BlockKind::RedFlower => flowers.push(pos), + BlockKind::WhiteFlower => flowers.push(pos), + BlockKind::YellowFlower => flowers.push(pos), + BlockKind::Sunflower => flowers.push(pos), + _ => {}, }); - Self { leaves, embers } + Self { + leaves, + grass, + embers, + beehives, + reeds, + flowers, + } } } diff --git a/world/src/block/mod.rs b/world/src/block/mod.rs index fe668ff040..a63db55b01 100644 --- a/world/src/block/mod.rs +++ b/world/src/block/mod.rs @@ -574,10 +574,12 @@ pub fn block_from_structure( // None of these BlockKinds has an orientation, so we just use zero for the other color // bits. StructureBlock::Liana => Some(Block::new(BlockKind::Liana, Rgb::zero())), - StructureBlock::Fruit => Some(if field.get(pos + structure_pos) % 3 > 0 { - Block::empty() - } else { + StructureBlock::Fruit => Some(if field.get(pos + structure_pos) % 24 == 0 { + Block::new(BlockKind::Beehive, Rgb::zero()) + } else if field.get(pos + structure_pos + 1) % 3 == 0 { Block::new(BlockKind::Apple, Rgb::zero()) + } else { + Block::empty() }), StructureBlock::Coconut => Some(if field.get(pos + structure_pos) % 3 > 0 { Block::empty() diff --git a/world/src/column/mod.rs b/world/src/column/mod.rs index 3fdbda950b..665b98fe86 100644 --- a/world/src/column/mod.rs +++ b/world/src/column/mod.rs @@ -774,6 +774,7 @@ impl<'a> Sampler<'a> for ColumnGen<'a> { .div(100.0) .into_array(), ) as f32) + //.mul(water_dist.map(|wd| (wd / 2.0).clamped(0.0, 1.0).powf(0.5)).unwrap_or(1.0)) .mul(rockiness) .sub(0.4) .max(0.0) @@ -996,6 +997,11 @@ impl<'a> Sampler<'a> for ColumnGen<'a> { (alt, ground, sub_surface_color) }; + // Make river banks not have grass + let ground = water_dist + .map(|wd| Lerp::lerp(sub_surface_color, ground, (wd / 3.0).clamped(0.0, 1.0))) + .unwrap_or(ground); + let near_ocean = max_river.and_then(|(_, _, river_data, _)| { if (river_data.is_lake() || river_data.river_kind == Some(RiverKind::Ocean)) && ((alt <= water_level.max(CONFIG.sea_level + 5.0) && !is_cliffs) || !near_cliffs) diff --git a/world/src/layer/mod.rs b/world/src/layer/mod.rs index 6ca20116b2..4ab7406b02 100644 --- a/world/src/layer/mod.rs +++ b/world/src/layer/mod.rs @@ -1,8 +1,11 @@ +pub mod scatter; + +pub use self::scatter::apply_scatter_to; + use crate::{ column::ColumnSample, - sim::SimChunk, util::{RandomField, Sampler}, - IndexRef, CONFIG, + IndexRef, }; use common::{ assets::Asset, @@ -27,320 +30,6 @@ pub struct Colors { pub stalagtite: (u8, u8, u8), } -fn close(x: f32, tgt: f32, falloff: f32) -> f32 { - (1.0 - (x - tgt).abs() / falloff).max(0.0).powf(0.5) -} -const MUSH_FACT: f32 = 1.0e-4; // To balance everything around the mushroom spawning rate -pub fn apply_scatter_to<'a>( - wpos2d: Vec2, - mut get_column: impl FnMut(Vec2) -> Option<&'a ColumnSample<'a>>, - vol: &mut (impl BaseVol + RectSizedVol + ReadVol + WriteVol), - index: IndexRef, - chunk: &SimChunk, -) { - use BlockKind::*; - #[allow(clippy::type_complexity)] - // TODO: Add back all sprites we had before - let scatter: &[(_, bool, fn(&SimChunk) -> (f32, Option<(f32, f32)>))] = &[ - // (density, Option<(wavelen, threshold)>) - // Flowers - (BlueFlower, false, |c| { - ( - close(c.temp, 0.1, 0.2).min(close(c.humidity, CONFIG.forest_hum, 0.35)) - * MUSH_FACT - * 0.01, - Some((48.0, 0.2)), - ) - }), - (PinkFlower, false, |c| { - ( - close(c.temp, 0.2, 0.2).min(close(c.humidity, CONFIG.forest_hum, 0.35)) - * MUSH_FACT - * 0.01, - Some((48.0, 0.2)), - ) - }), - (PurpleFlower, false, |c| { - ( - close(c.temp, 0.3, 0.2).min(close(c.humidity, CONFIG.forest_hum, 0.35)) - * MUSH_FACT - * 0.01, - Some((48.0, 0.2)), - ) - }), - (RedFlower, false, |c| { - ( - close(c.temp, 0.5, 0.2).min(close(c.humidity, CONFIG.forest_hum, 0.35)) - * MUSH_FACT - * 0.01, - Some((48.0, 0.2)), - ) - }), - (WhiteFlower, false, |c| { - ( - close(c.temp, 0.0, 0.3).min(close(c.humidity, CONFIG.forest_hum, 0.35)) - * MUSH_FACT - * 0.01, - Some((48.0, 0.2)), - ) - }), - (YellowFlower, false, |c| { - ( - close(c.temp, 0.3, 0.2).min(close(c.humidity, CONFIG.forest_hum, 0.35)) - * MUSH_FACT - * 0.01, - Some((48.0, 0.2)), - ) - }), - // Herbs and Spices - (LingonBerry, false, |c| { - ( - close(c.temp, 0.3, 0.4).min(close(c.humidity, CONFIG.forest_hum, 0.35)) - * MUSH_FACT - * 0.5, - None, - ) - }), - (LeafyPlant, false, |c| { - ( - close(c.temp, 0.3, 0.4).min(close(c.humidity, CONFIG.forest_hum, 0.35)) - * MUSH_FACT - * 0.5, - None, - ) - }), - (Fern, false, |c| { - ( - close(c.temp, 0.3, 0.4).min(close(c.humidity, CONFIG.forest_hum, 0.35)) - * MUSH_FACT - * 0.5, - Some((48.0, 0.4)), - ) - }), - (Blueberry, false, |c| { - ( - close(c.temp, CONFIG.temperate_temp, 0.5).min(close( - c.humidity, - CONFIG.forest_hum, - 0.35, - )) * MUSH_FACT - * 0.3, - None, - ) - }), - // Collectable Objects - // Only spawn twigs in temperate forests - (Twigs, false, |c| { - ((c.tree_density - 0.5).max(0.0) * 1.0e-3, None) - }), - (Stones, false, |c| { - ((c.rockiness - 0.5).max(0.0) * 1.0e-3, None) - }), - // Don't spawn Mushrooms in snowy regions - (Mushroom, false, |c| { - ( - close(c.temp, 0.3, 0.4).min(close(c.humidity, CONFIG.forest_hum, 0.35)) * MUSH_FACT, - None, - ) - }), - // Grass - (ShortGrass, false, |c| { - ( - close(c.temp, 0.3, 0.4).min(close(c.humidity, 0.6, 0.35)) * 0.05, - Some((48.0, 0.4)), - ) - }), - (MediumGrass, false, |c| { - ( - close(c.temp, 0.0, 0.6).min(close(c.humidity, 0.6, 0.35)) * 0.05, - Some((48.0, 0.2)), - ) - }), - (LongGrass, false, |c| { - ( - close(c.temp, 0.4, 0.4).min(close(c.humidity, 0.8, 0.2)) * 0.08, - Some((48.0, 0.1)), - ) - }), - // Jungle Sprites - (LongGrass, false, |c| { - ( - close(c.temp, CONFIG.tropical_temp, 0.4).min(close( - c.humidity, - CONFIG.jungle_hum, - 0.6, - )) * 0.08, - Some((60.0, 5.0)), - ) - }), - /*(WheatGreen, false, |c| { - ( - close(c.temp, 0.4, 0.2).min(close(c.humidity, CONFIG.forest_hum, 0.1)) - * MUSH_FACT - * 0.001, - None, - ) - }),*/ - (GrassSnow, false, |c| { - ( - close(c.temp, CONFIG.snow_temp - 0.2, 0.4).min(close( - c.humidity, - CONFIG.forest_hum, - 0.5, - )) * 0.01, - Some((48.0, 0.2)), - ) - }), - // Desert Plants - (DeadBush, false, |c| { - ( - close(c.temp, CONFIG.desert_temp + 0.2, 0.3).min(close( - c.humidity, - CONFIG.desert_hum, - 0.3, - )) * MUSH_FACT - * 0.1, - None, - ) - }), - (LargeCactus, false, |c| { - ( - close(c.temp, CONFIG.desert_temp + 0.2, 0.3).min(close( - c.humidity, - CONFIG.desert_hum, - 0.2, - )) * MUSH_FACT - * 0.1, - None, - ) - }), - /*(BarrelCactus, false, |c| { - ( - close(c.temp, CONFIG.desert_temp + 0.2, 0.3).min(close( - c.humidity, - CONFIG.desert_hum, - 0.2, - )) * MUSH_FACT - * 0.1, - None, - ) - }), - (RoundCactus, false, |c| { - ( - close(c.temp, CONFIG.desert_temp + 0.2, 0.3).min(close( - c.humidity, - CONFIG.desert_hum, - 0.2, - )) * MUSH_FACT - * 0.1, - None, - ) - }), - (ShortCactus, false, |c| { - ( - close(c.temp, CONFIG.desert_temp + 0.2, 0.3).min(close( - c.humidity, - CONFIG.desert_hum, - 0.2, - )) * MUSH_FACT - * 0.1, - None, - ) - }), - (MedFlatCactus, false, |c| { - ( - close(c.temp, CONFIG.desert_temp + 0.2, 0.3).min(close( - c.humidity, - CONFIG.desert_hum, - 0.2, - )) * MUSH_FACT - * 0.1, - None, - ) - }), - (ShortFlatCactus, false, |c| { - ( - close(c.temp, CONFIG.desert_temp + 0.2, 0.3).min(close( - c.humidity, - CONFIG.desert_hum, - 0.2, - )) * MUSH_FACT - * 0.1, - None, - ) - }),*/ - ]; - - for y in 0..vol.size_xy().y as i32 { - for x in 0..vol.size_xy().x as i32 { - let offs = Vec2::new(x, y); - - let wpos2d = wpos2d + offs; - - // Sample terrain - let col_sample = if let Some(col_sample) = get_column(offs) { - col_sample - } else { - continue; - }; - - let underwater = col_sample.water_level > col_sample.alt; - - let bk = scatter - .iter() - .enumerate() - .find_map(|(i, (bk, is_underwater, f))| { - let (density, patch) = f(chunk); - let is_patch = patch - .map(|(wavelen, threshold)| { - index.noise.scatter_nz.get( - wpos2d - .map(|e| e as f64 / wavelen as f64 + i as f64 * 43.0) - .into_array(), - ) < threshold as f64 - }) - .unwrap_or(false); - if density <= 0.0 - || is_patch - || !RandomField::new(i as u32) - .chance(Vec3::new(wpos2d.x, wpos2d.y, 0), density) - || underwater != *is_underwater - { - None - } else { - Some(*bk) - } - }); - - if let Some(bk) = bk { - let alt = col_sample.alt as i32; - - // Find the intersection between ground and air, if there is one near the - // surface - if let Some(solid_end) = (-4..8) - .find(|z| { - vol.get(Vec3::new(offs.x, offs.y, alt + z)) - .map(|b| b.is_solid()) - .unwrap_or(false) - }) - .and_then(|solid_start| { - (1..8).map(|z| solid_start + z).find(|z| { - vol.get(Vec3::new(offs.x, offs.y, alt + z)) - .map(|b| !b.is_solid()) - .unwrap_or(true) - }) - }) - { - let _ = vol.set( - Vec3::new(offs.x, offs.y, alt + solid_end), - Block::new(bk, Rgb::broadcast(0)), - ); - } - } - } - } -} - pub fn apply_paths_to<'a>( wpos2d: Vec2, mut get_column: impl FnMut(Vec2) -> Option<&'a ColumnSample<'a>>, diff --git a/world/src/layer/scatter.rs b/world/src/layer/scatter.rs new file mode 100644 index 0000000000..55295b0af5 --- /dev/null +++ b/world/src/layer/scatter.rs @@ -0,0 +1,360 @@ +use crate::{column::ColumnSample, sim::SimChunk, util::RandomField, IndexRef, CONFIG}; +use common::{ + terrain::{Block, BlockKind}, + vol::{BaseVol, ReadVol, RectSizedVol, WriteVol}, +}; +use noise::NoiseFn; +use std::f32; +use vek::*; + +fn close(x: f32, tgt: f32, falloff: f32) -> f32 { + (1.0 - (x - tgt).abs() / falloff).max(0.0).powf(0.125) +} +const MUSH_FACT: f32 = 1.0e-4; // To balance everything around the mushroom spawning rate +pub fn apply_scatter_to<'a>( + wpos2d: Vec2, + mut get_column: impl FnMut(Vec2) -> Option<&'a ColumnSample<'a>>, + vol: &mut (impl BaseVol + RectSizedVol + ReadVol + WriteVol), + index: IndexRef, + chunk: &SimChunk, +) { + use BlockKind::*; + #[allow(clippy::type_complexity)] + // TODO: Add back all sprites we had before + let scatter: &[( + _, + bool, + fn(&SimChunk, &ColumnSample) -> (f32, Option<(f32, f32)>), + )] = &[ + // (density, Option<(wavelen, threshold)>) + // Flowers + (BlueFlower, false, |c, col| { + ( + close(c.temp, CONFIG.temperate_temp, 0.7).min(close( + c.humidity, + CONFIG.jungle_hum, + 0.4, + )) * col.tree_density + * MUSH_FACT + * 256.0, + Some((256.0, 0.25)), + ) + }), + (PinkFlower, false, |c, col| { + ( + close(c.temp, 0.0, 0.7).min(close(c.humidity, CONFIG.jungle_hum, 0.4)) + * col.tree_density + * MUSH_FACT + * 350.0, + Some((100.0, 0.1)), + ) + }), + (PurpleFlower, false, |c, col| { + ( + close(c.temp, CONFIG.temperate_temp, 0.7).min(close( + c.humidity, + CONFIG.jungle_hum, + 0.4, + )) * col.tree_density + * MUSH_FACT + * 350.0, + Some((100.0, 0.1)), + ) + }), + (RedFlower, false, |c, col| { + ( + close(c.temp, CONFIG.tropical_temp, 0.6).min(close( + c.humidity, + CONFIG.jungle_hum, + 0.3, + )) * col.tree_density + * MUSH_FACT + * 350.0, + Some((100.0, 0.05)), + ) + }), + (WhiteFlower, false, |c, col| { + ( + close(c.temp, 0.0, 0.7).min(close(c.humidity, CONFIG.jungle_hum, 0.4)) + * col.tree_density + * MUSH_FACT + * 350.0, + Some((100.0, 0.1)), + ) + }), + (YellowFlower, false, |c, col| { + ( + close(c.temp, 0.0, 0.7).min(close(c.humidity, CONFIG.jungle_hum, 0.4)) + * col.tree_density + * MUSH_FACT + * 350.0, + Some((100.0, 0.1)), + ) + }), + (Sunflower, false, |c, col| { + ( + close(c.temp, 0.0, 0.7).min(close(c.humidity, CONFIG.jungle_hum, 0.4)) + * col.tree_density + * MUSH_FACT + * 350.0, + Some((100.0, 0.15)), + ) + }), + // Herbs and Spices + (LingonBerry, false, |c, _| { + ( + close(c.temp, 0.3, 0.4).min(close(c.humidity, CONFIG.jungle_hum, 0.5)) + * MUSH_FACT + * 2.5, + None, + ) + }), + (LeafyPlant, false, |c, _| { + ( + close(c.temp, 0.3, 0.4).min(close(c.humidity, CONFIG.jungle_hum, 0.3)) + * MUSH_FACT + * 4.0, + None, + ) + }), + (Fern, false, |c, _| { + ( + close(c.temp, 0.3, 0.4).min(close(c.humidity, CONFIG.forest_hum, 0.5)) + * MUSH_FACT + * 0.25, + Some((64.0, 0.2)), + ) + }), + (Blueberry, false, |c, _| { + ( + close(c.temp, CONFIG.temperate_temp, 0.5).min(close( + c.humidity, + CONFIG.forest_hum, + 0.5, + )) * MUSH_FACT + * 0.3, + None, + ) + }), + // Collectable Objects + // Only spawn twigs in temperate forests + (Twigs, false, |c, _| { + ((c.tree_density - 0.5).max(0.0) * 1.0e-3, None) + }), + (Stones, false, |c, _| { + ((c.rockiness - 0.5).max(0.0) * 1.0e-3, None) + }), + // Don't spawn Mushrooms in snowy regions + (Mushroom, false, |c, _| { + ( + close(c.temp, 0.3, 0.4).min(close(c.humidity, CONFIG.forest_hum, 0.35)) * MUSH_FACT, + None, + ) + }), + // Grass + (ShortGrass, false, |c, _| { + ( + close(c.temp, 0.2, 0.65).min(close(c.humidity, CONFIG.jungle_hum, 0.4)) * 0.015, + None, + ) + }), + (MediumGrass, false, |c, _| { + ( + close(c.temp, 0.2, 0.6).min(close(c.humidity, CONFIG.jungle_hum, 0.4)) * 0.012, + None, + ) + }), + (LongGrass, false, |c, _| { + ( + close(c.temp, 0.3, 0.35).min(close(c.humidity, CONFIG.jungle_hum, 0.3)) * 0.15, + Some((48.0, 0.2)), + ) + }), + // Jungle Sprites + // (LongGrass, false, |c, col| { + // ( + // close(c.temp, CONFIG.tropical_temp, 0.4).min(close( + // c.humidity, + // CONFIG.jungle_hum, + // 0.6, + // )) * 0.08, + // Some((60.0, 5.0)), + // ) + // }), + /*(WheatGreen, false, |c, col| { + ( + close(c.temp, 0.4, 0.2).min(close(c.humidity, CONFIG.forest_hum, 0.1)) + * MUSH_FACT + * 0.001, + None, + ) + }),*/ + (GrassSnow, false, |c, _| { + ( + close(c.temp, CONFIG.snow_temp - 0.2, 0.4).min(close( + c.humidity, + CONFIG.forest_hum, + 0.5, + )) * 0.01, + Some((48.0, 0.2)), + ) + }), + // Desert Plants + (DeadBush, false, |c, _| { + ( + close(c.temp, 1.0, 0.95).min(close(c.humidity, 0.0, 0.3)) * MUSH_FACT * 15.0, + None, + ) + }), + (LargeCactus, false, |c, _| { + ( + close(c.temp, CONFIG.desert_temp + 0.2, 0.3).min(close( + c.humidity, + CONFIG.desert_hum, + 0.2, + )) * MUSH_FACT + * 0.1, + None, + ) + }), + /*(BarrelCactus, false, |c, col| { + ( + close(c.temp, CONFIG.desert_temp + 0.2, 0.3).min(close( + c.humidity, + CONFIG.desert_hum, + 0.2, + )) * MUSH_FACT + * 0.1, + None, + ) + }), + (RoundCactus, false, |c, col| { + ( + close(c.temp, CONFIG.desert_temp + 0.2, 0.3).min(close( + c.humidity, + CONFIG.desert_hum, + 0.2, + )) * MUSH_FACT + * 0.1, + None, + ) + }), + (ShortCactus, false, |c, col| { + ( + close(c.temp, CONFIG.desert_temp + 0.2, 0.3).min(close( + c.humidity, + CONFIG.desert_hum, + 0.2, + )) * MUSH_FACT + * 0.1, + None, + ) + }), + (MedFlatCactus, false, |c, col| { + ( + close(c.temp, CONFIG.desert_temp + 0.2, 0.3).min(close( + c.humidity, + CONFIG.desert_hum, + 0.2, + )) * MUSH_FACT + * 0.1, + None, + ) + }), + (ShortFlatCactus, false, |c, col| { + ( + close(c.temp, CONFIG.desert_temp + 0.2, 0.3).min(close( + c.humidity, + CONFIG.desert_hum, + 0.2, + )) * MUSH_FACT + * 0.1, + None, + ) + }),*/ + (Reed, false, |c, col| { + ( + close(c.humidity, CONFIG.jungle_hum, 0.7) + * col + .water_dist + .map(|wd| Lerp::lerp(0.2, 0.0, (wd / 8.0).clamped(0.0, 1.0))) + .unwrap_or(0.0), + Some((128.0, 0.5)), + ) + }), + ]; + + for y in 0..vol.size_xy().y as i32 { + for x in 0..vol.size_xy().x as i32 { + let offs = Vec2::new(x, y); + + let wpos2d = wpos2d + offs; + + // Sample terrain + let col_sample = if let Some(col_sample) = get_column(offs) { + col_sample + } else { + continue; + }; + + let underwater = col_sample.water_level > col_sample.alt; + + let bk = scatter + .iter() + .enumerate() + .find_map(|(i, (bk, is_underwater, f))| { + let (density, patch) = f(chunk, col_sample); + let is_patch = patch + .map(|(wavelen, threshold)| { + index + .noise + .scatter_nz + .get( + wpos2d + .map(|e| e as f64 / wavelen as f64 + i as f64 * 43.0) + .into_array(), + ) + .abs() + > 1.0 - threshold as f64 + }) + .unwrap_or(true); + if density > 0.0 + && is_patch + && RandomField::new(i as u32) + .chance(Vec3::new(wpos2d.x, wpos2d.y, 0), density) + && underwater == *is_underwater + { + Some(*bk) + } else { + None + } + }); + + if let Some(bk) = bk { + let alt = col_sample.alt as i32; + + // Find the intersection between ground and air, if there is one near the + // surface + if let Some(solid_end) = (-4..8) + .find(|z| { + vol.get(Vec3::new(offs.x, offs.y, alt + z)) + .map(|b| b.is_solid()) + .unwrap_or(false) + }) + .and_then(|solid_start| { + (1..8).map(|z| solid_start + z).find(|z| { + vol.get(Vec3::new(offs.x, offs.y, alt + z)) + .map(|b| !b.is_solid()) + .unwrap_or(true) + }) + }) + { + let _ = vol.set( + Vec3::new(offs.x, offs.y, alt + solid_end), + Block::new(bk, Rgb::broadcast(0)), + ); + } + } + } + } +} diff --git a/world/src/lib.rs b/world/src/lib.rs index fd3b887092..a992cc9188 100644 --- a/world/src/lib.rs +++ b/world/src/lib.rs @@ -17,6 +17,7 @@ mod column; pub mod config; pub mod index; pub mod layer; +pub mod rtsim; pub mod sim; pub mod sim2; pub mod site; diff --git a/world/src/rtsim/mod.rs b/world/src/rtsim/mod.rs new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/world/src/rtsim/mod.rs @@ -0,0 +1 @@ + diff --git a/world/src/sim/mod.rs b/world/src/sim/mod.rs index 04be2da10e..58ec0de7ea 100644 --- a/world/src/sim/mod.rs +++ b/world/src/sim/mod.rs @@ -1657,7 +1657,7 @@ impl WorldSim { let new_chunk = this.get(downhill_pos)?; const SLIDE_THRESHOLD: f32 = 5.0; - if new_chunk.is_underwater() || new_chunk.alt + SLIDE_THRESHOLD < chunk.alt { + if new_chunk.river.near_water() || new_chunk.alt + SLIDE_THRESHOLD < chunk.alt { break; } else { chunk = new_chunk; @@ -2184,6 +2184,7 @@ impl SimChunk { humidity, rockiness: if true { (gen_ctx.rock_nz.get((wposf.div(1024.0)).into_array()) as f32) + //.add(if river.near_river() { 20.0 } else { 0.0 }) .sub(0.1) .mul(1.3) .max(0.0) diff --git a/world/src/site/dungeon/mod.rs b/world/src/site/dungeon/mod.rs index 8de698a754..a1369a9e44 100644 --- a/world/src/site/dungeon/mod.rs +++ b/world/src/site/dungeon/mod.rs @@ -421,9 +421,7 @@ impl Floor { let offs = Vec2::new(rng.gen_range(-1.0, 1.0), rng.gen_range(-1.0, 1.0)) .try_normalized() .unwrap_or_else(Vec2::unit_y) - * FLOOR_SIZE.x as f32 - / 2.0 - - 8.0; + * (TILE_SIZE as f32 / 2.0 - 4.0); if !self.final_level { supplement.add_entity( EntityInfo::at((origin + stair_rcenter).map(|e| e as f32) + Vec3::from(offs))