diff --git a/media/objects/pin-head.svg b/media/objects/pin-head.svg
new file mode 100644
index 00000000..0aae19ee
--- /dev/null
+++ b/media/objects/pin-head.svg
@@ -0,0 +1,10 @@
+
+
+
diff --git a/media/objects/sewing-pin.svg b/media/objects/sewing-pin.svg
new file mode 100644
index 00000000..a2626f3e
--- /dev/null
+++ b/media/objects/sewing-pin.svg
@@ -0,0 +1,10 @@
+
+
+
diff --git a/presets/objects.js b/presets/objects.js
index 9a119474..bb40cb19 100644
--- a/presets/objects.js
+++ b/presets/objects.js
@@ -1,25 +1,33 @@
-function makeObject(name, height, mass, image) {
- views = {
- object: {
+function makeObject(name, viewInfo) {
+ views = {};
+ console.log(viewInfo)
+
+ Object.entries(viewInfo).forEach(([key, value]) => {
+ console.log(key)
+ views[key] = {
attributes: {
height: {
name: "Height",
power: 1,
type: "length",
- base: height
- },
- mass: {
- name: "Mass",
- power: 3,
- type: "mass",
- base: mass
+ base: value.height
}
},
- image: image,
+ image: value.image,
name: "Object"
}
- };
+ if (value.mass) {
+ views[key].attributes[key] = {
+ name: "Mass",
+ power: 3,
+ type: "mass",
+ base: value.mass
+ };
+ }
+ });
+
+ console.log(views)
return makeEntity(name, "Object", views);
}
@@ -30,9 +38,30 @@ function makeObjects() {
name: "Soda Can",
constructor: () => makeObject(
"Soda Can",
- math.unit(4.83, "inches"),
- math.unit(15, "grams"),
- { source: "./media/objects/soda-can.svg" }
+ {
+ front: {
+ height: math.unit(4.83, "inches"),
+ mass: math.unit(15, "grams"),
+ image: { source: "./media/objects/soda-can.svg" }
+ }
+ }
+ )
+ });
+
+ results.push({
+ name: "Sewing Pin",
+ constructor: () => makeObject(
+ "Sewing Pin",
+ {
+ side: {
+ height: math.unit(1.5, "inches"),
+ image: { source: "./media/objects/sewing-pin.svg" }
+ },
+ top: {
+ height: math.unit(2, "millimeters"),
+ image: { source: "./media/objects/pin-head.svg" }
+ }
+ }
)
});