diff --git a/Cargo.lock b/Cargo.lock index 90d0909..98702d5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -143,15 +143,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] -name = "binrw" -version = "0.13.3" +name = "beef" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "173901312e9850391d4d7c1318c4e099fdc037d61870fca427429830efdb4e5f" -dependencies = [ - "array-init", - "binrw_derive 0.13.3", - "bytemuck", -] +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" [[package]] name = "binrw" @@ -160,23 +155,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f36b7cb3ab9ff6a2858650d8dc360e783a5d14dc29594db48c56a3c233cc265" dependencies = [ "array-init", - "binrw_derive 0.14.0", + "binrw_derive", "bytemuck", ] -[[package]] -name = "binrw_derive" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb515fdd6f8d3a357c8e19b8ec59ef53880807864329b1cb1cba5c53bf76557e" -dependencies = [ - "either", - "owo-colors", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "binrw_derive" version = "0.14.0" @@ -342,9 +324,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.23" +version = "1.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bbb537bb4a30b90362caddba8f360c0a56bc13d3a5570028e7197204cb54a17" +checksum = "812acba72f0a070b003d3697490d2b55b837230ae7c6c6497f05cc2ddbb8d938" dependencies = [ "jobserver", "libc", @@ -527,6 +509,12 @@ version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "cursor-icon" version = "1.1.0" @@ -633,9 +621,9 @@ checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" [[package]] name = "fixed_wide" -version = "0.1.0" +version = "0.1.1" source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/" -checksum = "7a8d6e10c51c9df39ead915c62288afbc41d13e00368e526037e530ee5c58e13" +checksum = "d9c2cf115b3785ede870fada07e8b1aeba3378345b4ca86fe3c772ecabc05c0f" dependencies = [ "arrayvec", "bnum", @@ -643,6 +631,12 @@ dependencies = [ "ratio_ops", ] +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + [[package]] name = "foreign-types" version = "0.5.0" @@ -670,6 +664,15 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + [[package]] name = "gethostname" version = "0.4.3" @@ -704,9 +707,9 @@ dependencies = [ [[package]] name = "glam" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "779ae4bf7e8421cf91c0b3b64e7e8b40b862fba4d393f59150042de7c4965a94" +checksum = "c28091a37a5d09b555cb6628fd954da299b536433834f5b8e59eba78e0cbbf8a" [[package]] name = "glow" @@ -769,7 +772,7 @@ checksum = "9c08c1f623a8d0b722b8b99f821eb0ba672a1618f0d3b16ddbee1cedd2dd8557" dependencies = [ "bitflags 2.6.0", "gpu-descriptor-types", - "hashbrown", + "hashbrown 0.14.5", ] [[package]] @@ -781,6 +784,16 @@ dependencies = [ "bitflags 2.6.0", ] +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + [[package]] name = "hashbrown" version = "0.14.5" @@ -791,6 +804,12 @@ dependencies = [ "allocator-api2", ] +[[package]] +name = "hashbrown" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" + [[package]] name = "hassle-rs" version = "0.11.0" @@ -830,20 +849,30 @@ dependencies = [ ] [[package]] -name = "indexmap" -version = "2.5.0" +name = "idna" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indexmap" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.15.0", ] [[package]] name = "itertools" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] @@ -1000,6 +1029,39 @@ version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +[[package]] +name = "logos" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c6b6e02facda28ca5fb8dbe4b152496ba3b1bd5a4b40bb2b1b2d8ad74e0f39b" +dependencies = [ + "logos-derive", +] + +[[package]] +name = "logos-codegen" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b32eb6b5f26efacd015b000bfc562186472cd9b34bdba3f6b264e2a052676d10" +dependencies = [ + "beef", + "fnv", + "lazy_static", + "proc-macro2", + "quote", + "regex-syntax", + "syn 2.0.79", +] + +[[package]] +name = "logos-derive" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e5d0c5463c911ef55624739fc353238b4e310f0144be1f875dc42fec6bfd5ec" +dependencies = [ + "logos-codegen", +] + [[package]] name = "luau0-src" version = "0.10.3+luau640" @@ -1086,6 +1148,29 @@ dependencies = [ "paste", ] +[[package]] +name = "miette" +version = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4edc8853320c2a0dab800fbda86253c8938f6ea88510dc92c5f1ed20e794afc1" +dependencies = [ + "cfg-if", + "miette-derive", + "thiserror", + "unicode-width", +] + +[[package]] +name = "miette-derive" +version = "7.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + [[package]] name = "mlua" version = "0.9.9" @@ -1470,6 +1555,31 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "parse-display" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "914a1c2265c98e2446911282c6ac86d8524f495792c38c5bd884f80499c7538a" +dependencies = [ + "parse-display-derive", + "regex", + "regex-syntax", +] + +[[package]] +name = "parse-display-derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae7800a4c974efd12df917266338e79a7a74415173caf7e70aa0a0707345281" +dependencies = [ + "proc-macro2", + "quote", + "regex", + "regex-syntax", + "structmeta", + "syn 2.0.79", +] + [[package]] name = "paste" version = "1.0.15" @@ -1690,7 +1800,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "864ead0e98afce28c960f653d6203483834890d07f87b60e2f01415530a2fe9d" dependencies = [ - "binrw 0.14.0", + "binrw", "lazy-regex", ] @@ -1823,9 +1933,9 @@ dependencies = [ [[package]] name = "roblox_emulator" -version = "0.2.2" +version = "0.2.3" source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/" -checksum = "1f084d8b843fd96371cca381799313c9b3d0634d2da23ac0c6334bdaf0a2225e" +checksum = "2fa2c785a17f607aad6bdd19eef6d19f9476f308ce38de139df931a99132bd46" dependencies = [ "glam", "mlua", @@ -2005,7 +2115,7 @@ dependencies = [ "parking_lot", "pollster", "strafesnet_bsp_loader", - "strafesnet_common 0.5.0", + "strafesnet_common", "strafesnet_deferred_loader", "strafesnet_rbx_loader", "strafesnet_snf", @@ -2015,33 +2125,21 @@ dependencies = [ [[package]] name = "strafesnet_bsp_loader" -version = "0.1.5" +version = "0.2.2" source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/" -checksum = "35ee2c534efa039ad17ca41893ba1d75fafff014076353ac676c73fc808b9e44" +checksum = "34f944637bc3b3ed4c430819c672174b3a3edfd51f79b6b87f4931e3714a398e" dependencies = [ "glam", - "strafesnet_common 0.4.1", + "strafesnet_common", "vbsp", "vmdl", ] [[package]] name = "strafesnet_common" -version = "0.4.1" +version = "0.5.2" source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/" -checksum = "9a2621612e675a8f804abbbbe3b60caeafe58a2422cccbe453268d6f457df4f3" -dependencies = [ - "arrayvec", - "bitflags 2.6.0", - "glam", - "id", -] - -[[package]] -name = "strafesnet_common" -version = "0.5.0" -source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/" -checksum = "d8fcc44793ae84a1d80882f367980913292241c94eb87584de4010bdad4a918d" +checksum = "91cc1f3699bd8248da18bf5d11273264396a257b5d47b8558acb2cb4e1761219" dependencies = [ "arrayvec", "bitflags 2.6.0", @@ -2054,20 +2152,20 @@ dependencies = [ [[package]] name = "strafesnet_deferred_loader" -version = "0.3.3" +version = "0.4.0" source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/" -checksum = "596aba6d2747818781336ad95a1ee496e37f70052fd625a299fc7a555a6938d4" +checksum = "9985192a282473ddd40d03114e67afe057cba031bea665e9020b139a621afb07" dependencies = [ - "lazy-regex", - "strafesnet_common 0.4.1", + "strafesnet_common", + "url", "vbsp", ] [[package]] name = "strafesnet_rbx_loader" -version = "0.3.7" +version = "0.4.1" source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/" -checksum = "5bbe74cf64c253b1b0277165653dff2dfaf6a1383293cb645c9e5e1375e9dbb3" +checksum = "a1540fa66518857886cf4094dc597b3228341046d8973ccc70196fb52a47105b" dependencies = [ "bytemuck", "glam", @@ -2078,7 +2176,7 @@ dependencies = [ "rbx_reflection_database", "rbx_xml", "roblox_emulator", - "strafesnet_common 0.4.1", + "strafesnet_common", ] [[package]] @@ -2087,9 +2185,9 @@ version = "0.2.0" source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/" checksum = "c6e8856d79c29bd5687b08bc1653370f7e242c84d5c06afa8629bd3e00c433bf" dependencies = [ - "binrw 0.14.0", + "binrw", "id", - "strafesnet_common 0.5.0", + "strafesnet_common", ] [[package]] @@ -2098,6 +2196,29 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" +[[package]] +name = "structmeta" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e1575d8d40908d70f6fd05537266b90ae71b15dbbe7a8b7dffa2b759306d329" +dependencies = [ + "proc-macro2", + "quote", + "structmeta-derive", + "syn 2.0.79", +] + +[[package]] +name = "structmeta-derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + [[package]] name = "syn" version = "1.0.109" @@ -2120,17 +2241,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "syn_util" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6754c4559b79657554e9d8a0d56e65e490c76d382b9c23108364ec4125dea23c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "termcolor" version = "1.4.1" @@ -2185,6 +2295,21 @@ dependencies = [ "strict-num", ] +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + [[package]] name = "toml_datetime" version = "0.6.8" @@ -2239,12 +2364,27 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5be21190ff5d38e8b4a2d3b6a3ae57f612cc39c96e83cedeaf7abc338a8bac4a" +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + [[package]] name = "unicode-ident" version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + [[package]] name = "unicode-segmentation" version = "1.12.0" @@ -2264,36 +2404,49 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] -name = "vbsp" -version = "0.5.0" +name = "url" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9267540dab0c93bb5201c40ba3b2d027e2717bf355a8f9bf25377b06a5b32f6" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "vbsp" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f14a5685e0bb386aac9b9c6046a05152a46a0bc58d53afb3fbe577f1a1c2bb05" dependencies = [ "ahash", "arrayvec", - "binrw 0.13.3", + "binrw", "bitflags 2.6.0", "bv", "cgmath", "itertools", "lzma-rs", "num_enum", + "serde", "static_assertions", "thiserror", - "vbsp-derive", + "vdf-reader", "zip-lzma", ] [[package]] -name = "vbsp-derive" -version = "0.1.0" +name = "vdf-reader" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ade687fadf34b1b7502387fc9eb7b4032ddc9b93022d31356e9984c957abaad" +checksum = "543945fdc3d51b20e3e0f5fd845ddeca4a270e56522035cf152105bc144ffd65" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "syn_util", + "logos", + "miette", + "parse-display", + "serde", + "thiserror", ] [[package]] @@ -2304,15 +2457,17 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vmdl" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "892922743c4c107372331efd8f67c57282590f8c18c26b4465c4b0e1e6678664" +checksum = "da2f6b8c22da8937403a5da864e7ea390f30cd40b7a077079e40279aa6a4f553" dependencies = [ "arrayvec", "bitflags 2.6.0", "bytemuck", "cgmath", + "half", "itertools", + "num_enum", "static_assertions", "thiserror", "tracing", diff --git a/Cargo.toml b/Cargo.toml index 4727777..f7bff6a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,14 +18,14 @@ roblox = ["dep:strafesnet_deferred_loader", "dep:strafesnet_rbx_loader"] bytemuck = { version = "1.13.1", features = ["derive"] } configparser = "3.0.2" ddsfile = "0.5.1" -glam = "0.28.0" +glam = "0.29.0" id = { version = "0.1.0", registry = "strafesnet" } parking_lot = "0.12.1" pollster = "0.3.0" -strafesnet_bsp_loader = { version = "0.1.3", registry = "strafesnet", optional = true } -strafesnet_common = { version = "0.5.0", registry = "strafesnet" } -strafesnet_deferred_loader = { version = "0.3.1", features = ["legacy"], registry = "strafesnet", optional = true } -strafesnet_rbx_loader = { version = "0.3.7", registry = "strafesnet", optional = true } +strafesnet_bsp_loader = { version = "0.2.1", registry = "strafesnet", optional = true } +strafesnet_common = { version = "0.5.2", registry = "strafesnet" } +strafesnet_deferred_loader = { version = "0.4.0", features = ["legacy"], registry = "strafesnet", optional = true } +strafesnet_rbx_loader = { version = "0.4.1", registry = "strafesnet", optional = true } strafesnet_snf = { version = "0.2.0", registry = "strafesnet", optional = true } wgpu = "22.1.0" winit = "0.30.5" diff --git a/src/file.rs b/src/file.rs index 9271b1a..a971f38 100644 --- a/src/file.rs +++ b/src/file.rs @@ -112,7 +112,7 @@ pub fn load>(path:P)->Result