mlogjs 0.3.0 → 0.4.0

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 (278) hide show
  1. package/dist/Compiler.d.ts +39 -0
  2. package/dist/CompilerError.d.ts +33 -0
  3. package/dist/Scope.d.ts +24 -0
  4. package/dist/assertions.d.ts +28 -0
  5. package/dist/bin.cjs +7 -14
  6. package/dist/bin.cjs.map +1 -1
  7. package/dist/bin.d.ts +1 -0
  8. package/dist/handlers/BlockStatement.d.ts +2 -0
  9. package/dist/handlers/CallExpression.d.ts +4 -0
  10. package/dist/handlers/File.d.ts +2 -0
  11. package/dist/handlers/ForStatement.d.ts +2 -0
  12. package/dist/handlers/Function.d.ts +5 -0
  13. package/dist/handlers/Identifier.d.ts +2 -0
  14. package/dist/handlers/IfStatement.d.ts +2 -0
  15. package/dist/handlers/Literal.d.ts +5 -0
  16. package/dist/handlers/Object.d.ts +6 -0
  17. package/dist/handlers/OperationExpressions.d.ts +8 -0
  18. package/dist/handlers/Program.d.ts +2 -0
  19. package/dist/handlers/Statements.d.ts +5 -0
  20. package/dist/handlers/SwitchStatement.d.ts +2 -0
  21. package/dist/handlers/TemplateExpression.d.ts +2 -0
  22. package/dist/handlers/Typescript.d.ts +7 -0
  23. package/dist/handlers/VariableDeclaration.d.ts +3 -0
  24. package/dist/handlers/WhileStatement.d.ts +3 -0
  25. package/dist/handlers/index.d.ts +17 -0
  26. package/dist/index.cjs +1037 -315
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.d.ts +3 -0
  29. package/dist/index.mjs +1037 -315
  30. package/dist/index.mjs.map +1 -1
  31. package/dist/initScope.d.ts +5 -0
  32. package/dist/instructions/AddressResolver.d.ts +12 -0
  33. package/dist/instructions/ControlInstructions.d.ts +10 -0
  34. package/dist/instructions/EndInstruction.d.ts +4 -0
  35. package/dist/instructions/InstructionBase.d.ts +14 -0
  36. package/dist/instructions/JumpInstruction.d.ts +16 -0
  37. package/dist/instructions/OperationInstruction.d.ts +5 -0
  38. package/dist/instructions/SetCounterInstruction.d.ts +5 -0
  39. package/dist/instructions/SetInstruction.d.ts +6 -0
  40. package/dist/instructions/ZeroSpaceInstruction.d.ts +4 -0
  41. package/dist/instructions/index.d.ts +9 -0
  42. package/dist/{types/macros/RawValue.d.ts → macros/Asm.d.ts} +1 -1
  43. package/dist/macros/Function.d.ts +13 -0
  44. package/dist/macros/GetGlobal.d.ts +5 -0
  45. package/dist/macros/Math.d.ts +5 -0
  46. package/dist/macros/Memory.d.ts +5 -0
  47. package/dist/macros/Namespace.d.ts +13 -0
  48. package/dist/macros/Other.d.ts +5 -0
  49. package/dist/macros/commands/ApplyStatus.d.ts +5 -0
  50. package/dist/macros/commands/Control.d.ts +5 -0
  51. package/dist/macros/commands/Cutscene.d.ts +5 -0
  52. package/dist/macros/commands/Draw.d.ts +5 -0
  53. package/dist/macros/commands/DrawFlush.d.ts +5 -0
  54. package/dist/macros/commands/End.d.ts +5 -0
  55. package/dist/macros/commands/Explosion.d.ts +5 -0
  56. package/dist/macros/commands/Fetch.d.ts +5 -0
  57. package/dist/macros/commands/FlushMessage.d.ts +5 -0
  58. package/dist/macros/commands/GetBlock.d.ts +5 -0
  59. package/dist/macros/commands/GetFlag.d.ts +5 -0
  60. package/dist/macros/commands/GetLink.d.ts +5 -0
  61. package/dist/macros/commands/Lookup.d.ts +5 -0
  62. package/dist/macros/commands/PackColor.d.ts +5 -0
  63. package/dist/macros/commands/Print.d.ts +5 -0
  64. package/dist/macros/commands/PrintFlush.d.ts +5 -0
  65. package/dist/macros/commands/Radar.d.ts +7 -0
  66. package/dist/macros/commands/Sensor.d.ts +5 -0
  67. package/dist/macros/commands/SetBlock.d.ts +5 -0
  68. package/dist/macros/commands/SetFlag.d.ts +5 -0
  69. package/dist/macros/commands/SetRate.d.ts +5 -0
  70. package/dist/macros/commands/SetRule.d.ts +5 -0
  71. package/dist/macros/commands/SpawnUnit.d.ts +5 -0
  72. package/dist/macros/commands/SpawnWave.d.ts +5 -0
  73. package/dist/macros/commands/Stop.d.ts +5 -0
  74. package/dist/macros/commands/UnitBind.d.ts +5 -0
  75. package/dist/macros/commands/UnitControl.d.ts +5 -0
  76. package/dist/macros/commands/UnitLocate.d.ts +5 -0
  77. package/dist/macros/commands/UnitRadar.d.ts +5 -0
  78. package/dist/macros/commands/Wait.d.ts +5 -0
  79. package/dist/macros/commands/index.d.ts +30 -0
  80. package/dist/macros/index.d.ts +6 -0
  81. package/dist/macros/util.d.ts +18 -0
  82. package/dist/operators.d.ts +25 -0
  83. package/dist/types/Compiler.d.ts +17 -4
  84. package/dist/types/CompilerError.d.ts +28 -4
  85. package/dist/types/assertions.d.ts +28 -0
  86. package/dist/types/handlers/CallExpression.d.ts +1 -0
  87. package/dist/types/handlers/SwitchStatement.d.ts +2 -0
  88. package/dist/types/handlers/index.d.ts +1 -0
  89. package/dist/types/index.d.ts +1 -0
  90. package/dist/types/instructions/ControlInstructions.d.ts +3 -1
  91. package/dist/types/instructions/InstructionBase.d.ts +5 -1
  92. package/dist/types/instructions/JumpInstruction.d.ts +1 -0
  93. package/dist/types/macros/Asm.d.ts +5 -0
  94. package/dist/types/macros/Namespace.d.ts +0 -3
  95. package/dist/types/macros/commands/ApplyStatus.d.ts +5 -0
  96. package/dist/types/macros/commands/Control.d.ts +2 -2
  97. package/dist/types/macros/commands/Cutscene.d.ts +5 -0
  98. package/dist/types/macros/commands/Draw.d.ts +2 -2
  99. package/dist/types/macros/commands/Explosion.d.ts +5 -0
  100. package/dist/types/macros/commands/Fetch.d.ts +5 -0
  101. package/dist/types/macros/commands/FlushMessage.d.ts +5 -0
  102. package/dist/types/macros/commands/GetBlock.d.ts +5 -0
  103. package/dist/types/macros/commands/GetFlag.d.ts +5 -0
  104. package/dist/types/macros/commands/Lookup.d.ts +2 -2
  105. package/dist/types/macros/commands/PackColor.d.ts +5 -0
  106. package/dist/types/macros/commands/Radar.d.ts +2 -2
  107. package/dist/types/macros/commands/SetBlock.d.ts +5 -0
  108. package/dist/types/macros/commands/SetFlag.d.ts +5 -0
  109. package/dist/types/macros/commands/SetRate.d.ts +5 -0
  110. package/dist/types/macros/commands/SetRule.d.ts +5 -0
  111. package/dist/types/macros/commands/SpawnUnit.d.ts +5 -0
  112. package/dist/types/macros/commands/SpawnWave.d.ts +5 -0
  113. package/dist/types/macros/commands/Stop.d.ts +5 -0
  114. package/dist/types/macros/commands/UnitControl.d.ts +3 -3
  115. package/dist/types/macros/commands/UnitLocate.d.ts +2 -2
  116. package/dist/types/macros/commands/index.d.ts +15 -0
  117. package/dist/types/macros/util.d.ts +18 -0
  118. package/dist/types/types.d.ts +14 -0
  119. package/dist/types/utils.d.ts +19 -2
  120. package/dist/types/values/BaseValue.d.ts +2 -0
  121. package/dist/types/values/FunctionValue.d.ts +1 -1
  122. package/dist/types/values/ObjectValue.d.ts +1 -1
  123. package/dist/types.d.ts +238 -0
  124. package/dist/utils.d.ts +47 -0
  125. package/dist/values/BaseValue.d.ts +9 -0
  126. package/dist/values/DestructuringValue.d.ts +17 -0
  127. package/dist/values/FunctionValue.d.ts +47 -0
  128. package/dist/values/LiteralValue.d.ts +13 -0
  129. package/dist/values/ObjectValue.d.ts +23 -0
  130. package/dist/values/SenseableValue.d.ts +23 -0
  131. package/dist/{types/values/StackValue.d.ts → values/StoreValue.d.ts} +5 -6
  132. package/dist/values/ValueOwner.d.ts +27 -0
  133. package/dist/values/VoidValue.d.ts +16 -0
  134. package/dist/values/index.d.ts +7 -0
  135. package/lib/commands.d.ts +849 -418
  136. package/lib/eslib/lib.es2015.core.d.ts +3 -0
  137. package/lib/globals.d.ts +331 -19
  138. package/lib/helpers.d.ts +14 -0
  139. package/lib/kinds.d.ts +3 -2
  140. package/lib/memory.d.ts +1 -1
  141. package/lib/traits.d.ts +6 -0
  142. package/lib/util.d.ts +16 -0
  143. package/package.json +15 -16
  144. package/build/Compiler.js +0 -105
  145. package/build/Compiler.js.map +0 -1
  146. package/build/CompilerError.js +0 -11
  147. package/build/CompilerError.js.map +0 -1
  148. package/build/Scope.js +0 -71
  149. package/build/Scope.js.map +0 -1
  150. package/build/bin.js +0 -75
  151. package/build/bin.js.map +0 -1
  152. package/build/handlers/BlockStatement.js +0 -14
  153. package/build/handlers/BlockStatement.js.map +0 -1
  154. package/build/handlers/CallExpression.js +0 -20
  155. package/build/handlers/CallExpression.js.map +0 -1
  156. package/build/handlers/File.js +0 -9
  157. package/build/handlers/File.js.map +0 -1
  158. package/build/handlers/ForStatement.js +0 -32
  159. package/build/handlers/ForStatement.js.map +0 -1
  160. package/build/handlers/Function.js +0 -47
  161. package/build/handlers/Function.js.map +0 -1
  162. package/build/handlers/Identifier.js +0 -8
  163. package/build/handlers/Identifier.js.map +0 -1
  164. package/build/handlers/IfStatement.js +0 -25
  165. package/build/handlers/IfStatement.js.map +0 -1
  166. package/build/handlers/Literal.js +0 -15
  167. package/build/handlers/Literal.js.map +0 -1
  168. package/build/handlers/Object.js +0 -55
  169. package/build/handlers/Object.js.map +0 -1
  170. package/build/handlers/OperationExpressions.js +0 -38
  171. package/build/handlers/OperationExpressions.js.map +0 -1
  172. package/build/handlers/Program.js +0 -9
  173. package/build/handlers/Program.js.map +0 -1
  174. package/build/handlers/Statements.js +0 -30
  175. package/build/handlers/Statements.js.map +0 -1
  176. package/build/handlers/TemplateExpression.js +0 -18
  177. package/build/handlers/TemplateExpression.js.map +0 -1
  178. package/build/handlers/VariableDeclaration.js +0 -72
  179. package/build/handlers/VariableDeclaration.js.map +0 -1
  180. package/build/handlers/WhileStatement.js +0 -23
  181. package/build/handlers/WhileStatement.js.map +0 -1
  182. package/build/handlers/index.js +0 -32
  183. package/build/handlers/index.js.map +0 -1
  184. package/build/index.js +0 -8
  185. package/build/index.js.map +0 -1
  186. package/build/initScope.js +0 -40
  187. package/build/initScope.js.map +0 -1
  188. package/build/instructions/AddressResolver.js +0 -31
  189. package/build/instructions/AddressResolver.js.map +0 -1
  190. package/build/instructions/ControlInstructions.js +0 -23
  191. package/build/instructions/ControlInstructions.js.map +0 -1
  192. package/build/instructions/EndInstruction.js +0 -11
  193. package/build/instructions/EndInstruction.js.map +0 -1
  194. package/build/instructions/InstructionBase.js +0 -21
  195. package/build/instructions/InstructionBase.js.map +0 -1
  196. package/build/instructions/JumpInstruction.js +0 -22
  197. package/build/instructions/JumpInstruction.js.map +0 -1
  198. package/build/instructions/OperationInstruction.js +0 -11
  199. package/build/instructions/OperationInstruction.js.map +0 -1
  200. package/build/instructions/SetCounterInstruction.js +0 -11
  201. package/build/instructions/SetCounterInstruction.js.map +0 -1
  202. package/build/instructions/SetInstruction.js +0 -11
  203. package/build/instructions/SetInstruction.js.map +0 -1
  204. package/build/instructions/ZeroSpaceInstruction.js +0 -11
  205. package/build/instructions/ZeroSpaceInstruction.js.map +0 -1
  206. package/build/instructions/index.js +0 -26
  207. package/build/instructions/index.js.map +0 -1
  208. package/build/macros/Building.js +0 -89
  209. package/build/macros/Building.js.map +0 -1
  210. package/build/macros/Function.js +0 -20
  211. package/build/macros/Function.js.map +0 -1
  212. package/build/macros/Math.js +0 -62
  213. package/build/macros/Math.js.map +0 -1
  214. package/build/macros/Memory.js +0 -63
  215. package/build/macros/Memory.js.map +0 -1
  216. package/build/macros/Namespace.js +0 -111
  217. package/build/macros/Namespace.js.map +0 -1
  218. package/build/macros/Other.js +0 -21
  219. package/build/macros/Other.js.map +0 -1
  220. package/build/macros/RawValue.js +0 -17
  221. package/build/macros/RawValue.js.map +0 -1
  222. package/build/macros/commands/Control.js +0 -26
  223. package/build/macros/commands/Control.js.map +0 -1
  224. package/build/macros/commands/Draw.js +0 -40
  225. package/build/macros/commands/Draw.js.map +0 -1
  226. package/build/macros/commands/DrawFlush.js +0 -18
  227. package/build/macros/commands/DrawFlush.js.map +0 -1
  228. package/build/macros/commands/GetLink.js +0 -25
  229. package/build/macros/commands/GetLink.js.map +0 -1
  230. package/build/macros/commands/Lookup.js +0 -25
  231. package/build/macros/commands/Lookup.js.map +0 -1
  232. package/build/macros/commands/Print.js +0 -18
  233. package/build/macros/commands/Print.js.map +0 -1
  234. package/build/macros/commands/PrintFlush.js +0 -18
  235. package/build/macros/commands/PrintFlush.js.map +0 -1
  236. package/build/macros/commands/Radar.js +0 -65
  237. package/build/macros/commands/Radar.js.map +0 -1
  238. package/build/macros/commands/Sensor.js +0 -21
  239. package/build/macros/commands/Sensor.js.map +0 -1
  240. package/build/macros/commands/UnitBind.js +0 -18
  241. package/build/macros/commands/UnitBind.js.map +0 -1
  242. package/build/macros/commands/UnitControl.js +0 -73
  243. package/build/macros/commands/UnitControl.js.map +0 -1
  244. package/build/macros/commands/UnitLocate.js +0 -76
  245. package/build/macros/commands/UnitLocate.js.map +0 -1
  246. package/build/macros/commands/UnitRadar.js +0 -48
  247. package/build/macros/commands/UnitRadar.js.map +0 -1
  248. package/build/macros/commands/Wait.js +0 -19
  249. package/build/macros/commands/Wait.js.map +0 -1
  250. package/build/macros/commands/index.js +0 -33
  251. package/build/macros/commands/index.js.map +0 -1
  252. package/build/macros/index.js +0 -40
  253. package/build/macros/index.js.map +0 -1
  254. package/build/operators.js +0 -102
  255. package/build/operators.js.map +0 -1
  256. package/build/types.js +0 -28
  257. package/build/types.js.map +0 -1
  258. package/build/utils.js +0 -18
  259. package/build/utils.js.map +0 -1
  260. package/build/values/BaseValue.js +0 -112
  261. package/build/values/BaseValue.js.map +0 -1
  262. package/build/values/FunctionValue.js +0 -116
  263. package/build/values/FunctionValue.js.map +0 -1
  264. package/build/values/LiteralValue.js +0 -89
  265. package/build/values/LiteralValue.js.map +0 -1
  266. package/build/values/ObjectValue.js +0 -55
  267. package/build/values/ObjectValue.js.map +0 -1
  268. package/build/values/StoreValue.js +0 -32
  269. package/build/values/StoreValue.js.map +0 -1
  270. package/build/values/TempValue.js +0 -78
  271. package/build/values/TempValue.js.map +0 -1
  272. package/build/values/VoidValue.js +0 -32
  273. package/build/values/VoidValue.js.map +0 -1
  274. package/build/values/index.js +0 -23
  275. package/build/values/index.js.map +0 -1
  276. package/dist/types/macros/Building.d.ts +0 -10
  277. package/dist/types/macros/Entities.d.ts +0 -11
  278. package/dist/types/values/TempValue.d.ts +0 -19
@@ -14,3 +14,6 @@ and limitations under the License.
14
14
  ***************************************************************************** */
15
15
 
16
16
  /// <reference no-default-lib="true"/>
17
+
18
+ /** Does not exist. It's only here because typescript needs it */
19
+ interface RegExp {}
package/lib/globals.d.ts CHANGED
@@ -32,6 +32,29 @@ interface Vars {
32
32
  readonly tick: number;
33
33
  /** The current UNIX timestamp in milliseconds */
34
34
  readonly time: number;
35
+ /**
36
+ * The amount of seconds that passed since the map started.
37
+ *
38
+ * This number is NOT an integer, use `Math.floor` to get the number
39
+ * of whole seconds that already passed.
40
+ */
41
+ readonly second: number;
42
+ /**
43
+ * The amount of minutes that passed since the map started.
44
+ *
45
+ * This number is NOT an integer, use `Math.floor` to get the number
46
+ * of whole minutes that already passed.
47
+ */
48
+ readonly minute: number;
49
+ /** The number of the current wave. Starts at 1. */
50
+ readonly waveNumber: number;
51
+ /**
52
+ * The amount of seconds left before the next wave.
53
+ *
54
+ * This number is NOT an integer, use `Math.floor` to get the number
55
+ * of whole seconds left.
56
+ */
57
+ readonly waveTime: number;
35
58
  /** Total amount of items existent, can be used to check if an ID is valid*/
36
59
  readonly itemCount: number;
37
60
  /** Total amount of liquids existent, can be used to check if an ID is valid*/
@@ -44,6 +67,32 @@ interface Vars {
44
67
 
45
68
  declare const Vars: Vars;
46
69
 
70
+ /** Contains the base game teams. */
71
+ declare namespace Teams {
72
+ /** The gray team. */
73
+ const delerict: unique symbol;
74
+ /** The yellow team. */
75
+ const sharded: unique symbol;
76
+ /** The red team. */
77
+ const crux: unique symbol;
78
+ /** The purple team. */
79
+ const malis: unique symbol;
80
+ /**
81
+ * The green team.
82
+ *
83
+ * Warning: this name might change in the future.
84
+ */
85
+ const green: unique symbol;
86
+ /**
87
+ * The blue team.
88
+ *
89
+ * Warning: this name might change in the future.
90
+ */
91
+ const blue: unique symbol;
92
+ }
93
+
94
+ type TeamSymbol = typeof Teams[keyof typeof Teams];
95
+
47
96
  declare namespace Items {
48
97
  const copper: unique symbol;
49
98
  const lead: unique symbol;
@@ -61,6 +110,12 @@ declare namespace Items {
61
110
  const sporePod: unique symbol;
62
111
  const blastCompound: unique symbol;
63
112
  const pyratite: unique symbol;
113
+ const beryllium: unique symbol;
114
+ const tungsten: unique symbol;
115
+ const oxide: unique symbol;
116
+ const carbide: unique symbol;
117
+ const fissileMatter: unique symbol;
118
+ const dormantCyst: unique symbol;
64
119
  }
65
120
 
66
121
  type ItemSymbol = typeof Items[keyof typeof Items];
@@ -70,6 +125,13 @@ declare namespace Liquids {
70
125
  const slag: unique symbol;
71
126
  const oil: unique symbol;
72
127
  const cryofluid: unique symbol;
128
+ const neoplasm: unique symbol;
129
+ const arkycite: unique symbol;
130
+ const gallium: unique symbol;
131
+ const ozone: unique symbol;
132
+ const hydrogen: unique symbol;
133
+ const nitrogen: unique symbol;
134
+ const cyanogen: unique symbol;
73
135
  }
74
136
 
75
137
  type LiquidSymbol = typeof Liquids[keyof typeof Liquids];
@@ -113,6 +175,29 @@ declare namespace Units {
113
175
  const alpha: unique symbol;
114
176
  const beta: unique symbol;
115
177
  const gamma: unique symbol;
178
+ const stell: unique symbol;
179
+ const locus: unique symbol;
180
+ const precept: unique symbol;
181
+ const vanquish: unique symbol;
182
+ const conquer: unique symbol;
183
+ const merui: unique symbol;
184
+ const cleroi: unique symbol;
185
+ const anthicus: unique symbol;
186
+ const tecta: unique symbol;
187
+ const collaris: unique symbol;
188
+ const elude: unique symbol;
189
+ const avert: unique symbol;
190
+ const obviate: unique symbol;
191
+ const quell: unique symbol;
192
+ const disrupt: unique symbol;
193
+ const renale: unique symbol;
194
+ const latum: unique symbol;
195
+ const evoke: unique symbol;
196
+ const incite: unique symbol;
197
+ const emanate: unique symbol;
198
+ const block: unique symbol;
199
+ const manifold: unique symbol;
200
+ const assemblyDrone: unique symbol;
116
201
  }
117
202
 
118
203
  type UnitSymbol = typeof Units[keyof typeof Units];
@@ -150,12 +235,12 @@ declare namespace LAccess {
150
235
  const mineX: unique symbol;
151
236
  const mineY: unique symbol;
152
237
  const mining: unique symbol;
238
+ const speed: unique symbol;
153
239
  const team: unique symbol;
154
240
  const type: unique symbol;
155
241
  const flag: unique symbol;
156
242
  const controlled: unique symbol;
157
243
  const controller: unique symbol;
158
- const commanded: unique symbol;
159
244
  const name: unique symbol;
160
245
  const payloadCount: unique symbol;
161
246
  const payloadType: unique symbol;
@@ -166,19 +251,7 @@ declare namespace LAccess {
166
251
  const color: unique symbol;
167
252
  }
168
253
 
169
- declare namespace UnitCommands {
170
- const attack: unique symbol;
171
- const rally: unique symbol;
172
- const idle: unique symbol;
173
- }
174
-
175
- type UnitCommandSymbol = typeof UnitCommands[keyof typeof UnitCommands];
176
-
177
- interface Blocks {
178
- // special "blocks" to reference stuff from the environment
179
- readonly air: unique symbol;
180
- readonly solid: unique symbol;
181
-
254
+ interface BuildingSymbolTable {
182
255
  readonly graphitePress: unique symbol;
183
256
  readonly multiPress: unique symbol;
184
257
  readonly siliconSmelter: unique symbol;
@@ -186,7 +259,7 @@ interface Blocks {
186
259
  readonly kiln: unique symbol;
187
260
  readonly plastaniumCompressor: unique symbol;
188
261
  readonly phaseWeaver: unique symbol;
189
- readonly alloySmelter: unique symbol;
262
+ readonly surgeSmelter: unique symbol;
190
263
  readonly cryofluidMixer: unique symbol;
191
264
  readonly pyratiteMixer: unique symbol;
192
265
  readonly blastMixer: unique symbol;
@@ -197,6 +270,21 @@ interface Blocks {
197
270
  readonly pulverizer: unique symbol;
198
271
  readonly coalCentrifuge: unique symbol;
199
272
  readonly incinerator: unique symbol;
273
+ readonly siliconArcFurnace: unique symbol;
274
+ readonly electrolyzer: unique symbol;
275
+ readonly atmosphericConcentrator: unique symbol;
276
+ readonly oxidationChamber: unique symbol;
277
+ readonly electricHeater: unique symbol;
278
+ readonly slagHeater: unique symbol;
279
+ readonly phaseHeater: unique symbol;
280
+ readonly heatRedirector: unique symbol;
281
+ readonly slagIncinerator: unique symbol;
282
+ readonly carbideCrucible: unique symbol;
283
+ readonly slagCentrifuge: unique symbol;
284
+ readonly surgeCrucible: unique symbol;
285
+ readonly cyanogenSynthesizer: unique symbol;
286
+ readonly phaseSynthesizer: unique symbol;
287
+ readonly heatReactor: unique symbol;
200
288
  readonly copperWall: unique symbol;
201
289
  readonly copperWallLarge: unique symbol;
202
290
  readonly titaniumWall: unique symbol;
@@ -216,12 +304,29 @@ interface Blocks {
216
304
  readonly scrapWallHuge: unique symbol;
217
305
  readonly scrapWallGigantic: unique symbol;
218
306
  readonly thruster: unique symbol;
307
+ readonly berylliumWall: unique symbol;
308
+ readonly berylliumWallLarge: unique symbol;
309
+ readonly tungstenWall: unique symbol;
310
+ readonly tungstenWallLarge: unique symbol;
311
+ readonly blastDoor: unique symbol;
312
+ readonly reinforcedSurgeWall: unique symbol;
313
+ readonly reinforcedSurgeWallLarge: unique symbol;
314
+ readonly carbideWall: unique symbol;
315
+ readonly carbideWallLarge: unique symbol;
316
+ readonly shieldedWall: unique symbol;
219
317
  readonly mender: unique symbol;
220
318
  readonly mendProjector: unique symbol;
221
319
  readonly overdriveProjector: unique symbol;
222
320
  readonly overdriveDome: unique symbol;
223
321
  readonly forceProjector: unique symbol;
224
322
  readonly shockMine: unique symbol;
323
+ readonly radar: unique symbol;
324
+ readonly buildTower: unique symbol;
325
+ readonly regenProjector: unique symbol;
326
+ readonly barrierProjector: unique symbol;
327
+ readonly shockwaveTower: unique symbol;
328
+ readonly shieldProjector: unique symbol;
329
+ readonly largeShieldProjector: unique symbol;
225
330
  readonly conveyor: unique symbol;
226
331
  readonly titaniumConveyor: unique symbol;
227
332
  readonly plastaniumConveyor: unique symbol;
@@ -237,11 +342,19 @@ interface Blocks {
237
342
  readonly underflowGate: unique symbol;
238
343
  readonly massDriver: unique symbol;
239
344
  readonly duct: unique symbol;
345
+ readonly armoredDuct: unique symbol;
240
346
  readonly ductRouter: unique symbol;
347
+ readonly overflowDuct: unique symbol;
348
+ readonly underflowDuct: unique symbol;
241
349
  readonly ductBridge: unique symbol;
350
+ readonly ductUnloader: unique symbol;
351
+ readonly surgeConveyor: unique symbol;
352
+ readonly surgeRouter: unique symbol;
353
+ readonly unitCargoLoader: unique symbol;
354
+ readonly unitCargoUnloadPoint: unique symbol;
242
355
  readonly mechanicalPump: unique symbol;
243
356
  readonly rotaryPump: unique symbol;
244
- readonly thermalPump: unique symbol;
357
+ readonly impulsePump: unique symbol;
245
358
  readonly conduit: unique symbol;
246
359
  readonly pulseConduit: unique symbol;
247
360
  readonly platedConduit: unique symbol;
@@ -251,6 +364,13 @@ interface Blocks {
251
364
  readonly liquidJunction: unique symbol;
252
365
  readonly bridgeConduit: unique symbol;
253
366
  readonly phaseConduit: unique symbol;
367
+ readonly reinforcedPump: unique symbol;
368
+ readonly reinforcedConduit: unique symbol;
369
+ readonly reinforcedLiquidJunction: unique symbol;
370
+ readonly reinforcedBridgeConduit: unique symbol;
371
+ readonly reinforcedLiquidRouter: unique symbol;
372
+ readonly reinforcedLiquidContainer: unique symbol;
373
+ readonly reinforcedLiquidTank: unique symbol;
254
374
  readonly powerNode: unique symbol;
255
375
  readonly powerNodeLarge: unique symbol;
256
376
  readonly surgeTower: unique symbol;
@@ -266,6 +386,14 @@ interface Blocks {
266
386
  readonly solarPanelLarge: unique symbol;
267
387
  readonly thoriumReactor: unique symbol;
268
388
  readonly impactReactor: unique symbol;
389
+ readonly beamNode: unique symbol;
390
+ readonly beamTower: unique symbol;
391
+ readonly beamLink: unique symbol;
392
+ readonly turbineCondenser: unique symbol;
393
+ readonly chemicalCombustionChamber: unique symbol;
394
+ readonly pyrolysisGenerator: unique symbol;
395
+ readonly fluxReactor: unique symbol;
396
+ readonly neoplasiaReactor: unique symbol;
269
397
  readonly mechanicalDrill: unique symbol;
270
398
  readonly pneumaticDrill: unique symbol;
271
399
  readonly laserDrill: unique symbol;
@@ -273,12 +401,23 @@ interface Blocks {
273
401
  readonly waterExtractor: unique symbol;
274
402
  readonly cultivator: unique symbol;
275
403
  readonly oilExtractor: unique symbol;
404
+ readonly ventCondenser: unique symbol;
405
+ readonly cliffCrusher: unique symbol;
406
+ readonly plasmaBore: unique symbol;
407
+ readonly largePlasmaBore: unique symbol;
408
+ readonly impactDrill: unique symbol;
409
+ readonly eruptionDrill: unique symbol;
276
410
  readonly coreShard: unique symbol;
277
411
  readonly coreFoundation: unique symbol;
278
412
  readonly coreNucleus: unique symbol;
279
- readonly vault: unique symbol;
413
+ readonly coreBastion: unique symbol;
414
+ readonly coreCitadel: unique symbol;
415
+ readonly coreAcropolis: unique symbol;
280
416
  readonly container: unique symbol;
417
+ readonly vault: unique symbol;
281
418
  readonly unloader: unique symbol;
419
+ readonly reinforcedContainer: unique symbol;
420
+ readonly reinforcedVault: unique symbol;
282
421
  readonly duo: unique symbol;
283
422
  readonly scatter: unique symbol;
284
423
  readonly scorch: unique symbol;
@@ -297,7 +436,16 @@ interface Blocks {
297
436
  readonly foreshadow: unique symbol;
298
437
  readonly spectre: unique symbol;
299
438
  readonly meltdown: unique symbol;
300
- readonly commandCenter: unique symbol;
439
+ readonly breach: unique symbol;
440
+ readonly diffuse: unique symbol;
441
+ readonly sublimate: unique symbol;
442
+ readonly titan: unique symbol;
443
+ readonly disperse: unique symbol;
444
+ readonly afflict: unique symbol;
445
+ readonly lustre: unique symbol;
446
+ readonly scathe: unique symbol;
447
+ readonly smite: unique symbol;
448
+ readonly malign: unique symbol;
301
449
  readonly groundFactory: unique symbol;
302
450
  readonly airFactory: unique symbol;
303
451
  readonly navalFactory: unique symbol;
@@ -309,7 +457,11 @@ interface Blocks {
309
457
  readonly repairTurret: unique symbol;
310
458
  readonly payloadConveyor: unique symbol;
311
459
  readonly payloadRouter: unique symbol;
460
+ readonly reinforcedPayloadConveyor: unique symbol;
461
+ readonly reinforcedPayloadRouter: unique symbol;
462
+ readonly payloadMassDriver: unique symbol;
312
463
  readonly payloadPropulsionTower: unique symbol;
464
+ readonly smallDeconstructor: unique symbol;
313
465
  readonly deconstructor: unique symbol;
314
466
  readonly constructor: unique symbol;
315
467
  readonly largeConstructor: unique symbol;
@@ -323,6 +475,7 @@ interface Blocks {
323
475
  readonly liquidVoid: unique symbol;
324
476
  readonly payloadSource: unique symbol;
325
477
  readonly payloadVoid: unique symbol;
478
+ readonly heatSource: unique symbol;
326
479
  readonly illuminator: unique symbol;
327
480
  readonly launchPad: unique symbol;
328
481
  readonly interplanetaryAccelerator: unique symbol;
@@ -335,7 +488,166 @@ interface Blocks {
335
488
  readonly memoryBank: unique symbol;
336
489
  readonly logicDisplay: unique symbol;
337
490
  readonly largeLogicDisplay: unique symbol;
491
+ readonly canvas: unique symbol;
492
+ readonly worldProcessor: unique symbol;
493
+ readonly worldCell: unique symbol;
338
494
  }
339
495
 
496
+ type BuildingSymbol = Blocks[keyof BuildingSymbolTable];
497
+
498
+ interface EnvBlockSymbolTable {
499
+ // used by some instructions to represent any env block
500
+ readonly solid: EnvBlockSymbolTable["stoneWall"];
501
+ readonly air: unique symbol;
502
+ readonly spawn: unique symbol;
503
+ readonly cliff: unique symbol;
504
+ readonly deepWater: unique symbol;
505
+ readonly shallowWater: unique symbol;
506
+ readonly taintedWater: unique symbol;
507
+ readonly deepTaintedWater: unique symbol;
508
+ readonly darksandTaintedWater: unique symbol;
509
+ readonly sandWater: unique symbol;
510
+ readonly darksandWater: unique symbol;
511
+ readonly tar: unique symbol;
512
+ readonly pooledCryofluid: unique symbol;
513
+ readonly moltenSlag: unique symbol;
514
+ readonly space: unique symbol;
515
+ readonly empty: unique symbol;
516
+ readonly stone: unique symbol;
517
+ readonly craterStone: unique symbol;
518
+ readonly char: unique symbol;
519
+ readonly basalt: unique symbol;
520
+ readonly hotrock: unique symbol;
521
+ readonly magmarock: unique symbol;
522
+ readonly sandFloor: unique symbol;
523
+ readonly darksand: unique symbol;
524
+ readonly dirt: unique symbol;
525
+ readonly mud: unique symbol;
526
+ readonly dacite: unique symbol;
527
+ readonly rhyolite: unique symbol;
528
+ readonly rhyoliteCrater: unique symbol;
529
+ readonly roughRhyolite: unique symbol;
530
+ readonly regolith: unique symbol;
531
+ readonly yellowStone: unique symbol;
532
+ readonly carbonStone: unique symbol;
533
+ readonly ferricStone: unique symbol;
534
+ readonly ferricCraters: unique symbol;
535
+ readonly beryllicStone: unique symbol;
536
+ readonly crystallineStone: unique symbol;
537
+ readonly crystalFloor: unique symbol;
538
+ readonly yellowStonePlates: unique symbol;
539
+ readonly redStone: unique symbol;
540
+ readonly denseRedStone: unique symbol;
541
+ readonly redIce: unique symbol;
542
+ readonly arkyciteFloor: unique symbol;
543
+ readonly arkyicStone: unique symbol;
544
+ readonly rhyoliteVent: unique symbol;
545
+ readonly carbonVent: unique symbol;
546
+ readonly arkyicVent: unique symbol;
547
+ readonly yellowStoneVent: unique symbol;
548
+ readonly redStoneVent: unique symbol;
549
+ readonly redmat: unique symbol;
550
+ readonly bluemat: unique symbol;
551
+ readonly grass: unique symbol;
552
+ readonly salt: unique symbol;
553
+ readonly snow: unique symbol;
554
+ readonly ice: unique symbol;
555
+ readonly iceSnow: unique symbol;
556
+ readonly shale: unique symbol;
557
+ readonly moss: unique symbol;
558
+ readonly coreZone: unique symbol;
559
+ readonly sporeMoss: unique symbol;
560
+ readonly stoneWall: unique symbol;
561
+ readonly sporeWall: unique symbol;
562
+ readonly dirtWall: unique symbol;
563
+ readonly daciteWall: unique symbol;
564
+ readonly iceWall: unique symbol;
565
+ readonly snowWall: unique symbol;
566
+ readonly duneWall: unique symbol;
567
+ readonly regolithWall: unique symbol;
568
+ readonly yellowStoneWall: unique symbol;
569
+ readonly rhyoliteWall: unique symbol;
570
+ readonly carbonWall: unique symbol;
571
+ readonly ferricStoneWall: unique symbol;
572
+ readonly beryllicStoneWall: unique symbol;
573
+ readonly arkyicWall: unique symbol;
574
+ readonly crystallineStoneWall: unique symbol;
575
+ readonly redIceWall: unique symbol;
576
+ readonly redStoneWall: unique symbol;
577
+ readonly redDiamondWall: unique symbol;
578
+ readonly sandWall: unique symbol;
579
+ readonly saltWall: unique symbol;
580
+ readonly shrubs: unique symbol;
581
+ readonly shaleWall: unique symbol;
582
+ readonly sporePine: unique symbol;
583
+ readonly snowPine: unique symbol;
584
+ readonly pine: unique symbol;
585
+ readonly whiteTreeDead: unique symbol;
586
+ readonly whiteTree: unique symbol;
587
+ readonly sporeCluster: unique symbol;
588
+ readonly redweed: unique symbol;
589
+ readonly purBush: unique symbol;
590
+ readonly yellowcoral: unique symbol;
591
+ readonly boulder: unique symbol;
592
+ readonly snowBoulder: unique symbol;
593
+ readonly shaleBoulder: unique symbol;
594
+ readonly sandBoulder: unique symbol;
595
+ readonly daciteBoulder: unique symbol;
596
+ readonly basaltBoulder: unique symbol;
597
+ readonly carbonBoulder: unique symbol;
598
+ readonly ferricBoulder: unique symbol;
599
+ readonly beryllicBoulder: unique symbol;
600
+ readonly yellowStoneBoulder: unique symbol;
601
+ readonly arkyicBoulder: unique symbol;
602
+ readonly crystalCluster: unique symbol;
603
+ readonly vibrantCrystalCluster: unique symbol;
604
+ readonly crystalBlocks: unique symbol;
605
+ readonly crystalOrbs: unique symbol;
606
+ readonly crystallineBoulder: unique symbol;
607
+ readonly redIceBoulder: unique symbol;
608
+ readonly rhyoliteBoulder: unique symbol;
609
+ readonly redStoneBoulder: unique symbol;
610
+ readonly metalFloor: unique symbol;
611
+ readonly metalFloorDamaged: unique symbol;
612
+ readonly metalFloor2: unique symbol;
613
+ readonly metalFloor3: unique symbol;
614
+ readonly metalFloor4: unique symbol;
615
+ readonly metalFloor5: unique symbol;
616
+ readonly darkPanel1: unique symbol;
617
+ readonly darkPanel2: unique symbol;
618
+ readonly darkPanel3: unique symbol;
619
+ readonly darkPanel4: unique symbol;
620
+ readonly darkPanel5: unique symbol;
621
+ readonly darkPanel6: unique symbol;
622
+ readonly darkMetal: unique symbol;
623
+ readonly pebbles: unique symbol;
624
+ readonly tendrils: unique symbol;
625
+ }
626
+
627
+ type EnvBlockSymbol = Blocks[keyof EnvBlockSymbolTable];
628
+
629
+ interface OreSymbolTable {
630
+ readonly oreCopper: unique symbol;
631
+ readonly oreLead: unique symbol;
632
+ readonly oreScrap: unique symbol;
633
+ readonly oreCoal: unique symbol;
634
+ readonly oreTitanium: unique symbol;
635
+ readonly oreThorium: unique symbol;
636
+ readonly oreBeryllium: unique symbol;
637
+ readonly oreTungsten: unique symbol;
638
+ readonly oreCrystalThorium: unique symbol;
639
+ readonly oreWallThorium: unique symbol;
640
+ readonly oreWallBeryllium: unique symbol;
641
+ readonly graphiticWall: unique symbol;
642
+ readonly oreWallTungsten: unique symbol;
643
+ }
644
+
645
+ type OreSymbol = Blocks[keyof OreSymbolTable];
646
+
647
+ interface Blocks
648
+ extends BuildingSymbolTable,
649
+ EnvBlockSymbolTable,
650
+ OreSymbolTable {}
651
+
652
+ type BlockSymbol = Blocks[keyof Blocks];
340
653
  declare const Blocks: Blocks;
341
- type BlockSymbol = typeof Blocks[keyof typeof Blocks];
package/lib/helpers.d.ts CHANGED
@@ -21,3 +21,17 @@ declare function getBuilding<T extends BasicBuilding = AnyBuilding>(
21
21
  ): T;
22
22
 
23
23
  declare function concat(...strings: string[]): string;
24
+
25
+ /**
26
+ * Inlines raw mlog code. Variables and expressions can be placed inside.
27
+ *
28
+ * Although possible, using this function is heavily not recommended since
29
+ * you lose the benefits of getting type cheking and validation for some
30
+ * commands.
31
+ *
32
+ * ```js
33
+ * let x = 10
34
+ * asm`ucontrol build ${x} ${x * 2} @router 0 0`
35
+ * ```
36
+ */
37
+ declare function asm(strings: TemplateStringsArray, ...values: unknown[]): void;
package/lib/kinds.d.ts CHANGED
@@ -10,7 +10,8 @@ interface BasicUnit
10
10
  Typed<UnitSymbol>,
11
11
  Flagged,
12
12
  Controllable,
13
- Nameable {}
13
+ Nameable,
14
+ WithSpeed {}
14
15
 
15
16
  interface AnyUnit extends BasicUnit, Boosted {}
16
17
 
@@ -24,7 +25,7 @@ interface BasicBuilding
24
25
  Rotatable,
25
26
  Spaced,
26
27
  Ranged,
27
- Typed<BlockSymbol>,
28
+ Typed<BuildingSymbol>,
28
29
  WithEnable,
29
30
  WithConfig {}
30
31
 
package/lib/memory.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference path="./kinds.d.ts" />
2
2
 
3
- type MemoryCapacity = 64 | 512;
3
+ type MemoryCapacity = 64 | 128 | 512;
4
4
  /**
5
5
  * Allows you to view and modify the data of memory cells and memory banks.
6
6
  */
package/lib/traits.d.ts CHANGED
@@ -40,6 +40,7 @@ declare global {
40
40
 
41
41
  interface Shooting
42
42
  extends WithSymbols<{
43
+ readonly shooting: boolean;
43
44
  readonly shootX: number;
44
45
  readonly shootY: number;
45
46
  readonly ammo: number;
@@ -138,4 +139,9 @@ declare global {
138
139
  > extends WithSymbols<{
139
140
  readonly config: T;
140
141
  }> {}
142
+
143
+ interface WithSpeed
144
+ extends WithSymbols<{
145
+ speed: number;
146
+ }> {}
141
147
  }
package/lib/util.d.ts CHANGED
@@ -30,3 +30,19 @@ export type TUnitLocateBuildingGroup =
30
30
  | "rally"
31
31
  | "battery"
32
32
  | "reactor";
33
+
34
+ export type TUnitEffect =
35
+ | "burning"
36
+ | "freezing"
37
+ | "unmoving"
38
+ | "wet"
39
+ | "melting"
40
+ | "sapped"
41
+ | "electrified"
42
+ | "spore-slowed"
43
+ | "tarred"
44
+ | "overdrive"
45
+ | "overclock"
46
+ | "boss"
47
+ | "shocked"
48
+ | "blasted";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mlogjs",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Compiler that compiles Javascript to Mindustry Logic Code.",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",
@@ -18,30 +18,29 @@
18
18
  },
19
19
  "homepage": "https://github.com/weisrc/mlogjs#readme",
20
20
  "dependencies": {
21
- "@babel/parser": "^7.17.7",
21
+ "@babel/parser": "^7.19.1",
22
+ "@babel/types": "^7.19.0",
22
23
  "chalk": "^4.1.2",
23
24
  "cli-highlight": "^2.1.11",
24
25
  "yargs": "^17.0.1"
25
26
  },
26
27
  "devDependencies": {
27
- "@babel/types": "^7.17.0",
28
28
  "@rollup/plugin-alias": "^3.1.9",
29
29
  "@rollup/plugin-replace": "^4.0.0",
30
- "@rollup/plugin-typescript": "^8.3.1",
31
- "@types/estree": "^0.0.51",
32
- "@types/jest": "^27.4.1",
33
- "@types/node": "^15.3.0",
34
- "@types/yargs": "^16.0.1",
35
- "@typescript-eslint/eslint-plugin": "^5.15.0",
36
- "@typescript-eslint/parser": "^5.15.0",
37
- "eslint": "^8.11.0",
38
- "jest": "^27.5.1",
30
+ "@rollup/plugin-typescript": "^8.5.0",
31
+ "@types/jest": "^29.0.3",
32
+ "@types/node": "^15.14.9",
33
+ "@types/yargs": "^17.0.13",
34
+ "@typescript-eslint/eslint-plugin": "^5.38.0",
35
+ "@typescript-eslint/parser": "^5.38.0",
36
+ "eslint": "^8.24.0",
37
+ "jest": "^29.0.3",
39
38
  "npm-run-all": "^4.1.5",
40
- "rollup": "^2.70.1",
41
- "ts-jest": "^27.1.3",
42
- "ts-node": "^10.6.0",
39
+ "rollup": "^2.79.1",
40
+ "ts-jest": "^29.0.2",
41
+ "ts-node": "^10.9.1",
43
42
  "tslib": "^2.3.1",
44
- "typedoc": "^0.22.12",
43
+ "typedoc": "^0.23.15",
45
44
  "typescript": "*"
46
45
  },
47
46
  "files": [