update roblox emulator: thread scheduler
This commit is contained in:
parent
6f40b5376e
commit
3e38572869
4
Cargo.lock
generated
4
Cargo.lock
generated
@ -588,9 +588,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "roblox_emulator"
|
||||
version = "0.4.5"
|
||||
version = "0.4.6"
|
||||
source = "sparse+https://git.itzana.me/api/packages/strafesnet/cargo/"
|
||||
checksum = "e571815fbe60c55af562c4c3f24754a6d207c09f9e4ae4e52231a712b5b943dc"
|
||||
checksum = "03e2535327bd9069b20caa9df0a5cac87fa886cd2418c7f174016502d584a488"
|
||||
dependencies = [
|
||||
"glam",
|
||||
"mlua",
|
||||
|
@ -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.5", 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" }
|
||||
|
11
src/main.rs
11
src/main.rs
@ -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(())
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user