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,101 +1,76 @@
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
-
27
- /*
28
- * Header
29
- */
30
- outBufferToWar.addInt(0); // file version
31
- outBufferToWar.addInt(cameras.length); // number of cameras
32
-
33
- /*
34
- * Body
35
- */
36
- cameras.forEach((camera) => {
37
- outBufferToWar.addFloat(camera.target.x);
38
- outBufferToWar.addFloat(camera.target.y);
39
- outBufferToWar.addFloat(camera.offsetZ);
40
- outBufferToWar.addFloat(camera.rotation || 0); // optional
41
- outBufferToWar.addFloat(camera.aoa);
42
- outBufferToWar.addFloat(camera.distance);
43
- outBufferToWar.addFloat(camera.roll || 0);
44
- outBufferToWar.addFloat(camera.fov);
45
- outBufferToWar.addFloat(camera.farClipping);
46
- outBufferToWar.addFloat(100); // (?) unknown - usually set to 100
47
-
48
- // Camera name - must be null-terminated
49
- outBufferToWar.addString(camera.name);
50
- });
51
-
52
- return {
53
- errors: [],
54
- buffer: outBufferToWar.getBuffer()
55
- };
56
- }
57
-
58
- public static warToJson(buffer: Buffer): JsonResult<Camera[]> {
59
- const result = [];
60
- const outBufferToJSON = new W3Buffer(buffer);
61
-
62
- const fileVersion = outBufferToJSON.readInt(), // File version
63
- numCameras = outBufferToJSON.readInt(); // # of cameras
64
-
65
- for (let i = 0; i < numCameras; i++) {
66
- const camera: Camera = {
67
- target: {
68
- x: 0,
69
- y: 0
70
- },
71
- offsetZ: 0,
72
- rotation: 0,
73
- aoa: 0,
74
- distance: 0,
75
- roll: 0,
76
- fov: 0,
77
- farClipping: 0,
78
- name: ''
79
- };
80
-
81
- camera.target.x = outBufferToJSON.readFloat();
82
- camera.target.y = outBufferToJSON.readFloat();
83
- camera.offsetZ = outBufferToJSON.readFloat();
84
- camera.rotation = outBufferToJSON.readFloat();
85
- camera.aoa = outBufferToJSON.readFloat(); // angle of attack
86
- camera.distance = outBufferToJSON.readFloat();
87
- camera.roll = outBufferToJSON.readFloat();
88
- camera.fov = outBufferToJSON.readFloat(); // field of view
89
- camera.farClipping = outBufferToJSON.readFloat();
90
- outBufferToJSON.readFloat(); // consume this unknown float field
91
- camera.name = outBufferToJSON.readString();
92
-
93
- result.push(camera);
94
- }
95
-
96
- return {
97
- errors: [],
98
- json: result
99
- };
100
- }
101
- }
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();
9
+ /*
10
+ * Header
11
+ */
12
+ outBufferToWar.addInt(0); // file version
13
+ outBufferToWar.addInt(cameras.length); // number of cameras
14
+ /*
15
+ * Body
16
+ */
17
+ cameras.forEach((camera) => {
18
+ outBufferToWar.addFloat(camera.target.x);
19
+ outBufferToWar.addFloat(camera.target.y);
20
+ outBufferToWar.addFloat(camera.offsetZ);
21
+ outBufferToWar.addFloat(camera.rotation || 0); // optional
22
+ outBufferToWar.addFloat(camera.aoa);
23
+ outBufferToWar.addFloat(camera.distance);
24
+ outBufferToWar.addFloat(camera.roll || 0);
25
+ outBufferToWar.addFloat(camera.fov);
26
+ outBufferToWar.addFloat(camera.farClipping);
27
+ outBufferToWar.addFloat(100); // (?) unknown - usually set to 100
28
+ // Camera name - must be null-terminated
29
+ outBufferToWar.addString(camera.name);
30
+ });
31
+ return {
32
+ errors: [],
33
+ buffer: outBufferToWar.getBuffer()
34
+ };
35
+ }
36
+ static warToJson(buffer) {
37
+ const result = [];
38
+ const outBufferToJSON = new W3Buffer_1.W3Buffer(buffer);
39
+ const fileVersion = outBufferToJSON.readInt(), // File version
40
+ numCameras = outBufferToJSON.readInt(); // # of cameras
41
+ for (let i = 0; i < numCameras; i++) {
42
+ const camera = {
43
+ target: {
44
+ x: 0,
45
+ y: 0
46
+ },
47
+ offsetZ: 0,
48
+ rotation: 0,
49
+ aoa: 0,
50
+ distance: 0,
51
+ roll: 0,
52
+ fov: 0,
53
+ farClipping: 0,
54
+ name: ''
55
+ };
56
+ camera.target.x = outBufferToJSON.readFloat();
57
+ camera.target.y = outBufferToJSON.readFloat();
58
+ camera.offsetZ = outBufferToJSON.readFloat();
59
+ camera.rotation = outBufferToJSON.readFloat();
60
+ camera.aoa = outBufferToJSON.readFloat(); // angle of attack
61
+ camera.distance = outBufferToJSON.readFloat();
62
+ camera.roll = outBufferToJSON.readFloat();
63
+ camera.fov = outBufferToJSON.readFloat(); // field of view
64
+ camera.farClipping = outBufferToJSON.readFloat();
65
+ outBufferToJSON.readFloat(); // consume this unknown float field
66
+ camera.name = outBufferToJSON.readString();
67
+ result.push(camera);
68
+ }
69
+ return {
70
+ errors: [],
71
+ json: result
72
+ };
73
+ }
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"}
@@ -1,178 +1,146 @@
1
- import { HexBuffer } from '../HexBuffer';
2
- import { W3Buffer } from '../W3Buffer';
3
- import { rad2Deg, deg2Rad } from '../AngleConverter';
4
- import { WarResult, JsonResult, angle } from '../CommonInterfaces'
5
-
6
- interface Doodad {
7
- type: string;
8
- variation: number;
9
- position: number[];
10
- angle: angle;
11
- scale: number[];
12
- skinId: string;
13
- flags: DoodadFlag;
14
- life: number;
15
- id: number;
16
- }
17
-
18
- interface DoodadFlag {
19
- visible: any;
20
- solid: any;
21
- }
22
-
23
- enum flag {
24
- // 0= invisible and non-solid tree
25
- // 1= visible but non-solid tree
26
- // 2= normal tree (visible and solid)
27
- undefined = 0,
28
- visible = 1 || 2,
29
- solid = 3
30
- }
31
-
32
- export abstract class DoodadsTranslator {
33
-
34
- public static jsonToWar(doodadsJson: Doodad[]): WarResult {
35
- const outBufferToWar = new HexBuffer();
36
- /*
37
- * Header
38
- */
39
- outBufferToWar.addChars('W3do'); // file id
40
- outBufferToWar.addInt(8); // file version
41
- outBufferToWar.addInt(11); // subversion 0x0B
42
- outBufferToWar.addInt(doodadsJson.length); // num of trees
43
-
44
- /*
45
- * Body
46
- */
47
- doodadsJson.forEach((tree) => {
48
- outBufferToWar.addChars(tree.type);
49
- outBufferToWar.addInt(tree.variation || 0); // optional - default value 0
50
- outBufferToWar.addFloat(tree.position[0]);
51
- outBufferToWar.addFloat(tree.position[1]);
52
- outBufferToWar.addFloat(tree.position[2]);
53
-
54
- // Angle
55
- // Doodads format is unique because it uses radians for angles, as opposed
56
- // to angles in any other file which use degrees. Hence conversion is needed.
57
- // war3map: Expects angle in RADIANS
58
- // JSON: Spec defines angle in DEGREES
59
- outBufferToWar.addFloat(deg2Rad(tree.angle) || 0); // optional - default value 0
60
-
61
- // Scale
62
- if (!tree.scale) tree.scale = [1, 1, 1];
63
- outBufferToWar.addFloat(tree.scale[0] || 1);
64
- outBufferToWar.addFloat(tree.scale[1] || 1);
65
- outBufferToWar.addFloat(tree.scale[2] || 1);
66
-
67
- outBufferToWar.addChars(tree.skinId);
68
-
69
- // Tree flags
70
- /* | Visible | Solid | Flag value |
71
- | no | no | 0 |
72
- | yes | no | 1 |
73
- | yes | yes | 2 | */
74
- let treeFlag = 2; // default: normal tree
75
- if (!tree.flags) tree.flags = { visible: true, solid: true }; // defaults if no flags are specified
76
- if (!tree.flags.visible && !tree.flags.solid) treeFlag = 0;
77
- else if (tree.flags.visible && !tree.flags.solid) treeFlag = 1;
78
- else if (tree.flags.visible && tree.flags.solid) treeFlag = 2;
79
- // Note: invisible and solid is not an option
80
- outBufferToWar.addByte(treeFlag);
81
-
82
- outBufferToWar.addByte(tree.life || 100);
83
- outBufferToWar.addInt(0); // NOT SUPPORTED: random item table pointer: fixed to 0
84
- outBufferToWar.addInt(0); // NOT SUPPORTED: number of items dropped for item table
85
- outBufferToWar.addInt(tree.id);
86
- });
87
-
88
- /*
89
- * Footer
90
- */
91
- outBufferToWar.addInt(0); // special doodad format number, fixed at 0x00
92
- outBufferToWar.addInt(0); // NOT SUPPORTED: number of special doodads
93
-
94
- return {
95
- errors: [],
96
- buffer: outBufferToWar.getBuffer()
97
- };
98
- }
99
-
100
- public static warToJson(buffer: Buffer): JsonResult<Doodad[]> {
101
- const result = [];
102
- const outBufferToJSON = new W3Buffer(buffer);
103
-
104
- const fileId = outBufferToJSON.readChars(4); // W3do for doodad file
105
- const fileVersion = outBufferToJSON.readInt(); // File version = 8
106
- const subVersion = outBufferToJSON.readInt(); // 0B 00 00 00
107
- const numDoodads = outBufferToJSON.readInt(); // # of doodads
108
-
109
- for (let i = 0; i < numDoodads; i++) {
110
- const doodad: Doodad = {
111
- type: '',
112
- variation: 0,
113
- position: [0, 0, 0],
114
- angle: -1,
115
- scale: [0, 0, 0],
116
- skinId: '',
117
- flags: { visible: flag.visible, solid: flag.solid },
118
- life: -1,
119
- id: -1
120
- };
121
-
122
- doodad.type = outBufferToJSON.readChars(4);
123
- doodad.variation = outBufferToJSON.readInt();
124
- doodad.position = [outBufferToJSON.readFloat(), outBufferToJSON.readFloat(), outBufferToJSON.readFloat()]; // X Y Z coords
125
-
126
- // Angle
127
- // Doodads format is unique because it uses radians for angles, as opposed
128
- // to angles in any other file which use degrees. Hence conversion is needed.
129
- // war3map: Expects angle in RADIANS
130
- // JSON: Spec defines angle in DEGREES
131
- doodad.angle = rad2Deg(outBufferToJSON.readFloat());
132
-
133
- doodad.scale = [outBufferToJSON.readFloat(), outBufferToJSON.readFloat(), outBufferToJSON.readFloat()]; // X Y Z scaling
134
- doodad.skinId = outBufferToJSON.readChars(4);
135
-
136
- const flags: flag = outBufferToJSON.readByte();
137
- doodad.flags = {
138
- visible: flags === 1 || flags === 2,
139
- solid: flags === 2
140
- };
141
-
142
- doodad.life = outBufferToJSON.readByte(); // as a %
143
-
144
- // UNSUPPORTED: random item set drops when doodad is destroyed/killed
145
- // This section just consumes the bytes from the file
146
- const randomItemSetPtr = outBufferToJSON.readInt(); // points to an item set defined in the map (rather than custom one defined below)
147
- const numberOfItemSets = outBufferToJSON.readInt(); // this should be 0 if randomItemSetPtr is >= 0
148
-
149
- for (let j = 0; j < numberOfItemSets; j++) {
150
- // Read the item set
151
- const numberOfItems = outBufferToJSON.readInt();
152
- for (let k = 0; k < numberOfItems; k++) {
153
- outBufferToJSON.readChars(4); // Item ID
154
- outBufferToJSON.readInt(); // % chance to drop
155
- }
156
- }
157
-
158
- doodad.id = outBufferToJSON.readInt();
159
-
160
- result.push(doodad);
161
- }
162
-
163
- // UNSUPPORTED: Special doodads
164
- outBufferToJSON.readInt(); // special doodad format version set to '0'
165
- const numSpecialDoodads = outBufferToJSON.readInt();
166
- for (let i = 0; i < numSpecialDoodads; i++) {
167
- outBufferToJSON.readChars(4); // doodad ID
168
- outBufferToJSON.readInt();
169
- outBufferToJSON.readInt();
170
- outBufferToJSON.readInt();
171
- }
172
-
173
- return {
174
- errors: [],
175
- json: result
176
- };
177
- }
178
- }
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DoodadsTranslator.js","sourceRoot":"","sources":["../../src/translators/DoodadsTranslator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
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
@@ -0,0 +1 @@
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"}