| @@ -2681,6 +2681,18 @@ const attributionData = { | |||||
| "chemicalcrux" | "chemicalcrux" | ||||
| ] | ] | ||||
| }, | }, | ||||
| { | |||||
| prefix: "./media/objects/shoes/", | |||||
| files: [ | |||||
| { name: "shoe_flip-flops.svg", source: null }, | |||||
| { name: "shoe_knee-boots.svg", source: null }, | |||||
| { name: "shoe_trainers.svg", source: null }, | |||||
| { name: "shoe_stilettos.svg", source: null }, | |||||
| ], | |||||
| authors: [ | |||||
| "chemicalcrux" | |||||
| ] | |||||
| }, | |||||
| { | { | ||||
| prefix: "./media/objects/", | prefix: "./media/objects/", | ||||
| files: [ | files: [ | ||||
| @@ -0,0 +1,24 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> | |||||
| <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | |||||
| viewBox="0 0 617.77 154.24" style="enable-background:new 0 0 617.77 154.24;" xml:space="preserve"> | |||||
| <style type="text/css"> | |||||
| .st0{fill:#1A1A1A;} | |||||
| </style> | |||||
| <g id="flip-flop"> | |||||
| <g> | |||||
| <path d="M1.65,101.06c0-20.15,175.38-23.45,175.38-23.45s339.52-8.26,341.83-8.26c2.31,0,44.92-4.62,74.64,5.61 | |||||
| c29.72,10.24,23.78,45.58,23.78,45.58s7.6,33.69-53.83,33.69s-530.75,0-530.75,0S0,152.59,0,144.33S1.65,101.06,1.65,101.06z"/> | |||||
| <path class="st0" d="M179.01,84.27c0,0,157.21-84.27,204.44-84.27s93.47,20.15,93.47,20.15s30.71,15.6,33.02,49.41 | |||||
| s-17.5-1.24-17.5-1.24s-6.61-37.6-58.13-47.84s-94.13,6.94-94.13,6.94L216,84.27H179.01z"/> | |||||
| <path class="st0" d="M183.96,105.03c0,0,219.63-69.36,239.45-71.01c19.82-1.65,44.35,0,44.35,0l16.42,11.23l-65.39,4.62 | |||||
| c0,0-183.52,41.77-198.72,55.16H183.96z"/> | |||||
| </g> | |||||
| </g> | |||||
| <g id="knee-boots"> | |||||
| </g> | |||||
| <g id="trainers"> | |||||
| </g> | |||||
| <g id="stiletto"> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -0,0 +1,19 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> | |||||
| <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | |||||
| viewBox="0 0 564.27 841.83" style="enable-background:new 0 0 564.27 841.83;" xml:space="preserve"> | |||||
| <style type="text/css"> | |||||
| .st0{fill:#1A1A1A;} | |||||
| </style> | |||||
| <g id="flip-flop"> | |||||
| </g> | |||||
| <g id="knee-boots"> | |||||
| <path d="M0.05,6.61c0,0-1.76,125.06,16.73,179.67s74.86,365.5,73.98,384.88c-0.88,19.38-22.9,152.37-23.78,183.19s0,70.46,0,70.46 | |||||
| s41.5,20.13,138.38,16.61v-28.5c0,0,105.58,25.43,165.36,25.43s193.54-40.62,193.54-66.06s-33.69-65.06-49.21-66.06 | |||||
| c-15.52-0.99-162.87-12.5-223.31-133.05c0,0,8.64-545.88,22.29-573.19L0.05,6.61z"/> | |||||
| </g> | |||||
| <g id="trainers"> | |||||
| </g> | |||||
| <g id="stiletto"> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -0,0 +1,26 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> | |||||
| <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | |||||
| viewBox="0 0 550.29 418.84" style="enable-background:new 0 0 550.29 418.84;" xml:space="preserve"> | |||||
| <style type="text/css"> | |||||
| .st0{fill:#1A1A1A;} | |||||
| </style> | |||||
| <g id="flip-flop"> | |||||
| </g> | |||||
| <g id="knee-boots"> | |||||
| </g> | |||||
| <g id="trainers"> | |||||
| </g> | |||||
| <g id="stiletto"> | |||||
| <g> | |||||
| <path d="M66.04,0.05c0,0-54.5,40.95-64.07,105.03c-4.21,28.15-0.77,51.35,1.98,70.35c3.51,24.25,7.27,40.62,7.27,40.62 | |||||
| l11.89,193.54h25.1l-4.29-175.71c0,0,7.6-22.46,18.17-22.46s67.05,31.38,94.46,58.79s62.75,92.48,83.89,113.61 | |||||
| c21.14,21.14,32.37,35.01,88.51,35.01c25.64,0,76.46-1.57,117.58-6.94c48.93-6.38,92.37-20.88,98.48-28.42 | |||||
| c11.23-13.87,3.25-38.63-11.28-49.2c0,0-84.91-40.59-115.6-47.56c-32.21-7.31-62.09,5.94-82.57-7.27 | |||||
| C315.07,266.25,151.25,76.01,151.25,76.01S91.8-2.26,66.04,0.05z"/> | |||||
| <path class="st0" d="M335.55,279.46C315.07,266.25,151.25,76.01,151.25,76.01S91.8-2.26,66.04,0.05c0,0-0.24,0.18-0.67,0.52 | |||||
| l0.78,1.57L176.68,143.5l103.93,144.44c0,0,38.31,42.28,66.5,42.28c28.18,0,52.18-2.42,60.77-11.01s11.01-9.25,11.01-19.82 | |||||
| c0-8.45-2.53-12.11-3.55-13.24C384.19,280.16,355.43,292.29,335.55,279.46z"/> | |||||
| </g> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -0,0 +1,19 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <!-- Generator: Adobe Illustrator 24.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> | |||||
| <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | |||||
| viewBox="0 0 581.04 260.61" style="enable-background:new 0 0 581.04 260.61;" xml:space="preserve"> | |||||
| <style type="text/css"> | |||||
| .st0{fill:#1A1A1A;} | |||||
| </style> | |||||
| <g id="flip-flop"> | |||||
| </g> | |||||
| <g id="knee-boots"> | |||||
| </g> | |||||
| <g id="trainers"> | |||||
| <path d="M32.34,6.96C27.72,11.58,0.64,96.79,0.2,136.42s0,107.45,0,107.45s24.22,16.73,64.29,16.73s321.91,0,321.91,0 | |||||
| s108.77-18.94,136.51-32.59c27.74-13.65,58.13-33.91,58.13-62.09S548.01,110,516.31,110s-97.32-17.61-97.32-17.61 | |||||
| S270.97,17.85,253.3,17.85s-84.44,58.24-133.54,58.24S52.05,7.29,46.87,2.11S36.97,2.33,32.34,6.96z"/> | |||||
| </g> | |||||
| <g id="stiletto"> | |||||
| </g> | |||||
| </svg> | |||||
| @@ -38,6 +38,37 @@ function makeObject(name, viewInfo) { | |||||
| return makeEntity({ name: name }, views); | return makeEntity({ name: name }, views); | ||||
| } | } | ||||
| SHOE_REFERENCE = 60 | |||||
| function addShoeView(object, name, points) { | |||||
| object[name] = { | |||||
| height: math.unit(points / SHOE_REFERENCE, "inches"), | |||||
| image: { source: "./media/objects/shoes/shoe_" + name + ".svg" }, | |||||
| name: name.replace(/-/g, " ").replace(/\b\w/g, x => x.toUpperCase()), | |||||
| rename: true | |||||
| } | |||||
| } | |||||
| function makeShoes() { | |||||
| const views = {}; | |||||
| [ | |||||
| ["flip-flops", 154.239], | |||||
| ["knee-boots", 841.827], | |||||
| ["trainers", 260.607], | |||||
| ["stilettos", 418.839] | |||||
| ].forEach(shoe => { | |||||
| addShoeView(views, shoe[0], shoe[1]) | |||||
| }); | |||||
| return { | |||||
| name: "Shoes", | |||||
| constructor: () => makeObject( | |||||
| "Shoes", | |||||
| views | |||||
| ) | |||||
| } | |||||
| } | |||||
| function makeObjects() { | function makeObjects() { | ||||
| const results = []; | const results = []; | ||||
| @@ -381,12 +412,15 @@ function makeObjects() { | |||||
| } | } | ||||
| ) | ) | ||||
| }); | }); | ||||
| results.push(makeShoes()); | |||||
| results.sort((b1, b2) => { | results.sort((b1, b2) => { | ||||
| e1 = b1.constructor(); | e1 = b1.constructor(); | ||||
| e2 = b2.constructor(); | e2 = b2.constructor(); | ||||
| return -math.subtract(e1.views[e1.defaultView].height, e2.views[e2.defaultView].height).value; | return -math.subtract(e1.views[e1.defaultView].height, e2.views[e2.defaultView].height).value; | ||||
| }); | }); | ||||
| return results; | return results; | ||||
| } | } | ||||