rw-parser-ng 2.0.0 → 2.0.2

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 (39) hide show
  1. package/lib/index.d.ts +2 -0
  2. package/lib/index.js +2 -0
  3. package/lib/renderware/dff/DffParser.d.ts +1 -44
  4. package/lib/utils/ByteStream.d.ts +1 -0
  5. package/lib/utils/ByteStream.js +5 -0
  6. package/package.json +2 -3
  7. package/tsconfig.json +3 -4
  8. package/lib/scripts/sort_models.d.ts +0 -1
  9. package/lib/scripts/sort_models.js +0 -185
  10. package/lib/scripts/sort_worker.d.ts +0 -1
  11. package/lib/scripts/sort_worker.js +0 -140
  12. package/lib/src/index.d.ts +0 -8
  13. package/lib/src/index.js +0 -28
  14. package/lib/src/renderware/RwFile.d.ts +0 -10
  15. package/lib/src/renderware/RwFile.js +0 -33
  16. package/lib/src/renderware/RwSections.d.ts +0 -20
  17. package/lib/src/renderware/RwSections.js +0 -29
  18. package/lib/src/renderware/dff/DffModelType.d.ts +0 -5
  19. package/lib/src/renderware/dff/DffModelType.js +0 -9
  20. package/lib/src/renderware/dff/DffParser.d.ts +0 -112
  21. package/lib/src/renderware/dff/DffParser.js +0 -418
  22. package/lib/src/renderware/errors/RwParseError.d.ts +0 -6
  23. package/lib/src/renderware/errors/RwParseError.js +0 -34
  24. package/lib/src/renderware/txd/TxdParser.d.ts +0 -38
  25. package/lib/src/renderware/txd/TxdParser.js +0 -185
  26. package/lib/src/renderware/utils/ImageDecoder.d.ts +0 -23
  27. package/lib/src/renderware/utils/ImageDecoder.js +0 -512
  28. package/lib/src/renderware/utils/ImageFormatEnums.d.ts +0 -25
  29. package/lib/src/renderware/utils/ImageFormatEnums.js +0 -32
  30. package/lib/src/renderware/utils/RwVersion.d.ts +0 -7
  31. package/lib/src/renderware/utils/RwVersion.js +0 -30
  32. package/lib/src/utils/ByteStream.d.ts +0 -17
  33. package/lib/src/utils/ByteStream.js +0 -65
  34. /package/lib/{src/renderware → renderware}/common/types.d.ts +0 -0
  35. /package/lib/{src/renderware → renderware}/common/types.js +0 -0
  36. /package/lib/{src/renderware → renderware}/ifp/IfpData.d.ts +0 -0
  37. /package/lib/{src/renderware → renderware}/ifp/IfpData.js +0 -0
  38. /package/lib/{src/renderware → renderware}/ifp/IfpParser.d.ts +0 -0
  39. /package/lib/{src/renderware → renderware}/ifp/IfpParser.js +0 -0
@@ -1,185 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.TxdParser = void 0;
19
- var RwFile_1 = require("../RwFile");
20
- var ImageDecoder_1 = require("../utils/ImageDecoder");
21
- var ImageFormatEnums_1 = require("../utils/ImageFormatEnums");
22
- var TxdParser = /** @class */ (function (_super) {
23
- __extends(TxdParser, _super);
24
- function TxdParser(stream) {
25
- return _super.call(this, stream) || this;
26
- }
27
- TxdParser.prototype.parse = function () {
28
- return {
29
- textureDictionary: this.readTextureDictionary(),
30
- };
31
- };
32
- TxdParser.prototype.readTextureDictionary = function () {
33
- this.readSectionHeader();
34
- this.readSectionHeader();
35
- var textureCount = this.readUint16();
36
- this.skip(2);
37
- var textureNatives = [];
38
- for (var i = 0; i < textureCount; i++) {
39
- var textureNative = this.readTextureNative();
40
- textureNatives.push(textureNative);
41
- }
42
- // Skip unused extension
43
- this.skip(this.readSectionHeader().sectionSize);
44
- return { textureCount: textureCount, textureNatives: textureNatives };
45
- };
46
- TxdParser.prototype.readTextureNative = function () {
47
- this.readSectionHeader();
48
- this.readSectionHeader();
49
- // TODO: Structure this part better
50
- // Texture format
51
- var platformId = this.readUint32();
52
- var flags = this.readUint32();
53
- var filterMode = (flags & 0xFF);
54
- var uAddressing = (flags & 0xF00) >> 8;
55
- var vAddressing = (flags & 0xF000) >> 12;
56
- var textureName = this.readString(32);
57
- var maskName = this.readString(32);
58
- // Raster format
59
- var rasterFormat = this.readUint32();
60
- var d3dFormat = this.readString(4);
61
- var width = this.readUint16();
62
- var height = this.readUint16();
63
- var depth = this.readUint8();
64
- var mipmapCount = this.readUint8();
65
- var rasterType = this.readUint8();
66
- var compressionFlags = this.readUint8(); // Is "dxtType" for III/VC
67
- // SA
68
- var alpha = (compressionFlags & (1 << 0)) !== 0;
69
- var cubeTexture = (compressionFlags & (1 << 1)) !== 0;
70
- var autoMipMaps = (compressionFlags & (1 << 2)) !== 0;
71
- var compressed = (compressionFlags & (1 << 3)) !== 0;
72
- var paletteType = (rasterFormat >> 13) & 3;
73
- var mipWidth = width;
74
- var mipHeight = height;
75
- var mipmaps = [];
76
- var palette = (paletteType !== ImageFormatEnums_1.PaletteType.PALETTE_NONE ? this.readPalette(paletteType, depth) : new Uint8Array(0));
77
- for (var i = 0; i < mipmapCount; i++) {
78
- var rasterSize = this.readUint32();
79
- var raster = this.read(rasterSize);
80
- if (i == 0) {
81
- // Raw RGBA presentation
82
- var bitmap = void 0;
83
- if (palette.length !== 0) {
84
- var rasterFormatsWithoutAlpha = [
85
- ImageFormatEnums_1.RasterFormat.RASTER_565,
86
- ImageFormatEnums_1.RasterFormat.RASTER_LUM,
87
- ImageFormatEnums_1.RasterFormat.RASTER_888,
88
- ImageFormatEnums_1.RasterFormat.RASTER_555
89
- ];
90
- var hasAlpha = ((platformId === ImageFormatEnums_1.PlatformType.D3D9 && alpha) || (platformId == ImageFormatEnums_1.PlatformType.D3D8 && !rasterFormatsWithoutAlpha.includes(rasterFormat)));
91
- bitmap = Array.from(this.getBitmapWithPalette(paletteType, depth, hasAlpha, raster, palette, width, height));
92
- }
93
- else if (platformId === ImageFormatEnums_1.PlatformType.D3D8 && compressionFlags !== 0) {
94
- bitmap = Array.from(this.getBitmapWithDXT('DXT' + compressionFlags, raster, width, height));
95
- }
96
- else if (platformId === ImageFormatEnums_1.PlatformType.D3D9 && compressed) {
97
- bitmap = Array.from(this.getBitmapWithDXT(d3dFormat, raster, width, height));
98
- }
99
- else {
100
- bitmap = Array.from(this.getBitmapWithRasterFormat(rasterFormat, raster, width, height));
101
- }
102
- mipmaps.push(bitmap);
103
- }
104
- mipWidth /= 2;
105
- mipHeight /= 2;
106
- }
107
- // Skip extension
108
- this.skip(this.readSectionHeader().sectionSize);
109
- return {
110
- platformId: platformId,
111
- filterMode: filterMode,
112
- uAddressing: uAddressing,
113
- vAddressing: vAddressing,
114
- textureName: textureName,
115
- maskName: maskName,
116
- rasterFormat: rasterFormat,
117
- d3dFormat: d3dFormat,
118
- width: width,
119
- height: height,
120
- depth: depth,
121
- mipmapCount: mipmapCount,
122
- rasterType: rasterType,
123
- alpha: alpha,
124
- cubeTexture: cubeTexture,
125
- autoMipMaps: autoMipMaps,
126
- compressed: compressed,
127
- mipmaps: mipmaps,
128
- };
129
- };
130
- TxdParser.prototype.readPalette = function (paletteType, depth) {
131
- var size = (paletteType === ImageFormatEnums_1.PaletteType.PALETTE_8 ? 1024 : (depth === 4 ? 64 : 128));
132
- return this.read(size);
133
- };
134
- TxdParser.prototype.getBitmapWithPalette = function (paletteType, depth, hasAlpha, raster, palette, width, height) {
135
- if (paletteType !== ImageFormatEnums_1.PaletteType.PALETTE_8 && depth == 4) {
136
- return (hasAlpha
137
- ? ImageDecoder_1.ImageDecoder.pal4(raster, palette, width, height)
138
- : ImageDecoder_1.ImageDecoder.pal4NoAlpha(raster, palette, width, height));
139
- }
140
- return (hasAlpha
141
- ? ImageDecoder_1.ImageDecoder.pal8(raster, palette, width, height)
142
- : ImageDecoder_1.ImageDecoder.pal8NoAlpha(raster, palette, width, height));
143
- };
144
- TxdParser.prototype.getBitmapWithDXT = function (dxtType, raster, width, height) {
145
- switch (dxtType) {
146
- case ImageFormatEnums_1.D3DFormat.D3D_DXT1:
147
- return ImageDecoder_1.ImageDecoder.bc1(raster, width, height);
148
- case ImageFormatEnums_1.D3DFormat.D3D_DXT2:
149
- return ImageDecoder_1.ImageDecoder.bc2(raster, width, height, true);
150
- case ImageFormatEnums_1.D3DFormat.D3D_DXT3:
151
- return ImageDecoder_1.ImageDecoder.bc2(raster, width, height, false);
152
- case ImageFormatEnums_1.D3DFormat.D3D_DXT4:
153
- return ImageDecoder_1.ImageDecoder.bc3(raster, width, height, true);
154
- case ImageFormatEnums_1.D3DFormat.D3D_DXT5:
155
- return ImageDecoder_1.ImageDecoder.bc3(raster, width, height, false);
156
- // LUM8_A8 has compressed flag
157
- case ImageFormatEnums_1.D3DFormat.D3DFMT_A8L8:
158
- return ImageDecoder_1.ImageDecoder.lum8a8(raster, width, height);
159
- default:
160
- return new Uint8Array(0);
161
- }
162
- };
163
- TxdParser.prototype.getBitmapWithRasterFormat = function (rasterFormat, raster, width, height) {
164
- switch (rasterFormat) {
165
- case ImageFormatEnums_1.RasterFormat.RASTER_1555:
166
- return ImageDecoder_1.ImageDecoder.bgra1555(raster, width, height);
167
- case ImageFormatEnums_1.RasterFormat.RASTER_565:
168
- return ImageDecoder_1.ImageDecoder.bgra565(raster, width, height);
169
- case ImageFormatEnums_1.RasterFormat.RASTER_4444:
170
- return ImageDecoder_1.ImageDecoder.bgra4444(raster, width, height);
171
- case ImageFormatEnums_1.RasterFormat.RASTER_LUM:
172
- return ImageDecoder_1.ImageDecoder.lum8(raster, width, height);
173
- case ImageFormatEnums_1.RasterFormat.RASTER_8888:
174
- return ImageDecoder_1.ImageDecoder.bgra8888(raster, width, height);
175
- case ImageFormatEnums_1.RasterFormat.RASTER_888:
176
- return ImageDecoder_1.ImageDecoder.bgra888(raster, width, height);
177
- case ImageFormatEnums_1.RasterFormat.RASTER_555:
178
- return ImageDecoder_1.ImageDecoder.bgra555(raster, width, height);
179
- default:
180
- return new Uint8Array(0);
181
- }
182
- };
183
- return TxdParser;
184
- }(RwFile_1.RwFile));
185
- exports.TxdParser = TxdParser;
@@ -1,23 +0,0 @@
1
- export declare class ImageDecoder {
2
- static readUInt16LE(buf: Uint8Array, offset: number): number;
3
- static readUInt32LE(buf: Uint8Array, offset: number): number;
4
- static decode565(bits: number): [number, number, number];
5
- static decode555(bits: number): [number, number, number];
6
- static decode1555(bits: number): [number, number, number, number];
7
- static decode4444(bits: number): [number, number, number, number];
8
- static bc1(data: Uint8Array, width: number, height: number): Uint8Array;
9
- static bc2(data: Uint8Array, width: number, height: number, premultiplied: boolean): Uint8Array;
10
- static bc3(data: Uint8Array, width: number, height: number, premultiplied: boolean): Uint8Array;
11
- static bgra1555(data: Uint8Array, width: number, height: number): Uint8Array;
12
- static bgra4444(data: Uint8Array, width: number, height: number): Uint8Array;
13
- static bgra555(data: Uint8Array, width: number, height: number): Uint8Array;
14
- static bgra565(data: Uint8Array, width: number, height: number): Uint8Array;
15
- static bgra888(data: Uint8Array, width: number, height: number): Uint8Array;
16
- static bgra8888(data: Uint8Array, width: number, height: number): Uint8Array;
17
- static lum8(data: Uint8Array, width: number, height: number): Uint8Array;
18
- static lum8a8(data: Uint8Array, width: number, height: number): Uint8Array;
19
- static pal4(data: Uint8Array, palette: Uint8Array, width: number, height: number): Uint8Array;
20
- static pal4NoAlpha(data: Uint8Array, palette: Uint8Array, width: number, height: number): Uint8Array;
21
- static pal8(data: Uint8Array, palette: Uint8Array, width: number, height: number): Uint8Array;
22
- static pal8NoAlpha(data: Uint8Array, palette: Uint8Array, width: number, height: number): Uint8Array;
23
- }