/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);