support multiple scenes and passing between them

This commit is contained in:
Rusty Striker 2025-07-04 13:23:22 +03:00
parent 2d46cbb4d0
commit 838c89ac73
Signed by: RustyStriker
GPG key ID: 87E4D691632DFF15
8 changed files with 124 additions and 67 deletions

View file

@ -3,7 +3,6 @@ const tavern = {
msgs: [],
connected: false,
loggedIn: false,
currentScene: 0,
call: (f, ...args) => {
if (typeof (f) == "function") {
f(...args);
@ -57,9 +56,11 @@ tavern.socket.onmessage = (m) => {
tavern.call(tavern.onmovetoken, m.move_token);
}
if (m.show_scene) {
tavern.currentScene = m.show_scene.scene;
tavern.call(tavern.onshowscene, m.show_scene);
}
if (m.scene_list) {
tavern.call(tavern.onscenelist, m.scene_list);
}
}
tavern.login = (username, password) => {
if (!tavern.connected || tavern.loggedIn) { return false; }
@ -96,7 +97,11 @@ tavern.action_result = (name, source, targets, results) => {
if (!tavern.connected || tavern.loggedIn) { return false; }
tavern.socket.send(JSON.stringify({ action_result: { name: name, source: source ?? '', targets: targets ?? [], results: results } }));
}
tavern.get_current_scene = () => {
tavern.get_scene = (id) => {
if (!tavern.connected || tavern.loggedIn) { return; }
tavern.socket.send(JSON.stringify('get_current_scene'))
}
tavern.socket.send(JSON.stringify({ get_scene: { id: id } }))
}
tavern.get_scene_list = () => {
if (!tavern.connected || tavern.loggedIn) { return; }
tavern.socket.send(JSON.stringify('get_scene_list'))
}