fantasy-console/repl.ts

30 lines
593 B
TypeScript
Raw Normal View History

2023-05-02 18:17:31 -07:00
import faux from "./builtins.ts";
2023-05-02 18:44:27 -07:00
import { getKeysPressed, shiftKeyDown, shiftMap } from "./keyboard.ts";
2023-05-02 18:17:31 -07:00
import { font } from "./font.ts";
let line = "";
const update = () => {
for (const key of getKeysPressed()) {
2023-05-02 18:44:27 -07:00
let char = String.fromCharCode(key).toLowerCase();
if (shiftKeyDown()) {
if (char in shiftMap) {
char = shiftMap[char as keyof typeof shiftMap];
} else {
char = char.toUpperCase();
}
}
2023-05-02 18:17:31 -07:00
if (char in font) {
line += char;
}
}
}
const draw = () => {
faux.clear_screen();
faux.draw_text(0, 0, "> "+line);
}
export const repl = {
update, draw
}