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.
- 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} +32 -42
- 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} +25 -31
- 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} +14 -39
- 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} +33 -65
- 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} +21 -37
- 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} +108 -270
- 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} +18 -45
- 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} +30 -84
- 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} +12 -17
- 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} +29 -84
- 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} +33 -95
- package/dist/translators/UnitsTranslator.js.map +1 -0
- package/{lib/translators/index.ts → dist/translators/index.d.ts} +1 -0
- 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 -3
- 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 -78
- 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
package/index.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { CamerasTranslator, DoodadsTranslator, ImportsTranslator, InfoTranslator, ObjectsTranslator, RegionsTranslator, SoundsTranslator, StringsTranslator, TerrainTranslator, UnitsTranslator } from './lib/translators';
|
|
2
|
-
|
|
3
|
-
export {
|
|
4
|
-
CamerasTranslator,
|
|
5
|
-
DoodadsTranslator,
|
|
6
|
-
ImportsTranslator,
|
|
7
|
-
InfoTranslator,
|
|
8
|
-
ObjectsTranslator,
|
|
9
|
-
RegionsTranslator,
|
|
10
|
-
SoundsTranslator,
|
|
11
|
-
StringsTranslator,
|
|
12
|
-
TerrainTranslator,
|
|
13
|
-
UnitsTranslator
|
|
14
|
-
};
|
package/lib/AngleConverter.ts
DELETED
package/lib/CommonInterfaces.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @type angle - An angle is measured in degrees, 0 <= angle < 360
|
|
3
|
-
*/
|
|
4
|
-
export type angle = number;
|
|
5
|
-
|
|
6
|
-
// TranslationError is reserved for future use in case
|
|
7
|
-
// additional constraints are added to translated output,
|
|
8
|
-
// like if WC3 has maximum string lengths, or if certain
|
|
9
|
-
// values must be in a specific range
|
|
10
|
-
export interface TranslationError {
|
|
11
|
-
message: string
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface WarResult {
|
|
15
|
-
buffer: Buffer,
|
|
16
|
-
errors?: TranslationError[]
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export interface JsonResult<T = object> {
|
|
20
|
-
json: T,
|
|
21
|
-
errors?: TranslationError[]
|
|
22
|
-
}
|
package/test/.mocharc.json
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import assert from 'assert';
|
|
2
|
-
import { deg2Rad, rad2Deg } from '../lib/AngleConverter';
|
|
3
|
-
|
|
4
|
-
describe('AngleConverter', () => {
|
|
5
|
-
|
|
6
|
-
it('should convert degrees to radians', () => {
|
|
7
|
-
const angleInDegrees = 90;
|
|
8
|
-
const convertedToRadians = deg2Rad(angleInDegrees);
|
|
9
|
-
assert.equal(convertedToRadians, Math.PI / 2);
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
it('should convert radians to degrees', () => {
|
|
13
|
-
const angleInRadians = Math.PI;
|
|
14
|
-
const convertedToDegrees = rad2Deg(angleInRadians);
|
|
15
|
-
assert.equal(convertedToDegrees, 180);
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
});
|
package/test/HexBufferTest.ts
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import assert from 'assert';
|
|
2
|
-
import { HexBuffer } from '../lib/HexBuffer';
|
|
3
|
-
|
|
4
|
-
let hexBuffer: HexBuffer;
|
|
5
|
-
|
|
6
|
-
describe('HexBuffer', () => {
|
|
7
|
-
|
|
8
|
-
beforeEach(() => {
|
|
9
|
-
// clear the buffer before each test in this block so we
|
|
10
|
-
// don't have to care about what we added in prior tests
|
|
11
|
-
hexBuffer = new HexBuffer();
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
it('should addString', () => {
|
|
15
|
-
const testWords = [
|
|
16
|
-
'Hallo, wêreld!', // Afrikaans
|
|
17
|
-
'Pershëndetje Botë', // Albanian
|
|
18
|
-
'أهلاً بالعالم', // Arabic
|
|
19
|
-
'Բարե՛ւ, աշխարհ։', // Armenian
|
|
20
|
-
'Salam Dünya', // Azeri
|
|
21
|
-
'Ahoj Světe!', // Czech
|
|
22
|
-
'Kaixo mundua!', // Basque/Euskara
|
|
23
|
-
'Прывітанне свет', // Belarusian
|
|
24
|
-
'Shani Mwechalo!', // Bemba
|
|
25
|
-
'Shagatam Prithivi!', // Bengali
|
|
26
|
-
'Zdravo Svijete!', // Bosnian
|
|
27
|
-
'Здравей, свят!', // Bulgarian
|
|
28
|
-
'ជំរាបសួរ ពិភពលោក', // Cambodian
|
|
29
|
-
'Hola món!', // Catalan
|
|
30
|
-
'你好世界', // Chinese
|
|
31
|
-
'ᎣᏏᏲ ᎡᎶᎯ', // Cherokee
|
|
32
|
-
'Klahowya Hayas Klaska', // Chinook Wawa
|
|
33
|
-
'Bok Svijete!', // Croatian
|
|
34
|
-
'Hej, Verden!', // Danish
|
|
35
|
-
'Hallo, wereld!', // Dutch
|
|
36
|
-
'Hello World!', // English
|
|
37
|
-
'Saluton mondo!', // Esperanto
|
|
38
|
-
'Tere maailm!', // Estonian
|
|
39
|
-
'Hei maailma!', // Finnish
|
|
40
|
-
'Salut le Monde!', // French
|
|
41
|
-
'Hallo, wrâld!', // Frisian
|
|
42
|
-
'Ola mundo!', // Galician
|
|
43
|
-
'Hallo Welt!', // German
|
|
44
|
-
'Γεια σου κόσμε!', // Greek
|
|
45
|
-
'Aloha Honua', // Hawaiian
|
|
46
|
-
'שלום עולם', // Hebrew
|
|
47
|
-
'नमस्ते दुनिया', // Hindi
|
|
48
|
-
'Nyob zoo ntiaj teb.', // Hmong
|
|
49
|
-
'Helló világ!', // Hungarian
|
|
50
|
-
'Halló heimur!', // Icelandic
|
|
51
|
-
'Ndewo Ụwa', // Igbo
|
|
52
|
-
'Halo Dunia!', // Indonesian
|
|
53
|
-
'Dia dhaoibh, a dhomhain!', // Irish
|
|
54
|
-
'Ciao Mondo!', // Italian
|
|
55
|
-
'こんにちは、 世界!', // Japanese
|
|
56
|
-
'ಹಲೋ ವರ್ಲ್ಡ್', // Kannada
|
|
57
|
-
'Habari dunia!', // Kiswahili
|
|
58
|
-
'Niatia thi!', // Kikuyu
|
|
59
|
-
'nuqneH', // Klingon
|
|
60
|
-
'반갑다 세상아', // Korean
|
|
61
|
-
'ສະບາຍດີ,ໂລກ', // Lao
|
|
62
|
-
'AVE MVNDE', // Latin
|
|
63
|
-
'Sveika, Pasaule!', // Latvian
|
|
64
|
-
'Sveikas, Pasauli', // Lithuanian
|
|
65
|
-
'coi li terdi', // Lojban
|
|
66
|
-
'Moien Welt!', // Luxembourgish
|
|
67
|
-
'Manao ahoana ry tany!', // Malagasy
|
|
68
|
-
'Namaskaram, lokame', // Malayalam
|
|
69
|
-
'Merhba lid-dinja', // Maltese
|
|
70
|
-
'Hallo verden!', // Norwegian
|
|
71
|
-
'!سلام دنیا', // Persian
|
|
72
|
-
'Witaj świecie!', // Polish
|
|
73
|
-
'Olá, mundo!', // Portuguese
|
|
74
|
-
'ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ ਦੁਨਿਆ', // Punjabi
|
|
75
|
-
'Salut lume!', // Romanian
|
|
76
|
-
'Здравствуй, мир!', // Russian
|
|
77
|
-
'Halò, a Shaoghail!', // Scots Gaelic
|
|
78
|
-
'Zdravo Svete!', // Serbian
|
|
79
|
-
'Ahoj, svet!', // Slovak
|
|
80
|
-
'Pozdravljen svet!', // Slovenian
|
|
81
|
-
'¡Hola mundo!', // Spanish
|
|
82
|
-
'Hallå världen!', // Swedish
|
|
83
|
-
'Kamusta mundo!', // Tagalog
|
|
84
|
-
'ஹலோ உலகம்', // Tamil
|
|
85
|
-
'హలో వరల్డ్', // Telugu
|
|
86
|
-
'สวัสดีโลก!', // Thai
|
|
87
|
-
'Merhaba Dünya!', // Turkish
|
|
88
|
-
'Привiт, свiте!', // Ukrainian
|
|
89
|
-
'ہیلو دنیا والو', // Urdu
|
|
90
|
-
'Xin chào thế giới', // Vietnamese
|
|
91
|
-
'S\'mae byd!', // Welsh
|
|
92
|
-
'העלא וועלט', // Yiddish
|
|
93
|
-
'Sawubona Mhlaba' // Zulu
|
|
94
|
-
];
|
|
95
|
-
|
|
96
|
-
let totalLength = 0;
|
|
97
|
-
// tslint:disable-next-line: forin
|
|
98
|
-
for (const word of testWords) {
|
|
99
|
-
const bufLength = Buffer.from(word).length;
|
|
100
|
-
hexBuffer.addString(word);
|
|
101
|
-
totalLength += bufLength + 1; // adding one accounts for the null terminator at the end of the string
|
|
102
|
-
const bufferLength = hexBuffer.getBuffer().length;
|
|
103
|
-
assert.equal(bufferLength, totalLength);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
it('should addNewLine', () => {
|
|
108
|
-
hexBuffer.addNewLine();
|
|
109
|
-
assert.equal(hexBuffer.getBuffer().length, 2);
|
|
110
|
-
assert.equal(hexBuffer.getBuffer()[0], 0x0d);
|
|
111
|
-
assert.equal(hexBuffer.getBuffer()[1], 0x0a);
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
it('should addChar', () => {
|
|
115
|
-
hexBuffer.addChar('A');
|
|
116
|
-
assert.equal(hexBuffer.getBuffer().length, 1);
|
|
117
|
-
assert.equal(hexBuffer.getBuffer()[0], 65); // charcode for the ASCII letter "A"
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
it('should addChars', () => {
|
|
121
|
-
hexBuffer.addChars('ABCD');
|
|
122
|
-
assert.equal(hexBuffer.getBuffer().length, 4);
|
|
123
|
-
assert.equal(hexBuffer.getBuffer()[0], 65); // charcode for the ASCII letter "A"
|
|
124
|
-
assert.equal(hexBuffer.getBuffer()[1], 66); // charcode for the ASCII letter "B"
|
|
125
|
-
assert.equal(hexBuffer.getBuffer()[2], 67); // charcode for the ASCII letter "C"
|
|
126
|
-
assert.equal(hexBuffer.getBuffer()[3], 68); // charcode for the ASCII letter "D"
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
it('should addInt', () => {
|
|
130
|
-
hexBuffer.addInt(0);
|
|
131
|
-
assert.equal(hexBuffer.getBuffer().length, 4); // integer is 4 bytes in length
|
|
132
|
-
assert.equal(hexBuffer.getBuffer()[0], 0x00);
|
|
133
|
-
assert.equal(hexBuffer.getBuffer()[1], 0x00);
|
|
134
|
-
assert.equal(hexBuffer.getBuffer()[2], 0x00);
|
|
135
|
-
assert.equal(hexBuffer.getBuffer()[3], 0x00);
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
it('should addShort', () => {
|
|
139
|
-
hexBuffer.addShort(14);
|
|
140
|
-
assert.equal(hexBuffer.getBuffer().length, 2); // 2 bytes in length
|
|
141
|
-
assert.equal(hexBuffer.getBuffer()[0], 0x0e);
|
|
142
|
-
assert.equal(hexBuffer.getBuffer()[1], 0x00);
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
it('should addFloat', () => {
|
|
146
|
-
hexBuffer.addFloat(1.234);
|
|
147
|
-
assert.equal(hexBuffer.getBuffer().length, 4); // 4 bytes in length
|
|
148
|
-
assert.equal(hexBuffer.getBuffer()[0], 0xb6);
|
|
149
|
-
assert.equal(hexBuffer.getBuffer()[1], 0xf3);
|
|
150
|
-
assert.equal(hexBuffer.getBuffer()[2], 0x9d);
|
|
151
|
-
assert.equal(hexBuffer.getBuffer()[3], 0x3f);
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
it('should addByte', () => {
|
|
155
|
-
hexBuffer.addByte(15);
|
|
156
|
-
assert.equal(hexBuffer.getBuffer()[0], 15);
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
it('should addNullTerminator', () => {
|
|
160
|
-
hexBuffer.addNullTerminator();
|
|
161
|
-
assert.equal(hexBuffer.getBuffer().length, 1);
|
|
162
|
-
assert.equal(hexBuffer.getBuffer()[0], 0);
|
|
163
|
-
});
|
|
164
|
-
|
|
165
|
-
it('should getBuffer', () => {
|
|
166
|
-
hexBuffer.addString('');
|
|
167
|
-
assert(hexBuffer.getBuffer()); // test if this function works
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
});
|
|
@@ -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
|
-
});
|