/src/main.ts
import gs from './gamestate'; import { Script } from './script'; function keydown(e: KeyboardEvent) { switch(e.code) { case 'ArrowRight': gs.movePlayerRel(1, 0); break; case 'ArrowLeft': gs.movePlayerRel(-1, 0); break; case 'ArrowUp': gs.movePlayerRel(0, -1); break; case 'ArrowDown': gs.movePlayerRel(0, 1); break; case 'KeyN': gs.map.toggleNavigable(); break; case 'KeyE': // To prevent the 'e' from being typed into the editor e.preventDefault(); gs.map.editDescription(); break; case 'KeyO': e.preventDefault(); gs.objectEditor.open(); break; case 'KeyS': localStorage['map'] = JSON.stringify(gs.map.store()); console.log(localStorage['map']); localStorage['globals'] = JSON.stringify(gs.storeGlobals()); console.log(localStorage['globals']); break; case 'KeyL': gs.map.load(JSON.parse(localStorage['map'])); gs.enterCell(); console.log('Map reloaded'); break; default: console.log('code:', e.code); } } function init() { window.addEventListener('keydown', keydown); gs.init(); } window.addEventListener('load', init);