import { setPixelsInRect, clearScreen, fillRect, } from "./window.ts"; import { font } from "./font.ts"; // import { keyDown, keyPressed, keyReleased } from "./keyboard.ts"; import { addToContext } from "./runcode.ts"; import { resetRepl } from "./repl.ts"; import { COLOR } from "./colors.ts"; import { getSheet } from "./sheet.ts"; export const drawSprite = (x: number, y: number, spr: number) => { const {sheet_type, value: sprites} = getSheet(2); if (sheet_type !== "spritesheet") { throw "Trying to run a non-code sheet as code." } setPixelsInRect(x, y, 8, sprites[spr]); } export const drawIcon = (x: number, y: number, icon: Array, color: number) => { setPixelsInRect(x, y, 8, icon.map(n => n*color)); } export const drawChar = (x: number, y: number, char: string, color: number) => { setPixelsInRect(x, y, 4, font[char].map(n => n*color)); } export const drawText = (x: number, y: number, text: string, color?: number) => { [...text].forEach((char, i) => { drawChar(x+4*i, y, char, color ?? COLOR.WHITE); }); } const faux = { cls: () => { resetRepl(); clearScreen(); }, spr: drawSprite, txt: drawText, rect: fillRect, // key_down: keyDown, // key_pressed: keyPressed, // key_released: keyReleased, log: console.log, JSON: JSON, }; for (const key in faux) { addToContext(key, faux[key as keyof typeof faux]); } export default faux;