function makeRealTerrain(name, sides) { let views = {}; sides.forEach(side => { views[side[0]] = { attributes: { height: { name: "Height", power: 1, type: "length", base: math.unit(side[1], "meters") } }, image: { source: "./media/real-terrain/" + (side[2] ? side[2] : name) + "/" + side[0] + ".svg" }, name: side[0], rename: true } }) return { name: name, constructor: () => makeEntity({ name: name }, views) } } const dataMountains = [ ["Denali-North", 4322.0], ["Denali-Northwest", 4322.0], ["Denali-West", 4322.0], ["Everest-North", 5483.0], ["Everest-Northwest", 5483.0], ["Everest-West", 5483.0], ["Fuji-North", 3014.0], ["Fuji-Northwest", 3014.0], ["Fuji-West", 3014.0], ["K2-North", 4580.0], ["K2-Northwest", 4580.0], ["K2-West", 4580.0], ["Kilimanjaro-North", 2979.0], ["Kilimanjaro-Northwest", 2979.0], ["Kilimanjaro-West", 2979.0], ["Matterhorn-North", 1802.0], ["Matterhorn-Northwest", 1802.0], ["Matterhorn-West", 1802.0], ["Olympus-North", 1897.0], ["Olympus-Northwest", 1897.0], ["Olympus-West", 1897.0], ["Saint Elias-North", 4455.0], ["Saint Elias-Northwest", 4455.0], ["Saint Elias-West", 4455.0] ]; function makeRealTerrains() { const terrain = []; terrain.push(makeRealTerrain( "Mountains", dataMountains )) terrain.sort((e1, e2) => e1.name.localeCompare(e2.name)) return terrain }