This commit is contained in:
2026-06-23 20:07:53 -05:00
parent 2ea2ce0212
commit cbbe522fb1
5 changed files with 143 additions and 9 deletions
+10 -1
View File
@@ -59,7 +59,7 @@
//! `move(dir)`, `delay(secs)`, `now()`, `set_tile(n)`, `log(msg)`, `say(msg)`,
//! `set_fg(fg)`, `set_bg(bg)`, `set_color(fg, bg)`, `set_tag(target, tag, present)`,
//! `send(target_id, fn_name [, arg])`, `teleport(x, y)`, `push(x, y, dir)`,
//! `swap([[src_x, src_y, dst_x, dst_y], …])`, `add_gems(n)`, `die()`
//! `swap([[src_x, src_y, dst_x, dst_y], …])`, `add_gems(n)`, `set_key(color, present)`, `die()`
//!
//! ## Queue API
//!
@@ -906,6 +906,15 @@ fn register_write_api(engine: &mut Engine, queues: &QueueMap) {
emit(&q, source_of(&ctx), Action::AddGems(n));
});
// set_key(color, present): give (true) or take (false) the named key color.
let q = queues.clone();
engine.register_fn(
"set_key",
move |ctx: NativeCallContext, color: ImmutableString, present: bool| {
emit(&q, source_of(&ctx), Action::SetKey(color.into(), present));
},
);
// die(): remove the calling object from the board.
let q = queues.clone();
engine.register_fn("die", move |ctx: NativeCallContext| {