silphscope 1.2.4 → 1.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -59,6 +59,7 @@ import { renderAllTrainers } from "silphscope" // :O
59
59
 
60
60
  const rom = fs.readFileSync("pokefirered.gba") // stuff stuff stuff
61
61
  await renderAllTrainers(rom, {
62
- outputDir: "./Assets/trainers" // more stuff
62
+ outputDir: "./Assets/trainers", // more stuff
63
+ trainerBackPics: true, // renders the like 8 trainer back pics
63
64
  })
64
65
  ```
package/main.js CHANGED
@@ -5,5 +5,5 @@ import { extract } from "./src/graphics/extract.js";
5
5
 
6
6
  export { renderMon, renderMonIcon, renderMonFoot, extract };
7
7
 
8
- import { renderAllMons, renderAllIcons, renderAllGraphics } from "./src/graphics/graphics-extractor-main.js";
9
- export { renderAllMons, renderAllIcons, renderAllGraphics };
8
+ import { renderAllMons, renderAllIcons, renderAllTrainers, renderAllGraphics } from "./src/graphics/graphics-extractor-main.js";
9
+ export { renderAllMons, renderAllIcons, renderAllTrainers, renderAllGraphics };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "silphscope",
3
- "version": "1.2.4",
3
+ "version": "1.2.6",
4
4
  "description": "A firered/leafgreen ROM asset extractor for use in web applications",
5
5
  "main": "main.js",
6
6
  "exports": {
@@ -47,7 +47,7 @@ export async function renderTrainerBackPic(trainerName, trainers, assets, rom, o
47
47
  const rawTrainerBackPalData = extract(trainerBackPal, rom);
48
48
  const width = 64;
49
49
  let height;
50
- if (trainer === "RED" || trainer === "LEAF") {
50
+ if (trainerName === "RED" || trainerName === "LEAF") {
51
51
  height = 320;
52
52
  } else {
53
53
  height = 256;
@@ -60,16 +60,49 @@ export async function renderTrainerBackPic(trainerName, trainers, assets, rom, o
60
60
  height,
61
61
  });
62
62
 
63
- const png = new PNG({ width, height });
64
- png.data = image;
65
- const pngBuffer = await streamToBuffer(png.pack());
63
+ const frameHeight = 64;
64
+ const frameSize = width * frameHeight * 4;
65
+ const frame1 = image.slice(0, frameSize);
66
+ const frame2 = image.slice(frameSize, frameSize * 2);
67
+ const frame3 = image.slice(frameSize, frameSize * 3);
68
+ const frame4 = image.slice(frameSize, frameSize * 4);
69
+ const frame5 = (trainerName === "RED" || trainerName === "LEAF")
70
+ ? image.slice(frameSize, frameSize * 5)
71
+ : null;
72
+ const pngFrame1 = new PNG({ width, height: frameHeight });
73
+ pngFrame1.data = frame1;
74
+ const pngFrame2 = new PNG({ width, height: frameHeight });
75
+ pngFrame2.data = frame2;
76
+ const pngFrame3 = new PNG({ width, height: frameHeight });
77
+ pngFrame3.data = frame3;
78
+ const pngFrame4 = new PNG({ width, height: frameHeight });
79
+ pngFrame4.data = frame4;
80
+ const buffer1 = await streamToBuffer(pngFrame1.pack());
81
+ const buffer2 = await streamToBuffer(pngFrame2.pack());
82
+ const buffer3 = await streamToBuffer(pngFrame3.pack());
83
+ const buffer4 = await streamToBuffer(pngFrame4.pack());
84
+ let buffer5
66
85
 
67
86
  if (outputDir) {
68
87
  const dir = `${outputDir}/${trainerName}`;
69
88
  if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
70
- const fileName = `${dir}/trainer_back.png`;
71
- fs.writeFileSync(fileName, pngBuffer);
89
+ fs.writeFileSync(`${dir}/trainer_back_frame_1.png`, buffer1);
90
+ fs.writeFileSync(`${dir}/trainer_back_frame_2.png`, buffer2);
91
+ fs.writeFileSync(`${dir}/trainer_back_frame_3.png`, buffer3);
92
+ fs.writeFileSync(`${dir}/trainer_back_frame_4.png`, buffer4);
93
+ if (frame5) {
94
+ const pngFrame5 = new PNG({ width, height: frameHeight });
95
+ pngFrame5.data = frame5;
96
+ buffer5 = await streamToBuffer(pngFrame5.pack());
97
+ fs.writeFileSync(`${dir}/trainer_back_frame_5.png`, buffer5);
98
+ }
72
99
  }
73
100
 
74
- return pngBuffer;
101
+ return {
102
+ frame1: buffer1,
103
+ frame2: buffer2,
104
+ frame3: buffer3,
105
+ frame4: buffer4,
106
+ frame5: buffer5,
107
+ };
75
108
  }