From c69a528625d3d9bec886fa4d8f6453177387d24f Mon Sep 17 00:00:00 2001 From: extrawurst <776816+extrawurst@users.noreply.github.com> Date: Tue, 13 May 2025 23:25:58 +0200 Subject: [PATCH] Avian & BTB upgrade (#40) --- Cargo.lock | 429 +++++++++--------- Cargo.toml | 15 +- assets/maps/map1.map | 5 +- .../{blue-fence.material => blue-fence.toml} | 0 .../textures/{fence.material => fence.toml} | 0 .../textures/{water.material => water.toml} | 0 src/character.rs | 33 +- src/control/collisions.rs | 8 +- src/control/controller_flying.rs | 2 +- src/main.rs | 12 +- src/npc.rs | 5 +- src/player.rs | 7 +- src/tb_entities.rs | 70 +-- trenchbroom/hedz/GameConfig.cfg | 1 - trenchbroom/hedz/hedz.fgd | 124 ++--- 15 files changed, 348 insertions(+), 363 deletions(-) rename assets/textures/{blue-fence.material => blue-fence.toml} (100%) rename assets/textures/{fence.material => fence.toml} (100%) rename assets/textures/{water.material => water.toml} (100%) diff --git a/Cargo.lock b/Cargo.lock index b5d0310..5281628 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -31,7 +31,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0bf66a7bf0b7ea4fd7742d50b64782a88f99217cf246b3f93b4162528dde520" dependencies = [ "accesskit", - "hashbrown 0.15.2", + "hashbrown 0.15.3", "immutable-chunkmap", ] @@ -43,7 +43,7 @@ checksum = "09e230718177753b4e4ad9e1d9f6cfc2f4921212d4c1c480b253f526babb258d" dependencies = [ "accesskit", "accesskit_consumer", - "hashbrown 0.15.2", + "hashbrown 0.15.3", "objc2 0.5.2", "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", @@ -57,7 +57,7 @@ checksum = "65178f3df98a51e4238e584fcb255cb1a4f9111820848eeddd37663be40a625f" dependencies = [ "accesskit", "accesskit_consumer", - "hashbrown 0.15.2", + "hashbrown 0.15.3", "paste", "static_assertions", "windows 0.58.0", @@ -85,15 +85,15 @@ checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "ahash" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.2.16", + "getrandom 0.3.3", "once_cell", "version_check", - "zerocopy 0.7.35", + "zerocopy", ] [[package]] @@ -297,14 +297,15 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" +checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa" dependencies = [ "async-task", "concurrent-queue", "fastrand", "futures-lite", + "pin-project-lite", "slab", ] @@ -380,8 +381,9 @@ dependencies = [ [[package]] name = "avian3d" -version = "0.2.0" -source = "git+https://github.com/Jondolf/avian.git?rev=9511076#9511076d933fdc56015c93665f37b1804a2b08bd" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8ba10c23fee3d432f3c6cf8d036e269d952b8840c1ca4fa6a021ab926786dc4" dependencies = [ "avian_derive", "bevy", @@ -389,7 +391,7 @@ dependencies = [ "bevy_math", "bevy_transform_interpolation", "bitflags 2.9.0", - "derive_more 1.0.0", + "derive_more", "itertools 0.13.0", "nalgebra", "parry3d", @@ -400,7 +402,8 @@ dependencies = [ [[package]] name = "avian_derive" version = "0.2.2" -source = "git+https://github.com/Jondolf/avian.git?rev=9511076#9511076d933fdc56015c93665f37b1804a2b08bd" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12b257f601a1535e0d4a7a7796f535e3a13de62fd422b16dff7c14d27f0d4048" dependencies = [ "proc-macro-error2", "proc-macro2", @@ -539,7 +542,7 @@ dependencies = [ "bevy_transform", "bevy_utils", "blake3", - "derive_more 1.0.0", + "derive_more", "downcast-rs 2.0.1", "either", "petgraph", @@ -596,7 +599,7 @@ dependencies = [ "bitflags 2.9.0", "blake3", "crossbeam-channel", - "derive_more 1.0.0", + "derive_more", "disqualified", "downcast-rs 2.0.1", "either", @@ -617,9 +620,9 @@ dependencies = [ [[package]] name = "bevy_asset_loader" -version = "0.23.0-rc.3" +version = "0.23.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51086efbc7ba2e5d64d6b9bb8e13ab5ee9edb98f5a8a5ad3803d82d2820b1159" +checksum = "84061ea6511462c1552a615d4f2554cfe4cfb8a2705ea189d6fb3ec2aca727f6" dependencies = [ "anyhow", "bevy", @@ -629,9 +632,9 @@ dependencies = [ [[package]] name = "bevy_asset_loader_derive" -version = "0.23.0-rc.3" +version = "0.23.0-rc.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e84b57682d587441c15283918d730960cbc6d82e9563b48714c4992d86c3ddce" +checksum = "4ec48e433a46d0410671f41b4ab17edd6d4a8e47420b71b2fce57017264392ad" dependencies = [ "proc-macro2", "quote", @@ -670,8 +673,9 @@ dependencies = [ [[package]] name = "bevy_ballistic" -version = "0.3.0" -source = "git+https://github.com/rustunit/bevy_ballistic.git?branch=bevy-0.16#c529e4ddf2aa87aff39f5448135cbab1549e6175" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "856e5ed7691e67e910dcec97464b67d4e68db7b07fbda49085f99311d487a20b" dependencies = [ "bevy_math", ] @@ -685,7 +689,7 @@ dependencies = [ "bevy_math", "bevy_reflect", "bytemuck", - "derive_more 1.0.0", + "derive_more", "encase", "serde", "thiserror 2.0.12", @@ -795,7 +799,7 @@ dependencies = [ "bitflags 2.9.0", "bumpalo", "concurrent-queue", - "derive_more 1.0.0", + "derive_more", "disqualified", "fixedbitset", "indexmap", @@ -955,8 +959,9 @@ dependencies = [ [[package]] name = "bevy_heavy" -version = "0.1.0" -source = "git+https://github.com/Jondolf/bevy_heavy#3905efe581700296de8f48d33388c5471dfca785" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34ccc861fea2ff58c67f4df119512e204050bd7631a3a9c65e1a5e9d162cce28" dependencies = [ "bevy_math", "bevy_reflect", @@ -1002,7 +1007,7 @@ dependencies = [ "bevy_platform", "bevy_reflect", "bevy_utils", - "derive_more 1.0.0", + "derive_more", "log", "smol_str", "thiserror 2.0.12", @@ -1099,9 +1104,9 @@ dependencies = [ [[package]] name = "bevy_materialize" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670eb69a0dbee3c001f24a752accce10e3a3bb425623b83b92727de9b199ccf4" +checksum = "23eba72b8044514f36fab0700c348ddaaa820713d345079322a53697eaaf8f1d" dependencies = [ "bevy", "serde", @@ -1117,7 +1122,7 @@ checksum = "f1a3a926d02dc501c6156a047510bdb538dcb1fa744eeba13c824b73ba88de55" dependencies = [ "approx", "bevy_reflect", - "derive_more 1.0.0", + "derive_more", "glam", "itertools 0.14.0", "libm", @@ -1186,7 +1191,7 @@ dependencies = [ "bevy_window", "bitflags 2.9.0", "bytemuck", - "derive_more 1.0.0", + "derive_more", "fixedbitset", "nonmax", "offset-allocator", @@ -1232,7 +1237,7 @@ dependencies = [ "critical-section", "foldhash", "getrandom 0.2.16", - "hashbrown 0.15.2", + "hashbrown 0.15.3", "portable-atomic", "portable-atomic-util", "serde", @@ -1257,7 +1262,7 @@ dependencies = [ "bevy_ptr", "bevy_reflect_derive", "bevy_utils", - "derive_more 1.0.0", + "derive_more", "disqualified", "downcast-rs 2.0.1", "erased-serde", @@ -1314,7 +1319,7 @@ dependencies = [ "bitflags 2.9.0", "bytemuck", "codespan-reporting", - "derive_more 1.0.0", + "derive_more", "downcast-rs 2.0.1", "encase", "fixedbitset", @@ -1365,7 +1370,7 @@ dependencies = [ "bevy_render", "bevy_transform", "bevy_utils", - "derive_more 1.0.0", + "derive_more", "serde", "thiserror 2.0.12", "uuid", @@ -1394,7 +1399,7 @@ dependencies = [ "bevy_window", "bitflags 2.9.0", "bytemuck", - "derive_more 1.0.0", + "derive_more", "fixedbitset", "nonmax", "radsort", @@ -1452,7 +1457,7 @@ dependencies = [ "cfg-if", "concurrent-queue", "crossbeam-queue", - "derive_more 1.0.0", + "derive_more", "futures-channel", "futures-lite", "heapless", @@ -1518,25 +1523,27 @@ dependencies = [ "bevy_reflect", "bevy_tasks", "bevy_utils", - "derive_more 1.0.0", + "derive_more", "serde", "thiserror 2.0.12", ] [[package]] name = "bevy_transform_interpolation" -version = "0.1.0" -source = "git+https://github.com/Jondolf/bevy_transform_interpolation#9fd7fe92c32e2d30e38b80566dfa7b740119b593" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c7c6c4e6a3d5415b3a29a17bd20c17cd0e2f068b96b24e263316d58d5346ea" dependencies = [ "bevy", ] [[package]] name = "bevy_trenchbroom" -version = "0.7.0" -source = "git+https://github.com/extrawurst/bevy_trenchbroom.git?branch=bevy-0.16.0#40c124d85570e96b5d9675d8238fc54fa99d46e6" +version = "0.8.0-dev" +source = "git+https://github.com/Noxmore/bevy_trenchbroom.git?rev=3acfccf#3acfccfd7a5b56448a831c0f00157644cbdbfced" dependencies = [ "anyhow", + "atomicow", "avian3d", "bevy", "bevy_materialize", @@ -1548,14 +1555,13 @@ dependencies = [ "enumflags2", "float-ord", "image", - "inventory", "itertools 0.14.0", "json", "ndshape", - "nil", - "qbsp", + "nil 0.15.0", "quake-util", "serde", + "serde_json", "strum 0.27.1", "thiserror 2.0.12", "wgpu-types", @@ -1563,8 +1569,8 @@ dependencies = [ [[package]] name = "bevy_trenchbroom_macros" -version = "0.7.0" -source = "git+https://github.com/extrawurst/bevy_trenchbroom.git?branch=bevy-0.16.0#40c124d85570e96b5d9675d8238fc54fa99d46e6" +version = "0.8.0-dev" +source = "git+https://github.com/Noxmore/bevy_trenchbroom.git?rev=3acfccf#3acfccfd7a5b56448a831c0f00157644cbdbfced" dependencies = [ "heck", "proc-macro2", @@ -1599,7 +1605,7 @@ dependencies = [ "bevy_utils", "bevy_window", "bytemuck", - "derive_more 1.0.0", + "derive_more", "nonmax", "smallvec", "taffy", @@ -1804,9 +1810,9 @@ checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "bytemuck" -version = "1.22.0" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" +checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" dependencies = [ "bytemuck_derive", ] @@ -1868,9 +1874,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.20" +version = "1.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04da6a0d40b948dfc4fa8f5bbf402b0fc1a64a28dbf7d12ffd683550f2c1b63a" +checksum = "32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1" dependencies = [ "jobserver", "libc", @@ -2216,11 +2222,11 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.4.6" +version = "3.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697b5419f348fd5ae2478e8018cb016c00a5881c7f46c717de98ffd135a5651c" +checksum = "46f93780a459b7d656ef7f071fe699c4d3d2cb201c4b24d085b6ddc505276e73" dependencies = [ - "nix", + "nix 0.30.1", "windows-sys 0.59.0", ] @@ -2335,16 +2341,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" dependencies = [ - "derive_more-impl 1.0.0", -] - -[[package]] -name = "derive_more" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" -dependencies = [ - "derive_more-impl 2.0.1", + "derive_more-impl", ] [[package]] @@ -2359,17 +2356,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "derive_more-impl" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "disjoint-sets" version = "0.4.2" @@ -2430,9 +2416,9 @@ checksum = "ea8a8b81cacc08888170eef4d13b775126db426d0b348bee9d18c2c1eaf123cf" [[package]] name = "dpi" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" +checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" [[package]] name = "ecolor" @@ -2585,9 +2571,9 @@ dependencies = [ [[package]] name = "error-code" -version = "3.3.1" +version = "3.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f" +checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59" [[package]] name = "euclid" @@ -2685,18 +2671,18 @@ checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "font-types" -version = "0.8.4" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa6a5e5a77b5f3f7f9e32879f484aa5b3632ddfbe568a16266c904a6f32cdaf" +checksum = "02a596f5713680923a2080d86de50fe472fb290693cf0f701187a1c8b36996b7" dependencies = [ "bytemuck", ] [[package]] name = "fontconfig-parser" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fcfcd44ca6e90c921fee9fa665d530b21ef1327a4c1a6c5250ea44b776ada7" +checksum = "bbc773e24e02d4ddd8395fd30dc147524273a83e54e0f312d986ea30de5f5646" dependencies = [ "roxmltree", ] @@ -2810,9 +2796,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", "libc", @@ -2856,7 +2842,7 @@ dependencies = [ "libc", "libudev-sys", "log", - "nix", + "nix 0.29.0", "uuid", "vec_map", "wasm-bindgen", @@ -2989,7 +2975,7 @@ checksum = "dcf29e94d6d243368b7a56caa16bc213e4f9f8ed38c4d9557069527b5d5281ca" dependencies = [ "bitflags 2.9.0", "gpu-descriptor-types", - "hashbrown 0.15.2", + "hashbrown 0.15.3", ] [[package]] @@ -3048,9 +3034,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" dependencies = [ "allocator-api2", "equivalent", @@ -3090,7 +3076,7 @@ dependencies = [ "bevy_debug_log", "bevy_sprite3d", "bevy_trenchbroom", - "nil", + "nil 0.14.0", "rand", "ron", "serde", @@ -3182,7 +3168,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown 0.15.3", "serde", ] @@ -3223,15 +3209,6 @@ dependencies = [ "syn", ] -[[package]] -name = "inventory" -version = "0.3.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab08d7cd2c5897f2c949e5383ea7c7db03fb19130ffcfbf7eda795137ae3cb83" -dependencies = [ - "rustversion", -] - [[package]] name = "io-kit-sys" version = "0.4.1" @@ -3303,7 +3280,7 @@ version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", "libc", ] @@ -3396,19 +3373,19 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +checksum = "6a793df0d7afeac54f95b471d3af7f0d4fb975699f972341a4b76988d49cdf0c" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-targets 0.53.0", ] [[package]] name = "libm" -version = "0.2.13" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9627da5196e5d8ed0b0495e61e518847578da83483c37288316d9b2e03a7f72" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" @@ -3418,7 +3395,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.9.0", "libc", - "redox_syscall 0.5.11", + "redox_syscall 0.5.12", ] [[package]] @@ -3497,9 +3474,9 @@ dependencies = [ [[package]] name = "matrixmultiply" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" +checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08" dependencies = [ "autocfg", "rawpointer", @@ -3711,6 +3688,17 @@ dependencies = [ "smart-default", ] +[[package]] +name = "nil" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1c6c63f2ce41341a220e83ad2fc86ca6280c794e4af7bb0c6fd92cfa2231163" +dependencies = [ + "once_cell", + "parking_lot", + "smart-default", +] + [[package]] name = "nix" version = "0.29.0" @@ -3723,6 +3711,18 @@ dependencies = [ "libc", ] +[[package]] +name = "nix" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" +dependencies = [ + "bitflags 2.9.0", + "cfg-if", + "cfg_aliases", + "libc", +] + [[package]] name = "nohash-hasher" version = "0.2.0" @@ -4250,7 +4250,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.11", + "redox_syscall 0.5.12", "smallvec", "windows-targets 0.52.6", ] @@ -4446,7 +4446,7 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.8.25", + "zerocopy", ] [[package]] @@ -4524,35 +4524,6 @@ dependencies = [ "syn", ] -[[package]] -name = "qbsp" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95e32743274c37419037ab6b3293461583cafb4b0c4c82f76c9c6e0211e4b91a" -dependencies = [ - "bevy_reflect", - "derive_more 2.0.1", - "glam", - "image", - "qbsp_macros", - "serde", - "smallvec", - "strum 0.27.1", - "texture_packer", - "thiserror 2.0.12", -] - -[[package]] -name = "qbsp_macros" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0b2163a90c0ed9192d85cc41d6cb520f8ba138d729a2f7dbd2e4e70f3cbecc" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "qoi" version = "0.4.1" @@ -4743,9 +4714,9 @@ dependencies = [ [[package]] name = "read-fonts" -version = "0.25.3" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f9e8a4f503e5c8750e4cd3b32a4e090035c46374b305a15c70bad833dca05f" +checksum = "5ce8e2ca6b24313587a03ca61bb74c384e2a815bd90cf2866cfc9f5fb7a11fa0" dependencies = [ "bytemuck", "font-types", @@ -4768,9 +4739,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" +checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ "bitflags 2.9.0", ] @@ -4833,9 +4804,9 @@ checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" [[package]] name = "robust" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf4a6aa5f6d6888f39e980649f3ad6b666acdce1d78e95b8a2cb076e687ae30" +checksum = "4e27ee8bb91ca0adcf0ecb116293afa12d393f9c2b9b9cd54d33e8078fe19839" [[package]] name = "rodio" @@ -4926,9 +4897,9 @@ dependencies = [ [[package]] name = "ruzstd" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c581601827da5c717bfae77d7b187e54293d23d8fb6b700b4b5e9b5828a13cc3" +checksum = "3640bec8aad418d7d03c72ea2de10d5c646a598f9883c7babc160d91e3c1b26c" dependencies = [ "twox-hash", ] @@ -5080,9 +5051,9 @@ dependencies = [ [[package]] name = "skrifa" -version = "0.26.6" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cc1aa86c26dbb1b63875a7180aa0819709b33348eb5b1491e4321fae388179d" +checksum = "bbe6666ab11018ab91ff7b03f1a3b9fdbecfb610848436fefa5ce50343d3d913" dependencies = [ "bytemuck", "read-fonts", @@ -5111,9 +5082,6 @@ name = "smallvec" version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" -dependencies = [ - "serde", -] [[package]] name = "smart-default" @@ -5166,7 +5134,7 @@ version = "2.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ece03ff43cd2a9b57ebf776ea5e78bd30b3b4185a619f041079f4109f385034" dependencies = [ - "hashbrown 0.15.2", + "hashbrown 0.15.3", "num-traits", "robust", "smallvec", @@ -5290,9 +5258,9 @@ checksum = "0193cc4331cfd2f3d2011ef287590868599a2f33c3e69bc22c1a3d3acf9e02fb" [[package]] name = "swash" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fae9a562c7b46107d9c78cd78b75bbe1e991c16734c0aee8ff0ee711fb8b620a" +checksum = "5dce3f0af95643c855cdc449fbaa17d8c2cd08e0b00a49a6babcbe6e71667f3d" dependencies = [ "skrifa", "yazi", @@ -5372,15 +5340,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "texture_packer" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a976e9faf26d09a951476bd85322e275ccaa61602b93d2bf796fbb6be4535097" -dependencies = [ - "image", -] - [[package]] name = "thiserror" version = "1.0.69" @@ -5518,9 +5477,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "toml" -version = "0.8.21" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900f6c86a685850b1bc9f6223b20125115ee3f31e01207d81655bbcc0aea9231" +checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" dependencies = [ "serde", "serde_spanned", @@ -5539,9 +5498,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.25" +version = "0.22.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10558ed0bd2a1562e630926a2d1f0b98c827da99fabd3fe20920a59642504485" +checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" dependencies = [ "indexmap", "serde", @@ -5553,9 +5512,9 @@ dependencies = [ [[package]] name = "toml_write" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28391a4201ba7eb1984cfeb6862c0b3ea2cfe23332298967c749dddc0d6cd976" +checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" [[package]] name = "tracing" @@ -5746,7 +5705,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", "js-sys", "serde", "wasm-bindgen", @@ -5933,9 +5892,9 @@ dependencies = [ [[package]] name = "wayland-backend" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7208998eaa3870dad37ec8836979581506e0c5c64c20c9e79e9d2a10d6f47bf" +checksum = "fe770181423e5fc79d3e2a7f4410b7799d5aab1de4372853de3c6aa13ca24121" dependencies = [ "cc", "downcast-rs 1.2.1", @@ -5947,9 +5906,9 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.8" +version = "0.31.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2120de3d33638aaef5b9f4472bff75f07c56379cf76ea320bd3a3d65ecaf73f" +checksum = "978fa7c67b0847dbd6a9f350ca2569174974cd4082737054dbb7fbb79d7d9a61" dependencies = [ "bitflags 2.9.0", "rustix", @@ -5970,9 +5929,9 @@ dependencies = [ [[package]] name = "wayland-cursor" -version = "0.31.8" +version = "0.31.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a93029cbb6650748881a00e4922b076092a6a08c11e7fbdb923f064b23968c5d" +checksum = "a65317158dec28d00416cb16705934070aef4f8393353d41126c54264ae0f182" dependencies = [ "rustix", "wayland-client", @@ -5981,9 +5940,9 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.32.6" +version = "0.32.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0781cf46869b37e36928f7b432273c0995aa8aed9552c556fb18754420541efc" +checksum = "779075454e1e9a521794fed15886323ea0feda3f8b0fc1390f5398141310422a" dependencies = [ "bitflags 2.9.0", "wayland-backend", @@ -5993,9 +5952,9 @@ dependencies = [ [[package]] name = "wayland-protocols-plasma" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ccaacc76703fefd6763022ac565b590fcade92202492381c95b2edfdf7d46b3" +checksum = "4fd38cdad69b56ace413c6bcc1fbf5acc5e2ef4af9d5f8f1f9570c0c83eae175" dependencies = [ "bitflags 2.9.0", "wayland-backend", @@ -6006,9 +5965,9 @@ dependencies = [ [[package]] name = "wayland-protocols-wlr" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248a02e6f595aad796561fa82d25601bd2c8c3b145b1c7453fc8f94c1a58f8b2" +checksum = "1cb6cdc73399c0e06504c437fe3cf886f25568dd5454473d565085b36d6a8bbf" dependencies = [ "bitflags 2.9.0", "wayland-backend", @@ -6521,13 +6480,29 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -6546,6 +6521,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -6564,6 +6545,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -6582,12 +6569,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -6606,6 +6605,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -6624,6 +6629,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -6642,6 +6653,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -6661,10 +6678,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "winit" -version = "0.30.9" +name = "windows_x86_64_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a809eacf18c8eca8b6635091543f02a5a06ddf3dad846398795460e6e0ae3cc0" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + +[[package]] +name = "winit" +version = "0.30.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0d05bd8908e14618c9609471db04007e644fd9cce6529756046cfc577f9155e" dependencies = [ "ahash", "android-activity", @@ -6714,9 +6737,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.7" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb8234a863ea0e8cd7284fcdd4f145233eb00fee02bbdd9861aec44e6477bc5" +checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" dependencies = [ "memchr", ] @@ -6801,18 +6824,9 @@ checksum = "e01738255b5a16e78bbb83e7fbba0a1e7dd506905cfc53f4622d89015a03fbb5" [[package]] name = "zeno" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc0de2315dc13d00e5df3cd6b8d2124a6eaec6a2d4b6a1c5f37b7efad17fcc17" - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "zerocopy-derive 0.7.35", -] +checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524" [[package]] name = "zerocopy" @@ -6820,18 +6834,7 @@ version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" dependencies = [ - "zerocopy-derive 0.8.25", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn", + "zerocopy-derive", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 2617eb0..33d3dfa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ opt-level = 3 dbg = ["avian3d/debug-plugin", "dep:bevy-inspector-egui"] [dependencies] -avian3d = { version = "0.2", default-features = false, features = [ +avian3d = { version = "0.3", default-features = false, features = [ "3d", "f32", "parry-f32", @@ -21,11 +21,7 @@ avian3d = { version = "0.2", default-features = false, features = [ "parallel", ] } bevy = { version = "0.16.0", features = ["track_location"] } -bevy_trenchbroom = { version = "0.7", features = [ - "auto_register", - "avian", - "client", -] } +bevy_trenchbroom = { version = "0.8.0-dev", features = ["avian"] } nil = "0.14.0" bevy_asset_loader = "0.23.0-rc.3" bevy_sprite3d = "5.0.0" @@ -33,7 +29,7 @@ rand = "=0.8.5" bevy-inspector-egui = { version = "0.31", optional = true } bevy-steamworks = "0.13.0" steamworks = "0.11" -bevy_ballistic = "0.3.0" +bevy_ballistic = "0.4.0" bevy-ui-gradients = "0.4.0" bevy_debug_log = "0.6.0" bevy_common_assets = { version = "0.13.0", features = ["ron"] } @@ -49,7 +45,4 @@ type_complexity = "allow" [patch.crates-io] bevy-steamworks = { git = "https://github.com/extrawurst/bevy_steamworks.git", branch = "derive-debug-event" } -# bevy-steamworks = { path = "../../forks/bevy_steamworks" } -avian3d = { git = "https://github.com/Jondolf/avian.git", rev = "9511076" } -bevy_ballistic = { git = "https://github.com/rustunit/bevy_ballistic.git", branch = "bevy-0.16" } -bevy_trenchbroom = { git = "https://github.com/extrawurst/bevy_trenchbroom.git", branch = "bevy-0.16.0" } +bevy_trenchbroom = { git = "https://github.com/Noxmore/bevy_trenchbroom.git", rev = "3acfccf" } diff --git a/assets/maps/map1.map b/assets/maps/map1.map index 5254d72..c5fb22a 100644 --- a/assets/maps/map1.map +++ b/assets/maps/map1.map @@ -1320,7 +1320,7 @@ { "classname" "move_target" "origin" "1152 0 -216" -"angles" "0 0 0" +"angles" "0 -90 0" "targetname" "target_fence_01" } // entity 20 @@ -1352,7 +1352,7 @@ { "classname" "move_target" "origin" "1152 512 -216" -"angles" "0 -180 0" +"angles" "0 90 0" "targetname" "target_fence_02" } // entity 22 @@ -1408,6 +1408,7 @@ "classname" "move_target" "origin" "1480 6600 -232" "targetname" "target_fence_shaft" +"angles" "0 -90 0" } // entity 27 { diff --git a/assets/textures/blue-fence.material b/assets/textures/blue-fence.toml similarity index 100% rename from assets/textures/blue-fence.material rename to assets/textures/blue-fence.toml diff --git a/assets/textures/fence.material b/assets/textures/fence.toml similarity index 100% rename from assets/textures/fence.material rename to assets/textures/fence.toml diff --git a/assets/textures/water.material b/assets/textures/water.toml similarity index 100% rename from assets/textures/water.material rename to assets/textures/water.toml diff --git a/src/character.rs b/src/character.rs index ac946ff..ed32a1a 100644 --- a/src/character.rs +++ b/src/character.rs @@ -4,13 +4,31 @@ use crate::{ use bevy::{ ecs::system::SystemParam, platform::collections::HashMap, prelude::*, scene::SceneInstanceReady, }; -use std::time::Duration; +use std::{f32::consts::PI, time::Duration}; #[derive(Component, Debug)] pub struct ProjectileOrigin; #[derive(Component, Debug)] -pub struct AnimatedCharacter(pub usize); +pub struct AnimatedCharacter { + head: usize, + rotate_180: bool, +} + +impl AnimatedCharacter { + pub fn new(head: usize) -> Self { + Self { + head, + rotate_180: false, + } + } + + pub fn with_rotation(self) -> Self { + let mut s = self; + s.rotate_180 = true; + s + } +} #[derive(Component, Debug)] struct AnimatedCharacterAsset(pub Handle); @@ -59,7 +77,7 @@ fn spawn( heads_db: Res, ) { for (entity, character) in query.iter() { - let key = heads_db.head_key(character.0); + let key = heads_db.head_key(character.head); let handle = assets .characters @@ -71,10 +89,17 @@ fn spawn( }); let asset = gltf_assets.get(handle).unwrap(); + let mut t = + Transform::from_translation(Vec3::new(0., -1.45, 0.)).with_scale(Vec3::splat(1.2)); + + if character.rotate_180 { + t.rotate_y(PI); + } + commands .entity(entity) .insert(( - Transform::from_translation(Vec3::new(0., -1.45, 0.)).with_scale(Vec3::splat(1.2)), + t, SceneRoot(asset.scenes[0].clone()), AnimatedCharacterAsset(handle.clone()), )) diff --git a/src/control/collisions.rs b/src/control/collisions.rs index 2e670ed..02e361b 100644 --- a/src/control/collisions.rs +++ b/src/control/collisions.rs @@ -24,12 +24,8 @@ pub fn kinematic_controller_collisions( // Iterate through collisions and move the kinematic body to resolve penetration for contacts in collisions.iter() { // Get the rigid body entities of the colliders (colliders could be children) - let Ok( - [ - &ColliderOf { rigid_body: rb1 }, - &ColliderOf { rigid_body: rb2 }, - ], - ) = collider_rbs.get_many([contacts.entity1, contacts.entity2]) + let Ok([&ColliderOf { body: rb1 }, &ColliderOf { body: rb2 }]) = + collider_rbs.get_many([contacts.collider1, contacts.collider2]) else { continue; }; diff --git a/src/control/controller_flying.rs b/src/control/controller_flying.rs index 3f7585a..1254acd 100644 --- a/src/control/controller_flying.rs +++ b/src/control/controller_flying.rs @@ -62,7 +62,7 @@ fn movement( rig_transform_q: Option>>, time: Res