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;
}