function makeVehicle(name, sides, mass) { views = { } Object.entries(sides).forEach(([key, val]) => { views[key] = { attributes: { height: { name: "Height", power: 1, type: "length", base: val.height } }, image: val.image, name: val.name } if (mass !== undefined) { views[key].attributes.mass = { name: "Mass", power: 3, type: "mass", base: mass } } }); return makeEntity({ name: name }, views); } function makeMultiVehicle(name, sides) { views = { } Object.entries(sides).forEach(([key, val]) => { views[key] = { attributes: { height: { name: "Height", power: 1, type: "length", base: val.height } }, image: val.image, name: val.name, rename: val.rename } if (val.mass) { views[key].attributes.mass = { name: "Mass", power: 3, type: "mass", base: val.mass } } }); return makeEntity({ name: name }, views); } function makeAircraft() { const options = [ ["Antonov An-225", 84, 18.1, 285000], ["Airbus A380-800", 72.7, 24.1, 277000], ["Stratolaunch", 73, 16.5, 540000], ["Boeing 747-8", 76.3, 19.4, 220128], ["Hughes H-4 Hercules", 66.6, 24.2, 136077], ["Cessena 172", 8.28, 2.72, 757, 2.72] ], sides = {} const sorted = options.sort((a, b) => a[1] - b[1]) sorted.forEach(plane => { sides[plane[0] + " (Side)"] = { name: plane[0] + " (Side)", rename: true, height: math.unit(plane[2], "meters"), mass: math.unit(plane[3], "kg"), image: { source: "./media/vehicles/planes/plane_" + plane[0].replace(/ /g, "-").toLowerCase() + "-side.svg" } }; sides[plane[0] + " (Top)"] = { name: plane[0] + " (Top)", rename: true, height: math.unit(plane[1], "meters"), mass: math.unit(plane[3], "kg"), image: { source: "./media/vehicles/planes/plane_" + plane[0].replace(/ /g, "-").toLowerCase() + "-top.svg" } }; if (plane.length > 4) { sides[plane[0] + " (Front)"] = { name: plane[0] + " (Front)", rename: true, height: math.unit(plane[4], "meters"), mass: math.unit(plane[3], "kg"), image: { source: "./media/vehicles/planes/plane_" + plane[0].replace(/ /g, "-").toLowerCase() + "-front.svg" } }; } }); const entity = makeMultiVehicle("Aircraft", sides); entity.sizes.push({ name: "1:72", height: math.unit(sorted[0][2] / 72, "meters") }); entity.sizes.push({ name: "1:24", height: math.unit(sorted[0][2] / 24, "meters") }); entity.sizes.push({ name: "1:16", height: math.unit(sorted[0][2] / 16, "meters") }); entity.sizes.push({ name: "1:8", height: math.unit(sorted[0][2] / 8, "meters") }); entity.sizes.push({ name: "1:4", height: math.unit(sorted[0][2] / 4, "meters") }); entity.sizes.push({ name: "1", height: math.unit(sorted[0][2], "meters") }); return entity; } function makeCars() { const options = [ ["Toyota Prius C", 3.99, 1.45, 1134, 1, 1.07, 1], ["VW New Beetle", 4.13, 1.57, 1230, 1, 1, 1], ["Honda Civic", 4.55, 1.42, 1303, 1, 1, 1], ["Lamborghini Aventador", 4.78, 1.136, 1575, 1, 1, 1], ["Ford F-150", 5.89, 1.92, 1950, 1, 1, 1] ] sides = {} const sorted = options.sort((a, b) => a[1] - b[1]) sorted.forEach(car => { sides[car[0] + " (Front)"] = { name: car[0] + " (Front)", rename: true, height: math.unit(car[2], "meters"), mass: math.unit(car[3], "kg"), image: { source: "./media/vehicles/cars/car_" + car[0].replace(/ /g, "-").toLowerCase() + "-front.svg", extra: car[4] } }; sides[car[0] + " (Side)"] = { name: car[0] + " (Side)", rename: true, height: math.unit(car[2], "meters"), mass: math.unit(car[3], "kg"), image: { source: "./media/vehicles/cars/car_" + car[0].replace(/ /g, "-").toLowerCase() + "-side.svg", extra: car[5] } }; sides[car[0] + " (Top)"] = { name: car[0] + " (Top)", rename: true, height: math.unit(car[1], "meters"), mass: math.unit(car[3], "kg"), image: { source: "./media/vehicles/cars/car_" + car[0].replace(/ /g, "-").toLowerCase() + "-top.svg", extra: car[6] } }; }); const entity = makeMultiVehicle("Cars", sides); entity.sizes.push({ name: "1:72", height: math.unit(sorted[0][2] / 72, "meters") }); entity.sizes.push({ name: "1:24", height: math.unit(sorted[0][2] / 24, "meters") }); entity.sizes.push({ name: "1:16", height: math.unit(sorted[0][2] / 16, "meters") }); entity.sizes.push({ name: "1:8", height: math.unit(sorted[0][2] / 8, "meters") }); entity.sizes.push({ name: "1:4", height: math.unit(sorted[0][2] / 4, "meters") }); entity.sizes.push({ name: "1", height: math.unit(sorted[0][2], "meters") }); return entity; } function makeBuses() { const options = [ ["City Bus", 11.95, 2.99, 14000, 1, 1, 1], ["Articulated Bus", 18, 3.13, 25000, 1, 1, 1], ["Coach Bus", 12, 3.81, 18000, 1, 1, 1], ["Shuttle Bus", 7.01, 2.67, 6000, 1, 1, 1], ] sides = {} options.forEach(bus => { sides[bus[0] + " (Front)"] = { name: bus[0] + " (Front)", rename: true, height: math.unit(bus[2], "meters"), mass: math.unit(bus[3], "kg"), image: { source: "./media/vehicles/buses/bus_" + bus[0].replace(/ /g, "-").toLowerCase() + "-front.svg", extra: bus[4] } }; sides[bus[0] + " (Side)"] = { name: bus[0] + " (Side)", rename: true, height: math.unit(bus[2], "meters"), mass: math.unit(bus[3], "kg"), image: { source: "./media/vehicles/buses/bus_" + bus[0].replace(/ /g, "-").toLowerCase() + "-side.svg", extra: bus[5] } }; sides[bus[0] + " (Top)"] = { name: bus[0] + " (Top)", rename: true, height: math.unit(bus[1], "meters"), mass: math.unit(bus[3], "kg"), image: { source: "./media/vehicles/buses/bus_" + bus[0].replace(/ /g, "-").toLowerCase() + "-top.svg", extra: bus[6] } }; }); const entity = makeMultiVehicle("Buses", sides); entity.sizes.push({ name: "1:72", height: math.unit(options[0][2] / 72, "meters") }); entity.sizes.push({ name: "1:24", height: math.unit(options[0][2] / 24, "meters") }); entity.sizes.push({ name: "1:16", height: math.unit(options[0][2] / 16, "meters") }); entity.sizes.push({ name: "1:8", height: math.unit(options[0][2] / 8, "meters") }); entity.sizes.push({ name: "1:4", height: math.unit(options[0][2] / 4, "meters") }); entity.sizes.push({ name: "1", height: math.unit(options[0][2], "meters") }); return entity; } // TODO this should be named something more generic and put in objects.js function makeVehicleGroup(info, name, prefix, directory="vehicles") { sides = {} let defaultHeight; info.forEach(vehicle => { Object.entries(vehicle.sides).forEach(([sideName, data]) => { if (!defaultHeight) { defaultHeight = data.height; } sides[vehicle.name + " (" + sideName + ")"] = { name: vehicle.name + " (" + sideName + ")", rename: true, height: data.height, mass: vehicle.mass, image: { source: "./media/" + directory + "/" + name.replace(/ /g, "-").toLowerCase() + "/" + (prefix == "" ? "" : prefix + "_") + vehicle.name.replace(/ /g, "-").toLowerCase() + "-" + sideName.replace(/ /g, "-").toLowerCase() + ".svg", extra: (data.extra ? data.extra : 1) } }; }); }); const entity = makeMultiVehicle(name, sides); entity.sizes.push({ name: "1:72", height: math.unit(math.divide(defaultHeight, 72)) }); entity.sizes.push({ name: "1:24", height: math.unit(math.divide(defaultHeight, 24)) }); entity.sizes.push({ name: "1:16", height: math.unit(math.divide(defaultHeight, 16)) }); entity.sizes.push({ name: "1:8", height: math.unit(math.divide(defaultHeight, 8)) }); entity.sizes.push({ name: "1:4", height: math.unit(math.divide(defaultHeight, 4)) }); return entity; } function makeAutoVehicleGroup(info, name, directory = "vehicles") { sides = {} let defaultHeight; info.forEach(vehicle => { Object.entries(vehicle.sides).forEach(([sideName, data]) => { if (!defaultHeight) { defaultHeight = data.height; } sides[vehicle.name + " (" + sideName + ")"] = { name: vehicle.name + " (" + sideName + ")", rename: true, height: data.height, image: { source: "./media/" + directory + "/" + name + "/" + vehicle.name + "-" + sideName + ".svg" } }; }); }); const entity = makeMultiVehicle(name, sides); if (directory == "vehicles") { entity.sizes.push({ name: "1:72", height: math.unit(math.divide(defaultHeight, 72)) }); entity.sizes.push({ name: "1:24", height: math.unit(math.divide(defaultHeight, 24)) }); entity.sizes.push({ name: "1:16", height: math.unit(math.divide(defaultHeight, 16)) }); entity.sizes.push({ name: "1:8", height: math.unit(math.divide(defaultHeight, 8)) }); entity.sizes.push({ name: "1:4", height: math.unit(math.divide(defaultHeight, 4)) }); } return entity; } function makeVehicles() { const results = []; results.push({ name: "Titanic", constructor: () => makeVehicle( "Titanic", { side: { name: "Side", height: math.unit(883 * 1114 / 4250, "feet"), image: { source: "./media/vehicles/titanic.svg" }, }, sideVertical: { name: "Side (Vertical)", height: math.unit(883, "feet"), image: { source: "./media/vehicles/vertical-titanic.svg" }, }, }, math.unit(52310, "tons") ) }); results.push({ name: "18-Wheeler", constructor: () => makeVehicle( "18-Wheeler", { side: { name: "Side", height: math.unit(13.6, "feet"), image: { source: "./media/vehicles/18-wheeler.svg" }, }, sideVertical: { name: "Side (Vertical)", height: math.unit(54, "feet"), image: { source: "./media/vehicles/18-wheeler-vertical.svg" }, }, }, math.unit(52310, "tons") ) }); results.push({ name: "Spacecraft", constructor: () => makeMultiVehicle( "Spacecraft", { "n-1": { name: "N-1", rename: true, height: math.unit(105, "meters"), mass: math.unit(95, "tons"), image: { source: "./media/vehicles/spacecraft/n-1.svg" } }, "saturn-v": { name: "Saturn V", rename: true, height: math.unit(110.6, "meters"), mass: math.unit(140, "tons"), image: { source: "./media/vehicles/spacecraft/saturn-v.svg" } }, "starship": { name: "Starship", rename: true, height: math.unit(118, "m"), mass: math.unit(150, "tons"), image: { source: "./media/vehicles/spacecraft/saturn-v.svg" } }, } ) }); results.push({ name: "Aircraft", constructor: () => makeAircraft() }); results.push({ name: "Cars", constructor: () => makeCars() }); results.push({ name: "Buses", constructor: () => makeBuses() }); results.push({ name: "Trains", constructor: () => makeVehicleGroup([ { name: "60' Boxcar", mass: math.unit(80900, "lbs"), sides: { "Side": { height: math.unit(17, "feet") }, "Front": { height: math.unit(17, "feet") } } }, { name: "64' Flatcar", mass: math.unit(66000, "lbs"), sides: { "Side": { height: math.unit(5.03, "feet") }, "Front": { height: math.unit(5.03, "feet") }, } }, { name: "3250 Cubic Ft Hopper", mass: math.unit(52000, "lbs"), sides: { "Side": { height: math.unit(15 + 3 / 12, "feet") }, "Front": { height: math.unit(15 + 3 / 12, "feet") }, } }, { name: "28600 Gallon Tank Car", mass: math.unit(93000, "lbs"), sides: { "Side": { height: math.unit(15 + 5.7 / 12, "feet") }, "Front": { height: math.unit(15 + 5.7 / 12, "feet") }, } } ], "Trains", "train") }); const dataWarships = [ { name: "Balao", sides: { "Side": { height: math.unit(13.346937056812138, "meters") }, "Front": { height: math.unit(13.346937056812138, "meters") }, "Top": { height: math.unit(95.35877787338985, "meters") }, } }, { name: "Bismarck", sides: { "Side": { height: math.unit(54.69636677864504, "meters") }, "Front": { height: math.unit(54.69636677864504, "meters") }, "Top": { height: math.unit(255.13670261140695, "meters") }, } }, { name: "Charleston", sides: { "Side": { height: math.unit(43.84541411294146, "meters") }, "Front": { height: math.unit(45.62719791691388, "meters") }, "Top": { height: math.unit(129.98356198199832, "meters") }, } }, { name: "Enterprise", sides: { "Side": { height: math.unit(48.51854022788899, "meters") }, "Front": { height: math.unit(48.51854022788899, "meters") }, "Top": { height: math.unit(253.1778795587282, "meters") }, } }, { name: "Erie", sides: { "Side": { height: math.unit(32.059378464959345, "meters") }, "Front": { height: math.unit(32.059378464959345, "meters") }, "Top": { height: math.unit(101.90240111970473, "meters") }, } }, { name: "Fusō", sides: { "Side": { height: math.unit(57.714804802509974, "meters") }, "Front": { height: math.unit(57.714804802509974, "meters") }, "Top": { height: math.unit(213.5157104361463, "meters") }, } }, { name: "Hood", sides: { "Side": { height: math.unit(51.230756762367264, "meters") }, "Front": { height: math.unit(51.230756762367264, "meters") }, "Top": { height: math.unit(263.41015261022113, "meters") }, } }, { name: "Hōshō", sides: { "Side": { height: math.unit(32.758064912151085, "meters") }, "Front": { height: math.unit(32.758064912151085, "meters") }, "Top": { height: math.unit(185.00137927141287, "meters") }, } }, { name: "Iowa", sides: { "Side": { height: math.unit(49.127098508478305, "meters") }, "Front": { height: math.unit(49.127098508478305, "meters") }, "Top": { height: math.unit(271.8477422138651, "meters") }, } }, { name: "König", sides: { "Side": { height: math.unit(45.404394789902064, "meters") }, "Front": { height: math.unit(45.72006845008677, "meters") }, "Top": { height: math.unit(178.61867938785338, "meters") }, } }, { name: "New Mexico", sides: { "Side": { height: math.unit(41.32890317041514, "meters") }, "Front": { height: math.unit(41.32890317041514, "meters") }, "Top": { height: math.unit(190.75114403153, "meters") }, } }, { name: "Shōkaku", sides: { "Side": { height: math.unit(41.67455523006811, "meters") }, "Front": { height: math.unit(41.67455523006811, "meters") }, "Top": { height: math.unit(260.7137969911492, "meters") }, } }, { name: "Texas", sides: { "Side": { height: math.unit(48.903111190282694, "meters") }, "Front": { height: math.unit(48.903111190282694, "meters") }, "Top": { height: math.unit(195.24415882424861, "meters") }, } }, { name: "U-2501", sides: { "Side": { height: math.unit(11.361271301409108, "meters") }, "Front": { height: math.unit(11.361271301409108, "meters") }, "Top": { height: math.unit(77.06816292937421, "meters") }, } }, { name: "Yamato", sides: { "Side": { height: math.unit(49.20849004806329, "meters") }, "Front": { height: math.unit(49.20849004806329, "meters") }, "Top": { height: math.unit(265.94789907523005, "meters") }, } } ]; results.push({ name: "Warships", constructor: () => makeAutoVehicleGroup(dataWarships, "Warships") }); const dataTanks = [ { name: "Bishop", sides: { "Side": { height: math.unit(3.410661831364902, "meters") }, "Front": { height: math.unit(3.410661831364902, "meters") }, "Top": { height: math.unit(5.672872756986482, "meters") }, } }, { name: "Churchill I", sides: { "Side": { height: math.unit(3.106923773821576, "meters") }, "Front": { height: math.unit(3.122615308032796, "meters") }, "Top": { height: math.unit(7.2584553965615175, "meters") }, } }, { name: "Crusader", sides: { "Side": { height: math.unit(2.6101422524871567, "meters") }, "Front": { height: math.unit(2.6101422524871567, "meters") }, "Top": { height: math.unit(6.307843776843961, "meters") }, } }, { name: "Emil II", sides: { "Side": { height: math.unit(3.8108011655820206, "meters") }, "Front": { height: math.unit(3.824251052048781, "meters") }, "Top": { height: math.unit(10.773359059874819, "meters") }, } }, { name: "Fiat 3000", sides: { "Side": { height: math.unit(1.9496277856164035, "meters") }, "Front": { height: math.unit(1.9496277856164035, "meters") }, "Top": { height: math.unit(4.27912077145522, "meters") }, } }, { name: "Jagdtiger", sides: { "Side": { height: math.unit(3.9193441089979792, "meters") }, "Front": { height: math.unit(3.9193441089979792, "meters") }, "Top": { height: math.unit(10.649006600787407, "meters") }, } }, { name: "KV-2", sides: { "Side": { height: math.unit(2.9868332366529167, "meters") }, "Front": { height: math.unit(2.9868332366529167, "meters") }, "Top": { height: math.unit(6.812734929724053, "meters") }, } }, { name: "L6_40", sides: { "Side": { height: math.unit(1.9358306214396919, "meters") }, "Front": { height: math.unit(1.9358306214396919, "meters") }, "Top": { height: math.unit(3.808310562671325, "meters") }, } }, { name: "Leopard 1", sides: { "Side": { height: math.unit(3.8225993116054964, "meters") }, "Front": { height: math.unit(3.8225993116054964, "meters") }, "Top": { height: math.unit(9.539980874580879, "meters") }, } }, { name: "M4A3E8 Sherman", sides: { "Side": { height: math.unit(2.8079437256982533, "meters") }, "Front": { height: math.unit(2.8117875911680663, "meters") }, "Top": { height: math.unit(6.238593657506183, "meters") }, } }, { name: "Maus", sides: { "Side": { height: math.unit(3.2167645133001166, "meters") }, "Front": { height: math.unit(3.2167645133001166, "meters") }, "Top": { height: math.unit(10.116556270748033, "meters") }, } }, { name: "MS-1", sides: { "Side": { height: math.unit(1.8993136516336966, "meters") }, "Front": { height: math.unit(1.8993136516336966, "meters") }, "Top": { height: math.unit(4.40306449214827, "meters") }, } }, { name: "O-I", sides: { "Side": { height: math.unit(3.5245408857493157, "meters") }, "Front": { height: math.unit(3.5245408857493157, "meters") }, "Top": { height: math.unit(10.290467152684577, "meters") }, } }, { name: "P26_40", sides: { "Side": { height: math.unit(2.2198610818302003, "meters") }, "Front": { height: math.unit(2.2198610818302003, "meters") }, "Top": { height: math.unit(5.945555556906504, "meters") }, } }, { name: "Panther II", sides: { "Side": { height: math.unit(2.7322022370149734, "meters") }, "Front": { height: math.unit(2.7322022370149734, "meters") }, "Top": { height: math.unit(8.993913000210199, "meters") }, } }, { name: "Pz.Kpfw. II", sides: { "Side": { height: math.unit(1.895973799129121, "meters") }, "Front": { height: math.unit(1.895973799129121, "meters") }, "Top": { height: math.unit(4.940551695644215, "meters") }, } }, { name: "Pz.Kpfw. III_IV", sides: { "Side": { height: math.unit(2.474235510305821, "meters") }, "Front": { height: math.unit(2.474235510305821, "meters") }, "Top": { height: math.unit(6.593240824273646, "meters") }, } }, { name: "Somua S35", sides: { "Side": { height: math.unit(2.747352267371468, "meters") }, "Front": { height: math.unit(2.747352267371468, "meters") }, "Top": { height: math.unit(5.419850312436055, "meters") }, } }, { name: "Strv 103B", sides: { "Side": { height: math.unit(2.6925331064166755, "meters") }, "Front": { height: math.unit(2.6925331064166755, "meters") }, "Top": { height: math.unit(8.955885822138697, "meters") }, } }, { name: "StuG IV", sides: { "Side": { height: math.unit(3.4493634873846486, "meters") }, "Front": { height: math.unit(3.4493634873846486, "meters") }, "Top": { height: math.unit(6.73890309470866, "meters") }, } }, { name: "Sturmpanzer II", sides: { "Side": { height: math.unit(2.884547159679786, "meters") }, "Front": { height: math.unit(2.884547159679786, "meters") }, "Top": { height: math.unit(5.479425422386316, "meters") }, } }, { name: "Super Hellcat", sides: { "Side": { height: math.unit(2.584518696915076, "meters") }, "Front": { height: math.unit(2.584518696915076, "meters") }, "Top": { height: math.unit(7.096077076387668, "meters") }, } }, { name: "T-26", sides: { "Side": { height: math.unit(2.2802546287588683, "meters") }, "Front": { height: math.unit(2.2802546287588683, "meters") }, "Top": { height: math.unit(4.590177998040621, "meters") }, } }, { name: "T-34", sides: { "Side": { height: math.unit(2.11028214292723, "meters") }, "Front": { height: math.unit(2.11028214292723, "meters") }, "Top": { height: math.unit(6.203998868277867, "meters") }, } }, { name: "T28", sides: { "Side": { height: math.unit(3.5677593574984616, "meters") }, "Front": { height: math.unit(3.5677593574984616, "meters") }, "Top": { height: math.unit(11.550384956980801, "meters") }, } }, { name: "Tiger I", sides: { "Side": { height: math.unit(2.6487011721261715, "meters") }, "Front": { height: math.unit(2.6487011721261715, "meters") }, "Top": { height: math.unit(8.46739044919058, "meters") }, } }, { name: "Tiger II", sides: { "Side": { height: math.unit(2.0016641144139946, "meters") }, "Front": { height: math.unit(2.0016641144139946, "meters") }, "Top": { height: math.unit(7.550471308530432, "meters") }, } }, { name: "Type 59", sides: { "Side": { height: math.unit(2.5160021432659714, "meters") }, "Front": { height: math.unit(2.5160021432659714, "meters") }, "Top": { height: math.unit(8.948422717087464, "meters") }, } } ]; results.push({ name: "Tanks", constructor: () => makeAutoVehicleGroup( dataTanks, "Tanks") }); const dataEveOnline = [ { name: "Archon", sides: { "Side": { height: math.unit(447.54522705078125, "meters") }, "Front": { height: math.unit(447.54522705078125, "meters") }, "Top": { height: math.unit(3154.529052734375, "meters") }, } }, { name: "Avatar", sides: { "Side": { height: math.unit(6176.2001953125, "meters") }, "Front": { height: math.unit(6176.2001953125, "meters") }, "Top": { height: math.unit(13831.8583984375, "meters") }, } }, { name: "Capsule", sides: { "Side": { height: math.unit(2.4739999771118164, "meters") }, "Front": { height: math.unit(2.4739999771118164, "meters") }, "Top": { height: math.unit(3.822000026702881, "meters") }, } }, { name: "Chimera", sides: { "Side": { height: math.unit(475.55010986328125, "meters") }, "Front": { height: math.unit(475.55010986328125, "meters") }, "Top": { height: math.unit(2696.60009765625, "meters") }, } }, { name: "Erebus", sides: { "Side": { height: math.unit(4789.970703125, "meters") }, "Front": { height: math.unit(4789.970703125, "meters") }, "Top": { height: math.unit(14785.546875, "meters") }, } }, { name: "Ibis", sides: { "Side": { height: math.unit(29.632003784179688, "meters") }, "Front": { height: math.unit(29.632003784179688, "meters") }, "Top": { height: math.unit(64.61199951171875, "meters") }, } }, { name: "Impairor", sides: { "Side": { height: math.unit(13.158005714416504, "meters") }, "Front": { height: math.unit(13.158005714416504, "meters") }, "Top": { height: math.unit(53.68499755859375, "meters") }, } }, { name: "Leviathan", sides: { "Side": { height: math.unit(3544.030029296875, "meters") }, "Front": { height: math.unit(3544.030029296875, "meters") }, "Top": { height: math.unit(18055.015625, "meters") }, } }, { name: "Nidhoggur", sides: { "Side": { height: math.unit(263.20928955078125, "meters") }, "Front": { height: math.unit(263.20928955078125, "meters") }, "Top": { height: math.unit(2153.196044921875, "meters") }, } }, { name: "Ragnarok", sides: { "Side": { height: math.unit(3152.279541015625, "meters") }, "Front": { height: math.unit(3152.279541015625, "meters") }, "Top": { height: math.unit(18139.9765625, "meters") }, } }, { name: "Reaper", sides: { "Side": { height: math.unit(31.324996948242188, "meters") }, "Front": { height: math.unit(31.324996948242188, "meters") }, "Top": { height: math.unit(55.847999572753906, "meters") }, } }, { name: "Thanatos", sides: { "Side": { height: math.unit(296.2213134765625, "meters") }, "Front": { height: math.unit(296.2213134765625, "meters") }, "Top": { height: math.unit(2266.876953125, "meters") }, } }, { name: "Vanguard", sides: { "Side": { height: math.unit(296.2213134765625, "meters") }, "Front": { height: math.unit(296.2213134765625, "meters") }, "Top": { height: math.unit(2266.876953125, "meters") }, } }, { name: "Velator", sides: { "Side": { height: math.unit(38.00899887084961, "meters") }, "Front": { height: math.unit(38.00899887084961, "meters") }, "Top": { height: math.unit(35.28599548339844, "meters") }, } } ]; results.push({ name: "Eve Online", constructor: () => makeAutoVehicleGroup( dataEveOnline, "Eve Online") }); results.push({ name: "Helicopters", constructor: () => makeVehicleGroup([ { name: "Mil Mi-26", mass: math.unit(109349, "lbs"), sides: { "Side": { height: math.unit(12.2, "meters") }, "Front": { height: math.unit(12.2, "meters") }, "Bottom": { height: math.unit(40.025, "meters") }, } } ], "Helicopters", "") }) results.push(makeHeight( [ ["Oil Tanker", 75.8, "meters"], ["Container Ship", 78.8, "meters"], ["Bulk Carrier", 70.04, "meters"], ["Passenger Ship", 80.9, "meters"] ], "Ships", "", "vehicles", false )); results.push(makeModel({ "name": "Aircraft Cabins", "kind": "vehicles", "forms": [ { "name": "737", "views": [ { "name": "Cross Section", "height": 4.02691801469 } ] }, { "name": "777", "views": [ { "name": "Cross Section", "height": 6.19751351351 } ] } ] })) return results; }