@4bitlabs/sci0 4.0.1 → 5.0.1

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.
Files changed (197) hide show
  1. package/README.md +14 -27
  2. package/dist/index.d.ts +18 -29
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +38 -46
  5. package/dist/index.js.map +1 -1
  6. package/dist/models/draw-codes.d.ts +6 -0
  7. package/dist/models/draw-codes.d.ts.map +1 -0
  8. package/dist/{screen/render-result.js → models/draw-codes.js} +1 -1
  9. package/dist/models/draw-codes.js.map +1 -0
  10. package/dist/models/draw-command.d.ts +1 -56
  11. package/dist/models/draw-command.d.ts.map +1 -1
  12. package/dist/models/draw-command.js +0 -18
  13. package/dist/models/draw-command.js.map +1 -1
  14. package/dist/models/draw-commands.d.ts +47 -0
  15. package/dist/models/draw-commands.d.ts.map +1 -0
  16. package/dist/models/draw-commands.js +3 -0
  17. package/dist/models/draw-commands.js.map +1 -0
  18. package/dist/models/draw-mode.d.ts +21 -0
  19. package/dist/models/draw-mode.d.ts.map +1 -0
  20. package/dist/models/draw-mode.js +26 -0
  21. package/dist/models/draw-mode.js.map +1 -0
  22. package/dist/models/pattern-code.d.ts +6 -0
  23. package/dist/models/pattern-code.d.ts.map +1 -0
  24. package/dist/models/pattern-code.js +3 -0
  25. package/dist/models/pattern-code.js.map +1 -0
  26. package/dist/models/pic.d.ts +10 -0
  27. package/dist/models/pic.d.ts.map +1 -0
  28. package/dist/{screen/screen.js → models/pic.js} +1 -1
  29. package/dist/models/pic.js.map +1 -0
  30. package/dist/models/resource-header.d.ts +4 -0
  31. package/dist/models/resource-header.d.ts.map +1 -1
  32. package/dist/models/resource-id.d.ts +4 -8
  33. package/dist/models/resource-id.d.ts.map +1 -1
  34. package/dist/models/resource-id.js +21 -48
  35. package/dist/models/resource-id.js.map +1 -1
  36. package/dist/models/resource-type.d.ts +1 -22
  37. package/dist/models/resource-type.d.ts.map +1 -1
  38. package/dist/models/resource-type.js +0 -23
  39. package/dist/models/resource-type.js.map +1 -1
  40. package/dist/models/resource-types.d.ts +11 -0
  41. package/dist/models/resource-types.d.ts.map +1 -0
  42. package/dist/models/resource-types.js +14 -0
  43. package/dist/models/resource-types.js.map +1 -0
  44. package/dist/parsers/compression.d.ts +25 -1
  45. package/dist/parsers/compression.d.ts.map +1 -1
  46. package/dist/parsers/compression.js +33 -9
  47. package/dist/parsers/compression.js.map +1 -1
  48. package/dist/parsers/mapping.d.ts +2 -2
  49. package/dist/parsers/mapping.d.ts.map +1 -1
  50. package/dist/parsers/mapping.js +19 -29
  51. package/dist/parsers/mapping.js.map +1 -1
  52. package/dist/parsers/{cel.d.ts → parse-cel.d.ts} +1 -1
  53. package/dist/parsers/parse-cel.d.ts.map +1 -0
  54. package/dist/parsers/{cel.js → parse-cel.js} +1 -1
  55. package/dist/parsers/parse-cel.js.map +1 -0
  56. package/dist/parsers/parse-cursor-options.d.ts +9 -0
  57. package/dist/parsers/parse-cursor-options.d.ts.map +1 -0
  58. package/dist/parsers/parse-cursor-options.js +3 -0
  59. package/dist/parsers/parse-cursor-options.js.map +1 -0
  60. package/dist/parsers/parse-cursor.d.ts +4 -0
  61. package/dist/parsers/parse-cursor.d.ts.map +1 -0
  62. package/dist/parsers/{cursor.js → parse-cursor.js} +4 -4
  63. package/dist/parsers/parse-cursor.js.map +1 -0
  64. package/dist/parsers/parse-font-options.d.ts +5 -0
  65. package/dist/parsers/parse-font-options.d.ts.map +1 -0
  66. package/dist/parsers/parse-font-options.js +3 -0
  67. package/dist/parsers/parse-font-options.js.map +1 -0
  68. package/dist/parsers/parse-font.d.ts +4 -0
  69. package/dist/parsers/parse-font.d.ts.map +1 -0
  70. package/dist/parsers/{font.js → parse-font.js} +4 -4
  71. package/dist/parsers/parse-font.js.map +1 -0
  72. package/dist/parsers/parse-pic.d.ts +20 -0
  73. package/dist/parsers/parse-pic.d.ts.map +1 -0
  74. package/dist/parsers/parse-pic.js +33 -0
  75. package/dist/parsers/parse-pic.js.map +1 -0
  76. package/dist/parsers/parse-view.d.ts +3 -0
  77. package/dist/parsers/parse-view.d.ts.map +1 -0
  78. package/dist/parsers/{view.js → parse-view.js} +6 -6
  79. package/dist/parsers/parse-view.js.map +1 -0
  80. package/dist/parsers/pic/handlers.d.ts +1 -6
  81. package/dist/parsers/pic/handlers.d.ts.map +1 -1
  82. package/dist/parsers/pic/handlers.js +60 -47
  83. package/dist/parsers/pic/handlers.js.map +1 -1
  84. package/dist/parsers/pic/op-codes.d.ts.map +1 -1
  85. package/dist/parsers/pic/pic-state.d.ts +3 -1
  86. package/dist/parsers/pic/pic-state.d.ts.map +1 -1
  87. package/dist/parsers/pic/pic-state.js +2 -2
  88. package/dist/parsers/pic/pic-state.js.map +1 -1
  89. package/dist/parsers/pic/points.d.ts +4 -4
  90. package/dist/parsers/pic/points.d.ts.map +1 -1
  91. package/dist/parsers/pic/points.js +3 -4
  92. package/dist/parsers/pic/points.js.map +1 -1
  93. package/dist/parsers/resource-header.d.ts +2 -2
  94. package/dist/parsers/resource-header.d.ts.map +1 -1
  95. package/dist/parsers/resource-header.js +18 -9
  96. package/dist/parsers/resource-header.js.map +1 -1
  97. package/dist/utils/exhaustive.js +1 -2
  98. package/dist/utils/exhaustive.js.map +1 -1
  99. package/dist/utils/repeat.d.ts.map +1 -1
  100. package/package.json +6 -7
  101. package/dist/models/vec2.d.ts +0 -8
  102. package/dist/models/vec2.d.ts.map +0 -1
  103. package/dist/models/vec2.js +0 -22
  104. package/dist/models/vec2.js.map +0 -1
  105. package/dist/parsers/cel.d.ts.map +0 -1
  106. package/dist/parsers/cel.js.map +0 -1
  107. package/dist/parsers/cursor.d.ts +0 -13
  108. package/dist/parsers/cursor.d.ts.map +0 -1
  109. package/dist/parsers/cursor.js.map +0 -1
  110. package/dist/parsers/font.d.ts +0 -7
  111. package/dist/parsers/font.d.ts.map +0 -1
  112. package/dist/parsers/font.js.map +0 -1
  113. package/dist/parsers/pic/index.d.ts +0 -2
  114. package/dist/parsers/pic/index.d.ts.map +0 -1
  115. package/dist/parsers/pic/index.js +0 -6
  116. package/dist/parsers/pic/index.js.map +0 -1
  117. package/dist/parsers/pic/parser.d.ts +0 -3
  118. package/dist/parsers/pic/parser.d.ts.map +0 -1
  119. package/dist/parsers/pic/parser.js +0 -31
  120. package/dist/parsers/pic/parser.js.map +0 -1
  121. package/dist/parsers/view.d.ts +0 -3
  122. package/dist/parsers/view.d.ts.map +0 -1
  123. package/dist/parsers/view.js.map +0 -1
  124. package/dist/screen/circles.d.ts +0 -3
  125. package/dist/screen/circles.d.ts.map +0 -1
  126. package/dist/screen/circles.js +0 -87
  127. package/dist/screen/circles.js.map +0 -1
  128. package/dist/screen/default-palette.d.ts +0 -2
  129. package/dist/screen/default-palette.d.ts.map +0 -1
  130. package/dist/screen/default-palette.js +0 -11
  131. package/dist/screen/default-palette.js.map +0 -1
  132. package/dist/screen/index.d.ts +0 -3
  133. package/dist/screen/index.d.ts.map +0 -1
  134. package/dist/screen/index.js +0 -9
  135. package/dist/screen/index.js.map +0 -1
  136. package/dist/screen/loop-padding-filter.d.ts +0 -5
  137. package/dist/screen/loop-padding-filter.d.ts.map +0 -1
  138. package/dist/screen/loop-padding-filter.js +0 -34
  139. package/dist/screen/loop-padding-filter.js.map +0 -1
  140. package/dist/screen/noise.d.ts +0 -3
  141. package/dist/screen/noise.d.ts.map +0 -1
  142. package/dist/screen/noise.js +0 -24
  143. package/dist/screen/noise.js.map +0 -1
  144. package/dist/screen/render-pic.d.ts +0 -11
  145. package/dist/screen/render-pic.d.ts.map +0 -1
  146. package/dist/screen/render-pic.js +0 -79
  147. package/dist/screen/render-pic.js.map +0 -1
  148. package/dist/screen/render-result.d.ts +0 -8
  149. package/dist/screen/render-result.d.ts.map +0 -1
  150. package/dist/screen/render-result.js.map +0 -1
  151. package/dist/screen/sci0-screen-impl.d.ts +0 -7
  152. package/dist/screen/sci0-screen-impl.d.ts.map +0 -1
  153. package/dist/screen/sci0-screen-impl.js +0 -163
  154. package/dist/screen/sci0-screen-impl.js.map +0 -1
  155. package/dist/screen/screen-buffer.d.ts +0 -6
  156. package/dist/screen/screen-buffer.d.ts.map +0 -1
  157. package/dist/screen/screen-buffer.js +0 -70
  158. package/dist/screen/screen-buffer.js.map +0 -1
  159. package/dist/screen/screen.d.ts +0 -17
  160. package/dist/screen/screen.d.ts.map +0 -1
  161. package/dist/screen/screen.js.map +0 -1
  162. package/dist/screen/tools/circles.d.ts +0 -3
  163. package/dist/screen/tools/circles.d.ts.map +0 -1
  164. package/dist/screen/tools/circles.js +0 -87
  165. package/dist/screen/tools/circles.js.map +0 -1
  166. package/dist/screen/tools/create-blitter.d.ts +0 -5
  167. package/dist/screen/tools/create-blitter.d.ts.map +0 -1
  168. package/dist/screen/tools/create-blitter.js +0 -22
  169. package/dist/screen/tools/create-blitter.js.map +0 -1
  170. package/dist/screen/tools/create-brush.d.ts +0 -3
  171. package/dist/screen/tools/create-brush.d.ts.map +0 -1
  172. package/dist/screen/tools/create-brush.js +0 -37
  173. package/dist/screen/tools/create-brush.js.map +0 -1
  174. package/dist/screen/tools/create-flood-fill.d.ts +0 -3
  175. package/dist/screen/tools/create-flood-fill.d.ts.map +0 -1
  176. package/dist/screen/tools/create-flood-fill.js +0 -63
  177. package/dist/screen/tools/create-flood-fill.js.map +0 -1
  178. package/dist/screen/tools/create-line.d.ts +0 -3
  179. package/dist/screen/tools/create-line.d.ts.map +0 -1
  180. package/dist/screen/tools/create-line.js +0 -46
  181. package/dist/screen/tools/create-line.js.map +0 -1
  182. package/dist/screen/tools/create-marker.d.ts +0 -3
  183. package/dist/screen/tools/create-marker.d.ts.map +0 -1
  184. package/dist/screen/tools/create-marker.js +0 -11
  185. package/dist/screen/tools/create-marker.js.map +0 -1
  186. package/dist/screen/tools/index.d.ts +0 -6
  187. package/dist/screen/tools/index.d.ts.map +0 -1
  188. package/dist/screen/tools/index.js +0 -14
  189. package/dist/screen/tools/index.js.map +0 -1
  190. package/dist/screen/tools/noise.d.ts +0 -3
  191. package/dist/screen/tools/noise.d.ts.map +0 -1
  192. package/dist/screen/tools/noise.js +0 -24
  193. package/dist/screen/tools/noise.js.map +0 -1
  194. package/dist/utils/tbuffer-helpers.d.ts +0 -5
  195. package/dist/utils/tbuffer-helpers.d.ts.map +0 -1
  196. package/dist/utils/tbuffer-helpers.js +0 -11
  197. package/dist/utils/tbuffer-helpers.js.map +0 -1
package/README.md CHANGED
@@ -5,7 +5,13 @@
5
5
  [license]: https://img.shields.io/npm/l/%404bitlabs%2Fsci0
6
6
  [dl]: https://img.shields.io/npm/dy/%404bitlabs%2Fsci0
7
7
 
8
- Library for parsing and rendering assets from [Sierra On-line's][sierra] [<abbr title="Sierra Creative Interpreter">SCI</abbr>-engine][sci0].
8
+ Library for decoding and parsing assets from [Sierra On-line's][sierra] [<abbr title="Sierra Creative Interpreter">SCI</abbr>-engine][sci0].
9
+
10
+ ## Documentation
11
+
12
+ Full documentation for the library can be found [here][docs].
13
+
14
+ [docs]: https://32bitkid.github.io/sci.js/modules/_4bitlabs_sci0.html
9
15
 
10
16
  ## Supported SCI0 resource types
11
17
 
@@ -35,19 +41,19 @@ const [mapping] = parseAllMappings(resourceMap);
35
41
  ## Working `ResourceMap` Entires
36
42
 
37
43
  ```ts
38
- import { getResourceNumber, getResourceTypeStr } from '@4bitlabs/sci0';
44
+ import { Resource } from '@4bitlabs/sci0';
39
45
 
40
46
  // finding by type
41
- const firstPic = mapping.find((it) => getResourceTypeStr(it.id) === 'Pic');
47
+ const firstPic = mapping.find((it) => Resource.getTypeStr(it.id) === 'Pic');
42
48
 
43
49
  // ...or by specific resource number.
44
- const num11 = mapping.find((it) => getResourceNumber(it.id) === 11);
50
+ const num11 = mapping.find((it) => Resource.getNumber(it.id) === 11);
45
51
  ```
46
52
 
47
53
  ## Getting the actual data
48
54
 
49
55
  ```ts
50
- import { parseHeaderFrom, decompress } from '@4bitlabs/sci0';
56
+ import { parseHeaderWithPayload, decompress } from '@4bitlabs/sci0';
51
57
 
52
58
  // Get the resource file that contains this asset, and its offset where the header starts.
53
59
  const { file, offset } = mapping.find(
@@ -58,12 +64,9 @@ const resource = await readFile(
58
64
  `path/to/RESOURCE.${file.toString().padStart(3, '0')}}`,
59
65
  );
60
66
 
61
- // Parse the asset header
62
- const header = parseHeaderFrom(resFile.subarray(offset, offset + 8));
63
- // Determine the payload length
64
- const payloadLength = getPayloadLength(header);
65
- // Snip out the bytes from the payload.
66
- const compressed = resFile.subarray(offset + 8, start + payloadLength);
67
+ // Parse the asset header and payload
68
+ const [header, compressed] = parseHeaderWithPayload(resource, offset);
69
+
67
70
  // Decompress the asset data
68
71
  const data = decompress('sci0', header.compression, compressed);
69
72
  ```
@@ -74,21 +77,5 @@ Example:
74
77
 
75
78
  _todo_
76
79
 
77
- ## `PIC` Resource
78
-
79
- Example:
80
-
81
- ```ts
82
- import { renderPic } from '@4bitlabs/sci0';
83
- import { RAW_CGA, generateSciDitherPairs, CGA_PAIRS } from '@4bitlabs/color';
84
- import { createDitherFilter, renderPixelData } from '@4bitlabs/image';
85
-
86
- const picData = Pic.parseFrom(data);
87
- const { visible, priority, control } = renderPic(picData);
88
- const image = renderPixelData(visible, {
89
- dither: createDitherFilter(CGA_PAIRS),
90
- });
91
- ```
92
-
93
80
  [sierra]: https://en.wikipedia.org/wiki/Sierra_Entertainment
94
81
  [sci0]: http://sciwiki.sierrahelp.com/index.php/Sierra_Creative_Interpreter
package/dist/index.d.ts CHANGED
@@ -1,37 +1,26 @@
1
1
  export type { ResourceHeader } from './models/resource-header';
2
2
  export type { ResourceMap } from './models/resource-map';
3
3
  export type { ResourceType } from './models/resource-type';
4
- export type { PatternCode, DrawCodes, DrawCommandStruct, SetPaletteCommand, UpdatePaletteCommand, BrushCommand, FillCommand, PolylineCommand, EmbeddedCelCommand, DrawCommand, } from './models/draw-command';
5
- export { DrawMode, isVisualMode, isPriorityMode, isControlMode, } from './models/draw-command';
6
- export { getResourceNumber, getResourceType, getResourceIdStr, getResourceTypeStr, isResourceType, isResourceNumber, } from './models/resource-id';
7
- export { ResourceTypes } from './models/resource-type';
8
- export type { RenderResult } from './screen/render-result';
9
- export { renderPic, generatePic, loopPaddingFilter } from './screen';
10
- export { parseAll as parseAllMappings, consume as consumeNextMappingChunk, } from './parsers/mapping';
11
- export { getPayloadLength, parseHeaderFrom } from './parsers/resource-header';
4
+ export type * as DrawCommands from './models/draw-commands';
5
+ export type { DrawCodes } from './models/draw-codes';
6
+ export type { PatternCode } from './models/pattern-code';
7
+ export type { DrawCommand } from './models/draw-command';
8
+ export { DrawMode } from './models/draw-mode';
9
+ export * as Resource from './models/resource-id';
10
+ export * as ResourceTypes from './models/resource-types';
11
+ export { parseAllMappings } from './parsers/mapping';
12
+ export { parseHeaderFrom, parseHeaderWithPayload, } from './parsers/resource-header';
12
13
  export { decompress } from './parsers/compression';
13
- import { parseFrom as parseCursor } from './parsers/cursor';
14
- import { parseFrom as parseFont } from './parsers/font';
15
- import { parseFrom as parseView } from './parsers/view';
16
- import { parseFrom as parsePic } from './parsers/pic';
17
- export { parseCursor, parseFont, parseView, parsePic };
14
+ export type { ParseCursorOptions } from './parsers/parse-cursor-options';
15
+ export type { ParseFontOptions } from './parsers/parse-font-options';
16
+ export { parseCursor } from './parsers/parse-cursor';
17
+ export { parseFont } from './parsers/parse-font';
18
+ export { parseView } from './parsers/parse-view';
19
+ export { parsePic } from './parsers/parse-pic';
18
20
  export { type Loop } from './models/view';
19
21
  export { type Cel } from './models/cel';
20
22
  export { type FontFace } from './models/font-face';
21
- /** @deprecated use parseCursor() instead */
22
- export declare const Cursor: {
23
- parseFrom: (source: Uint8Array, options?: import("./parsers/cursor").ParseCursorOptions) => import("./models/cursor").Cursor;
24
- };
25
- /** @deprecated use parseFont() instead */
26
- export declare const Font: {
27
- parseFrom: (source: Uint8Array, options?: import("./parsers/font").ParseFontOptions) => import("./models/font-face").FontFace;
28
- };
29
- /** @deprecated use parseView() instead */
30
- export declare const View: {
31
- parseFrom: (source: Uint8Array) => import("./models/view").View;
32
- };
33
- /** @deprecated use parsePic() instead */
34
- export declare const Pic: {
35
- parseFrom: (data: Uint8Array) => import("./models/draw-command").DrawCommand[];
36
- };
23
+ export { type Cursor } from './models/cursor';
24
+ export { type View } from './models/view';
25
+ export { type Pic } from './models/pic';
37
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EACV,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAErE,OAAO,EACL,QAAQ,IAAI,gBAAgB,EAC5B,OAAO,IAAI,uBAAuB,GACnC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAEvD,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,4CAA4C;AAC5C,eAAO,MAAM,MAAM;;CAElB,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,IAAI;;CAEhB,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,IAAI;;CAEhB,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,GAAG;;CAEf,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,KAAK,YAAY,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,eAAe,EACf,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,54 +1,46 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Pic = exports.View = exports.Font = exports.Cursor = exports.parsePic = exports.parseView = exports.parseFont = exports.parseCursor = exports.decompress = exports.parseHeaderFrom = exports.getPayloadLength = exports.consumeNextMappingChunk = exports.parseAllMappings = exports.loopPaddingFilter = exports.generatePic = exports.renderPic = exports.ResourceTypes = exports.isResourceNumber = exports.isResourceType = exports.getResourceTypeStr = exports.getResourceIdStr = exports.getResourceType = exports.getResourceNumber = exports.isControlMode = exports.isPriorityMode = exports.isVisualMode = exports.DrawMode = void 0;
4
- var draw_command_1 = require("./models/draw-command");
5
- Object.defineProperty(exports, "DrawMode", { enumerable: true, get: function () { return draw_command_1.DrawMode; } });
6
- Object.defineProperty(exports, "isVisualMode", { enumerable: true, get: function () { return draw_command_1.isVisualMode; } });
7
- Object.defineProperty(exports, "isPriorityMode", { enumerable: true, get: function () { return draw_command_1.isPriorityMode; } });
8
- Object.defineProperty(exports, "isControlMode", { enumerable: true, get: function () { return draw_command_1.isControlMode; } });
9
- var resource_id_1 = require("./models/resource-id");
10
- Object.defineProperty(exports, "getResourceNumber", { enumerable: true, get: function () { return resource_id_1.getResourceNumber; } });
11
- Object.defineProperty(exports, "getResourceType", { enumerable: true, get: function () { return resource_id_1.getResourceType; } });
12
- Object.defineProperty(exports, "getResourceIdStr", { enumerable: true, get: function () { return resource_id_1.getResourceIdStr; } });
13
- Object.defineProperty(exports, "getResourceTypeStr", { enumerable: true, get: function () { return resource_id_1.getResourceTypeStr; } });
14
- Object.defineProperty(exports, "isResourceType", { enumerable: true, get: function () { return resource_id_1.isResourceType; } });
15
- Object.defineProperty(exports, "isResourceNumber", { enumerable: true, get: function () { return resource_id_1.isResourceNumber; } });
16
- var resource_type_1 = require("./models/resource-type");
17
- Object.defineProperty(exports, "ResourceTypes", { enumerable: true, get: function () { return resource_type_1.ResourceTypes; } });
18
- var screen_1 = require("./screen");
19
- Object.defineProperty(exports, "renderPic", { enumerable: true, get: function () { return screen_1.renderPic; } });
20
- Object.defineProperty(exports, "generatePic", { enumerable: true, get: function () { return screen_1.generatePic; } });
21
- Object.defineProperty(exports, "loopPaddingFilter", { enumerable: true, get: function () { return screen_1.loopPaddingFilter; } });
26
+ exports.parsePic = exports.parseView = exports.parseFont = exports.parseCursor = exports.decompress = exports.parseHeaderWithPayload = exports.parseHeaderFrom = exports.parseAllMappings = exports.ResourceTypes = exports.Resource = exports.DrawMode = void 0;
27
+ var draw_mode_1 = require("./models/draw-mode");
28
+ Object.defineProperty(exports, "DrawMode", { enumerable: true, get: function () { return draw_mode_1.DrawMode; } });
29
+ exports.Resource = __importStar(require("./models/resource-id"));
30
+ exports.ResourceTypes = __importStar(require("./models/resource-types"));
22
31
  var mapping_1 = require("./parsers/mapping");
23
- Object.defineProperty(exports, "parseAllMappings", { enumerable: true, get: function () { return mapping_1.parseAll; } });
24
- Object.defineProperty(exports, "consumeNextMappingChunk", { enumerable: true, get: function () { return mapping_1.consume; } });
32
+ Object.defineProperty(exports, "parseAllMappings", { enumerable: true, get: function () { return mapping_1.parseAllMappings; } });
25
33
  var resource_header_1 = require("./parsers/resource-header");
26
- Object.defineProperty(exports, "getPayloadLength", { enumerable: true, get: function () { return resource_header_1.getPayloadLength; } });
27
34
  Object.defineProperty(exports, "parseHeaderFrom", { enumerable: true, get: function () { return resource_header_1.parseHeaderFrom; } });
35
+ Object.defineProperty(exports, "parseHeaderWithPayload", { enumerable: true, get: function () { return resource_header_1.parseHeaderWithPayload; } });
28
36
  var compression_1 = require("./parsers/compression");
29
37
  Object.defineProperty(exports, "decompress", { enumerable: true, get: function () { return compression_1.decompress; } });
30
- const cursor_1 = require("./parsers/cursor");
31
- Object.defineProperty(exports, "parseCursor", { enumerable: true, get: function () { return cursor_1.parseFrom; } });
32
- const font_1 = require("./parsers/font");
33
- Object.defineProperty(exports, "parseFont", { enumerable: true, get: function () { return font_1.parseFrom; } });
34
- const view_1 = require("./parsers/view");
35
- Object.defineProperty(exports, "parseView", { enumerable: true, get: function () { return view_1.parseFrom; } });
36
- const pic_1 = require("./parsers/pic");
37
- Object.defineProperty(exports, "parsePic", { enumerable: true, get: function () { return pic_1.parseFrom; } });
38
- /** @deprecated use parseCursor() instead */
39
- exports.Cursor = {
40
- parseFrom: cursor_1.parseFrom,
41
- };
42
- /** @deprecated use parseFont() instead */
43
- exports.Font = {
44
- parseFrom: font_1.parseFrom,
45
- };
46
- /** @deprecated use parseView() instead */
47
- exports.View = {
48
- parseFrom: view_1.parseFrom,
49
- };
50
- /** @deprecated use parsePic() instead */
51
- exports.Pic = {
52
- parseFrom: pic_1.parseFrom,
53
- };
38
+ var parse_cursor_1 = require("./parsers/parse-cursor");
39
+ Object.defineProperty(exports, "parseCursor", { enumerable: true, get: function () { return parse_cursor_1.parseCursor; } });
40
+ var parse_font_1 = require("./parsers/parse-font");
41
+ Object.defineProperty(exports, "parseFont", { enumerable: true, get: function () { return parse_font_1.parseFont; } });
42
+ var parse_view_1 = require("./parsers/parse-view");
43
+ Object.defineProperty(exports, "parseView", { enumerable: true, get: function () { return parse_view_1.parseView; } });
44
+ var parse_pic_1 = require("./parsers/parse-pic");
45
+ Object.defineProperty(exports, "parsePic", { enumerable: true, get: function () { return parse_pic_1.parsePic; } });
54
46
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAeA,sDAK+B;AAJ7B,wGAAA,QAAQ,OAAA;AACR,4GAAA,YAAY,OAAA;AACZ,8GAAA,cAAc,OAAA;AACd,6GAAA,aAAa,OAAA;AAGf,oDAO8B;AAN5B,gHAAA,iBAAiB,OAAA;AACjB,8GAAA,eAAe,OAAA;AACf,+GAAA,gBAAgB,OAAA;AAChB,iHAAA,kBAAkB,OAAA;AAClB,6GAAA,cAAc,OAAA;AACd,+GAAA,gBAAgB,OAAA;AAElB,wDAAuD;AAA9C,8GAAA,aAAa,OAAA;AAGtB,mCAAqE;AAA5D,mGAAA,SAAS,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAElD,6CAG2B;AAFzB,2GAAA,QAAQ,OAAoB;AAC5B,kHAAA,OAAO,OAA2B;AAEpC,6DAA8E;AAArE,mHAAA,gBAAgB,OAAA;AAAE,kHAAA,eAAe,OAAA;AAC1C,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AACnB,6CAA4D;AAKnD,4FALa,kBAAW,OAKb;AAJpB,yCAAwD;AAIlC,0FAJA,gBAAS,OAIA;AAH/B,yCAAwD;AAGvB,0FAHX,gBAAS,OAGW;AAF1C,uCAAsD;AAEV,yFAFtB,eAAQ,OAEsB;AAMpD,4CAA4C;AAC/B,QAAA,MAAM,GAAG;IACpB,SAAS,EAAE,kBAAW;CACvB,CAAC;AAEF,0CAA0C;AAC7B,QAAA,IAAI,GAAG;IAClB,SAAS,EAAE,gBAAS;CACrB,CAAC;AAEF,0CAA0C;AAC7B,QAAA,IAAI,GAAG;IAClB,SAAS,EAAE,gBAAS;CACrB,CAAC;AAEF,yCAAyC;AAC5B,QAAA,GAAG,GAAG;IACjB,SAAS,EAAE,eAAQ;CACpB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,gDAA8C;AAArC,qGAAA,QAAQ,OAAA;AAEjB,iEAAiD;AACjD,yEAAyD;AAEzD,6CAAqD;AAA5C,2GAAA,gBAAgB,OAAA;AACzB,6DAGmC;AAFjC,kHAAA,eAAe,OAAA;AACf,yHAAA,sBAAsB,OAAA;AAExB,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AAInB,uDAAqD;AAA5C,2GAAA,WAAW,OAAA;AACpB,mDAAiD;AAAxC,uGAAA,SAAS,OAAA;AAClB,mDAAiD;AAAxC,uGAAA,SAAS,OAAA;AAClB,iDAA+C;AAAtC,qGAAA,QAAQ,OAAA"}
@@ -0,0 +1,6 @@
1
+ export type DrawCodes = readonly [
2
+ visual: number,
3
+ priority: number,
4
+ control: number
5
+ ];
6
+ //# sourceMappingURL=draw-codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draw-codes.d.ts","sourceRoot":"","sources":["../../src/models/draw-codes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,SAAS;IAC/B,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,MAAM;CAChB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=render-result.js.map
3
+ //# sourceMappingURL=draw-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draw-codes.js","sourceRoot":"","sources":["../../src/models/draw-codes.ts"],"names":[],"mappings":""}
@@ -1,58 +1,3 @@
1
- import { type Vec2 } from '@4bitlabs/vec2';
2
- import { Cel } from './cel';
3
- export declare enum DrawMode {
4
- Visual = 1,
5
- Priority = 2,
6
- Control = 4,
7
- ___ = 0,
8
- VP_ = 3,
9
- V_C = 5,
10
- _CP = 6,
11
- VPC = 7
12
- }
13
- export declare const isVisualMode: (mode: DrawMode) => boolean;
14
- export declare const isPriorityMode: (mode: DrawMode) => boolean;
15
- export declare const isControlMode: (mode: DrawMode) => boolean;
16
- export type PatternCode = readonly [
17
- size: number,
18
- isRect: boolean,
19
- isSpray: boolean
20
- ];
21
- export type DrawCodes = readonly [
22
- visual: number,
23
- priority: number,
24
- control: number
25
- ];
26
- export type DrawCommandStruct<Type extends string, Options, Payload extends unknown[] = []> = readonly [type: Type, options: Options, ...Payload];
27
- export type SetPalettePayload = number[];
28
- export type SetPaletteCommand = DrawCommandStruct<'SET_PALETTE', [
29
- pal: number
30
- ], SetPalettePayload>;
31
- export type UpdatePaletteEntry = [pal: number, idx: number, color: number];
32
- export type UpdatePalettePayload = UpdatePaletteEntry[];
33
- export type UpdatePaletteCommand = DrawCommandStruct<'UPDATE_PALETTE', [
34
- ], UpdatePalettePayload>;
35
- export type BrushCommand = DrawCommandStruct<'BRUSH', [
36
- drawMode: DrawMode,
37
- drawCodes: DrawCodes,
38
- ...patternCode: PatternCode,
39
- textureCode: number
40
- ], [
41
- Vec2
42
- ]>;
43
- export type FillCommand = DrawCommandStruct<'FILL', [
44
- drawMode: DrawMode,
45
- drawCodes: DrawCodes
46
- ], [
47
- Vec2
48
- ]>;
49
- export type PolylineCommand = DrawCommandStruct<'PLINE', [
50
- drawMode: DrawMode,
51
- drawCodes: DrawCodes
52
- ], Vec2[]>;
53
- export type EmbeddedCelPayload = [pos: Vec2, cel: Cel];
54
- export type EmbeddedCelCommand = DrawCommandStruct<'CEL', [
55
- drawMode: DrawMode
56
- ], EmbeddedCelPayload>;
1
+ import type { BrushCommand, FillCommand, PolylineCommand, SetPaletteCommand, UpdatePaletteCommand, EmbeddedCelCommand } from './draw-commands';
57
2
  export type DrawCommand = BrushCommand | FillCommand | PolylineCommand | SetPaletteCommand | UpdatePaletteCommand | EmbeddedCelCommand;
58
3
  //# sourceMappingURL=draw-command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"draw-command.d.ts","sourceRoot":"","sources":["../../src/models/draw-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,oBAAY,QAAQ;IAClB,MAAM,IAAQ;IACd,QAAQ,IAAQ;IAChB,OAAO,IAAQ;IAEf,GAAG,IAAQ;IACX,GAAG,IAAQ;IACX,GAAG,IAAQ;IACX,GAAG,IAAQ;IACX,GAAG,IAAQ;CACZ;AAED,eAAO,MAAM,YAAY,SAAU,QAAQ,YACiB,CAAC;AAE7D,eAAO,MAAM,cAAc,SAAU,QAAQ,YACmB,CAAC;AAEjE,eAAO,MAAM,aAAa,SAAU,QAAQ,YACkB,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG,SAAS;IACjC,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,SAAS;IAC/B,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,MAAM;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAC3B,IAAI,SAAS,MAAM,EACnB,OAAO,EACP,OAAO,SAAS,OAAO,EAAE,GAAG,EAAE,IAC5B,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;AAExD,MAAM,MAAM,iBAAiB,GAAG,MAAM,EAAE,CAAC;AACzC,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAC/C,aAAa,EACb;IAAC,GAAG,EAAE,MAAM;CAAC,EACb,iBAAiB,CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3E,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,EAAE,CAAC;AACxD,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAClD,gBAAgB,EAChB;CAAE,EACF,oBAAoB,CACrB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAC1C,OAAO,EACP;IACE,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,SAAS;IACpB,GAAG,WAAW,EAAE,WAAW;IAC3B,WAAW,EAAE,MAAM;CACpB,EACD;IAAC,IAAI;CAAC,CACP,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,iBAAiB,CACzC,MAAM,EACN;IAAC,QAAQ,EAAE,QAAQ;IAAE,SAAS,EAAE,SAAS;CAAC,EAC1C;IAAC,IAAI;CAAC,CACP,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,iBAAiB,CAC7C,OAAO,EACP;IAAC,QAAQ,EAAE,QAAQ;IAAE,SAAS,EAAE,SAAS;CAAC,EAC1C,IAAI,EAAE,CACP,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACvD,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAChD,KAAK,EACL;IAAC,QAAQ,EAAE,QAAQ;CAAC,EACpB,kBAAkB,CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,WAAW,GACX,eAAe,GACf,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,CAAC"}
1
+ {"version":3,"file":"draw-command.d.ts","sourceRoot":"","sources":["../../src/models/draw-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,WAAW,GACX,eAAe,GACf,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,CAAC"}
@@ -1,21 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isControlMode = exports.isPriorityMode = exports.isVisualMode = exports.DrawMode = void 0;
4
- var DrawMode;
5
- (function (DrawMode) {
6
- DrawMode[DrawMode["Visual"] = 1] = "Visual";
7
- DrawMode[DrawMode["Priority"] = 2] = "Priority";
8
- DrawMode[DrawMode["Control"] = 4] = "Control";
9
- DrawMode[DrawMode["___"] = 0] = "___";
10
- DrawMode[DrawMode["VP_"] = 3] = "VP_";
11
- DrawMode[DrawMode["V_C"] = 5] = "V_C";
12
- DrawMode[DrawMode["_CP"] = 6] = "_CP";
13
- DrawMode[DrawMode["VPC"] = 7] = "VPC";
14
- })(DrawMode || (exports.DrawMode = DrawMode = {}));
15
- const isVisualMode = (mode) => (mode & DrawMode.Visual) === DrawMode.Visual;
16
- exports.isVisualMode = isVisualMode;
17
- const isPriorityMode = (mode) => (mode & DrawMode.Priority) === DrawMode.Priority;
18
- exports.isPriorityMode = isPriorityMode;
19
- const isControlMode = (mode) => (mode & DrawMode.Control) === DrawMode.Control;
20
- exports.isControlMode = isControlMode;
21
3
  //# sourceMappingURL=draw-command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"draw-command.js","sourceRoot":"","sources":["../../src/models/draw-command.ts"],"names":[],"mappings":";;;AAGA,IAAY,QAUX;AAVD,WAAY,QAAQ;IAClB,2CAAc,CAAA;IACd,+CAAgB,CAAA;IAChB,6CAAe,CAAA;IAEf,qCAAW,CAAA;IACX,qCAAW,CAAA;IACX,qCAAW,CAAA;IACX,qCAAW,CAAA;IACX,qCAAW,CAAA;AACb,CAAC,EAVW,QAAQ,wBAAR,QAAQ,QAUnB;AAEM,MAAM,YAAY,GAAG,CAAC,IAAc,EAAE,EAAE,CAC5C,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAc,KAAK,QAAQ,CAAC,MAAM,CAAC;AADhD,QAAA,YAAY,gBACoC;AAEtD,MAAM,cAAc,GAAG,CAAC,IAAc,EAAE,EAAE,CAC9C,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAc,KAAK,QAAQ,CAAC,QAAQ,CAAC;AADpD,QAAA,cAAc,kBACsC;AAE1D,MAAM,aAAa,GAAG,CAAC,IAAc,EAAE,EAAE,CAC7C,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAc,KAAK,QAAQ,CAAC,OAAO,CAAC;AADlD,QAAA,aAAa,iBACqC"}
1
+ {"version":3,"file":"draw-command.js","sourceRoot":"","sources":["../../src/models/draw-command.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ import type { Vec2 } from '@4bitlabs/vec2';
2
+ import { Cel } from './cel';
3
+ import { DrawMode } from './draw-mode';
4
+ import { DrawCodes } from './draw-codes';
5
+ import { PatternCode } from './pattern-code';
6
+ export type SetPaletteCommand = ['SET_PALETTE', [pal: number], ...number[]];
7
+ export type UpdatePaletteCommand = [
8
+ 'UPDATE_PALETTE',
9
+ [
10
+ ],
11
+ ...[pal: number, idx: number, color: number][]
12
+ ];
13
+ export type BrushCommand = [
14
+ 'BRUSH',
15
+ [
16
+ drawMode: DrawMode,
17
+ drawCodes: DrawCodes,
18
+ ...patternCode: PatternCode,
19
+ textureCode: number
20
+ ],
21
+ Vec2
22
+ ];
23
+ export type FillCommand = [
24
+ 'FILL',
25
+ [
26
+ drawMode: DrawMode,
27
+ drawCodes: DrawCodes
28
+ ],
29
+ Vec2
30
+ ];
31
+ export type PolylineCommand = [
32
+ 'PLINE',
33
+ [
34
+ drawMode: DrawMode,
35
+ drawCodes: DrawCodes
36
+ ],
37
+ ...Vec2[]
38
+ ];
39
+ export type EmbeddedCelCommand = [
40
+ 'CEL',
41
+ [
42
+ drawMode: DrawMode
43
+ ],
44
+ pos: Vec2,
45
+ cel: Cel
46
+ ];
47
+ //# sourceMappingURL=draw-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draw-commands.d.ts","sourceRoot":"","sources":["../../src/models/draw-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,MAAM,iBAAiB,GAAG,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAE5E,MAAM,MAAM,oBAAoB,GAAG;IACjC,gBAAgB;IAChB;KAAE;IACF,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE;CAC/C,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO;IACP;QACE,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,SAAS;QACpB,GAAG,WAAW,EAAE,WAAW;QAC3B,WAAW,EAAE,MAAM;KACpB;IACD,IAAI;CACL,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM;IACN;QAAC,QAAQ,EAAE,QAAQ;QAAE,SAAS,EAAE,SAAS;KAAC;IAC1C,IAAI;CACL,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO;IACP;QAAC,QAAQ,EAAE,QAAQ;QAAE,SAAS,EAAE,SAAS;KAAC;IAC1C,GAAG,IAAI,EAAE;CACV,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK;IACL;QAAC,QAAQ,EAAE,QAAQ;KAAC;IACpB,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;CACT,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=draw-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draw-commands.js","sourceRoot":"","sources":["../../src/models/draw-commands.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ export declare enum DrawMode {
2
+ Visual = 1,
3
+ Priority = 2,
4
+ Control = 4,
5
+ /** @hidden */
6
+ ___ = 0,
7
+ /** @hidden */
8
+ VP_ = 3,
9
+ /** @hidden */
10
+ V_C = 5,
11
+ /** @hidden */
12
+ _CP = 6,
13
+ /** @hidden */
14
+ VPC = 7
15
+ }
16
+ export declare namespace DrawMode {
17
+ const isVisualMode: (mode: DrawMode) => boolean;
18
+ const isPriorityMode: (mode: DrawMode) => boolean;
19
+ const isControlMode: (mode: DrawMode) => boolean;
20
+ }
21
+ //# sourceMappingURL=draw-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draw-mode.d.ts","sourceRoot":"","sources":["../../src/models/draw-mode.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,MAAM,IAAQ;IACd,QAAQ,IAAQ;IAChB,OAAO,IAAQ;IAEf,cAAc;IACd,GAAG,IAAQ;IACX,cAAc;IACd,GAAG,IAAQ;IACX,cAAc;IACd,GAAG,IAAQ;IACX,cAAc;IACd,GAAG,IAAQ;IACX,cAAc;IACd,GAAG,IAAQ;CACZ;AAGD,yBAAiB,QAAQ,CAAC;IACjB,MAAM,YAAY,SAAU,QAAQ,KAAG,OACc,CAAC;IAEtD,MAAM,cAAc,SAAU,QAAQ,KAAG,OACgB,CAAC;IAE1D,MAAM,aAAa,SAAU,QAAQ,KAAG,OACe,CAAC;CAChE"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DrawMode = void 0;
4
+ var DrawMode;
5
+ (function (DrawMode) {
6
+ DrawMode[DrawMode["Visual"] = 1] = "Visual";
7
+ DrawMode[DrawMode["Priority"] = 2] = "Priority";
8
+ DrawMode[DrawMode["Control"] = 4] = "Control";
9
+ /** @hidden */
10
+ DrawMode[DrawMode["___"] = 0] = "___";
11
+ /** @hidden */
12
+ DrawMode[DrawMode["VP_"] = 3] = "VP_";
13
+ /** @hidden */
14
+ DrawMode[DrawMode["V_C"] = 5] = "V_C";
15
+ /** @hidden */
16
+ DrawMode[DrawMode["_CP"] = 6] = "_CP";
17
+ /** @hidden */
18
+ DrawMode[DrawMode["VPC"] = 7] = "VPC";
19
+ })(DrawMode || (exports.DrawMode = DrawMode = {}));
20
+ // eslint-disable-next-line @typescript-eslint/no-namespace
21
+ (function (DrawMode) {
22
+ DrawMode.isVisualMode = (mode) => (mode & DrawMode.Visual) === DrawMode.Visual;
23
+ DrawMode.isPriorityMode = (mode) => (mode & DrawMode.Priority) === DrawMode.Priority;
24
+ DrawMode.isControlMode = (mode) => (mode & DrawMode.Control) === DrawMode.Control;
25
+ })(DrawMode || (exports.DrawMode = DrawMode = {}));
26
+ //# sourceMappingURL=draw-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draw-mode.js","sourceRoot":"","sources":["../../src/models/draw-mode.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAeX;AAfD,WAAY,QAAQ;IAClB,2CAAc,CAAA;IACd,+CAAgB,CAAA;IAChB,6CAAe,CAAA;IAEf,cAAc;IACd,qCAAW,CAAA;IACX,cAAc;IACd,qCAAW,CAAA;IACX,cAAc;IACd,qCAAW,CAAA;IACX,cAAc;IACd,qCAAW,CAAA;IACX,cAAc;IACd,qCAAW,CAAA;AACb,CAAC,EAfW,QAAQ,wBAAR,QAAQ,QAenB;AAED,2DAA2D;AAC3D,WAAiB,QAAQ;IACV,qBAAY,GAAG,CAAC,IAAc,EAAW,EAAE,CACrD,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAc,KAAK,QAAQ,CAAC,MAAM,CAAC;IAEhD,uBAAc,GAAG,CAAC,IAAc,EAAW,EAAE,CACvD,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAc,KAAK,QAAQ,CAAC,QAAQ,CAAC;IAEpD,sBAAa,GAAG,CAAC,IAAc,EAAW,EAAE,CACtD,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAc,KAAK,QAAQ,CAAC,OAAO,CAAC;AACjE,CAAC,EATgB,QAAQ,wBAAR,QAAQ,QASxB"}
@@ -0,0 +1,6 @@
1
+ export type PatternCode = readonly [
2
+ size: number,
3
+ isRect: boolean,
4
+ isSpray: boolean
5
+ ];
6
+ //# sourceMappingURL=pattern-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-code.d.ts","sourceRoot":"","sources":["../../src/models/pattern-code.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,SAAS;IACjC,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,OAAO;CACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pattern-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-code.js","sourceRoot":"","sources":["../../src/models/pattern-code.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { DrawCommand } from './draw-command';
2
+ /**
3
+ * A `PIC` resource.
4
+ *
5
+ * @see {@link parsePic}
6
+ */
7
+ export interface Pic {
8
+ [Symbol.iterator](): Iterator<DrawCommand, void, undefined>;
9
+ }
10
+ //# sourceMappingURL=pic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pic.d.ts","sourceRoot":"","sources":["../../src/models/pic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,WAAW,GAAG;IAClB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;CAC7D"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=screen.js.map
3
+ //# sourceMappingURL=pic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pic.js","sourceRoot":"","sources":["../../src/models/pic.ts"],"names":[],"mappings":""}
@@ -2,6 +2,10 @@ export interface ResourceHeader {
2
2
  readonly id: number;
3
3
  readonly packedSize: number;
4
4
  readonly actualSize: number;
5
+ /**
6
+ * The compression algorithm used for this resource.
7
+ * @see {@link decompress}
8
+ */
5
9
  readonly compression: number;
6
10
  }
7
11
  //# sourceMappingURL=resource-header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-header.d.ts","sourceRoot":"","sources":["../../src/models/resource-header.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B"}
1
+ {"version":3,"file":"resource-header.d.ts","sourceRoot":"","sources":["../../src/models/resource-header.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B"}
@@ -1,10 +1,6 @@
1
1
  import { ResourceType } from './resource-type';
2
- export declare const getResourceType: (id: number) => ResourceType;
3
- export declare const getResourceNumber: (id: number) => number;
4
- export declare const getResourceIdStr: (id: number) => string;
5
- export declare const getResourceTypeStr: (id: number) => "View" | "Pic" | "Script" | "Text" | "Sound" | "Memory" | "Vocab" | "Font" | "Cursor" | "Patch";
6
- type ResourceIdPredicate = (it: number) => boolean;
7
- export declare const isResourceType: (...types: ResourceType[]) => ResourceIdPredicate;
8
- export declare const isResourceNumber: (...numbers: number[]) => ResourceIdPredicate;
9
- export {};
2
+ export declare const getType: (id: number) => ResourceType;
3
+ export declare const getNumber: (id: number) => number;
4
+ export declare const getIdStr: (id: number) => string;
5
+ export declare const getTypeStr: (id: number) => string;
10
6
  //# sourceMappingURL=resource-id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-id.d.ts","sourceRoot":"","sources":["../../src/models/resource-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,eAAO,MAAM,eAAe,OAAQ,MAAM,KAAG,YAChB,CAAC;AAE9B,eAAO,MAAM,iBAAiB,OAAQ,MAAM,KAAG,MAA8B,CAAC;AAE9E,eAAO,MAAM,gBAAgB,OAAQ,MAAM,WAC0B,CAAC;AAEtE,eAAO,MAAM,kBAAkB,OAAQ,MAAM,oGA0B5C,CAAC;AAEF,KAAK,mBAAmB,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;AAEnD,eAAO,MAAM,cAAc,aACd,YAAY,EAAE,KAAG,mBAES,CAAC;AAExC,eAAO,MAAM,gBAAgB,eACd,MAAM,EAAE,KAAG,mBAEiB,CAAC"}
1
+ {"version":3,"file":"resource-id.d.ts","sourceRoot":"","sources":["../../src/models/resource-id.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAc/C,eAAO,MAAM,OAAO,OAAQ,MAAM,KAAG,YACR,CAAC;AAE9B,eAAO,MAAM,SAAS,OAAQ,MAAM,KAAG,MAA8B,CAAC;AAEtE,eAAO,MAAM,QAAQ,OAAQ,MAAM,WACkB,CAAC;AAEtD,eAAO,MAAM,UAAU,OAAQ,MAAM,KAAG,MA0BvC,CAAC"}