vtm/quelldatein/haupt.ts
Christian Fraß 8dd4d54f94 sicherung
2017-11-08 18:41:56 +01:00

97 lines
2.4 KiB
TypeScript

/**
* @author kcf <vidofnir@folksprak.org>
*/
function haupt() : void
{
let darstellung_aktualisieren = function (aufbau : mod_vtm_aufbau.klasse_welt, dom_zeichenflaeche : Element) : void
{
let darstellung_steuerung : mod_vtm_darstellung_steuerung.klasse_web_welt = new mod_vtm_darstellung_steuerung.klasse_web_welt(aufbau);
let xmlknoten : mod_vtm_helfer.schnittstelle_xmlknoten = mod_vtm_darstellung_steuerung.svg_wurzel
(
-4, -4,
+4, +4,
800, 800,
[darstellung_steuerung.darstellen()]
)
;
dom_zeichenflaeche.innerHTML = xmlknoten.darstellen();
}
;
let aufbau : mod_vtm_aufbau.klasse_welt = mod_vtm_aufbau.klasse_welt.blanko();
let dom_zeichenflaeche : Element = document.querySelector("#zeichenflaeche")
// initiale Darstellung
darstellung_aktualisieren(aufbau, dom_zeichenflaeche);
// Steuerung
{
dom_zeichenflaeche.addEventListener
(
"click",
event =>
{
event.preventDefault();
let dom_feld : Element = event.target["closest"](".feld");
if (dom_feld == null)
{
console.info("-- kein Feld");
}
else
{
let rel : string = dom_feld.getAttribute("rel")
let stelle : mod_vtm_aufbau.typ_stelle = mod_vtm_aufbau.stelle_von_hash(rel);
aufbau.feld_wechseln(stelle);
darstellung_aktualisieren(aufbau, dom_zeichenflaeche);
}
}
)
;
dom_zeichenflaeche.addEventListener
(
"contextmenu",
event =>
{
event.preventDefault();
let dom_feld : Element = event.target["closest"](".feld");
if (dom_feld == null)
{
console.info("-- kein Feld");
}
else
{
let rel : string = dom_feld.getAttribute("rel")
let stelle : mod_vtm_aufbau.typ_stelle = mod_vtm_aufbau.stelle_von_hash(rel);
aufbau.feld_drehen(stelle);
darstellung_aktualisieren(aufbau, dom_zeichenflaeche);
}
}
)
;
document.querySelector("#knopf_fortfahren").addEventListener
(
"click",
event =>
{
aufbau.fortfahren();
darstellung_aktualisieren(aufbau, dom_zeichenflaeche);
}
)
;
}
}
/**
* @author kcf <vidofnir@folksprak.org>
*/
function eingang_web() : void
{
document.addEventListener
(
"DOMContentLoaded",
event => {haupt();}
)
;
}