summaryrefslogtreecommitdiff
path: root/2026/games/rpc2dot0/src/lib.rs
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-08-29 04:06:51 -0400
committerLLLL Colonq <llll@colonq>2026-08-29 04:06:51 -0400
commit761a3172bf4c15aed3836e4d1cd6f815b651b0e0 (patch)
treecc90491529e83349d84d42a8e9982e5f0f38338e /2026/games/rpc2dot0/src/lib.rs
parent0d2d8cd897e94bd94e0b3ae7c6ce9aa580a44a0a (diff)
Fix
Diffstat (limited to '2026/games/rpc2dot0/src/lib.rs')
-rw-r--r--2026/games/rpc2dot0/src/lib.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/2026/games/rpc2dot0/src/lib.rs b/2026/games/rpc2dot0/src/lib.rs
new file mode 100644
index 0000000..31e4d1e
--- /dev/null
+++ b/2026/games/rpc2dot0/src/lib.rs
@@ -0,0 +1,40 @@
+use crate::constants::{HEIGHT, WIDTH};
+use wasm_bindgen::prelude::*;
+mod assets;
+pub(crate) mod collision;
+pub(crate) mod color;
+pub(crate) mod computer;
+pub(crate) mod constants;
+pub(crate) mod disquette;
+pub(crate) mod effects;
+pub(crate) mod entity;
+pub(crate) mod errors;
+mod game;
+pub(crate) mod math;
+pub(crate) mod message;
+pub(crate) mod random;
+pub(crate) mod state;
+
+#[wasm_bindgen]
+pub fn main_js(is_embedded: bool) {
+ teleia::run(
+ WIDTH,
+ HEIGHT,
+ teleia::Options::FULLSCREEN_MOUSE,
+ move |ctx| {
+ let game = game::Game::new(ctx, is_embedded);
+ game.send_op("ready", None, None, None, None);
+ game
+ },
+ );
+}
+
+#[wasm_bindgen]
+pub fn set_difficulty_js(difficulty: f32) {
+ teleia::contextualize(|_ctx, _st, game: &mut game::Game| game.set_difficulty(difficulty))
+}
+
+#[wasm_bindgen]
+pub fn receive_op_js(op: String) {
+ teleia::contextualize(|ctx, st, game: &mut game::Game| game.receive_op(ctx, st, op.clone()))
+}