diff --git a/media/attribution.js b/media/attribution.js
index 2e7e2760..0f57439a 100644
--- a/media/attribution.js
+++ b/media/attribution.js
@@ -6936,7 +6936,6 @@ const attributionData = {
{
prefix: "./media/vehicles/",
files: [
- { name: "bus.svg", source: null },
{ name: "vertical-bus.svg", source: null },
{ name: "leopard-2-revolution-1.svg", source: "http://leopardclub.ca/reviews/Tiger_Model/Revolution/" },
],
@@ -6964,6 +6963,26 @@ const attributionData = {
"h-padleckas"
]
},
+ {
+ prefix: "./media/vehicles/buses/",
+ files: [
+ { name: "bus_city-bus-front.svg", source: "https://www.dimensions.guide/element/city-transit-buses" },
+ { name: "bus_city-bus-side.svg", source: "https://www.dimensions.guide/element/city-transit-buses" },
+ { name: "bus_city-bus-top.svg", source: "https://www.dimensions.guide/element/city-transit-buses" },
+ { name: "bus_articulated-bus-front.svg", source: "https://www.dimensions.guide/element/articulated-buses" },
+ { name: "bus_articulated-bus-side.svg", source: "https://www.dimensions.guide/element/articulated-buses" },
+ { name: "bus_articulated-bus-top.svg", source: "https://www.dimensions.guide/element/articulated-buses" },
+ { name: "bus_coach-bus-front.svg", source: "https://www.dimensions.guide/element/coach-buses" },
+ { name: "bus_coach-bus-side.svg", source: "https://www.dimensions.guide/element/coach-buses" },
+ { name: "bus_coach-bus-top.svg", source: "https://www.dimensions.guide/element/coach-buses" },
+ { name: "bus_shuttle-bus-front.svg", source: "https://www.dimensions.guide/element/minibuses-shuttle-buses" },
+ { name: "bus_shuttle-bus-side.svg", source: "https://www.dimensions.guide/element/minibuses-shuttle-buses" },
+ { name: "bus_shuttle-bus-top.svg", source: "https://www.dimensions.guide/element/minibuses-shuttle-buses" },
+ ],
+ authors: [
+ "dimensions-guide"
+ ],
+ },
{
prefix: "./media/vehicles/cars/",
files: [
diff --git a/media/vehicles/bus.svg b/media/vehicles/bus.svg
deleted file mode 100644
index 839ecdef..00000000
--- a/media/vehicles/bus.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
diff --git a/media/vehicles/buses/bus_articulated-bus-front.svg b/media/vehicles/buses/bus_articulated-bus-front.svg
new file mode 100644
index 00000000..e3e16b20
--- /dev/null
+++ b/media/vehicles/buses/bus_articulated-bus-front.svg
@@ -0,0 +1,34 @@
+
+
+
diff --git a/media/vehicles/buses/bus_articulated-bus-side.svg b/media/vehicles/buses/bus_articulated-bus-side.svg
new file mode 100644
index 00000000..6dc7a902
--- /dev/null
+++ b/media/vehicles/buses/bus_articulated-bus-side.svg
@@ -0,0 +1,94 @@
+
+
+
diff --git a/media/vehicles/buses/bus_articulated-bus-top.svg b/media/vehicles/buses/bus_articulated-bus-top.svg
new file mode 100644
index 00000000..731a7aea
--- /dev/null
+++ b/media/vehicles/buses/bus_articulated-bus-top.svg
@@ -0,0 +1,67 @@
+
+
+
diff --git a/media/vehicles/buses/bus_city-bus-front.svg b/media/vehicles/buses/bus_city-bus-front.svg
new file mode 100644
index 00000000..1148ae64
--- /dev/null
+++ b/media/vehicles/buses/bus_city-bus-front.svg
@@ -0,0 +1,36 @@
+
+
+
diff --git a/media/vehicles/buses/bus_city-bus-side.svg b/media/vehicles/buses/bus_city-bus-side.svg
new file mode 100644
index 00000000..87d73ad1
--- /dev/null
+++ b/media/vehicles/buses/bus_city-bus-side.svg
@@ -0,0 +1,61 @@
+
+
+
diff --git a/media/vehicles/buses/bus_city-bus-top.svg b/media/vehicles/buses/bus_city-bus-top.svg
new file mode 100644
index 00000000..1a6fea4c
--- /dev/null
+++ b/media/vehicles/buses/bus_city-bus-top.svg
@@ -0,0 +1,36 @@
+
+
+
diff --git a/media/vehicles/buses/bus_coach-bus-front.svg b/media/vehicles/buses/bus_coach-bus-front.svg
new file mode 100644
index 00000000..6480421a
--- /dev/null
+++ b/media/vehicles/buses/bus_coach-bus-front.svg
@@ -0,0 +1,39 @@
+
+
+
diff --git a/media/vehicles/buses/bus_coach-bus-side.svg b/media/vehicles/buses/bus_coach-bus-side.svg
new file mode 100644
index 00000000..081cf965
--- /dev/null
+++ b/media/vehicles/buses/bus_coach-bus-side.svg
@@ -0,0 +1,58 @@
+
+
+
diff --git a/media/vehicles/buses/bus_coach-bus-top.svg b/media/vehicles/buses/bus_coach-bus-top.svg
new file mode 100644
index 00000000..003102a5
--- /dev/null
+++ b/media/vehicles/buses/bus_coach-bus-top.svg
@@ -0,0 +1,57 @@
+
+
+
diff --git a/media/vehicles/buses/bus_shuttle-bus-front.svg b/media/vehicles/buses/bus_shuttle-bus-front.svg
new file mode 100644
index 00000000..5a43c67a
--- /dev/null
+++ b/media/vehicles/buses/bus_shuttle-bus-front.svg
@@ -0,0 +1,39 @@
+
+
+
diff --git a/media/vehicles/buses/bus_shuttle-bus-side.svg b/media/vehicles/buses/bus_shuttle-bus-side.svg
new file mode 100644
index 00000000..388d4b7c
--- /dev/null
+++ b/media/vehicles/buses/bus_shuttle-bus-side.svg
@@ -0,0 +1,57 @@
+
+
+
diff --git a/media/vehicles/buses/bus_shuttle-bus-top.svg b/media/vehicles/buses/bus_shuttle-bus-top.svg
new file mode 100644
index 00000000..83ca096e
--- /dev/null
+++ b/media/vehicles/buses/bus_shuttle-bus-top.svg
@@ -0,0 +1,42 @@
+
+
+
diff --git a/presets/vehicles.js b/presets/vehicles.js
index 75abe4c8..37c1c863 100644
--- a/presets/vehicles.js
+++ b/presets/vehicles.js
@@ -195,30 +195,74 @@ function makeCars() {
return entity;
}
-function makeVehicles() {
- const results = [];
+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 = {}
- results.push({
- name: "Bus",
- constructor: () => makeVehicle(
- "Bus",
- {
- side: {
- name: "Side",
- height: math.unit(10.5, "feet"),
- image: { source: "./media/vehicles/bus.svg" }
- },
- vertical: {
- name: "Side (Vertical)",
- height: math.unit(38.5, "feet"),
- image: { source: "./media/vehicles/vertical-bus.svg" }
- },
+ 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] }
+ };
- },
- math.unit(30000, "lb"),
- )
+ 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;
+}
+
+function makeVehicles() {
+ const results = [];
+
results.push({
name: "Leopard 2 Rev. 1",
constructor: () => makeVehicle(
@@ -318,6 +362,11 @@ function makeVehicles() {
name: "Cars",
constructor: () => makeCars()
});
+
+ results.push({
+ name: "Buses",
+ constructor: () => makeBuses()
+ });
return results;
}