mlogjs 0.2.0 → 0.2.1

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 (202) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +68 -18
  3. package/build/Compiler.d.ts +18 -18
  4. package/build/Compiler.js +99 -119
  5. package/build/Compiler.js.map +1 -1
  6. package/build/Scope.d.ts +26 -26
  7. package/build/Scope.js +60 -60
  8. package/build/Scope.js.map +1 -1
  9. package/build/bin.d.ts +2 -2
  10. package/build/bin.js +60 -41
  11. package/build/bin.js.map +1 -1
  12. package/build/handlers/BlockStatement.d.ts +2 -2
  13. package/build/handlers/BlockStatement.js +13 -13
  14. package/build/handlers/CallExpression.d.ts +3 -3
  15. package/build/handlers/CallExpression.js +19 -19
  16. package/build/handlers/ForStatement.d.ts +2 -2
  17. package/build/handlers/ForStatement.js +31 -31
  18. package/build/handlers/Function.d.ts +4 -4
  19. package/build/handlers/Function.js +35 -35
  20. package/build/handlers/Identifier.d.ts +2 -2
  21. package/build/handlers/Identifier.js +7 -7
  22. package/build/handlers/IfStatement.d.ts +2 -2
  23. package/build/handlers/IfStatement.js +24 -24
  24. package/build/handlers/Literal.d.ts +2 -2
  25. package/build/handlers/Literal.js +17 -17
  26. package/build/handlers/Object.d.ts +4 -4
  27. package/build/handlers/Object.js +43 -43
  28. package/build/handlers/OperationExpressions.d.ts +7 -7
  29. package/build/handlers/OperationExpressions.js +32 -32
  30. package/build/handlers/Program.d.ts +2 -2
  31. package/build/handlers/Program.js +8 -8
  32. package/build/handlers/Program.js.map +1 -1
  33. package/build/handlers/Statements.d.ts +5 -5
  34. package/build/handlers/Statements.js +29 -29
  35. package/build/handlers/TemplateExpression.d.ts +2 -2
  36. package/build/handlers/TemplateExpression.js +17 -17
  37. package/build/handlers/VariableDeclaration.d.ts +3 -3
  38. package/build/handlers/VariableDeclaration.js +55 -55
  39. package/build/handlers/WhileStatement.d.ts +2 -2
  40. package/build/handlers/WhileStatement.js +22 -22
  41. package/build/handlers/index.d.ts +14 -14
  42. package/build/handlers/index.js +30 -30
  43. package/build/index.d.ts +1 -1
  44. package/build/index.js +7 -7
  45. package/build/initScope.d.ts +2 -0
  46. package/build/initScope.js +40 -0
  47. package/build/initScope.js.map +1 -0
  48. package/build/instructions/AddressResolver.d.ts +12 -12
  49. package/build/instructions/AddressResolver.js +30 -30
  50. package/build/instructions/ControlInstructions.d.ts +11 -11
  51. package/build/instructions/ControlInstructions.js +22 -22
  52. package/build/instructions/EndInstruction.d.ts +4 -4
  53. package/build/instructions/EndInstruction.js +10 -10
  54. package/build/instructions/InstructionBase.d.ts +10 -10
  55. package/build/instructions/InstructionBase.js +20 -20
  56. package/build/instructions/JumpInstruction.d.ts +15 -15
  57. package/build/instructions/JumpInstruction.js +21 -21
  58. package/build/instructions/OperationInstruction.d.ts +5 -5
  59. package/build/instructions/OperationInstruction.js +10 -10
  60. package/build/instructions/SetCounterInstruction.d.ts +5 -5
  61. package/build/instructions/SetCounterInstruction.js +10 -10
  62. package/build/instructions/SetInstruction.d.ts +5 -5
  63. package/build/instructions/SetInstruction.js +10 -10
  64. package/build/instructions/ZeroSpaceInstruction.d.ts +4 -4
  65. package/build/instructions/ZeroSpaceInstruction.js +10 -10
  66. package/build/instructions/index.d.ts +9 -9
  67. package/build/instructions/index.js +25 -25
  68. package/build/macros/Building.d.ts +11 -11
  69. package/build/macros/Building.js +80 -80
  70. package/build/macros/Function.d.ts +12 -12
  71. package/build/macros/Function.js +19 -19
  72. package/build/macros/Math.d.ts +5 -5
  73. package/build/macros/Math.js +56 -56
  74. package/build/macros/Math.js.map +1 -1
  75. package/build/macros/Memory.d.ts +5 -5
  76. package/build/macros/Memory.js +60 -60
  77. package/build/macros/Namespace.d.ts +21 -21
  78. package/build/macros/Namespace.js +97 -97
  79. package/build/macros/Other.d.ts +5 -5
  80. package/build/macros/Other.js +19 -19
  81. package/build/macros/RawValue.d.ts +5 -5
  82. package/build/macros/RawValue.js +15 -15
  83. package/build/macros/commands/{control.d.ts → Control.d.ts} +5 -5
  84. package/build/macros/commands/{control.js → Control.js} +24 -24
  85. package/build/macros/commands/{control.js.map → Control.js.map} +0 -0
  86. package/build/macros/commands/Draw.d.ts +5 -5
  87. package/build/macros/commands/Draw.js +38 -38
  88. package/build/macros/commands/DrawFlush.d.ts +5 -5
  89. package/build/macros/commands/DrawFlush.js +16 -16
  90. package/build/macros/commands/GetLink.d.ts +5 -5
  91. package/build/macros/commands/GetLink.js +20 -20
  92. package/build/macros/commands/Lookup.d.ts +5 -5
  93. package/build/macros/commands/Lookup.js +23 -23
  94. package/build/macros/commands/Print.d.ts +5 -5
  95. package/build/macros/commands/Print.js +13 -13
  96. package/build/macros/commands/PrintFlush.d.ts +5 -5
  97. package/build/macros/commands/PrintFlush.js +16 -16
  98. package/build/macros/commands/Radar.d.ts +7 -7
  99. package/build/macros/commands/Radar.js +60 -60
  100. package/build/macros/commands/Sensor.d.ts +5 -5
  101. package/build/macros/commands/Sensor.js +19 -19
  102. package/build/macros/commands/UnitBind.d.ts +5 -5
  103. package/build/macros/commands/UnitBind.js +16 -16
  104. package/build/macros/commands/UnitControl.d.ts +5 -5
  105. package/build/macros/commands/UnitControl.js +67 -67
  106. package/build/macros/commands/UnitLocate.d.ts +5 -5
  107. package/build/macros/commands/UnitLocate.js +54 -54
  108. package/build/macros/commands/UnitRadar.d.ts +5 -5
  109. package/build/macros/commands/UnitRadar.js +40 -40
  110. package/build/macros/commands/Wait.d.ts +5 -5
  111. package/build/macros/commands/Wait.js +17 -17
  112. package/build/macros/commands/index.d.ts +14 -14
  113. package/build/macros/commands/index.js +32 -32
  114. package/build/macros/index.d.ts +7 -7
  115. package/build/macros/index.js +39 -39
  116. package/build/operators.d.ts +25 -25
  117. package/build/operators.js +101 -101
  118. package/build/types.d.ts +49 -49
  119. package/build/types.js +27 -27
  120. package/build/utils.d.ts +3 -3
  121. package/build/utils.js +12 -12
  122. package/build/values/BaseValue.d.ts +5 -5
  123. package/build/values/BaseValue.js +111 -111
  124. package/build/values/FunctionValue.d.ts +34 -34
  125. package/build/values/FunctionValue.js +103 -103
  126. package/build/values/LiteralValue.d.ts +12 -12
  127. package/build/values/LiteralValue.js +87 -87
  128. package/build/values/LiteralValue.js.map +1 -1
  129. package/build/values/ObjectValue.d.ts +17 -17
  130. package/build/values/ObjectValue.js +49 -49
  131. package/build/values/StoreValue.d.ts +11 -11
  132. package/build/values/StoreValue.js +30 -30
  133. package/build/values/TempValue.d.ts +12 -12
  134. package/build/values/TempValue.js +66 -66
  135. package/build/values/TempValue.js.map +1 -1
  136. package/build/values/VoidValue.d.ts +11 -11
  137. package/build/values/VoidValue.js +30 -30
  138. package/build/values/index.d.ts +6 -6
  139. package/build/values/index.js +22 -22
  140. package/dist/mlogjs.es.js +6366 -0
  141. package/dist/mlogjs.umd.js +8 -0
  142. package/lib/commands.d.ts +326 -326
  143. package/lib/eslib/index.d.ts +3 -3
  144. package/lib/eslib/lib.d.ts +9 -9
  145. package/lib/eslib/lib.es2015.collection.d.ts +89 -89
  146. package/lib/eslib/lib.es2015.core.d.ts +16 -16
  147. package/lib/eslib/lib.es2015.d.ts +30 -30
  148. package/lib/eslib/lib.es2015.generator.d.ts +79 -79
  149. package/lib/eslib/lib.es2015.iterable.d.ts +70 -70
  150. package/lib/eslib/lib.es5.d.ts +295 -295
  151. package/lib/eslib/lib.es6.d.ts +18 -18
  152. package/lib/globals.d.ts +328 -328
  153. package/lib/helpers.d.ts +23 -23
  154. package/lib/index.d.ts +7 -7
  155. package/lib/kinds.d.ts +36 -36
  156. package/lib/memory.d.ts +17 -17
  157. package/lib/traits.d.ts +121 -121
  158. package/lib/util.d.ts +32 -32
  159. package/package.json +73 -48
  160. package/build/macros/Blocks.d.ts +0 -5
  161. package/build/macros/Blocks.js +0 -143
  162. package/build/macros/Blocks.js.map +0 -1
  163. package/build/macros/Draw.d.ts +0 -5
  164. package/build/macros/Draw.js +0 -39
  165. package/build/macros/Draw.js.map +0 -1
  166. package/build/macros/Items.d.ts +0 -5
  167. package/build/macros/Items.js +0 -20
  168. package/build/macros/Items.js.map +0 -1
  169. package/build/macros/Liquids.d.ts +0 -5
  170. package/build/macros/Liquids.js +0 -18
  171. package/build/macros/Liquids.js.map +0 -1
  172. package/build/macros/Symbol.d.ts +0 -0
  173. package/build/macros/Symbol.js +0 -1
  174. package/build/macros/Symbol.js.map +0 -1
  175. package/build/macros/SymbolNamespace.d.ts +0 -0
  176. package/build/macros/SymbolNamespace.js +0 -1
  177. package/build/macros/SymbolNamespace.js.map +0 -1
  178. package/build/macros/TypeFactory.d.ts +0 -8
  179. package/build/macros/TypeFactory.js +0 -22
  180. package/build/macros/TypeFactory.js.map +0 -1
  181. package/build/macros/Units.d.ts +0 -5
  182. package/build/macros/Units.js +0 -18
  183. package/build/macros/Units.js.map +0 -1
  184. package/build/macros/Vars.d.ts +0 -5
  185. package/build/macros/Vars.js +0 -18
  186. package/build/macros/Vars.js.map +0 -1
  187. package/build/macros/commands/Asm.d.ts +0 -5
  188. package/build/macros/commands/Asm.js +0 -21
  189. package/build/macros/commands/Asm.js.map +0 -1
  190. package/build/macros/commands/io.d.ts +0 -8
  191. package/build/macros/commands/io.js +0 -47
  192. package/build/macros/commands/io.js.map +0 -1
  193. package/build/macros/helpers/GetBuilding.d.ts +0 -5
  194. package/build/macros/helpers/GetBuilding.js +0 -16
  195. package/build/macros/helpers/GetBuilding.js.map +0 -1
  196. package/build/macros/helpers/GetVar.d.ts +0 -5
  197. package/build/macros/helpers/GetVar.js +0 -16
  198. package/build/macros/helpers/GetVar.js.map +0 -1
  199. package/build/macros/helpers/index.d.ts +0 -2
  200. package/build/macros/helpers/index.js +0 -15
  201. package/build/macros/helpers/index.js.map +0 -1
  202. package/dist/bundle.js +0 -1
@@ -1,16 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RawValueMacro = void 0;
4
- const values_1 = require("../values");
5
- const Function_1 = require("./Function");
6
- class RawValueMacro extends Function_1.MacroFunction {
7
- constructor(scope) {
8
- super(scope, (name) => {
9
- if (!(name instanceof values_1.LiteralValue) || typeof name.data !== "string")
10
- throw new Error("The name of the building must be a string literal.");
11
- return [new values_1.StoreValue(scope, name.data), []];
12
- });
13
- }
14
- }
15
- exports.RawValueMacro = RawValueMacro;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RawValueMacro = void 0;
4
+ const values_1 = require("../values");
5
+ const Function_1 = require("./Function");
6
+ class RawValueMacro extends Function_1.MacroFunction {
7
+ constructor(scope) {
8
+ super(scope, (name) => {
9
+ if (!(name instanceof values_1.LiteralValue) || typeof name.data !== "string")
10
+ throw new Error("The name of the building must be a string literal.");
11
+ return [new values_1.StoreValue(scope, name.data), []];
12
+ });
13
+ }
14
+ }
15
+ exports.RawValueMacro = RawValueMacro;
16
16
  //# sourceMappingURL=RawValue.js.map
@@ -1,5 +1,5 @@
1
- import { MacroFunction } from "..";
2
- import { IScope } from "../../types";
3
- export declare class Control extends MacroFunction {
4
- constructor(scope: IScope);
5
- }
1
+ import { MacroFunction } from "..";
2
+ import { IScope } from "../../types";
3
+ export declare class Control extends MacroFunction {
4
+ constructor(scope: IScope);
5
+ }
@@ -1,25 +1,25 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Control = void 0;
4
- const instructions_1 = require("../../instructions");
5
- const __1 = require("..");
6
- const values_1 = require("../../values");
7
- const validKinds = ["enabled", "shoot", "shootp", "config", "color"];
8
- class Control extends __1.MacroFunction {
9
- constructor(scope) {
10
- super(scope, (kind, building, ...args) => {
11
- if (!(kind instanceof values_1.LiteralValue) || typeof kind.data !== "string")
12
- throw new Error("The control kind must be a string literal");
13
- if (!validKinds.includes(kind.data))
14
- throw new Error("Invalid control kind");
15
- if (!(building instanceof values_1.ObjectValue))
16
- throw new Error("The building must be an object value");
17
- return [
18
- null,
19
- [new instructions_1.InstructionBase("control", kind.data, building, ...args)],
20
- ];
21
- });
22
- }
23
- }
24
- exports.Control = Control;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Control = void 0;
4
+ const instructions_1 = require("../../instructions");
5
+ const __1 = require("..");
6
+ const values_1 = require("../../values");
7
+ const validKinds = ["enabled", "shoot", "shootp", "config", "color"];
8
+ class Control extends __1.MacroFunction {
9
+ constructor(scope) {
10
+ super(scope, (kind, building, ...args) => {
11
+ if (!(kind instanceof values_1.LiteralValue) || typeof kind.data !== "string")
12
+ throw new Error("The control kind must be a string literal");
13
+ if (!validKinds.includes(kind.data))
14
+ throw new Error("Invalid control kind");
15
+ if (!(building instanceof values_1.ObjectValue))
16
+ throw new Error("The building must be an object value");
17
+ return [
18
+ null,
19
+ [new instructions_1.InstructionBase("control", kind.data, building, ...args)],
20
+ ];
21
+ });
22
+ }
23
+ }
24
+ exports.Control = Control;
25
25
  //# sourceMappingURL=Control.js.map
@@ -1,5 +1,5 @@
1
- import { IScope } from "../../types";
2
- import { MacroFunction } from "../Function";
3
- export declare class Draw extends MacroFunction {
4
- constructor(scope: IScope);
5
- }
1
+ import { IScope } from "../../types";
2
+ import { MacroFunction } from "../Function";
3
+ export declare class Draw extends MacroFunction {
4
+ constructor(scope: IScope);
5
+ }
@@ -1,39 +1,39 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Draw = void 0;
4
- const instructions_1 = require("../../instructions");
5
- const values_1 = require("../../values");
6
- const Function_1 = require("../Function");
7
- class Draw extends Function_1.MacroFunction {
8
- constructor(scope) {
9
- super(scope, (kind, ...args) => {
10
- if (!(kind instanceof values_1.LiteralValue))
11
- throw new Error("Draw kind must be literal.");
12
- if ([
13
- "clear",
14
- "color",
15
- "stroke",
16
- "line",
17
- "rect",
18
- "lineRect",
19
- "poly",
20
- "linePoly",
21
- "triangle",
22
- "image",
23
- ].indexOf(kind.data) === -1)
24
- throw new Error("Draw kind must be valid");
25
- return [
26
- null,
27
- [
28
- new instructions_1.InstructionBase("draw", kind.data, ...args.map(v => {
29
- if (v instanceof values_1.LiteralValue && typeof v.data === "string")
30
- return v.data;
31
- return v;
32
- })),
33
- ],
34
- ];
35
- });
36
- }
37
- }
38
- exports.Draw = Draw;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Draw = void 0;
4
+ const instructions_1 = require("../../instructions");
5
+ const values_1 = require("../../values");
6
+ const Function_1 = require("../Function");
7
+ class Draw extends Function_1.MacroFunction {
8
+ constructor(scope) {
9
+ super(scope, (kind, ...args) => {
10
+ if (!(kind instanceof values_1.LiteralValue))
11
+ throw new Error("Draw kind must be literal.");
12
+ if ([
13
+ "clear",
14
+ "color",
15
+ "stroke",
16
+ "line",
17
+ "rect",
18
+ "lineRect",
19
+ "poly",
20
+ "linePoly",
21
+ "triangle",
22
+ "image",
23
+ ].indexOf(kind.data) === -1)
24
+ throw new Error("Draw kind must be valid");
25
+ return [
26
+ null,
27
+ [
28
+ new instructions_1.InstructionBase("draw", kind.data, ...args.map(v => {
29
+ if (v instanceof values_1.LiteralValue && typeof v.data === "string")
30
+ return v.data;
31
+ return v;
32
+ })),
33
+ ],
34
+ ];
35
+ });
36
+ }
37
+ }
38
+ exports.Draw = Draw;
39
39
  //# sourceMappingURL=Draw.js.map
@@ -1,5 +1,5 @@
1
- import { MacroFunction } from "..";
2
- import { IScope } from "../../types";
3
- export declare class DrawFlush extends MacroFunction {
4
- constructor(scope: IScope);
5
- }
1
+ import { MacroFunction } from "..";
2
+ import { IScope } from "../../types";
3
+ export declare class DrawFlush extends MacroFunction {
4
+ constructor(scope: IScope);
5
+ }
@@ -1,17 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DrawFlush = void 0;
4
- const instructions_1 = require("../../instructions");
5
- const __1 = require("..");
6
- const values_1 = require("../../values");
7
- class DrawFlush extends __1.MacroFunction {
8
- constructor(scope) {
9
- super(scope, (target) => {
10
- if (!(target instanceof values_1.ObjectValue))
11
- throw new Error("The drawflush target must be a building");
12
- return [null, [new instructions_1.InstructionBase("drawflush", target)]];
13
- });
14
- }
15
- }
16
- exports.DrawFlush = DrawFlush;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DrawFlush = void 0;
4
+ const instructions_1 = require("../../instructions");
5
+ const __1 = require("..");
6
+ const values_1 = require("../../values");
7
+ class DrawFlush extends __1.MacroFunction {
8
+ constructor(scope) {
9
+ super(scope, (target) => {
10
+ if (!(target instanceof values_1.ObjectValue))
11
+ throw new Error("The drawflush target must be a building");
12
+ return [null, [new instructions_1.InstructionBase("drawflush", target)]];
13
+ });
14
+ }
15
+ }
16
+ exports.DrawFlush = DrawFlush;
17
17
  //# sourceMappingURL=DrawFlush.js.map
@@ -1,5 +1,5 @@
1
- import { MacroFunction } from "..";
2
- import { IScope } from "../../types";
3
- export declare class GetLink extends MacroFunction {
4
- constructor(scope: IScope);
5
- }
1
+ import { MacroFunction } from "..";
2
+ import { IScope } from "../../types";
3
+ export declare class GetLink extends MacroFunction {
4
+ constructor(scope: IScope);
5
+ }
@@ -1,21 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GetLink = void 0;
4
- const instructions_1 = require("../../instructions");
5
- const __1 = require("..");
6
- const values_1 = require("../../values");
7
- const Building_1 = require("../Building");
8
- class GetLink extends __1.MacroFunction {
9
- constructor(scope) {
10
- super(scope, (index) => {
11
- if (!(index instanceof values_1.StoreValue) &&
12
- (!(index instanceof values_1.LiteralValue) || typeof index.data !== "number"))
13
- throw new Error("The getlink index must be a number literal or a store");
14
- const temp = new values_1.TempValue(scope);
15
- const outBuild = new Building_1.Building(scope, temp.name);
16
- return [outBuild, [new instructions_1.InstructionBase("getlink", temp, index)]];
17
- });
18
- }
19
- }
20
- exports.GetLink = GetLink;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetLink = void 0;
4
+ const instructions_1 = require("../../instructions");
5
+ const __1 = require("..");
6
+ const values_1 = require("../../values");
7
+ const Building_1 = require("../Building");
8
+ class GetLink extends __1.MacroFunction {
9
+ constructor(scope) {
10
+ super(scope, (index) => {
11
+ if (!(index instanceof values_1.StoreValue) &&
12
+ (!(index instanceof values_1.LiteralValue) || typeof index.data !== "number"))
13
+ throw new Error("The getlink index must be a number literal or a store");
14
+ const temp = new values_1.TempValue(scope);
15
+ const outBuild = new Building_1.Building(scope, temp.name);
16
+ return [outBuild, [new instructions_1.InstructionBase("getlink", temp, index)]];
17
+ });
18
+ }
19
+ }
20
+ exports.GetLink = GetLink;
21
21
  //# sourceMappingURL=GetLink.js.map
@@ -1,5 +1,5 @@
1
- import { MacroFunction } from "..";
2
- import { IScope } from "../../types";
3
- export declare class Lookup extends MacroFunction {
4
- constructor(scope: IScope);
5
- }
1
+ import { MacroFunction } from "..";
2
+ import { IScope } from "../../types";
3
+ export declare class Lookup extends MacroFunction {
4
+ constructor(scope: IScope);
5
+ }
@@ -1,24 +1,24 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Lookup = void 0;
4
- const instructions_1 = require("../../instructions");
5
- const __1 = require("..");
6
- const values_1 = require("../../values");
7
- const validKinds = ["block", "unit", "item", "liquid"];
8
- class Lookup extends __1.MacroFunction {
9
- constructor(scope) {
10
- super(scope, (kind, index) => {
11
- if (!(kind instanceof values_1.LiteralValue && typeof kind.data === "string"))
12
- throw new Error("The lookup kind must be a string literal");
13
- if (!validKinds.includes(kind.data))
14
- throw new Error("Invalid lookup kind");
15
- if (!(index instanceof values_1.LiteralValue && typeof index.data === "number") &&
16
- !(index instanceof values_1.StoreValue))
17
- throw new Error("The lookup index must be a number literal or a store");
18
- const temp = new values_1.TempValue(scope);
19
- return [temp, [new instructions_1.InstructionBase("lookup", kind.data, temp, index)]];
20
- });
21
- }
22
- }
23
- exports.Lookup = Lookup;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Lookup = void 0;
4
+ const instructions_1 = require("../../instructions");
5
+ const __1 = require("..");
6
+ const values_1 = require("../../values");
7
+ const validKinds = ["block", "unit", "item", "liquid"];
8
+ class Lookup extends __1.MacroFunction {
9
+ constructor(scope) {
10
+ super(scope, (kind, index) => {
11
+ if (!(kind instanceof values_1.LiteralValue && typeof kind.data === "string"))
12
+ throw new Error("The lookup kind must be a string literal");
13
+ if (!validKinds.includes(kind.data))
14
+ throw new Error("Invalid lookup kind");
15
+ if (!(index instanceof values_1.LiteralValue && typeof index.data === "number") &&
16
+ !(index instanceof values_1.StoreValue))
17
+ throw new Error("The lookup index must be a number literal or a store");
18
+ const temp = new values_1.TempValue(scope);
19
+ return [temp, [new instructions_1.InstructionBase("lookup", kind.data, temp, index)]];
20
+ });
21
+ }
22
+ }
23
+ exports.Lookup = Lookup;
24
24
  //# sourceMappingURL=Lookup.js.map
@@ -1,5 +1,5 @@
1
- import { MacroFunction } from "..";
2
- import { IScope } from "../../types";
3
- export declare class Print extends MacroFunction {
4
- constructor(scope: IScope);
5
- }
1
+ import { MacroFunction } from "..";
2
+ import { IScope } from "../../types";
3
+ export declare class Print extends MacroFunction {
4
+ constructor(scope: IScope);
5
+ }
@@ -1,14 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Print = void 0;
4
- const instructions_1 = require("../../instructions");
5
- const __1 = require("..");
6
- class Print extends __1.MacroFunction {
7
- constructor(scope) {
8
- super(scope, (...values) => {
9
- return [null, [new instructions_1.InstructionBase("print", ...values)]];
10
- });
11
- }
12
- }
13
- exports.Print = Print;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Print = void 0;
4
+ const instructions_1 = require("../../instructions");
5
+ const __1 = require("..");
6
+ class Print extends __1.MacroFunction {
7
+ constructor(scope) {
8
+ super(scope, (...values) => {
9
+ return [null, [new instructions_1.InstructionBase("print", ...values)]];
10
+ });
11
+ }
12
+ }
13
+ exports.Print = Print;
14
14
  //# sourceMappingURL=Print.js.map
@@ -1,5 +1,5 @@
1
- import { MacroFunction } from "..";
2
- import { IScope } from "../../types";
3
- export declare class PrintFlush extends MacroFunction {
4
- constructor(scope: IScope);
5
- }
1
+ import { MacroFunction } from "..";
2
+ import { IScope } from "../../types";
3
+ export declare class PrintFlush extends MacroFunction {
4
+ constructor(scope: IScope);
5
+ }
@@ -1,17 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PrintFlush = void 0;
4
- const instructions_1 = require("../../instructions");
5
- const __1 = require("..");
6
- const values_1 = require("../../values");
7
- class PrintFlush extends __1.MacroFunction {
8
- constructor(scope) {
9
- super(scope, (target) => {
10
- if (!(target instanceof values_1.ObjectValue))
11
- throw new Error("The printflush target must be a building");
12
- return [null, [new instructions_1.InstructionBase("printflush", target)]];
13
- });
14
- }
15
- }
16
- exports.PrintFlush = PrintFlush;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrintFlush = void 0;
4
+ const instructions_1 = require("../../instructions");
5
+ const __1 = require("..");
6
+ const values_1 = require("../../values");
7
+ class PrintFlush extends __1.MacroFunction {
8
+ constructor(scope) {
9
+ super(scope, (target) => {
10
+ if (!(target instanceof values_1.ObjectValue))
11
+ throw new Error("The printflush target must be a building");
12
+ return [null, [new instructions_1.InstructionBase("printflush", target)]];
13
+ });
14
+ }
15
+ }
16
+ exports.PrintFlush = PrintFlush;
17
17
  //# sourceMappingURL=PrintFlush.js.map
@@ -1,7 +1,7 @@
1
- import { MacroFunction } from "..";
2
- import { IScope } from "../../types";
3
- export declare const validRadarFilters: string[];
4
- export declare const validRadarSorts: string[];
5
- export declare class Radar extends MacroFunction {
6
- constructor(scope: IScope);
7
- }
1
+ import { MacroFunction } from "..";
2
+ import { IScope } from "../../types";
3
+ export declare const validRadarFilters: string[];
4
+ export declare const validRadarSorts: string[];
5
+ export declare class Radar extends MacroFunction {
6
+ constructor(scope: IScope);
7
+ }
@@ -1,61 +1,61 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Radar = exports.validRadarSorts = exports.validRadarFilters = void 0;
4
- const instructions_1 = require("../../instructions");
5
- const __1 = require("..");
6
- const values_1 = require("../../values");
7
- const Namespace_1 = require("../Namespace");
8
- exports.validRadarFilters = [
9
- "any",
10
- "enemy",
11
- "ally",
12
- "player",
13
- "attacker",
14
- "flying",
15
- "boss",
16
- "ground",
17
- ];
18
- exports.validRadarSorts = [
19
- "distance",
20
- "health",
21
- "shield",
22
- "armor",
23
- "maxHealth",
24
- ];
25
- class Radar extends __1.MacroFunction {
26
- constructor(scope) {
27
- super(scope, (building, filter1, filter2, filter3, order, sort) => {
28
- if (!(building instanceof values_1.ObjectValue))
29
- throw new Error("The building must a store");
30
- if (!(filter1 instanceof values_1.LiteralValue) ||
31
- typeof filter1.data !== "string" ||
32
- !(filter2 instanceof values_1.LiteralValue) ||
33
- typeof filter2.data !== "string" ||
34
- !(filter3 instanceof values_1.LiteralValue) ||
35
- typeof filter3.data !== "string")
36
- throw new Error("The filters must be string literals");
37
- if (!exports.validRadarFilters.includes(filter1.data))
38
- throw new Error("Invalid value for filter1");
39
- if (!exports.validRadarFilters.includes(filter2.data))
40
- throw new Error("Invalid value for filter2");
41
- if (!exports.validRadarFilters.includes(filter3.data))
42
- throw new Error("Invalid value for filter3");
43
- if (!(order instanceof values_1.LiteralValue || order instanceof values_1.StoreValue))
44
- throw new Error("The radar order must be a literal or a store");
45
- if (!(sort instanceof values_1.LiteralValue) || typeof sort.data !== "string")
46
- throw new Error("The radar sort must be a string literal");
47
- if (!exports.validRadarSorts.includes(sort.data))
48
- throw new Error("Invalid sort value");
49
- const temp = new values_1.TempValue(scope);
50
- const resultUnit = new Namespace_1.Unit(scope, temp.name);
51
- return [
52
- resultUnit,
53
- [
54
- new instructions_1.InstructionBase("radar", filter1.data, filter2.data, filter3.data, sort.data, building, order, temp),
55
- ],
56
- ];
57
- });
58
- }
59
- }
60
- exports.Radar = Radar;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Radar = exports.validRadarSorts = exports.validRadarFilters = void 0;
4
+ const instructions_1 = require("../../instructions");
5
+ const __1 = require("..");
6
+ const values_1 = require("../../values");
7
+ const Namespace_1 = require("../Namespace");
8
+ exports.validRadarFilters = [
9
+ "any",
10
+ "enemy",
11
+ "ally",
12
+ "player",
13
+ "attacker",
14
+ "flying",
15
+ "boss",
16
+ "ground",
17
+ ];
18
+ exports.validRadarSorts = [
19
+ "distance",
20
+ "health",
21
+ "shield",
22
+ "armor",
23
+ "maxHealth",
24
+ ];
25
+ class Radar extends __1.MacroFunction {
26
+ constructor(scope) {
27
+ super(scope, (building, filter1, filter2, filter3, order, sort) => {
28
+ if (!(building instanceof values_1.ObjectValue))
29
+ throw new Error("The building must a store");
30
+ if (!(filter1 instanceof values_1.LiteralValue) ||
31
+ typeof filter1.data !== "string" ||
32
+ !(filter2 instanceof values_1.LiteralValue) ||
33
+ typeof filter2.data !== "string" ||
34
+ !(filter3 instanceof values_1.LiteralValue) ||
35
+ typeof filter3.data !== "string")
36
+ throw new Error("The filters must be string literals");
37
+ if (!exports.validRadarFilters.includes(filter1.data))
38
+ throw new Error("Invalid value for filter1");
39
+ if (!exports.validRadarFilters.includes(filter2.data))
40
+ throw new Error("Invalid value for filter2");
41
+ if (!exports.validRadarFilters.includes(filter3.data))
42
+ throw new Error("Invalid value for filter3");
43
+ if (!(order instanceof values_1.LiteralValue || order instanceof values_1.StoreValue))
44
+ throw new Error("The radar order must be a literal or a store");
45
+ if (!(sort instanceof values_1.LiteralValue) || typeof sort.data !== "string")
46
+ throw new Error("The radar sort must be a string literal");
47
+ if (!exports.validRadarSorts.includes(sort.data))
48
+ throw new Error("Invalid sort value");
49
+ const temp = new values_1.TempValue(scope);
50
+ const resultUnit = new Namespace_1.Unit(scope, temp.name);
51
+ return [
52
+ resultUnit,
53
+ [
54
+ new instructions_1.InstructionBase("radar", filter1.data, filter2.data, filter3.data, sort.data, building, order, temp),
55
+ ],
56
+ ];
57
+ });
58
+ }
59
+ }
60
+ exports.Radar = Radar;
61
61
  //# sourceMappingURL=Radar.js.map
@@ -1,5 +1,5 @@
1
- import { MacroFunction } from "..";
2
- import { IScope } from "../../types";
3
- export declare class Sensor extends MacroFunction {
4
- constructor(scope: IScope);
5
- }
1
+ import { MacroFunction } from "..";
2
+ import { IScope } from "../../types";
3
+ export declare class Sensor extends MacroFunction {
4
+ constructor(scope: IScope);
5
+ }
@@ -1,20 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Sensor = void 0;
4
- const instructions_1 = require("../../instructions");
5
- const __1 = require("..");
6
- const values_1 = require("../../values");
7
- class Sensor extends __1.MacroFunction {
8
- constructor(scope) {
9
- super(scope, (property, target) => {
10
- if (!(property instanceof values_1.StoreValue))
11
- throw new Error("The sensor property must be a store");
12
- if (!(target instanceof values_1.ObjectValue))
13
- throw new Error("The sensor target must be a store");
14
- const temp = new values_1.TempValue(scope);
15
- return [temp, [new instructions_1.InstructionBase("sensor", temp, property, target)]];
16
- });
17
- }
18
- }
19
- exports.Sensor = Sensor;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Sensor = void 0;
4
+ const instructions_1 = require("../../instructions");
5
+ const __1 = require("..");
6
+ const values_1 = require("../../values");
7
+ class Sensor extends __1.MacroFunction {
8
+ constructor(scope) {
9
+ super(scope, (property, target) => {
10
+ if (!(property instanceof values_1.StoreValue))
11
+ throw new Error("The sensor property must be a store");
12
+ if (!(target instanceof values_1.ObjectValue))
13
+ throw new Error("The sensor target must be a store");
14
+ const temp = new values_1.TempValue(scope);
15
+ return [temp, [new instructions_1.InstructionBase("sensor", temp, property, target)]];
16
+ });
17
+ }
18
+ }
19
+ exports.Sensor = Sensor;
20
20
  //# sourceMappingURL=Sensor.js.map
@@ -1,5 +1,5 @@
1
- import { MacroFunction } from "..";
2
- import { IScope } from "../../types";
3
- export declare class UnitBind extends MacroFunction {
4
- constructor(scope: IScope);
5
- }
1
+ import { MacroFunction } from "..";
2
+ import { IScope } from "../../types";
3
+ export declare class UnitBind extends MacroFunction {
4
+ constructor(scope: IScope);
5
+ }