wc3maptranslator 4.0.4 → 5.0.0

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 (130) hide show
  1. package/README.md +62 -43
  2. package/dist/src/AngleConverter.d.ts +4 -0
  3. package/dist/src/AngleConverter.d.ts.map +1 -0
  4. package/dist/{AngleConverter.js.map → src/AngleConverter.js.map} +1 -1
  5. package/dist/src/CommonInterfaces.d.ts +21 -0
  6. package/dist/src/CommonInterfaces.d.ts.map +1 -0
  7. package/dist/src/CommonInterfaces.js +20 -0
  8. package/dist/src/CommonInterfaces.js.map +1 -0
  9. package/dist/{HexBuffer.d.ts → src/HexBuffer.d.ts} +5 -2
  10. package/dist/src/HexBuffer.d.ts.map +1 -0
  11. package/dist/src/HexBuffer.js +71 -0
  12. package/dist/src/HexBuffer.js.map +1 -0
  13. package/dist/src/PlayerBitfield.d.ts +30 -0
  14. package/dist/src/PlayerBitfield.d.ts.map +1 -0
  15. package/dist/src/PlayerBitfield.js +56 -0
  16. package/dist/src/PlayerBitfield.js.map +1 -0
  17. package/dist/src/TranslatorMappings.d.ts +12 -0
  18. package/dist/src/TranslatorMappings.d.ts.map +1 -0
  19. package/dist/src/TranslatorMappings.js +47 -0
  20. package/dist/src/TranslatorMappings.js.map +1 -0
  21. package/dist/{W3Buffer.d.ts → src/W3Buffer.d.ts} +4 -1
  22. package/dist/src/W3Buffer.d.ts.map +1 -0
  23. package/dist/{W3Buffer.js → src/W3Buffer.js} +13 -9
  24. package/dist/src/W3Buffer.js.map +1 -0
  25. package/dist/src/cli.d.ts +3 -0
  26. package/dist/src/cli.d.ts.map +1 -0
  27. package/dist/src/cli.js +162 -0
  28. package/dist/src/cli.js.map +1 -0
  29. package/dist/src/index.d.ts +12 -0
  30. package/dist/src/index.d.ts.map +1 -0
  31. package/dist/src/index.js +27 -0
  32. package/dist/src/index.js.map +1 -0
  33. package/dist/src/translators/CamerasTranslator.d.ts +28 -0
  34. package/dist/src/translators/CamerasTranslator.d.ts.map +1 -0
  35. package/dist/{translators → src/translators}/CamerasTranslator.js +25 -24
  36. package/dist/src/translators/CamerasTranslator.js.map +1 -0
  37. package/dist/src/translators/DoodadsTranslator.d.ts +36 -0
  38. package/dist/src/translators/DoodadsTranslator.d.ts.map +1 -0
  39. package/dist/src/translators/DoodadsTranslator.js +138 -0
  40. package/dist/src/translators/DoodadsTranslator.js.map +1 -0
  41. package/dist/src/translators/ImportsTranslator.d.ts +8 -0
  42. package/dist/src/translators/ImportsTranslator.d.ts.map +1 -0
  43. package/dist/src/translators/ImportsTranslator.js +36 -0
  44. package/dist/src/translators/ImportsTranslator.js.map +1 -0
  45. package/dist/src/translators/InfoTranslator.d.ts +212 -0
  46. package/dist/src/translators/InfoTranslator.d.ts.map +1 -0
  47. package/dist/src/translators/InfoTranslator.js +521 -0
  48. package/dist/src/translators/InfoTranslator.js.map +1 -0
  49. package/dist/src/translators/ObjectsTranslator.d.ts +39 -0
  50. package/dist/src/translators/ObjectsTranslator.d.ts.map +1 -0
  51. package/dist/src/translators/ObjectsTranslator.js +239 -0
  52. package/dist/src/translators/ObjectsTranslator.js.map +1 -0
  53. package/dist/{translators → src/translators}/RegionsTranslator.d.ts +5 -4
  54. package/dist/src/translators/RegionsTranslator.d.ts.map +1 -0
  55. package/dist/{translators → src/translators}/RegionsTranslator.js +18 -35
  56. package/dist/src/translators/RegionsTranslator.js.map +1 -0
  57. package/dist/src/translators/SoundsTranslator.d.ts +75 -0
  58. package/dist/src/translators/SoundsTranslator.d.ts.map +1 -0
  59. package/dist/src/translators/SoundsTranslator.js +202 -0
  60. package/dist/src/translators/SoundsTranslator.js.map +1 -0
  61. package/dist/src/translators/StringsTranslator.d.ts +13 -0
  62. package/dist/src/translators/StringsTranslator.d.ts.map +1 -0
  63. package/dist/src/translators/StringsTranslator.js +43 -0
  64. package/dist/src/translators/StringsTranslator.js.map +1 -0
  65. package/dist/src/translators/TerrainTranslator.d.ts +55 -0
  66. package/dist/src/translators/TerrainTranslator.d.ts.map +1 -0
  67. package/dist/src/translators/TerrainTranslator.js +196 -0
  68. package/dist/src/translators/TerrainTranslator.js.map +1 -0
  69. package/dist/src/translators/UnitsTranslator.d.ts +102 -0
  70. package/dist/src/translators/UnitsTranslator.d.ts.map +1 -0
  71. package/dist/src/translators/UnitsTranslator.js +295 -0
  72. package/dist/src/translators/UnitsTranslator.js.map +1 -0
  73. package/package.json +28 -25
  74. package/dist/AngleConverter.d.ts +0 -3
  75. package/dist/AngleConverter.d.ts.map +0 -1
  76. package/dist/CommonInterfaces.d.ts +0 -17
  77. package/dist/CommonInterfaces.d.ts.map +0 -1
  78. package/dist/CommonInterfaces.js +0 -3
  79. package/dist/CommonInterfaces.js.map +0 -1
  80. package/dist/HexBuffer.d.ts.map +0 -1
  81. package/dist/HexBuffer.js +0 -71
  82. package/dist/HexBuffer.js.map +0 -1
  83. package/dist/W3Buffer.d.ts.map +0 -1
  84. package/dist/W3Buffer.js.map +0 -1
  85. package/dist/index.d.ts +0 -3
  86. package/dist/index.d.ts.map +0 -1
  87. package/dist/index.js +0 -15
  88. package/dist/index.js.map +0 -1
  89. package/dist/translators/CamerasTranslator.d.ts +0 -23
  90. package/dist/translators/CamerasTranslator.d.ts.map +0 -1
  91. package/dist/translators/CamerasTranslator.js.map +0 -1
  92. package/dist/translators/DoodadsTranslator.d.ts +0 -23
  93. package/dist/translators/DoodadsTranslator.d.ts.map +0 -1
  94. package/dist/translators/DoodadsTranslator.js +0 -146
  95. package/dist/translators/DoodadsTranslator.js.map +0 -1
  96. package/dist/translators/ImportsTranslator.d.ts +0 -16
  97. package/dist/translators/ImportsTranslator.d.ts.map +0 -1
  98. package/dist/translators/ImportsTranslator.js +0 -62
  99. package/dist/translators/ImportsTranslator.js.map +0 -1
  100. package/dist/translators/InfoTranslator.d.ts +0 -124
  101. package/dist/translators/InfoTranslator.d.ts.map +0 -1
  102. package/dist/translators/InfoTranslator.js +0 -422
  103. package/dist/translators/InfoTranslator.js.map +0 -1
  104. package/dist/translators/ObjectsTranslator.d.ts +0 -23
  105. package/dist/translators/ObjectsTranslator.d.ts.map +0 -1
  106. package/dist/translators/ObjectsTranslator.js +0 -208
  107. package/dist/translators/ObjectsTranslator.js.map +0 -1
  108. package/dist/translators/RegionsTranslator.d.ts.map +0 -1
  109. package/dist/translators/RegionsTranslator.js.map +0 -1
  110. package/dist/translators/SoundsTranslator.d.ts +0 -35
  111. package/dist/translators/SoundsTranslator.d.ts.map +0 -1
  112. package/dist/translators/SoundsTranslator.js +0 -183
  113. package/dist/translators/SoundsTranslator.js.map +0 -1
  114. package/dist/translators/StringsTranslator.d.ts +0 -7
  115. package/dist/translators/StringsTranslator.d.ts.map +0 -1
  116. package/dist/translators/StringsTranslator.js +0 -44
  117. package/dist/translators/StringsTranslator.js.map +0 -1
  118. package/dist/translators/TerrainTranslator.d.ts +0 -33
  119. package/dist/translators/TerrainTranslator.d.ts.map +0 -1
  120. package/dist/translators/TerrainTranslator.js +0 -221
  121. package/dist/translators/TerrainTranslator.js.map +0 -1
  122. package/dist/translators/UnitsTranslator.d.ts +0 -40
  123. package/dist/translators/UnitsTranslator.d.ts.map +0 -1
  124. package/dist/translators/UnitsTranslator.js +0 -199
  125. package/dist/translators/UnitsTranslator.js.map +0 -1
  126. package/dist/translators/index.d.ts +0 -11
  127. package/dist/translators/index.d.ts.map +0 -1
  128. package/dist/translators/index.js +0 -23
  129. package/dist/translators/index.js.map +0 -1
  130. /package/dist/{AngleConverter.js → src/AngleConverter.js} +0 -0
@@ -1 +0,0 @@
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"}
@@ -1,146 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DoodadsTranslator = void 0;
4
- const HexBuffer_1 = require("../HexBuffer");
5
- const W3Buffer_1 = require("../W3Buffer");
6
- const AngleConverter_1 = require("../AngleConverter");
7
- var flag;
8
- (function (flag) {
9
- // 0= invisible and non-solid tree
10
- // 1= visible but non-solid tree
11
- // 2= normal tree (visible and solid)
12
- flag[flag["undefined"] = 0] = "undefined";
13
- flag[flag["visible"] = 1 || 2] = "visible";
14
- flag[flag["solid"] = 3] = "solid";
15
- })(flag || (flag = {}));
16
- class DoodadsTranslator {
17
- static jsonToWar(doodadsJson) {
18
- const outBufferToWar = new HexBuffer_1.HexBuffer();
19
- /*
20
- * Header
21
- */
22
- outBufferToWar.addChars('W3do'); // file id
23
- outBufferToWar.addInt(8); // file version
24
- outBufferToWar.addInt(11); // subversion 0x0B
25
- outBufferToWar.addInt(doodadsJson.length); // num of trees
26
- /*
27
- * Body
28
- */
29
- doodadsJson.forEach((tree) => {
30
- outBufferToWar.addChars(tree.type);
31
- outBufferToWar.addInt(tree.variation || 0); // optional - default value 0
32
- outBufferToWar.addFloat(tree.position[0]);
33
- outBufferToWar.addFloat(tree.position[1]);
34
- outBufferToWar.addFloat(tree.position[2]);
35
- // Angle
36
- // Doodads format is unique because it uses radians for angles, as opposed
37
- // to angles in any other file which use degrees. Hence conversion is needed.
38
- // war3map: Expects angle in RADIANS
39
- // JSON: Spec defines angle in DEGREES
40
- outBufferToWar.addFloat(AngleConverter_1.deg2Rad(tree.angle) || 0); // optional - default value 0
41
- // Scale
42
- if (!tree.scale)
43
- tree.scale = [1, 1, 1];
44
- outBufferToWar.addFloat(tree.scale[0] || 1);
45
- outBufferToWar.addFloat(tree.scale[1] || 1);
46
- outBufferToWar.addFloat(tree.scale[2] || 1);
47
- outBufferToWar.addChars(tree.skinId);
48
- // Tree flags
49
- /* | Visible | Solid | Flag value |
50
- | no | no | 0 |
51
- | yes | no | 1 |
52
- | yes | yes | 2 | */
53
- let treeFlag = 2; // default: normal tree
54
- if (!tree.flags)
55
- tree.flags = { visible: true, solid: true }; // defaults if no flags are specified
56
- if (!tree.flags.visible && !tree.flags.solid)
57
- treeFlag = 0;
58
- else if (tree.flags.visible && !tree.flags.solid)
59
- treeFlag = 1;
60
- else if (tree.flags.visible && tree.flags.solid)
61
- treeFlag = 2;
62
- // Note: invisible and solid is not an option
63
- outBufferToWar.addByte(treeFlag);
64
- outBufferToWar.addByte(tree.life || 100);
65
- outBufferToWar.addInt(0); // NOT SUPPORTED: random item table pointer: fixed to 0
66
- outBufferToWar.addInt(0); // NOT SUPPORTED: number of items dropped for item table
67
- outBufferToWar.addInt(tree.id);
68
- });
69
- /*
70
- * Footer
71
- */
72
- outBufferToWar.addInt(0); // special doodad format number, fixed at 0x00
73
- outBufferToWar.addInt(0); // NOT SUPPORTED: number of special doodads
74
- return {
75
- errors: [],
76
- buffer: outBufferToWar.getBuffer()
77
- };
78
- }
79
- static warToJson(buffer) {
80
- const result = [];
81
- const outBufferToJSON = new W3Buffer_1.W3Buffer(buffer);
82
- const fileId = outBufferToJSON.readChars(4); // W3do for doodad file
83
- const fileVersion = outBufferToJSON.readInt(); // File version = 8
84
- const subVersion = outBufferToJSON.readInt(); // 0B 00 00 00
85
- const numDoodads = outBufferToJSON.readInt(); // # of doodads
86
- for (let i = 0; i < numDoodads; i++) {
87
- const doodad = {
88
- type: '',
89
- variation: 0,
90
- position: [0, 0, 0],
91
- angle: -1,
92
- scale: [0, 0, 0],
93
- skinId: '',
94
- flags: { visible: flag.visible, solid: flag.solid },
95
- life: -1,
96
- id: -1
97
- };
98
- doodad.type = outBufferToJSON.readChars(4);
99
- doodad.variation = outBufferToJSON.readInt();
100
- doodad.position = [outBufferToJSON.readFloat(), outBufferToJSON.readFloat(), outBufferToJSON.readFloat()]; // X Y Z coords
101
- // Angle
102
- // Doodads format is unique because it uses radians for angles, as opposed
103
- // to angles in any other file which use degrees. Hence conversion is needed.
104
- // war3map: Expects angle in RADIANS
105
- // JSON: Spec defines angle in DEGREES
106
- doodad.angle = AngleConverter_1.rad2Deg(outBufferToJSON.readFloat());
107
- doodad.scale = [outBufferToJSON.readFloat(), outBufferToJSON.readFloat(), outBufferToJSON.readFloat()]; // X Y Z scaling
108
- doodad.skinId = outBufferToJSON.readChars(4);
109
- const flags = outBufferToJSON.readByte();
110
- doodad.flags = {
111
- visible: flags === 1 || flags === 2,
112
- solid: flags === 2
113
- };
114
- doodad.life = outBufferToJSON.readByte(); // as a %
115
- // UNSUPPORTED: random item set drops when doodad is destroyed/killed
116
- // This section just consumes the bytes from the file
117
- const randomItemSetPtr = outBufferToJSON.readInt(); // points to an item set defined in the map (rather than custom one defined below)
118
- const numberOfItemSets = outBufferToJSON.readInt(); // this should be 0 if randomItemSetPtr is >= 0
119
- for (let j = 0; j < numberOfItemSets; j++) {
120
- // Read the item set
121
- const numberOfItems = outBufferToJSON.readInt();
122
- for (let k = 0; k < numberOfItems; k++) {
123
- outBufferToJSON.readChars(4); // Item ID
124
- outBufferToJSON.readInt(); // % chance to drop
125
- }
126
- }
127
- doodad.id = outBufferToJSON.readInt();
128
- result.push(doodad);
129
- }
130
- // UNSUPPORTED: Special doodads
131
- outBufferToJSON.readInt(); // special doodad format version set to '0'
132
- const numSpecialDoodads = outBufferToJSON.readInt();
133
- for (let i = 0; i < numSpecialDoodads; i++) {
134
- outBufferToJSON.readChars(4); // doodad ID
135
- outBufferToJSON.readInt();
136
- outBufferToJSON.readInt();
137
- outBufferToJSON.readInt();
138
- }
139
- return {
140
- errors: [],
141
- json: result
142
- };
143
- }
144
- }
145
- exports.DoodadsTranslator = DoodadsTranslator;
146
- //# sourceMappingURL=DoodadsTranslator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DoodadsTranslator.js","sourceRoot":"","sources":["../../../src/translators/DoodadsTranslator.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /// <reference types="node" />
2
- import { WarResult, JsonResult } from '../CommonInterfaces';
3
- declare enum ImportType {
4
- Standard = "standard",
5
- Custom = "custom"
6
- }
7
- interface Import {
8
- path: string;
9
- type: ImportType;
10
- }
11
- export declare class ImportsTranslator {
12
- static jsonToWar(imports: Import[]): WarResult;
13
- static warToJson(buffer: Buffer): JsonResult<Import[]>;
14
- }
15
- export {};
16
- //# sourceMappingURL=ImportsTranslator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImportsTranslator.d.ts","sourceRoot":"","sources":["../../../src/translators/ImportsTranslator.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAE3D,aAAK,UAAU;IACX,QAAQ,aAAa;IACrB,MAAM,WAAW;CACpB;AAED,UAAU,MAAM;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;CACpB;AAED,qBAAa,iBAAiB;WAEZ,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS;WA+BvC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;CA8BhE"}
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ImportsTranslator = void 0;
4
- const HexBuffer_1 = require("../HexBuffer");
5
- const W3Buffer_1 = require("../W3Buffer");
6
- var ImportType;
7
- (function (ImportType) {
8
- ImportType["Standard"] = "standard";
9
- ImportType["Custom"] = "custom";
10
- })(ImportType || (ImportType = {}));
11
- class ImportsTranslator {
12
- static jsonToWar(imports) {
13
- const outBufferToWar = new HexBuffer_1.HexBuffer();
14
- /*
15
- * Header
16
- */
17
- outBufferToWar.addInt(1); // file version
18
- outBufferToWar.addInt(imports.length); // number of imports
19
- /*
20
- * Body
21
- */
22
- imports.forEach((importedFile) => {
23
- outBufferToWar.addByte(importedFile.type === ImportType.Custom ? 13 : 5);
24
- // Temporary: always start the file path with war3mapImported\ until other file support is added
25
- if (!importedFile.path.startsWith('war3mapImported\\') && importedFile.type === ImportType.Custom) {
26
- importedFile.path = 'war3mapImported\\' + importedFile.path;
27
- }
28
- outBufferToWar.addString(importedFile.path);
29
- });
30
- return {
31
- errors: [],
32
- buffer: outBufferToWar.getBuffer()
33
- };
34
- }
35
- static warToJson(buffer) {
36
- const result = [];
37
- const outBufferToJSON = new W3Buffer_1.W3Buffer(buffer);
38
- const fileVersion = outBufferToJSON.readInt(); // File version
39
- const numImports = outBufferToJSON.readInt(); // # of imports
40
- for (let i = 0; i < numImports; i++) {
41
- const typeValue = outBufferToJSON.readByte();
42
- const typeEnum = {
43
- 0: 'standard',
44
- 5: 'standard',
45
- 8: 'standard',
46
- 10: 'custom',
47
- 13: 'custom' // * preferred
48
- };
49
- const importedFile = {
50
- type: typeEnum[typeValue],
51
- path: outBufferToJSON.readString() // e.g. "war3mapImported\mysound.wav"
52
- };
53
- result.push(importedFile);
54
- }
55
- return {
56
- errors: [],
57
- json: result
58
- };
59
- }
60
- }
61
- exports.ImportsTranslator = ImportsTranslator;
62
- //# sourceMappingURL=ImportsTranslator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImportsTranslator.js","sourceRoot":"","sources":["../../../src/translators/ImportsTranslator.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AACzC,0CAAuC;AAGvC,IAAK,UAGJ;AAHD,WAAK,UAAU;IACX,mCAAqB,CAAA;IACrB,+BAAiB,CAAA;AACrB,CAAC,EAHI,UAAU,KAAV,UAAU,QAGd;AAOD,MAAa,iBAAiB;IAEnB,MAAM,CAAC,SAAS,CAAC,OAAiB;QACrC,MAAM,cAAc,GAAG,IAAI,qBAAS,EAAE,CAAC;QAEvC;;WAEG;QACH,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;QACzC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB;QAE3D;;WAEG;QACH,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YAC7B,cAAc,CAAC,OAAO,CAClB,YAAY,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACnD,CAAC;YAEF,gGAAgG;YAChG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,YAAY,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE;gBAC/F,YAAY,CAAC,IAAI,GAAG,mBAAmB,GAAG,YAAY,CAAC,IAAI,CAAC;aAC/D;YAED,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,OAAO;YACH,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE;SACrC,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,MAAc;QAClC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,eAAe,GAAG,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe;QAC9D,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe;QAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG;gBACb,CAAC,EAAE,UAAU;gBACb,CAAC,EAAE,UAAU;gBACb,CAAC,EAAE,UAAU;gBACb,EAAE,EAAE,QAAQ;gBACZ,EAAE,EAAE,QAAQ,CAAE,cAAc;aAC/B,CAAC;YAEF,MAAM,YAAY,GAAG;gBACjB,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC;gBACzB,IAAI,EAAE,eAAe,CAAC,UAAU,EAAE,CAAC,qCAAqC;aAC3E,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC7B;QAED,OAAO;YACH,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,MAAM;SACf,CAAC;IACN,CAAC;CACJ;AA/DD,8CA+DC"}
@@ -1,124 +0,0 @@
1
- /// <reference types="node" />
2
- import { WarResult, JsonResult } from '../CommonInterfaces';
3
- interface Map {
4
- name: string;
5
- author: string;
6
- description: string;
7
- recommendedPlayers: string;
8
- playableArea: PlayableMapArea;
9
- flags: MapFlags;
10
- mainTileType: string;
11
- }
12
- interface GameVersion {
13
- major: number;
14
- minor: number;
15
- patch: number;
16
- build: number;
17
- }
18
- interface Camera {
19
- bounds: number[];
20
- complements: number[];
21
- }
22
- interface MapFlags {
23
- hideMinimapInPreview: boolean;
24
- modifyAllyPriorities: boolean;
25
- isMeleeMap: boolean;
26
- maskedPartiallyVisible: boolean;
27
- fixedPlayerSetting: boolean;
28
- useCustomForces: boolean;
29
- useCustomTechtree: boolean;
30
- useCustomAbilities: boolean;
31
- useCustomUpgrades: boolean;
32
- waterWavesOnCliffShores: boolean;
33
- waterWavesOnRollingShores: boolean;
34
- useItemClassificationSystem: boolean;
35
- enableWaterTinting: boolean;
36
- useAccurateProbabilityForCalculations: boolean;
37
- useCustomAbilitySkins: boolean;
38
- }
39
- interface LoadingScreen {
40
- background: number;
41
- path: string;
42
- text: string;
43
- title: string;
44
- subtitle: string;
45
- }
46
- declare enum FogType {
47
- Linear = 0,
48
- Exponential1 = 1,
49
- Exponential2 = 2
50
- }
51
- interface Fog {
52
- type: FogType;
53
- startHeight: number;
54
- endHeight: number;
55
- density: number;
56
- color: number[];
57
- }
58
- interface PlayableMapArea {
59
- width: number;
60
- height: number;
61
- }
62
- interface Prologue {
63
- path: string;
64
- text: string;
65
- title: string;
66
- subtitle: string;
67
- }
68
- interface Info {
69
- saves: number;
70
- gameVersion: GameVersion;
71
- editorVersion: number;
72
- scriptLanguage: ScriptLanguage;
73
- supportedModes: SupportedModes;
74
- map: Map;
75
- camera: Camera;
76
- prologue: Prologue;
77
- loadingScreen: LoadingScreen;
78
- fog: Fog;
79
- globalWeather: string;
80
- customSoundEnvironment: string;
81
- customLightEnv: string;
82
- water: number[];
83
- players: Player[];
84
- forces: Force[];
85
- }
86
- interface PlayerStartingPosition {
87
- x: number;
88
- y: number;
89
- fixed: boolean;
90
- }
91
- interface Player {
92
- playerNum: number;
93
- type: number;
94
- race: number;
95
- name: string;
96
- startingPos: PlayerStartingPosition;
97
- }
98
- interface ForceFlags {
99
- allied: boolean;
100
- alliedVictory: boolean;
101
- shareVision: boolean;
102
- shareUnitControl: boolean;
103
- shareAdvUnitControl: boolean;
104
- }
105
- interface Force {
106
- flags: ForceFlags;
107
- players: number;
108
- name: string;
109
- }
110
- declare enum ScriptLanguage {
111
- JASS = 0,
112
- Lua = 1
113
- }
114
- declare enum SupportedModes {
115
- SD = 1,
116
- HD = 2,
117
- Both = 3
118
- }
119
- export declare abstract class InfoTranslator {
120
- static jsonToWar(infoJson: Info): WarResult;
121
- static warToJson(buffer: Buffer): JsonResult<Info>;
122
- }
123
- export {};
124
- //# sourceMappingURL=InfoTranslator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InfoTranslator.d.ts","sourceRoot":"","sources":["../../../src/translators/InfoTranslator.ts"],"names":[],"mappings":"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"}