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.
Files changed (118) hide show
  1. package/LICENSE.md +23 -23
  2. package/dist/AngleConverter.d.ts +3 -0
  3. package/dist/AngleConverter.d.ts.map +1 -0
  4. package/dist/AngleConverter.js +12 -0
  5. package/dist/AngleConverter.js.map +1 -0
  6. package/dist/CommonInterfaces.d.ts +17 -0
  7. package/dist/CommonInterfaces.d.ts.map +1 -0
  8. package/dist/CommonInterfaces.js +3 -0
  9. package/dist/CommonInterfaces.js.map +1 -0
  10. package/dist/HexBuffer.d.ts +15 -0
  11. package/dist/HexBuffer.d.ts.map +1 -0
  12. package/{lib/HexBuffer.ts → dist/HexBuffer.js} +71 -81
  13. package/dist/HexBuffer.js.map +1 -0
  14. package/dist/W3Buffer.d.ts +14 -0
  15. package/dist/W3Buffer.d.ts.map +1 -0
  16. package/{lib/W3Buffer.ts → dist/W3Buffer.js} +63 -69
  17. package/dist/W3Buffer.js.map +1 -0
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/{index.js → dist/index.js} +1 -1
  21. package/dist/index.js.map +1 -0
  22. package/dist/translators/CamerasTranslator.d.ts +23 -0
  23. package/dist/translators/CamerasTranslator.d.ts.map +1 -0
  24. package/{lib/translators/CamerasTranslator.ts → dist/translators/CamerasTranslator.js} +76 -101
  25. package/dist/translators/CamerasTranslator.js.map +1 -0
  26. package/dist/translators/DoodadsTranslator.d.ts +23 -0
  27. package/dist/translators/DoodadsTranslator.d.ts.map +1 -0
  28. package/{lib/translators/DoodadsTranslator.ts → dist/translators/DoodadsTranslator.js} +146 -178
  29. package/dist/translators/DoodadsTranslator.js.map +1 -0
  30. package/dist/translators/ImportsTranslator.d.ts +16 -0
  31. package/dist/translators/ImportsTranslator.d.ts.map +1 -0
  32. package/{lib/translators/ImportsTranslator.ts → dist/translators/ImportsTranslator.js} +62 -78
  33. package/dist/translators/ImportsTranslator.js.map +1 -0
  34. package/dist/translators/InfoTranslator.d.ts +124 -0
  35. package/dist/translators/InfoTranslator.d.ts.map +1 -0
  36. package/{lib/translators/InfoTranslator.ts → dist/translators/InfoTranslator.js} +422 -584
  37. package/dist/translators/InfoTranslator.js.map +1 -0
  38. package/dist/translators/ObjectsTranslator.d.ts +23 -0
  39. package/dist/translators/ObjectsTranslator.d.ts.map +1 -0
  40. package/{lib/translators/ObjectsTranslator.ts → dist/translators/ObjectsTranslator.js} +91 -125
  41. package/dist/translators/ObjectsTranslator.js.map +1 -0
  42. package/dist/translators/RegionsTranslator.d.ts +22 -0
  43. package/dist/translators/RegionsTranslator.d.ts.map +1 -0
  44. package/{lib/translators/RegionsTranslator.ts → dist/translators/RegionsTranslator.js} +96 -123
  45. package/dist/translators/RegionsTranslator.js.map +1 -0
  46. package/dist/translators/SoundsTranslator.d.ts +35 -0
  47. package/dist/translators/SoundsTranslator.d.ts.map +1 -0
  48. package/{lib/translators/SoundsTranslator.ts → dist/translators/SoundsTranslator.js} +183 -237
  49. package/dist/translators/SoundsTranslator.js.map +1 -0
  50. package/dist/translators/StringsTranslator.d.ts +7 -0
  51. package/dist/translators/StringsTranslator.d.ts.map +1 -0
  52. package/{lib/translators/StringsTranslator.ts → dist/translators/StringsTranslator.js} +44 -49
  53. package/dist/translators/StringsTranslator.js.map +1 -0
  54. package/dist/translators/TerrainTranslator.d.ts +33 -0
  55. package/dist/translators/TerrainTranslator.d.ts.map +1 -0
  56. package/{lib/translators/TerrainTranslator.ts → dist/translators/TerrainTranslator.js} +221 -276
  57. package/dist/translators/TerrainTranslator.js.map +1 -0
  58. package/dist/translators/UnitsTranslator.d.ts +40 -0
  59. package/dist/translators/UnitsTranslator.d.ts.map +1 -0
  60. package/{lib/translators/UnitsTranslator.ts → dist/translators/UnitsTranslator.js} +199 -261
  61. package/dist/translators/UnitsTranslator.js.map +1 -0
  62. package/{lib/translators/index.ts → dist/translators/index.d.ts} +11 -10
  63. package/dist/translators/index.d.ts.map +1 -0
  64. package/dist/translators/index.js +23 -0
  65. package/dist/translators/index.js.map +1 -0
  66. package/package.json +4 -2
  67. package/.codeclimate.yml +0 -12
  68. package/.editorconfig +0 -8
  69. package/.eslintignore +0 -5
  70. package/.eslintrc +0 -55
  71. package/.github/workflows/codeql-analysis.yml +0 -54
  72. package/.nycrc +0 -18
  73. package/.travis.yml +0 -23
  74. package/CHANGELOG.md +0 -73
  75. package/index.ts +0 -14
  76. package/lib/AngleConverter.ts +0 -7
  77. package/lib/CommonInterfaces.ts +0 -22
  78. package/test/.mocharc.json +0 -4
  79. package/test/AngleConverterTest.ts +0 -18
  80. package/test/HexBufferTest.ts +0 -170
  81. package/test/TranslatorReversion.ts +0 -218
  82. package/test/W3BufferTest.ts +0 -50
  83. package/test/data/cameras.json +0 -16
  84. package/test/data/doodads.json +0 -2730
  85. package/test/data/imports.json +0 -386
  86. package/test/data/info.json +0 -250
  87. package/test/data/obj-abilities.json +0 -4892
  88. package/test/data/obj-buffs.json +0 -38
  89. package/test/data/obj-destructables.json +0 -31
  90. package/test/data/obj-doodads.json +0 -38
  91. package/test/data/obj-items.json +0 -31
  92. package/test/data/obj-units.json +0 -40
  93. package/test/data/obj-upgrades.json +0 -38
  94. package/test/data/regions.json +0 -206
  95. package/test/data/sounds.json +0 -50
  96. package/test/data/strings.json +0 -115
  97. package/test/data/terrain.json +0 -1
  98. package/test/data/units.json +0 -452
  99. package/test/data/war3map.doo +0 -0
  100. package/test/data/war3map.imp +0 -0
  101. package/test/data/war3map.j +0 -3442
  102. package/test/data/war3map.shd +0 -0
  103. package/test/data/war3map.w3a +0 -0
  104. package/test/data/war3map.w3b +0 -0
  105. package/test/data/war3map.w3c +0 -0
  106. package/test/data/war3map.w3d +0 -0
  107. package/test/data/war3map.w3e +0 -0
  108. package/test/data/war3map.w3h +0 -0
  109. package/test/data/war3map.w3i +0 -0
  110. package/test/data/war3map.w3q +0 -0
  111. package/test/data/war3map.w3r +0 -0
  112. package/test/data/war3map.w3s +0 -0
  113. package/test/data/war3map.w3t +0 -0
  114. package/test/data/war3map.w3u +0 -0
  115. package/test/data/war3map.wts +0 -631
  116. package/test/data/war3mapUnits.doo +0 -0
  117. package/tsconfig.json +0 -25
  118. package/tslint.json +0 -47
@@ -1,78 +1,62 @@
1
- import { HexBuffer } from '../HexBuffer';
2
- import { W3Buffer } from '../W3Buffer';
3
- import { WarResult, JsonResult } from '../CommonInterfaces'
4
-
5
- enum ImportType {
6
- Standard = 'standard',
7
- Custom = 'custom'
8
- }
9
-
10
- interface Import {
11
- path: string;
12
- type: ImportType;
13
- }
14
-
15
- export class ImportsTranslator {
16
-
17
- public static jsonToWar(imports: Import[]): WarResult {
18
- const outBufferToWar = new HexBuffer();
19
-
20
- /*
21
- * Header
22
- */
23
- outBufferToWar.addInt(1); // file version
24
- outBufferToWar.addInt(imports.length); // number of imports
25
-
26
- /*
27
- * Body
28
- */
29
- imports.forEach((importedFile) => {
30
- outBufferToWar.addByte(
31
- importedFile.type === ImportType.Custom ? 13 : 5
32
- );
33
-
34
- // Temporary: always start the file path with war3mapImported\ until other file support is added
35
- if (!importedFile.path.startsWith('war3mapImported\\') && importedFile.type === ImportType.Custom) {
36
- importedFile.path = 'war3mapImported\\' + importedFile.path;
37
- }
38
-
39
- outBufferToWar.addString(importedFile.path);
40
- });
41
-
42
- return {
43
- errors: [],
44
- buffer: outBufferToWar.getBuffer()
45
- };
46
- }
47
-
48
- public static warToJson(buffer: Buffer): JsonResult<Import[]> {
49
- const result = [];
50
- const outBufferToJSON = new W3Buffer(buffer);
51
-
52
- const fileVersion = outBufferToJSON.readInt(); // File version
53
- const numImports = outBufferToJSON.readInt(); // # of imports
54
-
55
- for (let i = 0; i < numImports; i++) {
56
- const typeValue = outBufferToJSON.readByte();
57
- const typeEnum = {
58
- 0: 'standard',
59
- 5: 'standard',
60
- 8: 'standard', // * preferred
61
- 10: 'custom',
62
- 13: 'custom' // * preferred
63
- };
64
-
65
- const importedFile = {
66
- type: typeEnum[typeValue], // 5 or 8= standard path, 10 or 13: custom path
67
- path: outBufferToJSON.readString() // e.g. "war3mapImported\mysound.wav"
68
- };
69
-
70
- result.push(importedFile);
71
- }
72
-
73
- return {
74
- errors: [],
75
- json: result
76
- };
77
- }
78
- }
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,124 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InfoTranslator.d.ts","sourceRoot":"","sources":["../../src/translators/InfoTranslator.ts"],"names":[],"mappings":"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"}