wc3maptranslator 4.0.1 → 4.0.3

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 (117) hide show
  1. package/dist/src/AngleConverter.d.ts +3 -0
  2. package/dist/src/AngleConverter.d.ts.map +1 -0
  3. package/dist/src/AngleConverter.js +12 -0
  4. package/dist/src/AngleConverter.js.map +1 -0
  5. package/dist/src/CommonInterfaces.d.ts +17 -0
  6. package/dist/src/CommonInterfaces.d.ts.map +1 -0
  7. package/dist/src/CommonInterfaces.js +3 -0
  8. package/dist/src/CommonInterfaces.js.map +1 -0
  9. package/dist/src/HexBuffer.d.ts +15 -0
  10. package/dist/src/HexBuffer.d.ts.map +1 -0
  11. package/{lib/HexBuffer.ts → dist/src/HexBuffer.js} +32 -42
  12. package/dist/src/HexBuffer.js.map +1 -0
  13. package/dist/src/W3Buffer.d.ts +14 -0
  14. package/dist/src/W3Buffer.d.ts.map +1 -0
  15. package/{lib/W3Buffer.ts → dist/src/W3Buffer.js} +25 -31
  16. package/dist/src/W3Buffer.js.map +1 -0
  17. package/dist/src/index.d.ts +3 -0
  18. package/dist/src/index.d.ts.map +1 -0
  19. package/{index.js → dist/src/index.js} +1 -1
  20. package/dist/src/index.js.map +1 -0
  21. package/dist/src/translators/CamerasTranslator.d.ts +23 -0
  22. package/dist/src/translators/CamerasTranslator.d.ts.map +1 -0
  23. package/{lib/translators/CamerasTranslator.ts → dist/src/translators/CamerasTranslator.js} +14 -39
  24. package/dist/src/translators/CamerasTranslator.js.map +1 -0
  25. package/dist/src/translators/DoodadsTranslator.d.ts +23 -0
  26. package/dist/src/translators/DoodadsTranslator.d.ts.map +1 -0
  27. package/{lib/translators/DoodadsTranslator.ts → dist/src/translators/DoodadsTranslator.js} +33 -65
  28. package/dist/src/translators/DoodadsTranslator.js.map +1 -0
  29. package/dist/src/translators/ImportsTranslator.d.ts +16 -0
  30. package/dist/src/translators/ImportsTranslator.d.ts.map +1 -0
  31. package/{lib/translators/ImportsTranslator.ts → dist/src/translators/ImportsTranslator.js} +21 -37
  32. package/dist/src/translators/ImportsTranslator.js.map +1 -0
  33. package/dist/src/translators/InfoTranslator.d.ts +124 -0
  34. package/dist/src/translators/InfoTranslator.d.ts.map +1 -0
  35. package/{lib/translators/InfoTranslator.ts → dist/src/translators/InfoTranslator.js} +108 -270
  36. package/dist/src/translators/InfoTranslator.js.map +1 -0
  37. package/dist/src/translators/ObjectsTranslator.d.ts +23 -0
  38. package/dist/src/translators/ObjectsTranslator.d.ts.map +1 -0
  39. package/{lib/translators/ObjectsTranslator.ts → dist/src/translators/ObjectsTranslator.js} +91 -125
  40. package/dist/src/translators/ObjectsTranslator.js.map +1 -0
  41. package/dist/src/translators/RegionsTranslator.d.ts +22 -0
  42. package/dist/src/translators/RegionsTranslator.d.ts.map +1 -0
  43. package/{lib/translators/RegionsTranslator.ts → dist/src/translators/RegionsTranslator.js} +18 -45
  44. package/dist/src/translators/RegionsTranslator.js.map +1 -0
  45. package/dist/src/translators/SoundsTranslator.d.ts +35 -0
  46. package/dist/src/translators/SoundsTranslator.d.ts.map +1 -0
  47. package/{lib/translators/SoundsTranslator.ts → dist/src/translators/SoundsTranslator.js} +30 -84
  48. package/dist/src/translators/SoundsTranslator.js.map +1 -0
  49. package/dist/src/translators/StringsTranslator.d.ts +7 -0
  50. package/dist/src/translators/StringsTranslator.d.ts.map +1 -0
  51. package/{lib/translators/StringsTranslator.ts → dist/src/translators/StringsTranslator.js} +12 -17
  52. package/dist/src/translators/StringsTranslator.js.map +1 -0
  53. package/dist/src/translators/TerrainTranslator.d.ts +33 -0
  54. package/dist/src/translators/TerrainTranslator.d.ts.map +1 -0
  55. package/{lib/translators/TerrainTranslator.ts → dist/src/translators/TerrainTranslator.js} +29 -84
  56. package/dist/src/translators/TerrainTranslator.js.map +1 -0
  57. package/dist/src/translators/UnitsTranslator.d.ts +40 -0
  58. package/dist/src/translators/UnitsTranslator.d.ts.map +1 -0
  59. package/{lib/translators/UnitsTranslator.ts → dist/src/translators/UnitsTranslator.js} +33 -95
  60. package/dist/src/translators/UnitsTranslator.js.map +1 -0
  61. package/{lib/translators/index.ts → dist/src/translators/index.d.ts} +1 -0
  62. package/dist/src/translators/index.d.ts.map +1 -0
  63. package/dist/src/translators/index.js +23 -0
  64. package/dist/src/translators/index.js.map +1 -0
  65. package/package.json +5 -4
  66. package/.codeclimate.yml +0 -12
  67. package/.editorconfig +0 -8
  68. package/.eslintignore +0 -5
  69. package/.eslintrc +0 -55
  70. package/.github/workflows/codeql-analysis.yml +0 -54
  71. package/.nycrc +0 -18
  72. package/.travis.yml +0 -23
  73. package/CHANGELOG.md +0 -78
  74. package/index.ts +0 -14
  75. package/lib/AngleConverter.ts +0 -7
  76. package/lib/CommonInterfaces.ts +0 -22
  77. package/test/.mocharc.json +0 -4
  78. package/test/AngleConverterTest.ts +0 -18
  79. package/test/HexBufferTest.ts +0 -170
  80. package/test/TranslatorReversion.ts +0 -218
  81. package/test/W3BufferTest.ts +0 -50
  82. package/test/data/cameras.json +0 -16
  83. package/test/data/doodads.json +0 -2730
  84. package/test/data/imports.json +0 -386
  85. package/test/data/info.json +0 -250
  86. package/test/data/obj-abilities.json +0 -4892
  87. package/test/data/obj-buffs.json +0 -38
  88. package/test/data/obj-destructables.json +0 -31
  89. package/test/data/obj-doodads.json +0 -38
  90. package/test/data/obj-items.json +0 -31
  91. package/test/data/obj-units.json +0 -40
  92. package/test/data/obj-upgrades.json +0 -38
  93. package/test/data/regions.json +0 -206
  94. package/test/data/sounds.json +0 -50
  95. package/test/data/strings.json +0 -115
  96. package/test/data/terrain.json +0 -1
  97. package/test/data/units.json +0 -452
  98. package/test/data/war3map.doo +0 -0
  99. package/test/data/war3map.imp +0 -0
  100. package/test/data/war3map.j +0 -3442
  101. package/test/data/war3map.shd +0 -0
  102. package/test/data/war3map.w3a +0 -0
  103. package/test/data/war3map.w3b +0 -0
  104. package/test/data/war3map.w3c +0 -0
  105. package/test/data/war3map.w3d +0 -0
  106. package/test/data/war3map.w3e +0 -0
  107. package/test/data/war3map.w3h +0 -0
  108. package/test/data/war3map.w3i +0 -0
  109. package/test/data/war3map.w3q +0 -0
  110. package/test/data/war3map.w3r +0 -0
  111. package/test/data/war3map.w3s +0 -0
  112. package/test/data/war3map.w3t +0 -0
  113. package/test/data/war3map.w3u +0 -0
  114. package/test/data/war3map.wts +0 -631
  115. package/test/data/war3mapUnits.doo +0 -0
  116. package/tsconfig.json +0 -25
  117. package/tslint.json +0 -47
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InfoTranslator.js","sourceRoot":"","sources":["../../../src/translators/InfoTranslator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /// <reference types="node" />
2
+ import { WarResult, JsonResult } from '../CommonInterfaces';
3
+ declare enum ObjectType {
4
+ Units = "units",
5
+ Items = "items",
6
+ Destructables = "destructables",
7
+ Doodads = "doodads",
8
+ Abilities = "abilities",
9
+ Buffs = "buffs",
10
+ Upgrades = "upgrades"
11
+ }
12
+ interface ObjectModificationTable {
13
+ original: object;
14
+ custom: object;
15
+ }
16
+ export declare abstract class ObjectsTranslator {
17
+ static readonly ObjectType: typeof ObjectType;
18
+ private static varTypes;
19
+ static jsonToWar(type: string, json: any): WarResult;
20
+ static warToJson(type: string, buffer: Buffer): JsonResult<ObjectModificationTable>;
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=ObjectsTranslator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectsTranslator.d.ts","sourceRoot":"","sources":["../../../src/translators/ObjectsTranslator.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAwB3D,aAAK,UAAU;IACX,KAAK,UAAU;IACf,KAAK,UAAU;IACf,aAAa,kBAAkB;IAC/B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,QAAQ,aAAa;CACxB;AAeD,UAAU,uBAAuB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,8BAAsB,iBAAiB;IAKnC,gBAAuB,UAAU,oBAAc;IAE/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CASrB;WAEY,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,KAAA,GAAG,SAAS;WAuGxC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CAAC;CAkE7F"}
@@ -1,150 +1,115 @@
1
- import { HexBuffer } from '../HexBuffer';
2
- import { W3Buffer } from '../W3Buffer';
3
- import { WarResult, JsonResult } from '../CommonInterfaces'
4
-
5
- enum TableType {
6
- original = 'original',
7
- custom = 'custom'
8
- }
9
-
10
- enum ModificationType {
11
- int = 'int',
12
- real = 'real',
13
- unreal = 'unreal',
14
- string = 'string'
15
- }
16
-
17
- enum FileTypeExtension { // (*) - uses the two optional ints after variable type
18
- units = 'w3u',
19
- items = 'w3t',
20
- destructables = 'w3b',
21
- doodads = 'w3d', // (*)
22
- abilities = 'w3a', // (*)
23
- buffs = 'w3h',
24
- upgrades = 'w3q' // (*)
25
- };
26
-
27
- enum ObjectType {
28
- Units = 'units',
29
- Items = 'items',
30
- Destructables = 'destructables',
31
- Doodads = 'doodads',
32
- Abilities = 'abilities',
33
- Buffs = 'buffs',
34
- Upgrades = 'upgrades'
35
- };
36
-
37
- interface Modification {
38
- id: string;
39
- type: ModificationType; // 'int' | 'real' | 'unreal' | 'string',
40
- value: any;
41
-
42
- // Marked optional because these fields are not needed on any table.
43
- // They can be specified for: Doodads, Abilities, Upgrades, but if
44
- // not specified, they default to the value 0.
45
- level?: number;
46
- column?: number;
47
- variation?: number;
48
- }
49
-
50
- interface ObjectModificationTable {
51
- original: object,
52
- custom: object
53
- }
54
-
55
- export abstract class ObjectsTranslator {
56
-
57
- // Expose the ObjectType enum as part of this abstract class
58
- // The enum could be "export"ed , but it wouldn't be accessible
59
- // via `ObjectsTranslator.ObjectType`, which is preferable.
60
- public static readonly ObjectType = ObjectType;
61
-
62
- private static varTypes = {
63
- int: 0,
64
- real: 1,
65
- unreal: 2,
66
- string: 3,
67
- 0: 'int',
68
- 1: 'real',
69
- 2: 'unreal',
70
- 3: 'string'
71
- };
72
-
73
- public static jsonToWar(type: string, json): WarResult {
74
- const outBufferToWar = new HexBuffer();
75
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObjectsTranslator = void 0;
4
+ const HexBuffer_1 = require("../HexBuffer");
5
+ const W3Buffer_1 = require("../W3Buffer");
6
+ var TableType;
7
+ (function (TableType) {
8
+ TableType["original"] = "original";
9
+ TableType["custom"] = "custom";
10
+ })(TableType || (TableType = {}));
11
+ var ModificationType;
12
+ (function (ModificationType) {
13
+ ModificationType["int"] = "int";
14
+ ModificationType["real"] = "real";
15
+ ModificationType["unreal"] = "unreal";
16
+ ModificationType["string"] = "string";
17
+ })(ModificationType || (ModificationType = {}));
18
+ var FileTypeExtension;
19
+ (function (FileTypeExtension) {
20
+ FileTypeExtension["units"] = "w3u";
21
+ FileTypeExtension["items"] = "w3t";
22
+ FileTypeExtension["destructables"] = "w3b";
23
+ FileTypeExtension["doodads"] = "w3d";
24
+ FileTypeExtension["abilities"] = "w3a";
25
+ FileTypeExtension["buffs"] = "w3h";
26
+ FileTypeExtension["upgrades"] = "w3q"; // (*)
27
+ })(FileTypeExtension || (FileTypeExtension = {}));
28
+ ;
29
+ var ObjectType;
30
+ (function (ObjectType) {
31
+ ObjectType["Units"] = "units";
32
+ ObjectType["Items"] = "items";
33
+ ObjectType["Destructables"] = "destructables";
34
+ ObjectType["Doodads"] = "doodads";
35
+ ObjectType["Abilities"] = "abilities";
36
+ ObjectType["Buffs"] = "buffs";
37
+ ObjectType["Upgrades"] = "upgrades";
38
+ })(ObjectType || (ObjectType = {}));
39
+ ;
40
+ class ObjectsTranslator {
41
+ static jsonToWar(type, json) {
42
+ const outBufferToWar = new HexBuffer_1.HexBuffer();
76
43
  /*
77
44
  * Header
78
45
  */
79
46
  outBufferToWar.addInt(2); // file version
80
-
81
- const generateTableFromJson = (tableType: TableType, tableData) => { // create "original" or "custom" table
47
+ const generateTableFromJson = (tableType, tableData) => {
82
48
  Object.keys(tableData).forEach((defKey) => {
83
49
  const obj = tableData[defKey];
84
-
85
50
  // Original and new object ids
86
51
  if (tableType === TableType.original) {
87
52
  outBufferToWar.addChars(defKey);
88
- outBufferToWar.addByte(0); outBufferToWar.addByte(0); outBufferToWar.addByte(0); outBufferToWar.addByte(0); // no new Id is assigned
89
- } else {
53
+ outBufferToWar.addByte(0);
54
+ outBufferToWar.addByte(0);
55
+ outBufferToWar.addByte(0);
56
+ outBufferToWar.addByte(0); // no new Id is assigned
57
+ }
58
+ else {
90
59
  // e.g. "h000:hfoo"
91
60
  outBufferToWar.addChars(defKey.substring(5, 9)); // original id
92
61
  outBufferToWar.addChars(defKey.substring(0, 4)); // custom id
93
62
  }
94
-
95
63
  // Number of modifications made to this object
96
64
  outBufferToWar.addInt(obj.length);
97
-
98
- obj.forEach((mod: Modification) => {
65
+ obj.forEach((mod) => {
99
66
  let modType;
100
-
101
67
  // Modification id (e.g. unam = name; reference MetaData lookups)
102
68
  outBufferToWar.addChars(mod.id);
103
-
104
69
  // Determine what type of field the mod is (int, real, unreal, string)
105
70
  if (mod.type) { // if a type is specified, use it
106
71
  modType = this.varTypes[mod.type];
107
- } else { // otherwise we try to infer between int/string (note there is no way to detect unreal or float this way, so user must specify those explicitly)
72
+ }
73
+ else { // otherwise we try to infer between int/string (note there is no way to detect unreal or float this way, so user must specify those explicitly)
108
74
  if (typeof mod.value === 'number') {
109
75
  modType = this.varTypes.int;
110
- } else if (typeof mod.value === 'string') {
76
+ }
77
+ else if (typeof mod.value === 'string') {
111
78
  modType = this.varTypes.string;
112
- } else {
79
+ }
80
+ else {
113
81
  // ERROR: no type specified and cannot infer type!
114
82
  }
115
83
  }
116
-
117
84
  outBufferToWar.addInt(modType);
118
-
119
85
  // Addl integers
120
86
  // Required for: doodads, abilities, upgrades
121
87
  if (type === ObjectType.Doodads || type === ObjectType.Abilities || type === ObjectType.Upgrades) {
122
-
123
88
  // Level or variation
124
89
  // We need to check if hasOwnProperty because these could be explititly
125
90
  // set to 0, but JavaScript's truthiness evaluates to false to it was defaulting
126
91
  outBufferToWar.addInt(mod.level || mod.variation || 0); // defaults to 0
127
-
128
92
  outBufferToWar.addInt(mod.column || 0); // E.g DataA1 is 1 because of col A; refer to the xyzData.slk files for Data fields
129
93
  }
130
-
131
94
  // Write mod value
132
95
  if (modType === this.varTypes.int) {
133
96
  outBufferToWar.addInt(mod.value);
134
- } else if (modType === this.varTypes.real || modType === this.varTypes.unreal) {
97
+ }
98
+ else if (modType === this.varTypes.real || modType === this.varTypes.unreal) {
135
99
  // Follow-up: check if unreal values are same hex format as real
136
100
  outBufferToWar.addFloat(mod.value);
137
- } else if (modType === this.varTypes.string) {
101
+ }
102
+ else if (modType === this.varTypes.string) {
138
103
  // Note that World Editor normally creates a TRIGSTR_000 for these string
139
104
  // values - WC3MapTranslator just writes the string directly to file
140
105
  outBufferToWar.addString(mod.value);
141
106
  }
142
-
143
107
  // End of struct
144
108
  if (tableType === TableType.original) {
145
109
  // Original objects are ended with their base id (e.g. hfoo)
146
110
  outBufferToWar.addChars(defKey);
147
- } else {
111
+ }
112
+ else {
148
113
  // Custom objects are ended with 0000 bytes
149
114
  outBufferToWar.addByte(0);
150
115
  outBufferToWar.addByte(0);
@@ -154,89 +119,90 @@ export abstract class ObjectsTranslator {
154
119
  });
155
120
  });
156
121
  };
157
-
158
122
  /*
159
123
  * Original table
160
124
  */
161
125
  outBufferToWar.addInt(Object.keys(json.original).length);
162
126
  generateTableFromJson(TableType.original, json.original);
163
-
164
127
  /*
165
128
  * Custom table
166
129
  */
167
130
  outBufferToWar.addInt(Object.keys(json.custom).length); // # entry modifications
168
131
  generateTableFromJson(TableType.custom, json.custom);
169
-
170
132
  return {
171
133
  errors: [],
172
134
  buffer: outBufferToWar.getBuffer()
173
135
  };
174
136
  }
175
-
176
- public static warToJson(type: string, buffer: Buffer): JsonResult<ObjectModificationTable> {
137
+ static warToJson(type, buffer) {
177
138
  const result = { original: {}, custom: {} };
178
- const outBufferToJSON = new W3Buffer(buffer);
179
-
139
+ const outBufferToJSON = new W3Buffer_1.W3Buffer(buffer);
180
140
  const fileVersion = outBufferToJSON.readInt();
181
-
182
- const readModificationTable = (isOriginalTable: boolean) => {
141
+ const readModificationTable = (isOriginalTable) => {
183
142
  const numTableModifications = outBufferToJSON.readInt();
184
-
185
143
  for (let i = 0; i < numTableModifications; i++) {
186
144
  const objectDefinition = []; // object definition will store one or more modification objects
187
-
188
- const originalId = outBufferToJSON.readChars(4),
189
- customId = outBufferToJSON.readChars(4),
190
- modificationCount = outBufferToJSON.readInt();
191
-
145
+ const originalId = outBufferToJSON.readChars(4), customId = outBufferToJSON.readChars(4), modificationCount = outBufferToJSON.readInt();
192
146
  for (let j = 0; j < modificationCount; j++) {
193
- const modification: Modification = {
147
+ const modification = {
194
148
  id: '',
195
149
  type: ModificationType.string,
196
150
  level: 0,
197
151
  column: 0,
198
152
  value: {}
199
153
  };
200
-
201
154
  modification.id = outBufferToJSON.readChars(4);
202
155
  modification.type = this.varTypes[outBufferToJSON.readInt()]; // 'int' | 'real' | 'unreal' | 'string',
203
-
204
156
  if (type === ObjectType.Doodads || type === ObjectType.Abilities || type === ObjectType.Upgrades) {
205
157
  modification.level = outBufferToJSON.readInt();
206
158
  modification.column = outBufferToJSON.readInt();
207
159
  }
208
-
209
160
  if (modification.type === 'int') {
210
161
  modification.value = outBufferToJSON.readInt();
211
- } else if (modification.type === 'real' || modification.type === 'unreal') {
162
+ }
163
+ else if (modification.type === 'real' || modification.type === 'unreal') {
212
164
  modification.value = outBufferToJSON.readFloat();
213
- } else { // modification.type === 'string'
165
+ }
166
+ else { // modification.type === 'string'
214
167
  modification.value = outBufferToJSON.readString();
215
168
  }
216
-
217
169
  if (isOriginalTable) {
218
170
  outBufferToJSON.readInt(); // should be 0 for original objects
219
- } else {
171
+ }
172
+ else {
220
173
  outBufferToJSON.readChars(4); // should be object ID for custom objects
221
174
  }
222
-
223
175
  objectDefinition.push(modification);
224
176
  }
225
-
226
177
  if (isOriginalTable) {
227
178
  result.original[originalId] = objectDefinition;
228
- } else {
179
+ }
180
+ else {
229
181
  result.custom[customId + ':' + originalId] = objectDefinition;
230
182
  }
231
183
  }
232
184
  };
233
-
234
185
  readModificationTable(true);
235
186
  readModificationTable(false);
236
-
237
187
  return {
238
188
  errors: [],
239
189
  json: result
240
190
  };
241
191
  }
242
192
  }
193
+ exports.ObjectsTranslator = ObjectsTranslator;
194
+ // Expose the ObjectType enum as part of this abstract class
195
+ // The enum could be "export"ed , but it wouldn't be accessible
196
+ // via `ObjectsTranslator.ObjectType`, which is preferable.
197
+ ObjectsTranslator.ObjectType = ObjectType;
198
+ ObjectsTranslator.varTypes = {
199
+ int: 0,
200
+ real: 1,
201
+ unreal: 2,
202
+ string: 3,
203
+ 0: 'int',
204
+ 1: 'real',
205
+ 2: 'unreal',
206
+ 3: 'string'
207
+ };
208
+ //# sourceMappingURL=ObjectsTranslator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectsTranslator.js","sourceRoot":"","sources":["../../../src/translators/ObjectsTranslator.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AACzC,0CAAuC;AAGvC,IAAK,SAGJ;AAHD,WAAK,SAAS;IACV,kCAAqB,CAAA;IACrB,8BAAiB,CAAA;AACrB,CAAC,EAHI,SAAS,KAAT,SAAS,QAGb;AAED,IAAK,gBAKJ;AALD,WAAK,gBAAgB;IACjB,+BAAW,CAAA;IACX,iCAAa,CAAA;IACb,qCAAiB,CAAA;IACjB,qCAAiB,CAAA;AACrB,CAAC,EALI,gBAAgB,KAAhB,gBAAgB,QAKpB;AAED,IAAK,iBAQJ;AARD,WAAK,iBAAiB;IAClB,kCAAa,CAAA;IACb,kCAAa,CAAA;IACb,0CAAqB,CAAA;IACrB,oCAAe,CAAA;IACf,sCAAiB,CAAA;IACjB,kCAAa,CAAA;IACb,qCAAgB,CAAA,CAAC,MAAM;AAC3B,CAAC,EARI,iBAAiB,KAAjB,iBAAiB,QAQrB;AAAA,CAAC;AAEF,IAAK,UAQJ;AARD,WAAK,UAAU;IACX,6BAAe,CAAA;IACf,6BAAe,CAAA;IACf,6CAA+B,CAAA;IAC/B,iCAAmB,CAAA;IACnB,qCAAuB,CAAA;IACvB,6BAAe,CAAA;IACf,mCAAqB,CAAA;AACzB,CAAC,EARI,UAAU,KAAV,UAAU,QAQd;AAAA,CAAC;AAoBF,MAAsB,iBAAiB;IAkB5B,MAAM,CAAC,SAAS,CAAC,IAAY,EAAE,IAAI;QACtC,MAAM,cAAc,GAAG,IAAI,qBAAS,EAAE,CAAC;QAEvC;;WAEG;QACH,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;QAEzC,MAAM,qBAAqB,GAAG,CAAC,SAAoB,EAAE,SAAS,EAAE,EAAE;YAC9D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;gBAE9B,8BAA8B;gBAC9B,IAAI,SAAS,KAAK,SAAS,CAAC,QAAQ,EAAE;oBAClC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAChC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB;iBACvI;qBAAM;oBACH,mBAAmB;oBACnB,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc;oBAC/D,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;iBAChE;gBAED,8CAA8C;gBAC9C,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAElC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAiB,EAAE,EAAE;oBAC9B,IAAI,OAAO,CAAC;oBAEZ,iEAAiE;oBACjE,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAEhC,sEAAsE;oBACtE,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,iCAAiC;wBAC7C,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qBACrC;yBAAM,EAAE,gJAAgJ;wBACrJ,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;4BAC/B,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;yBAC/B;6BAAM,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;4BACtC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;yBAClC;6BAAM;4BACH,kDAAkD;yBACrD;qBACJ;oBAED,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAE/B,gBAAgB;oBAChB,6CAA6C;oBAC7C,IAAI,IAAI,KAAK,UAAU,CAAC,OAAO,IAAI,IAAI,KAAK,UAAU,CAAC,SAAS,IAAI,IAAI,KAAK,UAAU,CAAC,QAAQ,EAAE;wBAE9F,qBAAqB;wBACrB,uEAAuE;wBACvE,gFAAgF;wBAChF,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB;wBAExE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,mFAAmF;qBAC9H;oBAED,kBAAkB;oBAClB,IAAI,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;wBAC/B,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;qBACpC;yBAAM,IAAI,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;wBAC3E,gEAAgE;wBAChE,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;qBACtC;yBAAM,IAAI,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;wBACzC,yEAAyE;wBACzE,oEAAoE;wBACpE,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;qBACvC;oBAED,gBAAgB;oBAChB,IAAI,SAAS,KAAK,SAAS,CAAC,QAAQ,EAAE;wBAClC,4DAA4D;wBAC5D,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;qBACnC;yBAAM;wBACH,2CAA2C;wBAC3C,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC1B,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC1B,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC1B,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;qBAC7B;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF;;WAEG;QACH,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;QACzD,qBAAqB,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzD;;WAEG;QACH,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAwB;QAChF,qBAAqB,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAErD,OAAO;YACH,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE;SACrC,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,IAAY,EAAE,MAAc;QAChD,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC;QAE9C,MAAM,qBAAqB,GAAG,CAAC,eAAwB,EAAE,EAAE;YACvD,MAAM,qBAAqB,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC;YAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,qBAAqB,EAAE,CAAC,EAAE,EAAE;gBAC5C,MAAM,gBAAgB,GAAG,EAAE,CAAC,CAAC,gEAAgE;gBAE7F,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAC3C,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EACvC,iBAAiB,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC;gBAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE;oBACxC,MAAM,YAAY,GAAiB;wBAC/B,EAAE,EAAE,EAAE;wBACN,IAAI,EAAE,gBAAgB,CAAC,MAAM;wBAC7B,KAAK,EAAE,CAAC;wBACR,MAAM,EAAE,CAAC;wBACT,KAAK,EAAE,EAAE;qBACZ,CAAC;oBAEF,YAAY,CAAC,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC/C,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,wCAAwC;oBAEtG,IAAI,IAAI,KAAK,UAAU,CAAC,OAAO,IAAI,IAAI,KAAK,UAAU,CAAC,SAAS,IAAI,IAAI,KAAK,UAAU,CAAC,QAAQ,EAAE;wBAC9F,YAAY,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC;wBAC/C,YAAY,CAAC,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC;qBACnD;oBAED,IAAI,YAAY,CAAC,IAAI,KAAK,KAAK,EAAE;wBAC7B,YAAY,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC;qBAClD;yBAAM,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE;wBACvE,YAAY,CAAC,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;qBACpD;yBAAM,EAAE,iCAAiC;wBACtC,YAAY,CAAC,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC;qBACrD;oBAED,IAAI,eAAe,EAAE;wBACjB,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,mCAAmC;qBACjE;yBAAM;wBACH,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,yCAAyC;qBAC1E;oBAED,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBACvC;gBAED,IAAI,eAAe,EAAE;oBACjB,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC;iBAClD;qBAAM;oBACH,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,GAAG,UAAU,CAAC,GAAG,gBAAgB,CAAC;iBACjE;aACJ;QACL,CAAC,CAAC;QAEF,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC5B,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAE7B,OAAO;YACH,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,MAAM;SACf,CAAC;IACN,CAAC;;AA1LL,8CA2LC;AAzLG,4DAA4D;AAC5D,+DAA+D;AAC/D,2DAA2D;AACpC,4BAAU,GAAG,UAAU,CAAC;AAEhC,0BAAQ,GAAG;IACtB,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,QAAQ;CACd,CAAC"}
@@ -0,0 +1,22 @@
1
+ /// <reference types="node" />
2
+ import { WarResult, JsonResult } from '../CommonInterfaces';
3
+ interface Region {
4
+ position: Rect;
5
+ name: string;
6
+ id: number;
7
+ weatherEffect: string;
8
+ ambientSound: string;
9
+ color: number[];
10
+ }
11
+ interface Rect {
12
+ left: number;
13
+ bottom: number;
14
+ right: number;
15
+ top: number;
16
+ }
17
+ export declare abstract class RegionsTranslator {
18
+ static jsonToWar(regionsJson: Region[]): WarResult;
19
+ static warToJson(buffer: Buffer): JsonResult<Region[]>;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=RegionsTranslator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegionsTranslator.d.ts","sourceRoot":"","sources":["../../../src/translators/RegionsTranslator.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAE3D,UAAU,MAAM;IACZ,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,UAAU,IAAI;IACV,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACf;AAED,8BAAsB,iBAAiB;WAErB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS;WAsD3C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;CA8ChE"}
@@ -1,34 +1,16 @@
1
- import { HexBuffer } from '../HexBuffer';
2
- import { W3Buffer } from '../W3Buffer';
3
- import { WarResult, JsonResult } from '../CommonInterfaces'
4
-
5
- interface Region {
6
- position: Rect;
7
- name: string;
8
- id: number;
9
- weatherEffect: string;
10
- ambientSound: string;
11
- color: number[];
12
- }
13
-
14
- interface Rect {
15
- left: number;
16
- bottom: number;
17
- right: number;
18
- top: number;
19
- }
20
-
21
- export abstract class RegionsTranslator {
22
-
23
- public static jsonToWar(regionsJson: Region[]): WarResult {
24
- const outBufferToWar = new HexBuffer();
25
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RegionsTranslator = void 0;
4
+ const HexBuffer_1 = require("../HexBuffer");
5
+ const W3Buffer_1 = require("../W3Buffer");
6
+ class RegionsTranslator {
7
+ static jsonToWar(regionsJson) {
8
+ const outBufferToWar = new HexBuffer_1.HexBuffer();
26
9
  /*
27
10
  * Header
28
11
  */
29
12
  outBufferToWar.addInt(5); // file version
30
13
  outBufferToWar.addInt(regionsJson.length); // number of regions
31
-
32
14
  /*
33
15
  * Body
34
16
  */
@@ -39,50 +21,42 @@ export abstract class RegionsTranslator {
39
21
  outBufferToWar.addFloat(region.position.bottom);
40
22
  outBufferToWar.addFloat(region.position.right);
41
23
  outBufferToWar.addFloat(region.position.top);
42
-
43
24
  outBufferToWar.addString(region.name);
44
25
  outBufferToWar.addInt(region.id);
45
-
46
26
  // Weather effect name - lookup necessary: char[4]
47
27
  if (region.weatherEffect) {
48
28
  outBufferToWar.addChars(region.weatherEffect); // Weather effect is optional - defaults to 0000 for "none"
49
- } else {
29
+ }
30
+ else {
50
31
  // We can't put a string "0000", because ASCII 0's differ from 0x0 bytes
51
32
  outBufferToWar.addByte(0);
52
33
  outBufferToWar.addByte(0);
53
34
  outBufferToWar.addByte(0);
54
35
  outBufferToWar.addByte(0);
55
36
  }
56
-
57
37
  // Ambient sound - refer to names defined in .w3s file
58
38
  outBufferToWar.addString(region.ambientSound || ''); // May be empty string
59
-
60
39
  // Color of region used by editor
61
40
  // Careful! The order in .w3r is BB GG RR, whereas the JSON spec order is [RR, GG, BB]
62
41
  outBufferToWar.addByte(region.color[2]); // blue
63
42
  outBufferToWar.addByte(region.color[1]); // green
64
43
  outBufferToWar.addByte(region.color[0]); // red
65
-
66
44
  // End of structure - for some reason the .w3r needs this here;
67
45
  // Value is set to 0xff based on observing the .w3r file, but not sure if it could be something else
68
46
  outBufferToWar.addByte(0xff);
69
47
  });
70
-
71
48
  return {
72
49
  errors: [],
73
50
  buffer: outBufferToWar.getBuffer()
74
51
  };
75
52
  }
76
-
77
- public static warToJson(buffer: Buffer): JsonResult<Region[]> {
53
+ static warToJson(buffer) {
78
54
  const result = [];
79
- const outBufferToJSON = new W3Buffer(buffer);
80
-
55
+ const outBufferToJSON = new W3Buffer_1.W3Buffer(buffer);
81
56
  const fileVersion = outBufferToJSON.readInt(), // File version
82
- numRegions = outBufferToJSON.readInt(); // # of regions
83
-
57
+ numRegions = outBufferToJSON.readInt(); // # of regions
84
58
  for (let i = 0; i < numRegions; i++) {
85
- const region: Region = {
59
+ const region = {
86
60
  name: '',
87
61
  id: 0,
88
62
  weatherEffect: '',
@@ -95,7 +69,6 @@ export abstract class RegionsTranslator {
95
69
  top: 0
96
70
  }
97
71
  };
98
-
99
72
  region.position.left = outBufferToJSON.readFloat();
100
73
  region.position.bottom = outBufferToJSON.readFloat();
101
74
  region.position.right = outBufferToJSON.readFloat();
@@ -105,19 +78,19 @@ export abstract class RegionsTranslator {
105
78
  region.weatherEffect = outBufferToJSON.readChars(4);
106
79
  region.ambientSound = outBufferToJSON.readString();
107
80
  region.color = [
108
- outBufferToJSON.readByte(), // red
109
- outBufferToJSON.readByte(), // green
81
+ outBufferToJSON.readByte(),
82
+ outBufferToJSON.readByte(),
110
83
  outBufferToJSON.readByte() // blue
111
84
  ];
112
85
  region.color.reverse(); // json wants it in RGB, but .w3r file stores it as BB GG RR
113
86
  outBufferToJSON.readByte(); // end of region structure
114
-
115
87
  result.push(region);
116
88
  }
117
-
118
89
  return {
119
90
  errors: [],
120
91
  json: result
121
92
  };
122
93
  }
123
94
  }
95
+ exports.RegionsTranslator = RegionsTranslator;
96
+ //# sourceMappingURL=RegionsTranslator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegionsTranslator.js","sourceRoot":"","sources":["../../../src/translators/RegionsTranslator.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AACzC,0CAAuC;AAmBvC,MAAsB,iBAAiB;IAE5B,MAAM,CAAC,SAAS,CAAC,WAAqB;QACzC,MAAM,cAAc,GAAG,IAAI,qBAAS,EAAE,CAAC;QAEvC;;WAEG;QACH,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;QACzC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB;QAE/D;;WAEG;QACH,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3B,WAAW;YACX,mJAAmJ;YACnJ,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9C,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAChD,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/C,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAE7C,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAEjC,kDAAkD;YAClD,IAAI,MAAM,CAAC,aAAa,EAAE;gBACtB,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,2DAA2D;aAC7G;iBAAM;gBACH,wEAAwE;gBACxE,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1B,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1B,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1B,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aAC7B;YAED,sDAAsD;YACtD,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,sBAAsB;YAE3E,iCAAiC;YACjC,sFAAsF;YACtF,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;YAChD,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;YACjD,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;YAE/C,+DAA+D;YAC/D,oGAAoG;YACpG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,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,EAAE,eAAe;QAC1D,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe;QAE3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,MAAM,GAAW;gBACnB,IAAI,EAAE,EAAE;gBACR,EAAE,EAAE,CAAC;gBACL,aAAa,EAAE,EAAE;gBACjB,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAChB,QAAQ,EAAE;oBACN,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,KAAK,EAAE,CAAC;oBACR,GAAG,EAAE,CAAC;iBACT;aACJ,CAAC;YAEF,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;YACnD,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;YACrD,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;YACpD,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC;YAC3C,MAAM,CAAC,EAAE,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,CAAC,aAAa,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,CAAC,YAAY,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC;YACnD,MAAM,CAAC,KAAK,GAAG;gBACX,eAAe,CAAC,QAAQ,EAAE;gBAC1B,eAAe,CAAC,QAAQ,EAAE;gBAC1B,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO;aACrC,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,4DAA4D;YACpF,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,0BAA0B;YAEtD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvB;QAED,OAAO;YACH,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,MAAM;SACf,CAAC;IACN,CAAC;CACJ;AAtGD,8CAsGC"}
@@ -0,0 +1,35 @@
1
+ /// <reference types="node" />
2
+ import { WarResult, JsonResult } from '../CommonInterfaces';
3
+ interface Sound {
4
+ name: string;
5
+ variableName: string;
6
+ path: string;
7
+ eax: string;
8
+ flags: SoundFlags;
9
+ fadeRate: FadeRate;
10
+ volume: number;
11
+ pitch: number;
12
+ channel: number;
13
+ distance: Distance;
14
+ }
15
+ interface FadeRate {
16
+ in: number;
17
+ out: number;
18
+ }
19
+ interface SoundFlags {
20
+ looping: boolean;
21
+ '3dSound': boolean;
22
+ stopOutOfRange: boolean;
23
+ music: boolean;
24
+ }
25
+ interface Distance {
26
+ min: number;
27
+ max: number;
28
+ cutoff: number;
29
+ }
30
+ export declare abstract class SoundsTranslator {
31
+ static jsonToWar(soundsJson: Sound[]): WarResult;
32
+ static warToJson(buffer: Buffer): JsonResult<Sound[]>;
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=SoundsTranslator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SoundsTranslator.d.ts","sourceRoot":"","sources":["../../../src/translators/SoundsTranslator.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAE3D,UAAU,KAAK;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;CACtB;AAED,UAAU,QAAQ;IACd,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACf;AAED,UAAU,UAAU;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,QAAQ;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,8BAAsB,gBAAgB;WAEpB,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,SAAS;WAyGzC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;CA8F/D"}