prime-map-generator/src/main/js/Main.ts

51 lines
1.5 KiB
TypeScript
Raw Normal View History

2022-02-28 18:57:05 +01:00
// @ts-ignore
const {$, doAfterLoad, footer, header, nav} = window.fwdekker;
2022-04-07 21:51:09 +02:00
import {GridModel} from "./Model";
import {Painter} from "./Painter";
2022-02-28 18:57:05 +01:00
// Set up template
doAfterLoad(() => {
$("#nav").appendChild(nav("/Tools/Prime Map Generator/"));
$("#header").appendChild(header({
title: "Prime Map Generator",
description: "Visualizes prime numbers"
}));
$("#footer").appendChild(footer({
vcsURL: "https://git.fwdekker.com/tools/prime-map-generator/",
version: "v%%VERSION_NUMBER%%"
}));
$("main").classList.remove("hidden");
});
2022-02-28 19:28:41 +01:00
2022-02-28 18:57:05 +01:00
doAfterLoad(async () => {
2022-02-28 19:28:41 +01:00
const canvas = $("#canvas");
canvas.classList.remove("invisible");
const resize = () => {
canvas.width = canvas.clientWidth;
canvas.height = canvas.clientHeight;
};
window.addEventListener("resize", resize, false);
resize();
2022-04-07 21:51:09 +02:00
const painter = new Painter(canvas);
const model = new GridModel();
painter.model = model;
painter.startDrawLoop();
2022-02-28 20:42:40 +01:00
const gridCols = $("#gridCols");
2022-04-07 21:51:09 +02:00
gridCols.addEventListener("change", () => model.cols = parseInt(gridCols.value));
2022-02-28 20:42:40 +01:00
const gridScale = $("#gridScale");
2022-04-07 21:51:09 +02:00
gridScale.addEventListener("change", () => painter.scale = parseInt(gridScale.value));
const scrollX = $("#scrollX");
scrollX.addEventListener("change", () => model.scrollX = parseInt(scrollX.value));
const scrollY = $("#scrollY");
scrollY.addEventListener("change", () => model.scrollY = parseInt(scrollY.value));
2022-02-28 18:57:05 +01:00
});