[oden] JavaScript, god help me

This commit is contained in:
John Doty 2023-06-19 13:46:09 -07:00
parent 16e6f1304c
commit 8d7dd789ed
6 changed files with 92 additions and 4 deletions

View file

@ -1,7 +1,10 @@
use oden_js as js;
pub struct ScriptContext {
_context: js::Context,
context: js::Context,
init: js::Value,
update: js::Value,
draw: js::Value,
}
impl ScriptContext {
@ -13,10 +16,40 @@ impl ScriptContext {
context.add_intrinsic_bigdecimal();
context.add_intrinsic_operators();
ScriptContext { _context: context }
let js = include_str!("main.js");
let module = context
.load_module(js, "main.js")
.expect("Unable to load main");
let init = module
.get_module_export(&context, "init")
.expect("Unable to fetch init");
let update = module
.get_module_export(&context, "update")
.expect("Unable to fetch update");
let draw = module
.get_module_export(&context, "draw")
.expect("Unable to fetch draw");
ScriptContext {
context,
init,
update,
draw,
}
}
pub fn update(&self) {}
pub fn init(&self) {
self.init.call(&self.context).expect("Exception in init");
}
pub fn render(&self) {}
pub fn update(&self) {
self.update
.call(&self.context)
.expect("Exception in update");
}
pub fn render(&self) {
self.draw.call(&self.context).expect("Exception in draw");
}
}