Move script to file
This commit is contained in:
parent
7d5916299a
commit
6abe5b467e
|
@ -0,0 +1,14 @@
|
||||||
|
pub struct FrameCounter {
|
||||||
|
frame,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl FrameCounter {
|
||||||
|
pub fn new() {
|
||||||
|
return FrameCounter {frame: 0};
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn update(self) {
|
||||||
|
self.frame += 1;
|
||||||
|
println(`Frame: ${self.frame}`);
|
||||||
|
}
|
||||||
|
}
|
10
src/main.rs
10
src/main.rs
|
@ -7,6 +7,7 @@ use anyhow::Result;
|
||||||
use gfx::Context;
|
use gfx::Context;
|
||||||
use input::Input;
|
use input::Input;
|
||||||
use rune::{
|
use rune::{
|
||||||
|
runtime::Object,
|
||||||
termcolor::{ColorChoice, StandardStream},
|
termcolor::{ColorChoice, StandardStream},
|
||||||
Diagnostics, Source, Sources, Vm,
|
Diagnostics, Source, Sources, Vm,
|
||||||
};
|
};
|
||||||
|
@ -31,9 +32,11 @@ pub fn main() -> Result<()> {
|
||||||
|
|
||||||
pub fn run(event_loop: EventLoop<()>, mut context: Context) -> Result<()> {
|
pub fn run(event_loop: EventLoop<()>, mut context: Context) -> Result<()> {
|
||||||
// !HACK: Temporrary scripting engine setup
|
// !HACK: Temporrary scripting engine setup
|
||||||
|
let source_dir = format!("{}/scripts", env!("CARGO_MANIFEST_DIR"));
|
||||||
let rune_context = rune::Context::with_default_modules()?;
|
let rune_context = rune::Context::with_default_modules()?;
|
||||||
let runtime = Arc::new(rune_context.runtime()?);
|
let runtime = Arc::new(rune_context.runtime()?);
|
||||||
let mut sources = Sources::new();
|
let mut sources = Sources::new();
|
||||||
|
sources.insert(Source::from_path(format!("{source_dir}/frame_counter.rn"))?)?;
|
||||||
sources.insert(Source::memory("pub fn add(a, b) { a + b }")?)?;
|
sources.insert(Source::memory("pub fn add(a, b) { a + b }")?)?;
|
||||||
let mut diagnostics = Diagnostics::new();
|
let mut diagnostics = Diagnostics::new();
|
||||||
let result = rune::prepare(&mut sources)
|
let result = rune::prepare(&mut sources)
|
||||||
|
@ -45,7 +48,7 @@ pub fn run(event_loop: EventLoop<()>, mut context: Context) -> Result<()> {
|
||||||
diagnostics.emit(&mut writer, &sources)?;
|
diagnostics.emit(&mut writer, &sources)?;
|
||||||
}
|
}
|
||||||
let mut vm = Vm::new(runtime, Arc::new(result?));
|
let mut vm = Vm::new(runtime, Arc::new(result?));
|
||||||
let mut frame_count = 0;
|
let frame_counter = vm.call(["FrameCounter", "new"], ())?;
|
||||||
|
|
||||||
let mut input = Input::new();
|
let mut input = Input::new();
|
||||||
|
|
||||||
|
@ -70,9 +73,8 @@ pub fn run(event_loop: EventLoop<()>, mut context: Context) -> Result<()> {
|
||||||
elwt.exit();
|
elwt.exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
let output = vm.call(["add"], (frame_count, 1i64)).unwrap();
|
vm.call(["FrameCounter", "update"], (&frame_counter,))
|
||||||
frame_count = rune::from_value(output).unwrap();
|
.unwrap();
|
||||||
log::info!("Frame: {frame_count}");
|
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
Loading…
Reference in New Issue