less copy protection, more size visualization
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

69 строки
1.7 KiB

  1. function makeObject(name, viewInfo) {
  2. views = {};
  3. console.log(viewInfo)
  4. Object.entries(viewInfo).forEach(([key, value]) => {
  5. console.log(key)
  6. views[key] = {
  7. attributes: {
  8. height: {
  9. name: "Height",
  10. power: 1,
  11. type: "length",
  12. base: value.height
  13. }
  14. },
  15. image: value.image,
  16. name: "Object"
  17. }
  18. if (value.mass) {
  19. views[key].attributes[key] = {
  20. name: "Mass",
  21. power: 3,
  22. type: "mass",
  23. base: value.mass
  24. };
  25. }
  26. });
  27. console.log(views)
  28. return makeEntity(name, "Object", views);
  29. }
  30. function makeObjects() {
  31. const results = [];
  32. results.push({
  33. name: "Soda Can",
  34. constructor: () => makeObject(
  35. "Soda Can",
  36. {
  37. front: {
  38. height: math.unit(4.83, "inches"),
  39. mass: math.unit(15, "grams"),
  40. image: { source: "./media/objects/soda-can.svg" }
  41. }
  42. }
  43. )
  44. });
  45. results.push({
  46. name: "Sewing Pin",
  47. constructor: () => makeObject(
  48. "Sewing Pin",
  49. {
  50. side: {
  51. height: math.unit(1.5, "inches"),
  52. image: { source: "./media/objects/sewing-pin.svg" }
  53. },
  54. top: {
  55. height: math.unit(2, "millimeters"),
  56. image: { source: "./media/objects/pin-head.svg" }
  57. }
  58. }
  59. )
  60. });
  61. return results;
  62. }