diff --git a/media/attribution.js b/media/attribution.js index 37f56e03..19f329ef 100644 --- a/media/attribution.js +++ b/media/attribution.js @@ -2858,6 +2858,35 @@ const attributionData = { "h-padleckas" ] }, + { + prefix: "./media/vehicles/planes/", + files: [ + { name: "plane_airbus-a380-800-side.svg", source: "https://en.wikipedia.org/wiki/File:Giant_planes_comparison.svg" }, + { name: "plane_airbus-a380-800-top.svg", source: "https://en.wikipedia.org/wiki/File:Giant_planes_comparison.svg" }, + { name: "plane_antonov-an-225-side.svg", source: "https://en.wikipedia.org/wiki/File:Giant_planes_comparison.svg" }, + { name: "plane_antonov-an-225-top.svg", source: "https://en.wikipedia.org/wiki/File:Giant_planes_comparison.svg" }, + { name: "plane_boeing-747-8-side.svg", source: "https://en.wikipedia.org/wiki/File:Giant_planes_comparison.svg" }, + { name: "plane_boeing-747-8-top.svg", source: "https://en.wikipedia.org/wiki/File:Giant_planes_comparison.svg" }, + { name: "plane_hughes-h-4-hercules-side.svg", source: "https://en.wikipedia.org/wiki/File:Giant_planes_comparison.svg" }, + { name: "plane_hughes-h-4-hercules-top.svg", source: "https://en.wikipedia.org/wiki/File:Giant_planes_comparison.svg" }, + { name: "plane_stratolaunch-side.svg", source: "https://en.wikipedia.org/wiki/File:Giant_planes_comparison.svg" }, + { name: "plane_stratolaunch-top.svg", source: "https://en.wikipedia.org/wiki/File:Giant_planes_comparison.svg" }, + ], + authors: [ + "clem-tillier" + ] + }, + { + prefix: "./media/vehicles/planes/", + files: [ + { name: "plane_cessena-172-side.svg", source: "https://www.dimensions.guide/element/cessna-172-skyhawk-aircraft" }, + { name: "plane_cessena-172-top.svg", source: "https://www.dimensions.guide/element/cessna-172-skyhawk-aircraft" }, + { name: "plane_cessena-172-front.svg", source: "https://www.dimensions.guide/element/cessna-172-skyhawk-aircraft" } + ], + authors: [ + "dimensions-guide" + ], + }, { prefix: "./media/vehicles/spacecraft/", files: [ @@ -3908,6 +3937,14 @@ const attributionData = { "name": "Axel Lycan", "url": "https://twitter.com/AxelLycan/", }, + "clem-tillier": { + "name": "Clem Tillier", + "url": "https://commons.wikimedia.org/wiki/User:Ctillier", + }, + "dimensions-guide": { + "name": "dimensions.guide", + "url": "https://www.dimensions.guide/", + }, } } diff --git a/media/vehicles/planes/plane_airbus-a380-800-side.svg b/media/vehicles/planes/plane_airbus-a380-800-side.svg new file mode 100644 index 00000000..ecd090fd --- /dev/null +++ b/media/vehicles/planes/plane_airbus-a380-800-side.svg @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/media/vehicles/planes/plane_airbus-a380-800-top.svg b/media/vehicles/planes/plane_airbus-a380-800-top.svg new file mode 100644 index 00000000..127f31d4 --- /dev/null +++ b/media/vehicles/planes/plane_airbus-a380-800-top.svg @@ -0,0 +1,53 @@ + + + + + + + + diff --git a/media/vehicles/planes/plane_antonov-an-225-side.svg b/media/vehicles/planes/plane_antonov-an-225-side.svg new file mode 100644 index 00000000..428d42b9 --- /dev/null +++ b/media/vehicles/planes/plane_antonov-an-225-side.svg @@ -0,0 +1,33 @@ + + + + + + + + diff --git a/media/vehicles/planes/plane_antonov-an-225-top.svg b/media/vehicles/planes/plane_antonov-an-225-top.svg new file mode 100644 index 00000000..b54c3c17 --- /dev/null +++ b/media/vehicles/planes/plane_antonov-an-225-top.svg @@ -0,0 +1,68 @@ + + + + + + + + diff --git a/media/vehicles/planes/plane_boeing-747-8-side.svg b/media/vehicles/planes/plane_boeing-747-8-side.svg new file mode 100644 index 00000000..45530cb9 --- /dev/null +++ b/media/vehicles/planes/plane_boeing-747-8-side.svg @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/media/vehicles/planes/plane_boeing-747-8-top.svg b/media/vehicles/planes/plane_boeing-747-8-top.svg new file mode 100644 index 00000000..b31f8c9e --- /dev/null +++ b/media/vehicles/planes/plane_boeing-747-8-top.svg @@ -0,0 +1,50 @@ + + + + + + + + diff --git a/media/vehicles/planes/plane_cessena-172-front.svg b/media/vehicles/planes/plane_cessena-172-front.svg new file mode 100644 index 00000000..6e726601 --- /dev/null +++ b/media/vehicles/planes/plane_cessena-172-front.svg @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/media/vehicles/planes/plane_cessena-172-side.svg b/media/vehicles/planes/plane_cessena-172-side.svg new file mode 100644 index 00000000..df9dbcec --- /dev/null +++ b/media/vehicles/planes/plane_cessena-172-side.svg @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/media/vehicles/planes/plane_cessena-172-top.svg b/media/vehicles/planes/plane_cessena-172-top.svg new file mode 100644 index 00000000..e51bdc22 --- /dev/null +++ b/media/vehicles/planes/plane_cessena-172-top.svg @@ -0,0 +1,401 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/media/vehicles/planes/plane_hughes-h-4-hercules-side.svg b/media/vehicles/planes/plane_hughes-h-4-hercules-side.svg new file mode 100644 index 00000000..cf42f35a --- /dev/null +++ b/media/vehicles/planes/plane_hughes-h-4-hercules-side.svg @@ -0,0 +1,28 @@ + + + + + + + + diff --git a/media/vehicles/planes/plane_hughes-h-4-hercules-top.svg b/media/vehicles/planes/plane_hughes-h-4-hercules-top.svg new file mode 100644 index 00000000..8ff78064 --- /dev/null +++ b/media/vehicles/planes/plane_hughes-h-4-hercules-top.svg @@ -0,0 +1,65 @@ + + + + + + + + + diff --git a/media/vehicles/planes/plane_stratolaunch-side.svg b/media/vehicles/planes/plane_stratolaunch-side.svg new file mode 100644 index 00000000..910cfffa --- /dev/null +++ b/media/vehicles/planes/plane_stratolaunch-side.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/media/vehicles/planes/plane_stratolaunch-top.svg b/media/vehicles/planes/plane_stratolaunch-top.svg new file mode 100644 index 00000000..3a5c49fb --- /dev/null +++ b/media/vehicles/planes/plane_stratolaunch-top.svg @@ -0,0 +1,60 @@ + + + + + + + + + diff --git a/presets/vehicles.js b/presets/vehicles.js index 6db0b030..147b190f 100644 --- a/presets/vehicles.js +++ b/presets/vehicles.js @@ -57,6 +57,76 @@ function makeMultiVehicle(name, sides) { 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 makeVehicles() { const results = []; @@ -201,6 +271,11 @@ function makeVehicles() { } ) }); + + results.push({ + name: "Aircraft", + constructor: () => makeAircraft() + }); return results; }