Advertisement
Guest User

Untitled

a guest
Aug 19th, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.83 KB | None | 0 0
  1. var rp = require('request-promise');
  2.  
  3. rp({
  4. uri:"https://fnbr.co/api/shop",
  5. headers: {
  6. "x-api-key":"MY API"
  7. }
  8. }),
  9. jimp.read("./Images/shopBack.jpg"),
  10. jimp.read("./Images/Rarities/uncommon.png"),
  11. jimp.read("./Images/Rarities/rare.png"),
  12. jimp.read("./Images/Rarities/epic.png"),
  13. jimp.read("./Images/Rarities/legendary.png"),
  14. jimp.read("./Images/backdrop.png"),
  15. jimp.loadFont("./Fonts/Burbank32.fnt"),
  16. jimp.loadFont("./Fonts/Burbank28.fnt"),
  17. jimp.loadFont("./Fonts/Burbank60.fnt"),
  18. jimp.loadFont("./Fonts/Burbank96.fnt")
  19. ])
  20. .then(values => {
  21. let [, shopImage, uncommonImage, rareImage, epicImage, legendaryImage, backDrop, font32, font28, titleFont, mainTitle] = values;
  22. let imageMap = {uncommon: uncommonImage, rare: rareImage, epic: epicImage, legendary: legendaryImage};
  23. let shop = JSON.parse(values[0]);
  24. let daily = shop.data.daily;
  25. let featured = shop.data.featured;
  26. let dailyImgs = Promise.all(daily.map(obj => jimp.read(obj.images.icon)));
  27. let featImgs = Promise.all(featured.map(obj => jimp.read(obj.images.icon)));
  28. return Promise.all([
  29. dailyImgs,
  30. featImgs,
  31. values,
  32. daily,
  33. featured,
  34. imageMap
  35. ]);
  36. })
  37. .then(shopImages => {
  38. let [dailyImgs, featImgs, [, shopImage,,,,, backDrop, font32, font28, titleFont, mainTitle], daily, featured, imageMap] = shopImages;
  39.  
  40. let i = 0;
  41. let iconSize = 225;
  42. let rarityDiff = 25;
  43. let xPad = 100;
  44. let yPad = 250;
  45. let columns = 3;
  46. let infoBoxHeight = 80;
  47. let width = shopImage.bitmap.width, height = shopImage.bitmap.height;
  48.  
  49. let Title = "Fortnite Battle Royale Item Shop";
  50. let titleWidth = measureText(mainTitle, Title);
  51. let dailyWidth = measureText(titleFont, "Daily Items");
  52. let featuredWidth = measureText(titleFont, "Featured Items");
  53. shopImage.print(mainTitle, Math.floor(width / 2 - titleWidth / 2), 50, Title)
  54. .print(titleFont, Math.floor((iconSize*columns + rarityDiff*3 + xPad) / 2 - dailyWidth / 2), yPad-65, "Daily Items")
  55. .print(titleFont, Math.floor(width-(iconSize*columns + rarityDiff*3 + xPad) / 2 - featuredWidth / 2), yPad-65, "Featured Items");
  56.  
  57.  
  58. dailyImgs.map(x => {
  59. let itemNameWidth = measureText(font32, daily[i].name);
  60. let itemPriceWidth = measureText(font28, daily[i].price + " V-Bucks");
  61. x.resize(iconSize, iconSize);
  62. let infoBox = backDrop.clone()
  63. .resize(iconSize, infoBoxHeight)
  64. .print(font32, Math.floor(iconSize / 2 - itemNameWidth / 2), 5, daily[i].name)
  65. .print(font28, Math.floor(iconSize / 2 - itemPriceWidth / 2), 40, daily[i].price + " V-Bucks");
  66. let rarityImage = imageMap[daily[i].rarity]
  67. .clone()
  68. .resize(iconSize, iconSize)
  69. .composite(x, 0, 0)
  70. .composite(infoBox, 0, iconSize-infoBoxHeight);
  71. shopImage.composite(rarityImage, (i%columns)*(iconSize+rarityDiff)+xPad, Math.floor(i/columns)*(iconSize+rarityDiff)+yPad);
  72. i++;
  73. });
  74.  
  75. i = 0;
  76. featImgs.map(x => {
  77. let itemNameWidth = measureText(font32, featured[i].name);
  78. let itemPriceWidth = measureText(font28, featured[i].price + " V-Bucks");
  79. x.resize(iconSize, iconSize);
  80. let infoBox = backDrop.clone()
  81. .resize(iconSize, infoBoxHeight)
  82. .print(font32, Math.floor(iconSize / 2 - itemNameWidth / 2), 5, featured[i].name)
  83. .print(font28, Math.floor(iconSize / 2 - itemPriceWidth / 2), 40, featured[i].price + " V-Bucks");
  84. let rarityImage = imageMap[featured[i].rarity]
  85. .clone()
  86. .resize(iconSize, iconSize)
  87. .composite(x, 0, 0)
  88. .composite(infoBox, 0, iconSize-infoBoxHeight);
  89. shopImage.composite(rarityImage, width-((i%columns)*(iconSize+rarityDiff)+xPad*2+(iconSize+rarityDiff)/2), Math.floor(i/columns)*(iconSize+rarityDiff)+yPad);
  90. i++;
  91. });
  92. shopImage.quality(100)
  93. .write("./Shop.jpg");
  94. console.log(chalk.blue("Successfully created and saved shop image to ./Shop.jpg"));
  95. });
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement