wc3maptranslator 4.0.1 → 4.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 (117) hide show
  1. package/dist/AngleConverter.d.ts +3 -0
  2. package/dist/AngleConverter.d.ts.map +1 -0
  3. package/dist/AngleConverter.js +12 -0
  4. package/dist/AngleConverter.js.map +1 -0
  5. package/dist/CommonInterfaces.d.ts +17 -0
  6. package/dist/CommonInterfaces.d.ts.map +1 -0
  7. package/dist/CommonInterfaces.js +3 -0
  8. package/dist/CommonInterfaces.js.map +1 -0
  9. package/dist/HexBuffer.d.ts +15 -0
  10. package/dist/HexBuffer.d.ts.map +1 -0
  11. package/{lib/HexBuffer.ts → dist/HexBuffer.js} +32 -42
  12. package/dist/HexBuffer.js.map +1 -0
  13. package/dist/W3Buffer.d.ts +14 -0
  14. package/dist/W3Buffer.d.ts.map +1 -0
  15. package/{lib/W3Buffer.ts → dist/W3Buffer.js} +25 -31
  16. package/dist/W3Buffer.js.map +1 -0
  17. package/dist/index.d.ts +3 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/{index.js → dist/index.js} +1 -1
  20. package/dist/index.js.map +1 -0
  21. package/dist/translators/CamerasTranslator.d.ts +23 -0
  22. package/dist/translators/CamerasTranslator.d.ts.map +1 -0
  23. package/{lib/translators/CamerasTranslator.ts → dist/translators/CamerasTranslator.js} +14 -39
  24. package/dist/translators/CamerasTranslator.js.map +1 -0
  25. package/dist/translators/DoodadsTranslator.d.ts +23 -0
  26. package/dist/translators/DoodadsTranslator.d.ts.map +1 -0
  27. package/{lib/translators/DoodadsTranslator.ts → dist/translators/DoodadsTranslator.js} +33 -65
  28. package/dist/translators/DoodadsTranslator.js.map +1 -0
  29. package/dist/translators/ImportsTranslator.d.ts +16 -0
  30. package/dist/translators/ImportsTranslator.d.ts.map +1 -0
  31. package/{lib/translators/ImportsTranslator.ts → dist/translators/ImportsTranslator.js} +21 -37
  32. package/dist/translators/ImportsTranslator.js.map +1 -0
  33. package/dist/translators/InfoTranslator.d.ts +124 -0
  34. package/dist/translators/InfoTranslator.d.ts.map +1 -0
  35. package/{lib/translators/InfoTranslator.ts → dist/translators/InfoTranslator.js} +108 -270
  36. package/dist/translators/InfoTranslator.js.map +1 -0
  37. package/dist/translators/ObjectsTranslator.d.ts +23 -0
  38. package/dist/translators/ObjectsTranslator.d.ts.map +1 -0
  39. package/{lib/translators/ObjectsTranslator.ts → dist/translators/ObjectsTranslator.js} +91 -125
  40. package/dist/translators/ObjectsTranslator.js.map +1 -0
  41. package/dist/translators/RegionsTranslator.d.ts +22 -0
  42. package/dist/translators/RegionsTranslator.d.ts.map +1 -0
  43. package/{lib/translators/RegionsTranslator.ts → dist/translators/RegionsTranslator.js} +18 -45
  44. package/dist/translators/RegionsTranslator.js.map +1 -0
  45. package/dist/translators/SoundsTranslator.d.ts +35 -0
  46. package/dist/translators/SoundsTranslator.d.ts.map +1 -0
  47. package/{lib/translators/SoundsTranslator.ts → dist/translators/SoundsTranslator.js} +30 -84
  48. package/dist/translators/SoundsTranslator.js.map +1 -0
  49. package/dist/translators/StringsTranslator.d.ts +7 -0
  50. package/dist/translators/StringsTranslator.d.ts.map +1 -0
  51. package/{lib/translators/StringsTranslator.ts → dist/translators/StringsTranslator.js} +12 -17
  52. package/dist/translators/StringsTranslator.js.map +1 -0
  53. package/dist/translators/TerrainTranslator.d.ts +33 -0
  54. package/dist/translators/TerrainTranslator.d.ts.map +1 -0
  55. package/{lib/translators/TerrainTranslator.ts → dist/translators/TerrainTranslator.js} +29 -84
  56. package/dist/translators/TerrainTranslator.js.map +1 -0
  57. package/dist/translators/UnitsTranslator.d.ts +40 -0
  58. package/dist/translators/UnitsTranslator.d.ts.map +1 -0
  59. package/{lib/translators/UnitsTranslator.ts → dist/translators/UnitsTranslator.js} +33 -95
  60. package/dist/translators/UnitsTranslator.js.map +1 -0
  61. package/{lib/translators/index.ts → dist/translators/index.d.ts} +1 -0
  62. package/dist/translators/index.d.ts.map +1 -0
  63. package/dist/translators/index.js +23 -0
  64. package/dist/translators/index.js.map +1 -0
  65. package/package.json +4 -3
  66. package/.codeclimate.yml +0 -12
  67. package/.editorconfig +0 -8
  68. package/.eslintignore +0 -5
  69. package/.eslintrc +0 -55
  70. package/.github/workflows/codeql-analysis.yml +0 -54
  71. package/.nycrc +0 -18
  72. package/.travis.yml +0 -23
  73. package/CHANGELOG.md +0 -78
  74. package/index.ts +0 -14
  75. package/lib/AngleConverter.ts +0 -7
  76. package/lib/CommonInterfaces.ts +0 -22
  77. package/test/.mocharc.json +0 -4
  78. package/test/AngleConverterTest.ts +0 -18
  79. package/test/HexBufferTest.ts +0 -170
  80. package/test/TranslatorReversion.ts +0 -218
  81. package/test/W3BufferTest.ts +0 -50
  82. package/test/data/cameras.json +0 -16
  83. package/test/data/doodads.json +0 -2730
  84. package/test/data/imports.json +0 -386
  85. package/test/data/info.json +0 -250
  86. package/test/data/obj-abilities.json +0 -4892
  87. package/test/data/obj-buffs.json +0 -38
  88. package/test/data/obj-destructables.json +0 -31
  89. package/test/data/obj-doodads.json +0 -38
  90. package/test/data/obj-items.json +0 -31
  91. package/test/data/obj-units.json +0 -40
  92. package/test/data/obj-upgrades.json +0 -38
  93. package/test/data/regions.json +0 -206
  94. package/test/data/sounds.json +0 -50
  95. package/test/data/strings.json +0 -115
  96. package/test/data/terrain.json +0 -1
  97. package/test/data/units.json +0 -452
  98. package/test/data/war3map.doo +0 -0
  99. package/test/data/war3map.imp +0 -0
  100. package/test/data/war3map.j +0 -3442
  101. package/test/data/war3map.shd +0 -0
  102. package/test/data/war3map.w3a +0 -0
  103. package/test/data/war3map.w3b +0 -0
  104. package/test/data/war3map.w3c +0 -0
  105. package/test/data/war3map.w3d +0 -0
  106. package/test/data/war3map.w3e +0 -0
  107. package/test/data/war3map.w3h +0 -0
  108. package/test/data/war3map.w3i +0 -0
  109. package/test/data/war3map.w3q +0 -0
  110. package/test/data/war3map.w3r +0 -0
  111. package/test/data/war3map.w3s +0 -0
  112. package/test/data/war3map.w3t +0 -0
  113. package/test/data/war3map.w3u +0 -0
  114. package/test/data/war3map.wts +0 -631
  115. package/test/data/war3mapUnits.doo +0 -0
  116. package/tsconfig.json +0 -25
  117. package/tslint.json +0 -47
@@ -0,0 +1,3 @@
1
+ export declare function deg2Rad(angleInDegrees: number): number;
2
+ export declare function rad2Deg(angleInRadians: number): number;
3
+ //# sourceMappingURL=AngleConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AngleConverter.d.ts","sourceRoot":"","sources":["../src/AngleConverter.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEtD"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rad2Deg = exports.deg2Rad = void 0;
4
+ function deg2Rad(angleInDegrees) {
5
+ return angleInDegrees * Math.PI / 180;
6
+ }
7
+ exports.deg2Rad = deg2Rad;
8
+ function rad2Deg(angleInRadians) {
9
+ return angleInRadians * 180 / Math.PI;
10
+ }
11
+ exports.rad2Deg = rad2Deg;
12
+ //# sourceMappingURL=AngleConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AngleConverter.js","sourceRoot":"","sources":["../src/AngleConverter.ts"],"names":[],"mappings":";;;AAAA,SAAgB,OAAO,CAAC,cAAsB;IAC1C,OAAO,cAAc,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;AAC1C,CAAC;AAFD,0BAEC;AAED,SAAgB,OAAO,CAAC,cAAsB;IAC1C,OAAO,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AAC1C,CAAC;AAFD,0BAEC"}
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" />
2
+ /**
3
+ * @type angle - An angle is measured in degrees, 0 <= angle < 360
4
+ */
5
+ export declare type angle = number;
6
+ export interface TranslationError {
7
+ message: string;
8
+ }
9
+ export interface WarResult {
10
+ buffer: Buffer;
11
+ errors?: TranslationError[];
12
+ }
13
+ export interface JsonResult<T = object> {
14
+ json: T;
15
+ errors?: TranslationError[];
16
+ }
17
+ //# sourceMappingURL=CommonInterfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommonInterfaces.d.ts","sourceRoot":"","sources":["../src/CommonInterfaces.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,oBAAY,KAAK,GAAG,MAAM,CAAC;AAM3B,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC9B;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,MAAM;IAClC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC9B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=CommonInterfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommonInterfaces.js","sourceRoot":"","sources":["../src/CommonInterfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ /// <reference types="node" />
2
+ export declare class HexBuffer {
3
+ private _buffer;
4
+ addString(str: string): void;
5
+ addNewLine(): void;
6
+ addChar(char: string): void;
7
+ addChars(chars: string): void;
8
+ addInt(int: number, isShort?: boolean): void;
9
+ addShort(short: number): void;
10
+ addFloat(float: number): void;
11
+ addByte(byte: any): void;
12
+ addNullTerminator(): void;
13
+ getBuffer(): Buffer;
14
+ }
15
+ //# sourceMappingURL=HexBuffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HexBuffer.d.ts","sourceRoot":"","sources":["../src/HexBuffer.ts"],"names":[],"mappings":";AAkBA,qBAAa,SAAS;IAClB,OAAO,CAAC,OAAO,CAAM;IAEd,SAAS,CAAC,GAAG,EAAE,MAAM;IAYrB,UAAU;IAKV,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB,QAAQ,CAAC,KAAK,EAAE,MAAM;IAMtB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe;IAM5C,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,QAAQ,CAAC,KAAK,EAAE,MAAM;IAWtB,OAAO,CAAC,IAAI,KAAA;IAIZ,iBAAiB;IAIjB,SAAS,IAAI,MAAM;CAG7B"}
@@ -1,25 +1,24 @@
1
- const ieee754 = require('ieee754'),
2
- IntN = require('intn'),
3
- intToHex = (intV: number, isShort: boolean): string[] => {
4
- // Creates a new 32-bit integer from the given number
5
- const intSize = isShort ? 16 : 32;
6
- const intNSize = new IntN(intSize);
7
- const byteNum = intNSize.fromInt(intV).bytes;
8
-
9
- // Map decimal bytes to hex bytes
10
- // Bytes are already in correct little-endian form
11
- return byteNum.map((Byte) => {
12
- return '0x' + Byte.toString(16);
13
- });
14
- },
15
- charToHex = (character: string): string => {
16
- return '0x' + character.charCodeAt(0).toString(16);
17
- };
18
-
19
- export class HexBuffer {
20
- private _buffer = [];
21
-
22
- public addString(str: string) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HexBuffer = void 0;
4
+ const ieee754 = require('ieee754'), IntN = require('intn'), intToHex = (intV, isShort) => {
5
+ // Creates a new 32-bit integer from the given number
6
+ const intSize = isShort ? 16 : 32;
7
+ const intNSize = new IntN(intSize);
8
+ const byteNum = intNSize.fromInt(intV).bytes;
9
+ // Map decimal bytes to hex bytes
10
+ // Bytes are already in correct little-endian form
11
+ return byteNum.map((Byte) => {
12
+ return '0x' + Byte.toString(16);
13
+ });
14
+ }, charToHex = (character) => {
15
+ return '0x' + character.charCodeAt(0).toString(16);
16
+ };
17
+ class HexBuffer {
18
+ constructor() {
19
+ this._buffer = [];
20
+ }
21
+ addString(str) {
23
22
  // Write each char to the buffer
24
23
  // "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2"
25
24
  // | "ucs-2" | "base64" | "latin1" | "binary" | "hex"
@@ -30,52 +29,43 @@ export class HexBuffer {
30
29
  }
31
30
  this.addNullTerminator();
32
31
  }
33
-
34
- public addNewLine() {
32
+ addNewLine() {
35
33
  this._buffer.push('0x0d'); // carriage return
36
34
  this._buffer.push('0x0a'); // line feed
37
35
  }
38
-
39
- public addChar(char: string) {
36
+ addChar(char) {
40
37
  this._buffer.push(charToHex(char));
41
38
  }
42
-
43
- public addChars(chars: string) {
39
+ addChars(chars) {
44
40
  chars.split('').forEach(char => {
45
41
  this.addChar(char);
46
42
  });
47
43
  }
48
-
49
- public addInt(int: number, isShort: boolean = false) {
44
+ addInt(int, isShort = false) {
50
45
  intToHex(int, isShort).forEach((Byte) => {
51
46
  this._buffer.push(Byte);
52
47
  });
53
48
  }
54
-
55
- public addShort(short: number) {
49
+ addShort(short) {
56
50
  this.addInt(short, true);
57
51
  }
58
-
59
- public addFloat(float: number) {
52
+ addFloat(float) {
60
53
  const buf = Buffer.alloc(4);
61
-
62
54
  // ieee754.write(buffer, value, buffer offset, little-endian, mantissa length, bytes);
63
55
  ieee754.write(buf, float, 0, true, 23, 4);
64
-
65
56
  buf.forEach((byte) => {
66
57
  this._buffer.push('0x' + byte.toString(16));
67
58
  });
68
59
  }
69
-
70
- public addByte(byte) {
60
+ addByte(byte) {
71
61
  this._buffer.push('0x' + byte.toString(16));
72
62
  }
73
-
74
- public addNullTerminator() {
63
+ addNullTerminator() {
75
64
  this._buffer.push('0x0');
76
65
  }
77
-
78
- public getBuffer(): Buffer {
66
+ getBuffer() {
79
67
  return Buffer.from(this._buffer);
80
68
  }
81
69
  }
70
+ exports.HexBuffer = HexBuffer;
71
+ //# sourceMappingURL=HexBuffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HexBuffer.js","sourceRoot":"","sources":["../src/HexBuffer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /// <reference types="node" />
2
+ export declare class W3Buffer {
3
+ private _offset;
4
+ private _buffer;
5
+ constructor(buffer: Buffer);
6
+ readInt(): number;
7
+ readShort(): number;
8
+ readFloat(): number;
9
+ readString(): string;
10
+ readChars(len?: number): string;
11
+ readByte(): number;
12
+ isExhausted(): boolean;
13
+ }
14
+ //# sourceMappingURL=W3Buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"W3Buffer.d.ts","sourceRoot":"","sources":["../src/W3Buffer.ts"],"names":[],"mappings":";AAEA,qBAAa,QAAQ;IAEjB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,MAAM;IAInB,OAAO,IAAI,MAAM;IAMjB,SAAS,IAAI,MAAM;IAMnB,SAAS,IAAI,MAAM;IAMnB,UAAU,IAAI,MAAM;IAcpB,SAAS,CAAC,GAAG,GAAE,MAAU,GAAG,MAAM;IAelC,QAAQ;IAOR,WAAW,IAAI,OAAO;CAGhC"}
@@ -1,69 +1,63 @@
1
- import roundTo from 'round-to';
2
-
3
- export class W3Buffer {
4
-
5
- private _offset = 0;
6
- private _buffer: Buffer;
7
-
8
- constructor(buffer: Buffer) {
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.W3Buffer = void 0;
7
+ const round_to_1 = __importDefault(require("round-to"));
8
+ class W3Buffer {
9
+ constructor(buffer) {
10
+ this._offset = 0;
9
11
  this._buffer = buffer;
10
12
  }
11
-
12
- public readInt(): number {
13
- const int: number = this._buffer.readInt32LE(this._offset);
13
+ readInt() {
14
+ const int = this._buffer.readInt32LE(this._offset);
14
15
  this._offset += 4;
15
16
  return int;
16
17
  }
17
-
18
- public readShort(): number {
19
- const int: number = this._buffer.readInt16LE(this._offset);
18
+ readShort() {
19
+ const int = this._buffer.readInt16LE(this._offset);
20
20
  this._offset += 2;
21
21
  return int;
22
22
  }
23
-
24
- public readFloat(): number {
25
- const float: number = this._buffer.readFloatLE(this._offset);
23
+ readFloat() {
24
+ const float = this._buffer.readFloatLE(this._offset);
26
25
  this._offset += 4;
27
- return roundTo(float, 3);
26
+ return round_to_1.default(float, 3);
28
27
  }
29
-
30
- public readString(): string {
28
+ readString() {
31
29
  const string = [];
32
-
33
30
  while (this._buffer[this._offset] !== 0x00) {
34
31
  string.push(this._buffer[this._offset]);
35
32
  this._offset += 1;
36
33
  }
37
34
  this._offset += 1; // consume the \0 end-of-string delimiter
38
-
39
35
  return string.map((ch) => {
40
36
  return String.fromCharCode(ch);
41
37
  }).join('');
42
38
  }
43
-
44
- public readChars(len: number = 1): string {
39
+ readChars(len = 1) {
45
40
  const string = [];
46
41
  const numCharsToRead = len || 1;
47
-
48
42
  for (let i = 0; i < numCharsToRead; i++) {
49
43
  string.push(this._buffer[this._offset]);
50
44
  this._offset += 1;
51
45
  }
52
-
53
46
  return string.map((ch) => {
54
- if (ch === 0x0) return '0';
47
+ if (ch === 0x0)
48
+ return '0';
55
49
  return String.fromCharCode(ch);
56
50
  }).join('');
57
51
  }
58
-
59
- public readByte() {
52
+ readByte() {
60
53
  // TODO what kind of binary? Do we use a BigInt or a node provided type from Buffer?
61
54
  const byte = this._buffer[this._offset];
62
55
  this._offset += 1;
63
56
  return byte;
64
57
  }
65
-
66
- public isExhausted(): boolean {
58
+ isExhausted() {
67
59
  return this._offset === this._buffer.length;
68
60
  }
69
61
  }
62
+ exports.W3Buffer = W3Buffer;
63
+ //# sourceMappingURL=W3Buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"W3Buffer.js","sourceRoot":"","sources":["../src/W3Buffer.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA+B;AAE/B,MAAa,QAAQ;IAKjB,YAAY,MAAc;QAHlB,YAAO,GAAG,CAAC,CAAC;QAIhB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAEM,OAAO;QACV,MAAM,GAAG,GAAW,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAClB,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,SAAS;QACZ,MAAM,GAAG,GAAW,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAClB,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,SAAS;QACZ,MAAM,KAAK,GAAW,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAClB,OAAO,kBAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC;IAEM,UAAU;QACb,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YACxC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;SACrB;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,yCAAyC;QAE5D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACrB,OAAO,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAEM,SAAS,CAAC,MAAc,CAAC;QAC5B,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,cAAc,GAAG,GAAG,IAAI,CAAC,CAAC;QAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;SACrB;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACrB,IAAI,EAAE,KAAK,GAAG;gBAAE,OAAO,GAAG,CAAC;YAC3B,OAAO,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAEM,QAAQ;QACX,oFAAoF;QACpF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAChD,CAAC;CACJ;AAlED,4BAkEC"}
@@ -0,0 +1,3 @@
1
+ import { CamerasTranslator, DoodadsTranslator, ImportsTranslator, InfoTranslator, ObjectsTranslator, RegionsTranslator, SoundsTranslator, StringsTranslator, TerrainTranslator, UnitsTranslator } from './translators';
2
+ export { CamerasTranslator, DoodadsTranslator, ImportsTranslator, InfoTranslator, ObjectsTranslator, RegionsTranslator, SoundsTranslator, StringsTranslator, TerrainTranslator, UnitsTranslator };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACH,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAClB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UnitsTranslator = exports.TerrainTranslator = exports.StringsTranslator = exports.SoundsTranslator = exports.RegionsTranslator = exports.ObjectsTranslator = exports.InfoTranslator = exports.ImportsTranslator = exports.DoodadsTranslator = exports.CamerasTranslator = void 0;
4
- const translators_1 = require("./lib/translators");
4
+ const translators_1 = require("./translators");
5
5
  Object.defineProperty(exports, "CamerasTranslator", { enumerable: true, get: function () { return translators_1.CamerasTranslator; } });
6
6
  Object.defineProperty(exports, "DoodadsTranslator", { enumerable: true, get: function () { return translators_1.DoodadsTranslator; } });
7
7
  Object.defineProperty(exports, "ImportsTranslator", { enumerable: true, get: function () { return translators_1.ImportsTranslator; } });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+CAWuB;AAGnB,kGAbA,+BAAiB,OAaA;AACjB,kGAbA,+BAAiB,OAaA;AACjB,kGAbA,+BAAiB,OAaA;AACjB,+FAbA,4BAAc,OAaA;AACd,kGAbA,+BAAiB,OAaA;AACjB,kGAbA,+BAAiB,OAaA;AACjB,iGAbA,8BAAgB,OAaA;AAChB,kGAbA,+BAAiB,OAaA;AACjB,kGAbA,+BAAiB,OAaA;AACjB,gGAbA,6BAAe,OAaA"}
@@ -0,0 +1,23 @@
1
+ /// <reference types="node" />
2
+ import { WarResult, JsonResult, angle } from '../CommonInterfaces';
3
+ interface Camera {
4
+ target: CameraTarget;
5
+ offsetZ: number;
6
+ rotation: angle;
7
+ aoa: angle;
8
+ distance: number;
9
+ roll: number;
10
+ fov: angle;
11
+ farClipping: number;
12
+ name: string;
13
+ }
14
+ interface CameraTarget {
15
+ x: number;
16
+ y: number;
17
+ }
18
+ export declare abstract class CamerasTranslator {
19
+ static jsonToWar(cameras: Camera[]): WarResult;
20
+ static warToJson(buffer: Buffer): JsonResult<Camera[]>;
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=CamerasTranslator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CamerasTranslator.d.ts","sourceRoot":"","sources":["../../src/translators/CamerasTranslator.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAElE,UAAU,MAAM;IACZ,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;IAChB,GAAG,EAAE,KAAK,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,KAAK,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,YAAY;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED,8BAAsB,iBAAiB;WAErB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS;WAkCvC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;CA2ChE"}
@@ -1,35 +1,16 @@
1
- import { HexBuffer } from '../HexBuffer';
2
- import { W3Buffer } from '../W3Buffer';
3
- import { WarResult, JsonResult, angle } from '../CommonInterfaces'
4
-
5
- interface Camera {
6
- target: CameraTarget;
7
- offsetZ: number;
8
- rotation: angle;
9
- aoa: angle; // angle of attack
10
- distance: number;
11
- roll: number;
12
- fov: angle; // field of view
13
- farClipping: number;
14
- name: string;
15
- }
16
-
17
- interface CameraTarget {
18
- x: number;
19
- y: number;
20
- }
21
-
22
- export abstract class CamerasTranslator {
23
-
24
- public static jsonToWar(cameras: Camera[]): WarResult {
25
- const outBufferToWar = new HexBuffer();
26
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CamerasTranslator = void 0;
4
+ const HexBuffer_1 = require("../HexBuffer");
5
+ const W3Buffer_1 = require("../W3Buffer");
6
+ class CamerasTranslator {
7
+ static jsonToWar(cameras) {
8
+ const outBufferToWar = new HexBuffer_1.HexBuffer();
27
9
  /*
28
10
  * Header
29
11
  */
30
12
  outBufferToWar.addInt(0); // file version
31
13
  outBufferToWar.addInt(cameras.length); // number of cameras
32
-
33
14
  /*
34
15
  * Body
35
16
  */
@@ -44,26 +25,21 @@ export abstract class CamerasTranslator {
44
25
  outBufferToWar.addFloat(camera.fov);
45
26
  outBufferToWar.addFloat(camera.farClipping);
46
27
  outBufferToWar.addFloat(100); // (?) unknown - usually set to 100
47
-
48
28
  // Camera name - must be null-terminated
49
29
  outBufferToWar.addString(camera.name);
50
30
  });
51
-
52
31
  return {
53
32
  errors: [],
54
33
  buffer: outBufferToWar.getBuffer()
55
34
  };
56
35
  }
57
-
58
- public static warToJson(buffer: Buffer): JsonResult<Camera[]> {
36
+ static warToJson(buffer) {
59
37
  const result = [];
60
- const outBufferToJSON = new W3Buffer(buffer);
61
-
38
+ const outBufferToJSON = new W3Buffer_1.W3Buffer(buffer);
62
39
  const fileVersion = outBufferToJSON.readInt(), // File version
63
- numCameras = outBufferToJSON.readInt(); // # of cameras
64
-
40
+ numCameras = outBufferToJSON.readInt(); // # of cameras
65
41
  for (let i = 0; i < numCameras; i++) {
66
- const camera: Camera = {
42
+ const camera = {
67
43
  target: {
68
44
  x: 0,
69
45
  y: 0
@@ -77,7 +53,6 @@ export abstract class CamerasTranslator {
77
53
  farClipping: 0,
78
54
  name: ''
79
55
  };
80
-
81
56
  camera.target.x = outBufferToJSON.readFloat();
82
57
  camera.target.y = outBufferToJSON.readFloat();
83
58
  camera.offsetZ = outBufferToJSON.readFloat();
@@ -89,13 +64,13 @@ export abstract class CamerasTranslator {
89
64
  camera.farClipping = outBufferToJSON.readFloat();
90
65
  outBufferToJSON.readFloat(); // consume this unknown float field
91
66
  camera.name = outBufferToJSON.readString();
92
-
93
67
  result.push(camera);
94
68
  }
95
-
96
69
  return {
97
70
  errors: [],
98
71
  json: result
99
72
  };
100
73
  }
101
74
  }
75
+ exports.CamerasTranslator = CamerasTranslator;
76
+ //# sourceMappingURL=CamerasTranslator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CamerasTranslator.js","sourceRoot":"","sources":["../../src/translators/CamerasTranslator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /// <reference types="node" />
2
+ import { WarResult, JsonResult, angle } from '../CommonInterfaces';
3
+ interface Doodad {
4
+ type: string;
5
+ variation: number;
6
+ position: number[];
7
+ angle: angle;
8
+ scale: number[];
9
+ skinId: string;
10
+ flags: DoodadFlag;
11
+ life: number;
12
+ id: number;
13
+ }
14
+ interface DoodadFlag {
15
+ visible: any;
16
+ solid: any;
17
+ }
18
+ export declare abstract class DoodadsTranslator {
19
+ static jsonToWar(doodadsJson: Doodad[]): WarResult;
20
+ static warToJson(buffer: Buffer): JsonResult<Doodad[]>;
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=DoodadsTranslator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DoodadsTranslator.d.ts","sourceRoot":"","sources":["../../src/translators/DoodadsTranslator.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAElE,UAAU,MAAM;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACd;AAED,UAAU,UAAU;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;CACd;AAWD,8BAAsB,iBAAiB;WAErB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS;WAkE3C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;CA8EhE"}