From 5c5839fb4420579c8fdcb0b85cf10591945d65a3 Mon Sep 17 00:00:00 2001 From: He4eT Date: Tue, 23 Feb 2021 21:17:26 +0500 Subject: [PATCH] Experimental integration of cheap-glkote with emglken --- src/views/Player.jsx | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/views/Player.jsx b/src/views/Player.jsx index c678f8f..b8feb5a 100644 --- a/src/views/Player.jsx +++ b/src/views/Player.jsx @@ -2,6 +2,13 @@ import { h } from 'preact' import { getFileExtension } from '~/src/utils/utils.routing' +import CheapGlkOte from 'cheap-glkote' +import engine from 'emglken/src/tads.js' + +const blobToFile = fileName => theBlob =>{ + return new File([theBlob], fileName) +} + export default function ({setTheme, theme, encodedUrl}) { setTheme(theme) @@ -11,7 +18,19 @@ export default function ({setTheme, theme, encodedUrl}) { const fetchGameFile = fetch(url) .then(response => (console.log(response), response)) .then(response => response.blob()) - .then(console.log) + .then(blob => new Response(blob).arrayBuffer()) + .then(buffer => new Uint8Array(buffer)) + .then(file => { + console.log(file) + const {glkInterface, sendFn} = CheapGlkOte({ + onUpdateContent: messages => console.log(messages) + }) + window.send = sendFn + + const vm = new engine() + vm.prepare(file, glkInterface) + vm.start() + }) .catch(console.log) return (