summaryrefslogtreecommitdiffstats
path: root/src/lib.rs
diff options
context:
space:
mode:
authorBrian Cully <bjc@spork.org>2025-12-18 20:28:53 -0500
committerBrian Cully <bjc@spork.org>2025-12-18 20:36:39 -0500
commit0f990eb95a9ef3a1be8847a863f7216a8625692a (patch)
tree9742a3730168e0ed9b1b6d259a79a430eda71f31 /src/lib.rs
parent8e65c1c439b2fc0d0ae5d8482e9350e283cde882 (diff)
downloadautomathon-0f990eb95a9ef3a1be8847a863f7216a8625692a.tar.gz
automathon-0f990eb95a9ef3a1be8847a863f7216a8625692a.zip
add bouncing when hitting arena edge
Diffstat (limited to 'src/lib.rs')
-rwxr-xr-xsrc/lib.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 2aedfff..240acf1 100755
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -135,6 +135,14 @@ impl ExportedVM {
vm.ip.offset = 0;
}
+ pub fn setheading(&mut self, v: forth::vm::DataStackType) {
+ let Some(vm) = &mut self.vm else {
+ return;
+ };
+ use forth::vm::UNITS_PER_ROTATION;
+ vm.heading = (UNITS_PER_ROTATION + (v % UNITS_PER_ROTATION)) % UNITS_PER_ROTATION;
+ }
+
pub fn trans(&mut self) -> Result<js_sys::Object, JsValue> {
let vm = (&mut self.vm).as_mut().ok_or(Error::NoVM)?;
let res = js_sys::Map::new();