less copy protection, more size visualization
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 

72 líneas
1.8 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: value.name
  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. name: "Side"
  42. }
  43. }
  44. )
  45. });
  46. results.push({
  47. name: "Sewing Pin",
  48. constructor: () => makeObject(
  49. "Sewing Pin",
  50. {
  51. side: {
  52. height: math.unit(1.5, "inches"),
  53. image: { source: "./media/objects/sewing-pin.svg" },
  54. name: "Side"
  55. },
  56. top: {
  57. height: math.unit(2, "millimeters"),
  58. image: { source: "./media/objects/pin-head.svg" },
  59. name: "Head"
  60. }
  61. }
  62. )
  63. });
  64. return results;
  65. }