diff --git a/Cargo.lock b/Cargo.lock index fa4aa026..b304b15d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -245,6 +245,16 @@ dependencies = [ "objc2", ] +[[package]] +name = "bstr" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "bumpalo" version = "3.16.0" @@ -960,6 +970,15 @@ version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +[[package]] +name = "luau0-src" +version = "0.10.3+luau640" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f39d12b514a676c943990cfbe6200fedcb9c293c8c9219d29be512a6969be92" +dependencies = [ + "cc", +] + [[package]] name = "lz4" version = "1.26.0" @@ -1038,6 +1057,32 @@ dependencies = [ "paste", ] +[[package]] +name = "mlua" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d111deb18a9c9bd33e1541309f4742523bfab01d276bfa9a27519f6de9c11dc7" +dependencies = [ + "bstr", + "libloading", + "mlua-sys", + "num-traits", + "once_cell", + "rustc-hash 2.0.0", +] + +[[package]] +name = "mlua-sys" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe026d6bd1583a9cf9080e189030ddaea7e6f5f0deb366a8e26f8a26c4135b8" +dependencies = [ + "cc", + "cfg-if", + "luau0-src", + "pkg-config", +] + [[package]] name = "naga" version = "22.1.0" @@ -1052,7 +1097,7 @@ dependencies = [ "hexf-parse", "indexmap", "log", - "rustc-hash", + "rustc-hash 1.1.0", "spirv", "termcolor", "thiserror", @@ -1587,9 +1632,9 @@ dependencies = [ [[package]] name = "rbx_dom_weak" -version = "2.7.0" +version = "2.9.0" source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/" -checksum = "850d0a6c8d22592b125c9a82f8654857a7aba10f061b930cc2b86438e54157f1" +checksum = "2a6b916687c98aaea36f9c03e80906bfafab057bebee248628c8c04def807f43" dependencies = [ "rbx_types", "serde", @@ -1607,9 +1652,9 @@ dependencies = [ [[package]] name = "rbx_reflection" -version = "4.5.0" +version = "4.7.0" source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/" -checksum = "80d31f6675c27c9f60b2322feb5565f4a4389ccbb75de4e737915e9208f0831f" +checksum = "c1b43fe592a4ce6fe54eb215fb82735efbb516d2cc045a94e3dc0234ff293620" dependencies = [ "rbx_types", "serde", @@ -1618,9 +1663,9 @@ dependencies = [ [[package]] name = "rbx_reflection_database" -version = "0.2.10+roblox-607" +version = "0.2.12+roblox-638" source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/" -checksum = "f4da9f73ca317c158b922b757fe02317f7d3bc31d3f9fdb4a748d48b3951b8b8" +checksum = "2e772bb9e1bc0ebe65d338f876d1bb1ea22e15a8f9a82e8245028010c2fea3c9" dependencies = [ "lazy_static", "rbx_reflection", @@ -1630,9 +1675,9 @@ dependencies = [ [[package]] name = "rbx_types" -version = "1.8.0" +version = "1.10.0" source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/" -checksum = "6d0d394018a8df53fcd91e990301fe6e47b94e15067edfcb019e6238ae60e8bb" +checksum = "d7a390c44034fa448c53bd0983dfc2d70d8d6b2f65be4f164d4bec8b6a2a2d09" dependencies = [ "base64", "bitflags 1.3.2", @@ -1732,12 +1777,32 @@ dependencies = [ "serde", ] +[[package]] +name = "roblox_emulator" +version = "0.1.0" +source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/" +checksum = "9071bd2716bfd691b4ec872dfb8141188294bb050a6fba0ae3bb0c956c109a3d" +dependencies = [ + "glam", + "mlua", + "rbx_dom_weak", + "rbx_reflection", + "rbx_reflection_database", + "rbx_types", +] + [[package]] name = "rustc-hash" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + [[package]] name = "rustix" version = "0.38.34" @@ -1880,7 +1945,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "strafe-client" -version = "0.10.3" +version = "0.10.4" dependencies = [ "bytemuck", "configparser", @@ -1935,9 +2000,9 @@ dependencies = [ [[package]] name = "strafesnet_rbx_loader" -version = "0.3.4" +version = "0.3.5" source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/" -checksum = "6cd7fb0eca01ccd382067924e5fad15844f55a6bcc7c14c0e57a171298263a3e" +checksum = "87ed1cb975a9b62e5f23b3a5eb76e0b902185fd651f08649ee494b3f115c4922" dependencies = [ "bytemuck", "glam", @@ -1947,6 +2012,7 @@ dependencies = [ "rbx_mesh", "rbx_reflection_database", "rbx_xml", + "roblox_emulator", "strafesnet_common", ] @@ -2441,7 +2507,7 @@ dependencies = [ "parking_lot", "profiling", "raw-window-handle", - "rustc-hash", + "rustc-hash 1.1.0", "smallvec", "thiserror", "wgpu-hal", @@ -2484,7 +2550,7 @@ dependencies = [ "range-alloc", "raw-window-handle", "renderdoc-sys", - "rustc-hash", + "rustc-hash 1.1.0", "smallvec", "thiserror", "wasm-bindgen", diff --git a/Cargo.toml b/Cargo.toml index b193cd17..499c04d3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "strafe-client" -version = "0.10.3" +version = "0.10.4" edition = "2021" repository = "https://git.itzana.me/StrafesNET/strafe-client" license = "Custom" @@ -25,7 +25,7 @@ pollster = "0.3.0" strafesnet_bsp_loader = { version = "0.1.3", registry = "strafesnet", optional = true } strafesnet_common = { version = "0.4.0", registry = "strafesnet" } strafesnet_deferred_loader = { version = "0.3.1", features = ["legacy"], registry = "strafesnet", optional = true } -strafesnet_rbx_loader = { version = "0.3.2", registry = "strafesnet", optional = true } +strafesnet_rbx_loader = { version = "0.3.5", registry = "strafesnet", optional = true } strafesnet_snf = { version = "0.1.2", registry = "strafesnet", optional = true } wgpu = "22.0.0" winit = "0.30.4" diff --git a/src/file.rs b/src/file.rs index 61b5bf7b..d4fe19f8 100644 --- a/src/file.rs +++ b/src/file.rs @@ -66,7 +66,9 @@ pub fn load>(path:P)->ResultOk(map), #[cfg(feature="roblox")] - DataStructure::Roblox(dom)=>{ + DataStructure::Roblox(mut dom)=>{ + dom=dom.run_scripts(); + let mut loader=strafesnet_deferred_loader::roblox_legacy(); let (texture_loader,mesh_loader)=loader.get_inner_mut();