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" } + } + } ) });