wc3maptranslator 4.0.0 → 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.
- package/LICENSE.md +23 -23
- package/dist/AngleConverter.d.ts +3 -0
- package/dist/AngleConverter.d.ts.map +1 -0
- package/dist/AngleConverter.js +12 -0
- package/dist/AngleConverter.js.map +1 -0
- package/dist/CommonInterfaces.d.ts +17 -0
- package/dist/CommonInterfaces.d.ts.map +1 -0
- package/dist/CommonInterfaces.js +3 -0
- package/dist/CommonInterfaces.js.map +1 -0
- package/dist/HexBuffer.d.ts +15 -0
- package/dist/HexBuffer.d.ts.map +1 -0
- package/{lib/HexBuffer.ts → dist/HexBuffer.js} +71 -81
- package/dist/HexBuffer.js.map +1 -0
- package/dist/W3Buffer.d.ts +14 -0
- package/dist/W3Buffer.d.ts.map +1 -0
- package/{lib/W3Buffer.ts → dist/W3Buffer.js} +63 -69
- package/dist/W3Buffer.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/{index.js → dist/index.js} +1 -1
- package/dist/index.js.map +1 -0
- package/dist/translators/CamerasTranslator.d.ts +23 -0
- package/dist/translators/CamerasTranslator.d.ts.map +1 -0
- package/{lib/translators/CamerasTranslator.ts → dist/translators/CamerasTranslator.js} +76 -101
- package/dist/translators/CamerasTranslator.js.map +1 -0
- package/dist/translators/DoodadsTranslator.d.ts +23 -0
- package/dist/translators/DoodadsTranslator.d.ts.map +1 -0
- package/{lib/translators/DoodadsTranslator.ts → dist/translators/DoodadsTranslator.js} +146 -178
- package/dist/translators/DoodadsTranslator.js.map +1 -0
- package/dist/translators/ImportsTranslator.d.ts +16 -0
- package/dist/translators/ImportsTranslator.d.ts.map +1 -0
- package/{lib/translators/ImportsTranslator.ts → dist/translators/ImportsTranslator.js} +62 -78
- package/dist/translators/ImportsTranslator.js.map +1 -0
- package/dist/translators/InfoTranslator.d.ts +124 -0
- package/dist/translators/InfoTranslator.d.ts.map +1 -0
- package/{lib/translators/InfoTranslator.ts → dist/translators/InfoTranslator.js} +422 -584
- package/dist/translators/InfoTranslator.js.map +1 -0
- package/dist/translators/ObjectsTranslator.d.ts +23 -0
- package/dist/translators/ObjectsTranslator.d.ts.map +1 -0
- package/{lib/translators/ObjectsTranslator.ts → dist/translators/ObjectsTranslator.js} +91 -125
- package/dist/translators/ObjectsTranslator.js.map +1 -0
- package/dist/translators/RegionsTranslator.d.ts +22 -0
- package/dist/translators/RegionsTranslator.d.ts.map +1 -0
- package/{lib/translators/RegionsTranslator.ts → dist/translators/RegionsTranslator.js} +96 -123
- package/dist/translators/RegionsTranslator.js.map +1 -0
- package/dist/translators/SoundsTranslator.d.ts +35 -0
- package/dist/translators/SoundsTranslator.d.ts.map +1 -0
- package/{lib/translators/SoundsTranslator.ts → dist/translators/SoundsTranslator.js} +183 -237
- package/dist/translators/SoundsTranslator.js.map +1 -0
- package/dist/translators/StringsTranslator.d.ts +7 -0
- package/dist/translators/StringsTranslator.d.ts.map +1 -0
- package/{lib/translators/StringsTranslator.ts → dist/translators/StringsTranslator.js} +44 -49
- package/dist/translators/StringsTranslator.js.map +1 -0
- package/dist/translators/TerrainTranslator.d.ts +33 -0
- package/dist/translators/TerrainTranslator.d.ts.map +1 -0
- package/{lib/translators/TerrainTranslator.ts → dist/translators/TerrainTranslator.js} +221 -276
- package/dist/translators/TerrainTranslator.js.map +1 -0
- package/dist/translators/UnitsTranslator.d.ts +40 -0
- package/dist/translators/UnitsTranslator.d.ts.map +1 -0
- package/{lib/translators/UnitsTranslator.ts → dist/translators/UnitsTranslator.js} +199 -261
- package/dist/translators/UnitsTranslator.js.map +1 -0
- package/{lib/translators/index.ts → dist/translators/index.d.ts} +11 -10
- package/dist/translators/index.d.ts.map +1 -0
- package/dist/translators/index.js +23 -0
- package/dist/translators/index.js.map +1 -0
- package/package.json +4 -2
- package/.codeclimate.yml +0 -12
- package/.editorconfig +0 -8
- package/.eslintignore +0 -5
- package/.eslintrc +0 -55
- package/.github/workflows/codeql-analysis.yml +0 -54
- package/.nycrc +0 -18
- package/.travis.yml +0 -23
- package/CHANGELOG.md +0 -73
- package/index.ts +0 -14
- package/lib/AngleConverter.ts +0 -7
- package/lib/CommonInterfaces.ts +0 -22
- package/test/.mocharc.json +0 -4
- package/test/AngleConverterTest.ts +0 -18
- package/test/HexBufferTest.ts +0 -170
- package/test/TranslatorReversion.ts +0 -218
- package/test/W3BufferTest.ts +0 -50
- package/test/data/cameras.json +0 -16
- package/test/data/doodads.json +0 -2730
- package/test/data/imports.json +0 -386
- package/test/data/info.json +0 -250
- package/test/data/obj-abilities.json +0 -4892
- package/test/data/obj-buffs.json +0 -38
- package/test/data/obj-destructables.json +0 -31
- package/test/data/obj-doodads.json +0 -38
- package/test/data/obj-items.json +0 -31
- package/test/data/obj-units.json +0 -40
- package/test/data/obj-upgrades.json +0 -38
- package/test/data/regions.json +0 -206
- package/test/data/sounds.json +0 -50
- package/test/data/strings.json +0 -115
- package/test/data/terrain.json +0 -1
- package/test/data/units.json +0 -452
- package/test/data/war3map.doo +0 -0
- package/test/data/war3map.imp +0 -0
- package/test/data/war3map.j +0 -3442
- package/test/data/war3map.shd +0 -0
- package/test/data/war3map.w3a +0 -0
- package/test/data/war3map.w3b +0 -0
- package/test/data/war3map.w3c +0 -0
- package/test/data/war3map.w3d +0 -0
- package/test/data/war3map.w3e +0 -0
- package/test/data/war3map.w3h +0 -0
- package/test/data/war3map.w3i +0 -0
- package/test/data/war3map.w3q +0 -0
- package/test/data/war3map.w3r +0 -0
- package/test/data/war3map.w3s +0 -0
- package/test/data/war3map.w3t +0 -0
- package/test/data/war3map.w3u +0 -0
- package/test/data/war3map.wts +0 -631
- package/test/data/war3mapUnits.doo +0 -0
- package/tsconfig.json +0 -25
- package/tslint.json +0 -47
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
import assert from 'assert';
|
|
2
|
-
import * as diff from 'diff-buf';
|
|
3
|
-
import * as fs from 'fs-extra';
|
|
4
|
-
import * as Path from 'path';
|
|
5
|
-
|
|
6
|
-
import * as Translator from '../index';
|
|
7
|
-
|
|
8
|
-
const ObjectType = Translator.ObjectsTranslator.ObjectType;
|
|
9
|
-
const war3mapDir = Path.resolve('test/data');
|
|
10
|
-
const outputDir = Path.resolve('test/.output');
|
|
11
|
-
|
|
12
|
-
function readWar3MapBuffer(filename: string) {
|
|
13
|
-
return fs.readFileSync(Path.join(war3mapDir, filename));
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
function readJsonTestFile(filename: string) {
|
|
17
|
-
return fs.readJsonSync(Path.join(war3mapDir, filename));
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function writeJsonTestFile(filename: string, json: object) {
|
|
21
|
-
return fs.writeJsonSync(Path.join(outputDir, filename), json);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function buffersAreEqual(b1: Buffer, b2: Buffer) {
|
|
25
|
-
const comparison = diff.default(b1, b2, { string: false });
|
|
26
|
-
|
|
27
|
-
// Library `diff` returns an array of objects documenting comparison
|
|
28
|
-
// e.g. { added: undefined, removed: undefined, value: 10 }
|
|
29
|
-
// We want all `added` and `removed` fields to be "undefined" for
|
|
30
|
-
// the buffers to be considered equal
|
|
31
|
-
let buffersEqual = true;
|
|
32
|
-
comparison.forEach((compare) => {
|
|
33
|
-
if (compare.added || compare.removed) {
|
|
34
|
-
buffersEqual = false;
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
return buffersEqual;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// Ensures that when a JSON file is converted to war3map and back again,
|
|
42
|
-
// the two JSON files are the same; converting between the two data formats
|
|
43
|
-
// must yield the original results back (except for some differences in rounding)
|
|
44
|
-
describe('Reversion: json -> war -> json', () => {
|
|
45
|
-
|
|
46
|
-
before(() => {
|
|
47
|
-
fs.emptyDirSync(outputDir);
|
|
48
|
-
fs.ensureDirSync(outputDir);
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
it('Doodads reversion', () => {
|
|
52
|
-
const originalJson = readJsonTestFile('doodads.json');
|
|
53
|
-
const translatedBuffer = Translator.DoodadsTranslator.jsonToWar(originalJson).buffer;
|
|
54
|
-
const translatedJson = Translator.DoodadsTranslator.warToJson(translatedBuffer).json;
|
|
55
|
-
|
|
56
|
-
writeJsonTestFile('doodads.json', translatedJson);
|
|
57
|
-
|
|
58
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
it('Strings reversion', () => {
|
|
62
|
-
const originalJson = readJsonTestFile('strings.json');
|
|
63
|
-
const translatedBuffer = Translator.StringsTranslator.jsonToWar(originalJson).buffer;
|
|
64
|
-
const translatedJson = Translator.StringsTranslator.warToJson(translatedBuffer).json;
|
|
65
|
-
|
|
66
|
-
writeJsonTestFile('strings.json', translatedJson);
|
|
67
|
-
|
|
68
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
it('Terrain reversion', () => {
|
|
72
|
-
const originalJson = readJsonTestFile('terrain.json');
|
|
73
|
-
const translatedBuffer = Translator.TerrainTranslator.jsonToWar(originalJson).buffer;
|
|
74
|
-
const translatedJson = Translator.TerrainTranslator.warToJson(translatedBuffer).json;
|
|
75
|
-
|
|
76
|
-
writeJsonTestFile('terrain.json', translatedJson);
|
|
77
|
-
|
|
78
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
it('Units reversion', () => {
|
|
82
|
-
const originalJson = readJsonTestFile('units.json');
|
|
83
|
-
const translatedBuffer = Translator.UnitsTranslator.jsonToWar(originalJson).buffer;
|
|
84
|
-
const translatedJson = Translator.UnitsTranslator.warToJson(translatedBuffer).json;
|
|
85
|
-
|
|
86
|
-
writeJsonTestFile('units.json', translatedJson);
|
|
87
|
-
|
|
88
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
it('Regions reversion', () => {
|
|
92
|
-
const originalJson = readJsonTestFile('regions.json');
|
|
93
|
-
const translatedBuffer = Translator.RegionsTranslator.jsonToWar(originalJson).buffer;
|
|
94
|
-
const translatedJson = Translator.RegionsTranslator.warToJson(translatedBuffer).json;
|
|
95
|
-
|
|
96
|
-
writeJsonTestFile('regions.json', translatedJson);
|
|
97
|
-
|
|
98
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
it('Cameras reversion', () => {
|
|
102
|
-
const originalJson = readJsonTestFile('cameras.json');
|
|
103
|
-
const translatedBuffer = Translator.CamerasTranslator.jsonToWar(originalJson).buffer;
|
|
104
|
-
const translatedJson = Translator.CamerasTranslator.warToJson(translatedBuffer).json;
|
|
105
|
-
|
|
106
|
-
writeJsonTestFile('cameras.json', translatedJson);
|
|
107
|
-
|
|
108
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
it('Sounds reversion', () => {
|
|
112
|
-
const originalJson = readJsonTestFile('sounds.json');
|
|
113
|
-
const translatedBuffer = Translator.SoundsTranslator.jsonToWar(originalJson).buffer;
|
|
114
|
-
const translatedJson = Translator.SoundsTranslator.warToJson(translatedBuffer).json;
|
|
115
|
-
|
|
116
|
-
writeJsonTestFile('sounds.json', translatedJson);
|
|
117
|
-
|
|
118
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
it('Units (Object) reversion', () => {
|
|
122
|
-
const originalJson = readJsonTestFile('obj-units.json');
|
|
123
|
-
const objectType = Translator.ObjectsTranslator.ObjectType.Units;
|
|
124
|
-
const translatedBuffer = Translator.ObjectsTranslator.jsonToWar(objectType, originalJson).buffer;
|
|
125
|
-
const translatedJson = Translator.ObjectsTranslator.warToJson(objectType, translatedBuffer).json;
|
|
126
|
-
|
|
127
|
-
writeJsonTestFile('obj-units.json', translatedJson);
|
|
128
|
-
|
|
129
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
it('Items (Object) reversion', () => {
|
|
133
|
-
const originalJson = readJsonTestFile('obj-items.json');
|
|
134
|
-
const objectType = Translator.ObjectsTranslator.ObjectType.Items;
|
|
135
|
-
const translatedBuffer = Translator.ObjectsTranslator.jsonToWar(objectType, originalJson).buffer;
|
|
136
|
-
const translatedJson = Translator.ObjectsTranslator.warToJson(objectType, translatedBuffer).json;
|
|
137
|
-
|
|
138
|
-
writeJsonTestFile('obj-items.json', translatedJson);
|
|
139
|
-
|
|
140
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
it('Destructables (Object) reversion', () => {
|
|
144
|
-
const originalJson = readJsonTestFile('obj-destructables.json');
|
|
145
|
-
const objectType = Translator.ObjectsTranslator.ObjectType.Destructables;
|
|
146
|
-
const translatedBuffer = Translator.ObjectsTranslator.jsonToWar(objectType, originalJson).buffer;
|
|
147
|
-
const translatedJson = Translator.ObjectsTranslator.warToJson(objectType, translatedBuffer).json;
|
|
148
|
-
|
|
149
|
-
writeJsonTestFile('obj-destructables.json', translatedJson);
|
|
150
|
-
|
|
151
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
it('Doodads (Object) reversion', () => {
|
|
155
|
-
const originalJson = readJsonTestFile('obj-doodads.json');
|
|
156
|
-
const objectType = Translator.ObjectsTranslator.ObjectType.Doodads;
|
|
157
|
-
const translatedBuffer = Translator.ObjectsTranslator.jsonToWar(objectType, originalJson).buffer;
|
|
158
|
-
const translatedJson = Translator.ObjectsTranslator.warToJson(objectType, translatedBuffer).json;
|
|
159
|
-
|
|
160
|
-
writeJsonTestFile('obj-doodads.json', translatedJson);
|
|
161
|
-
|
|
162
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
163
|
-
});
|
|
164
|
-
|
|
165
|
-
it('Abilities (Object) reversion', () => {
|
|
166
|
-
const originalJson = readJsonTestFile('obj-abilities.json');
|
|
167
|
-
const objectType = Translator.ObjectsTranslator.ObjectType.Abilities;
|
|
168
|
-
const translatedBuffer = Translator.ObjectsTranslator.jsonToWar(objectType, originalJson).buffer;
|
|
169
|
-
const translatedJson = Translator.ObjectsTranslator.warToJson(objectType, translatedBuffer).json;
|
|
170
|
-
|
|
171
|
-
writeJsonTestFile('obj-abilities.json', translatedJson);
|
|
172
|
-
|
|
173
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
it('Buffs (Object) reversion', () => {
|
|
177
|
-
const originalJson = readJsonTestFile('obj-buffs.json');
|
|
178
|
-
const objectType = Translator.ObjectsTranslator.ObjectType.Buffs;
|
|
179
|
-
const translatedBuffer = Translator.ObjectsTranslator.jsonToWar(objectType, originalJson).buffer;
|
|
180
|
-
const translatedJson = Translator.ObjectsTranslator.warToJson(objectType, translatedBuffer).json;
|
|
181
|
-
|
|
182
|
-
writeJsonTestFile('obj-buffs.json', translatedJson);
|
|
183
|
-
|
|
184
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
185
|
-
});
|
|
186
|
-
|
|
187
|
-
it('Upgrades (Object) reversion', () => {
|
|
188
|
-
const originalJson = readJsonTestFile('obj-upgrades.json');
|
|
189
|
-
const objectType = Translator.ObjectsTranslator.ObjectType.Upgrades;
|
|
190
|
-
const translatedBuffer = Translator.ObjectsTranslator.jsonToWar(objectType, originalJson).buffer;
|
|
191
|
-
const translatedJson = Translator.ObjectsTranslator.warToJson(objectType, translatedBuffer).json;
|
|
192
|
-
|
|
193
|
-
writeJsonTestFile('obj-upgrades.json', translatedJson);
|
|
194
|
-
|
|
195
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
196
|
-
});
|
|
197
|
-
|
|
198
|
-
it('Info reversion', () => {
|
|
199
|
-
const originalJson = readJsonTestFile('info.json');
|
|
200
|
-
const translatedBuffer = Translator.InfoTranslator.jsonToWar(originalJson).buffer;
|
|
201
|
-
const translatedJson = Translator.InfoTranslator.warToJson(translatedBuffer).json;
|
|
202
|
-
|
|
203
|
-
writeJsonTestFile('info.json', translatedJson);
|
|
204
|
-
|
|
205
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
206
|
-
});
|
|
207
|
-
|
|
208
|
-
it('Imports reversion', () => {
|
|
209
|
-
const originalJson = readJsonTestFile('imports.json');
|
|
210
|
-
const translatedBuffer = Translator.ImportsTranslator.jsonToWar(originalJson).buffer;
|
|
211
|
-
const translatedJson = Translator.ImportsTranslator.warToJson(translatedBuffer).json;
|
|
212
|
-
|
|
213
|
-
writeJsonTestFile('imports.json', translatedJson);
|
|
214
|
-
|
|
215
|
-
assert.deepStrictEqual(originalJson, translatedJson);
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
});
|
package/test/W3BufferTest.ts
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import assert from 'assert';
|
|
2
|
-
import { W3Buffer } from '../lib/W3Buffer';
|
|
3
|
-
|
|
4
|
-
// This is a hard-coded buffer to test all the reading methods
|
|
5
|
-
// on W3Buffer. It consists of, in this order:
|
|
6
|
-
// char(4), int, float, string(7 Ws), byte
|
|
7
|
-
const buffData = Buffer.from([
|
|
8
|
-
0x01, 0x00, 0x00, 0x00, // int: 1
|
|
9
|
-
0x81, 0x70, // short: 28801
|
|
10
|
-
0x00, 0x00, 0x9b, 0xc5, // float: -4960
|
|
11
|
-
0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x00, // string: "WWWWWWW"
|
|
12
|
-
0x57, 0x33, 0x64, 0x6f, // char(4): "W3do"
|
|
13
|
-
0x57, // char(1): "W"
|
|
14
|
-
0x02 // byte: 2
|
|
15
|
-
]);
|
|
16
|
-
|
|
17
|
-
const w3buffer = new W3Buffer(buffData);
|
|
18
|
-
|
|
19
|
-
describe('W3Buffer', () => {
|
|
20
|
-
|
|
21
|
-
it('should readInt', () => {
|
|
22
|
-
assert.equal(w3buffer.readInt(), 1);
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
it('should readShort', () => {
|
|
26
|
-
assert.equal(w3buffer.readShort(), 28801);
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it('should readFloat', () => {
|
|
30
|
-
assert.equal(w3buffer.readFloat(), -4960);
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
it('should readString', () => {
|
|
34
|
-
assert.equal(w3buffer.readString(), 'WWWWWWW');
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
it('should readChars', () => {
|
|
38
|
-
assert.equal(w3buffer.readChars(4), 'W3do');
|
|
39
|
-
assert.equal(w3buffer.readChars(), 'W')
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
it('should readByte', () => {
|
|
43
|
-
assert.equal(w3buffer.readByte(), 2);
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
it('should be exhausted', () => {
|
|
47
|
-
assert.ok(w3buffer.isExhausted());
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
});
|