/* * Verrückte Turing-Maschinen — A turing complete game * Copyright (C) 2016 Christian Fraß * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ module mod_vtm { export module mod_aufbau { export module mod_aktor { /** * @author kcf */ export type typ_aktor = lib_aufruf.typ_komplex; /** * @author kcf */ export type signatur_aktor = { beispiel : ()=>typ_aktor; drehen : (aktor : typ_aktor, inkrement : int)=>void; verwenden : (aktor : typ_aktor, figur : mod_figur.typ_figur)=>void; exportieren : (aktor : typ_aktor)=>any; importieren : (roh : any)=>typ_aktor; } ; /** * @author kcf */ export var brauch_aktor : lib_brauch.typ_brauch = lib_brauch.erstellen(); /** * @author kcf */ /* export function erstellen(art : string, kern : any) : typ_aktor { return lib_aufruf.einpacken(art, kern); } */ /** * @author kcf */ export function beispiel(art : string) : typ_aktor { return lib_brauch.anwenden(brauch_aktor, art)["beispiel"](); } /** * @author kcf */ export function drehen(aktor : typ_aktor, inkrement ?: int) : void { return lib_brauch.anwenden(brauch_aktor, aktor.art)["drehen"](aktor, inkrement); } /** * @author kcf */ export function verwenden(aktor : typ_aktor, figur : mod_figur.typ_figur) : void { return lib_brauch.anwenden(brauch_aktor, aktor.art)["verwenden"](aktor, figur); } /** * @author kcf */ export function exportieren(aktor : typ_aktor) : any { return lib_brauch.anwenden(brauch_aktor, aktor.art)["exportieren"](aktor); } /** * @author kcf */ export function importieren(roh : any) : typ_aktor { return lib_brauch.anwenden(brauch_aktor, roh.art)["importieren"](roh); } } } }