/* * Verrückte Turing-Maschinen — A turing complete game * Copyright (C) 2016-2018 kcf * * 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_manifestation { export module mod_svg { export module mod_actuator { /** * @author kcf */ lib_trait.attend ( trait_actuator, "reader", { "view": ({"data": {"direction": direction, "symbol_links": symbol_links, "symbol_rechts": symbol_rechts}}) => { let children : Array = []; type type_eintrag = { summand : mod_vtm.mod_model.mod_direction.type_direction; symbol : lib_errormonade.type_errormonade; } ; let ausgaenge : Array = [ { "summand": 0, "symbol": lib_errormonade.create_nothing(), }, { "summand": +2, "symbol": lib_errormonade.create_just(symbol_links), }, { "summand": -2, "symbol": lib_errormonade.create_just(symbol_rechts), }, ] ; ausgaenge.forEach ( eintrag => { let anglestaerke : float = (mod_vtm.mod_model.mod_direction.add(direction, eintrag.summand) / 6); let node_pfeil : lib_xml.type_node = ( lib_xml.create_normal ( "path", { "d": lib_svg.shape_arrow, "class": ( [ "pfeil", ( lib_errormonade.filled(eintrag.symbol) ? "symbol_" + lib_errormonade.read(eintrag.symbol).toFixed(0) : "neutral" ), ].join(" ") ), "transform": ( [ lib_svg.rotation(anglestaerke), lib_svg.translation(+0.1, 0), lib_svg.skalierung(0.075), ].join(" ") ), } ) ); children.push(node_pfeil); } ) ; return children; } , } ) ; } } } }