Compare commits

...

4 Commits

Author SHA1 Message Date
0123d80bb2 v0.1.5 thread scheduler 2024-10-16 21:26:51 -07:00
3e38572869 update roblox emulator: thread scheduler 2024-10-16 21:26:17 -07:00
6f40b5376e update roblox_emulator 2024-10-11 10:30:57 -07:00
54af07d15f add strafesnet registry 2024-10-11 10:30:57 -07:00
4 changed files with 18 additions and 5 deletions

2
.cargo/config.toml Normal file
View File

@ -0,0 +1,2 @@
[registries.strafesnet]
index = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/"

6
Cargo.lock generated
View File

@ -588,9 +588,9 @@ dependencies = [
[[package]]
name = "roblox_emulator"
version = "0.4.3"
version = "0.4.6"
source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/"
checksum = "9e5d38699e1474f63a720471ff7720549cb427cb0630fecd4090f17367416495"
checksum = "03e2535327bd9069b20caa9df0a5cac87fa886cd2418c7f174016502d584a488"
dependencies = [
"glam",
"mlua",
@ -603,7 +603,7 @@ dependencies = [
[[package]]
name = "roblox_emulator_cli"
version = "0.1.4"
version = "0.1.5"
dependencies = [
"anyhow",
"clap",

View File

@ -1,6 +1,6 @@
[package]
name = "roblox_emulator_cli"
version = "0.1.4"
version = "0.1.5"
edition = "2021"
repository = "https://git.itzana.me/StrafesNET/roblox_emulator_cli"
license = "MIT OR Apache-2.0"
@ -10,7 +10,7 @@ authors = ["Rhys Lloyd <krakow20@gmail.com>"]
[dependencies]
anyhow = "1.0.89"
clap = { version = "4.5.18", features = ["derive"] }
roblox_emulator = { version = "0.4.3", registry = "strafesnet" }
roblox_emulator = { version = "0.4.6", registry = "strafesnet" }
rbx_binary = { version = "0.7.4", registry = "strafesnet" }
rbx_dom_weak = { version = "2.9.0", registry = "strafesnet" }
rbx_xml = { version = "0.13.3", registry = "strafesnet" }

View File

@ -42,6 +42,14 @@ fn main()->anyhow::Result<()>{
}
}
fn run_runnable_to_completion(runnable:&roblox_emulator::runner::Runnable)->anyhow::Result<()>{
while runnable.has_scheduled_threads()?{
runnable.game_tick()?;
std::thread::sleep(std::time::Duration::from_nanos(1_000_000_000/60));
}
Ok(())
}
fn run_script(input_file:PathBuf)->anyhow::Result<()>{
let source={
let mut source=String::new();
@ -52,6 +60,7 @@ fn run_script(input_file:PathBuf)->anyhow::Result<()>{
let runner=roblox_emulator::runner::Runner::new()?;
let runnable=runner.runnable_context_with_services(&mut context,&services)?;
runnable.run_script(script)?;
run_runnable_to_completion(&runnable)?;
Ok(())
}
@ -90,6 +99,7 @@ fn run_model(input_file:PathBuf)->anyhow::Result<()>{
for script in scripts{
runnable.run_script(script)?;
}
run_runnable_to_completion(&runnable)?;
Ok(())
}
@ -103,5 +113,6 @@ fn run_place(input_file:PathBuf)->anyhow::Result<()>{
for script in scripts{
runnable.run_script(script)?;
}
run_runnable_to_completion(&runnable)?;
Ok(())
}