mlogjs 0.5.1 → 0.6.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.
- package/README.md +2 -2
- package/dist/{index.cjs → Compiler-7GMG4MDr.js} +1746 -452
- package/dist/Compiler.d.ts +8 -12
- package/dist/CompilerError.d.ts +13 -3
- package/dist/Scope.d.ts +8 -8
- package/dist/bin/files.d.ts +18 -0
- package/dist/bin.mjs +170 -0
- package/dist/handlers/Import.d.ts +5 -0
- package/dist/handlers/Literal.d.ts +2 -2
- package/dist/handlers/Typescript.d.ts +2 -2
- package/dist/handlers/index.d.ts +1 -0
- package/dist/index.mjs +3 -4267
- package/dist/instructions/AddressResolver.d.ts +4 -4
- package/dist/instructions/ControlInstructions.d.ts +3 -3
- package/dist/instructions/InstructionBase.d.ts +1 -0
- package/dist/instructions/JumpInstruction.d.ts +5 -5
- package/dist/instructions/index.d.ts +0 -1
- package/dist/macros/DynamicArray.d.ts +4 -4
- package/dist/macros/Function.d.ts +2 -2
- package/dist/macros/GetBuildings.d.ts +4 -0
- package/dist/macros/GetColor.d.ts +4 -0
- package/dist/macros/Marker.d.ts +4 -0
- package/dist/macros/Namespace.d.ts +16 -0
- package/dist/macros/Queries.d.ts +10 -0
- package/dist/macros/StringView.d.ts +4 -0
- package/dist/macros/commands/Effect.d.ts +4 -0
- package/dist/macros/commands/Format.d.ts +4 -0
- package/dist/macros/commands/LocalePrint.d.ts +4 -0
- package/dist/macros/commands/PlayMusic.d.ts +4 -0
- package/dist/macros/commands/PlaySound.d.ts +4 -0
- package/dist/macros/commands/PrintChar.d.ts +4 -0
- package/dist/macros/commands/Query.d.ts +4 -0
- package/dist/macros/commands/SetProp.d.ts +4 -0
- package/dist/macros/commands/SpawnBullet.d.ts +4 -0
- package/dist/macros/commands/Sync.d.ts +6 -0
- package/dist/macros/commands/UnpackColor.d.ts +4 -0
- package/dist/macros/commands/WeatherSense.d.ts +4 -0
- package/dist/macros/commands/WeatherSet.d.ts +4 -0
- package/dist/macros/commands/index.d.ts +13 -0
- package/dist/macros/index.d.ts +7 -1
- package/dist/macros/util.d.ts +5 -2
- package/dist/modules.d.ts +8 -0
- package/dist/operators.d.ts +1 -1
- package/dist/types.d.ts +84 -59
- package/dist/utils/constants.d.ts +9 -4
- package/dist/utils/general.d.ts +8 -9
- package/dist/utils/instruction.d.ts +5 -1
- package/dist/utils/value.d.ts +14 -5
- package/dist/values/AssignmentValue.d.ts +1 -1
- package/dist/values/BaseValue.d.ts +4 -2
- package/dist/values/DestructuringValue.d.ts +5 -7
- package/dist/values/FunctionValue.d.ts +8 -6
- package/dist/values/JumpOutValue.d.ts +4 -4
- package/dist/values/LazyValue.d.ts +3 -3
- package/dist/values/LiteralValue.d.ts +2 -3
- package/dist/values/ObjectValue.d.ts +6 -11
- package/dist/values/StoreValue.d.ts +10 -5
- package/dist/values/VoidValue.d.ts +2 -1
- package/dist/values/index.d.ts +0 -1
- package/lib/commands.d.ts +777 -729
- package/lib/eslib/lib.es2015.collection.d.ts +50 -39
- package/lib/eslib/lib.es2015.core.d.ts +59 -0
- package/lib/eslib/lib.es2015.d.ts +0 -3
- package/lib/eslib/lib.es2015.generator.d.ts +54 -53
- package/lib/eslib/lib.es2015.iterable.d.ts +9 -6
- package/lib/eslib/lib.es5.d.ts +53 -6
- package/lib/globals.d.ts +309 -18
- package/lib/helpers.d.ts +86 -52
- package/lib/kinds.d.ts +42 -7
- package/lib/macros.d.ts +53 -18
- package/lib/traits.d.ts +308 -146
- package/lib/util.d.ts +144 -48
- package/lib/world.d.ts +1197 -0
- package/package.json +27 -35
- package/dist/bin.cjs +0 -111
- package/dist/initScope.d.ts +0 -5
- package/dist/instructions/ZeroSpaceInstruction.d.ts +0 -4
- package/dist/values/SenseableValue.d.ts +0 -24
- /package/dist/{bin.d.ts → bin/index.d.ts} +0 -0
package/lib/macros.d.ts
CHANGED
|
@@ -3,6 +3,9 @@
|
|
|
3
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
|
+
*
|
|
7
|
+
* @deprecated Use `MemoryView` instead. This class is only kept for backwards
|
|
8
|
+
* compatibility and will be removed in a future version.
|
|
6
9
|
*/
|
|
7
10
|
declare class Memory<S extends MemoryCapacity = 64> {
|
|
8
11
|
constructor(cell: BasicBuilding, size?: S);
|
|
@@ -10,12 +13,21 @@ declare class Memory<S extends MemoryCapacity = 64> {
|
|
|
10
13
|
[Symbol.iterator](): IterableIterator<number>;
|
|
11
14
|
[index: number]: number;
|
|
12
15
|
|
|
13
|
-
/**
|
|
14
|
-
* The practical length of the memory view.
|
|
15
|
-
*/
|
|
16
|
+
/** The practical length of the memory view. */
|
|
16
17
|
readonly length: S;
|
|
17
18
|
}
|
|
18
19
|
|
|
20
|
+
/** Allows you to view and modify the data of memory cells and memory banks. */
|
|
21
|
+
declare class MemoryView<T = number> {
|
|
22
|
+
constructor(cell: BasicBuilding, size?: number);
|
|
23
|
+
|
|
24
|
+
[Symbol.iterator](): IterableIterator<T>;
|
|
25
|
+
[index: number]: T;
|
|
26
|
+
|
|
27
|
+
/** The practical length of the memory view. */
|
|
28
|
+
readonly length: number;
|
|
29
|
+
}
|
|
30
|
+
|
|
19
31
|
/**
|
|
20
32
|
* Creates a mutable, dynamic access array, the length is constant.
|
|
21
33
|
*
|
|
@@ -36,7 +48,8 @@ declare class MutableArray<T> {
|
|
|
36
48
|
fill(value: T): void;
|
|
37
49
|
|
|
38
50
|
/**
|
|
39
|
-
* Returns the item at the given index. Negative indexes are relative to
|
|
51
|
+
* Returns the item at the given index. Negative indexes are relative to
|
|
52
|
+
* `this.size`.
|
|
40
53
|
*
|
|
41
54
|
* ```js
|
|
42
55
|
* print(array.at(-1)); // equal to array[array.size - 1]
|
|
@@ -52,7 +65,8 @@ declare class MutableArray<T> {
|
|
|
52
65
|
|
|
53
66
|
declare class DynamicArray<T> extends MutableArray<T> {
|
|
54
67
|
/**
|
|
55
|
-
* Creates an array with a predefined capacity that supports dynamic index
|
|
68
|
+
* Creates an array with a predefined capacity that supports dynamic index
|
|
69
|
+
* accesses.
|
|
56
70
|
*
|
|
57
71
|
* The array can contain any value assignable to a store.
|
|
58
72
|
*/
|
|
@@ -60,9 +74,11 @@ declare class DynamicArray<T> extends MutableArray<T> {
|
|
|
60
74
|
constructor(length: number);
|
|
61
75
|
|
|
62
76
|
/**
|
|
63
|
-
* Sets the last item of the array to `undefined` and decreases its length by
|
|
77
|
+
* Sets the last item of the array to `undefined` and decreases its length by
|
|
78
|
+
* 1.
|
|
64
79
|
*
|
|
65
|
-
* This method only generates the instructions for getting the value when
|
|
80
|
+
* This method only generates the instructions for getting the value when
|
|
81
|
+
* needed.
|
|
66
82
|
*
|
|
67
83
|
* You can use `unchecked` to skip the bound check.
|
|
68
84
|
*
|
|
@@ -92,14 +108,14 @@ declare class DynamicArray<T> extends MutableArray<T> {
|
|
|
92
108
|
/**
|
|
93
109
|
* Removes the item at the given index.
|
|
94
110
|
*
|
|
95
|
-
* This method only generates the instructions for getting the value when
|
|
111
|
+
* This method only generates the instructions for getting the value when
|
|
112
|
+
* needed.
|
|
96
113
|
*
|
|
97
114
|
* The index must be within the range: [`0`, `this.length - 1`]
|
|
98
115
|
*
|
|
99
116
|
* You can use `unchecked` to skip the bound check.
|
|
100
117
|
*
|
|
101
118
|
* ```js
|
|
102
|
-
*
|
|
103
119
|
* let a = array.removeAt(i); // generates getter instructions
|
|
104
120
|
* array.removeAt(i); // doesn't generate getter instructions
|
|
105
121
|
*
|
|
@@ -110,7 +126,8 @@ declare class DynamicArray<T> extends MutableArray<T> {
|
|
|
110
126
|
removeAt(index: number): T;
|
|
111
127
|
|
|
112
128
|
/**
|
|
113
|
-
* Returns the item at the given index. Negative indexes are relative to
|
|
129
|
+
* Returns the item at the given index. Negative indexes are relative to
|
|
130
|
+
* `this.length`.
|
|
114
131
|
*
|
|
115
132
|
* ```js
|
|
116
133
|
* print(array.at(-1)); // equal to array[array.length - 1]
|
|
@@ -123,28 +140,46 @@ declare class DynamicArray<T> extends MutableArray<T> {
|
|
|
123
140
|
}
|
|
124
141
|
|
|
125
142
|
/**
|
|
126
|
-
* A function that tells the compiler not to add
|
|
127
|
-
*
|
|
143
|
+
* A function that tells the compiler not to add bound checking in the array
|
|
144
|
+
* accesses in the given expression.
|
|
128
145
|
*
|
|
129
146
|
* Only access that are computed inside the call are unchecked:
|
|
130
147
|
*
|
|
131
148
|
* ```js
|
|
132
149
|
* // checked
|
|
133
|
-
* const a = array[i]
|
|
150
|
+
* const a = array[i];
|
|
134
151
|
* // unckecked
|
|
135
|
-
* const b = unchecked(array[i])
|
|
152
|
+
* const b = unchecked(array[i]);
|
|
136
153
|
*
|
|
137
154
|
* // the array accesses inside `doSomething`
|
|
138
155
|
* // are NOT unchecked
|
|
139
|
-
* unchecked(doSomething(i))
|
|
156
|
+
* unchecked(doSomething(i));
|
|
140
157
|
*
|
|
141
158
|
* // only `array[i * 2]` is unchecked
|
|
142
|
-
* const c = unchecked(doSomething(i) * array[i * 2])
|
|
159
|
+
* const c = unchecked(doSomething(i) * array[i * 2]);
|
|
143
160
|
*
|
|
144
161
|
* function doSomething(i) {
|
|
145
|
-
*
|
|
146
|
-
*
|
|
162
|
+
* // will always be checked
|
|
163
|
+
* return (array[i - 1] + array[i + 1]) / 2;
|
|
147
164
|
* }
|
|
148
165
|
* ```
|
|
149
166
|
*/
|
|
150
167
|
declare function unchecked<T>(expression: T): T;
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* A view of a string that allows indexed access to its characters.
|
|
171
|
+
*
|
|
172
|
+
* Each character is represented by its UTF-16 code unit.
|
|
173
|
+
*/
|
|
174
|
+
declare class StringView {
|
|
175
|
+
/**
|
|
176
|
+
* Creates a view of the given string, allowing you to access its characters
|
|
177
|
+
* by index.
|
|
178
|
+
*/
|
|
179
|
+
constructor(string: string);
|
|
180
|
+
|
|
181
|
+
[index: number]: number;
|
|
182
|
+
|
|
183
|
+
/** The length of the string. */
|
|
184
|
+
readonly length: number;
|
|
185
|
+
}
|
package/lib/traits.d.ts
CHANGED
|
@@ -1,156 +1,318 @@
|
|
|
1
|
-
import "
|
|
1
|
+
import { WithSymbols } from "mlogjs:types";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
declare global {
|
|
4
|
+
interface LiquidHolder extends WithSymbols<
|
|
5
|
+
{
|
|
6
|
+
readonly [L in keyof typeof Liquids]: number;
|
|
7
|
+
} & {
|
|
8
|
+
readonly totalLiquids: number;
|
|
9
|
+
readonly liquidCapacity: number;
|
|
10
|
+
}
|
|
11
|
+
> {}
|
|
4
12
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
13
|
+
interface ItemHolder extends WithSymbols<
|
|
14
|
+
{
|
|
15
|
+
readonly [I in keyof typeof Items]: number;
|
|
16
|
+
} & {
|
|
17
|
+
readonly totalItems: number;
|
|
18
|
+
readonly firstItem?: ItemSymbol;
|
|
19
|
+
readonly itemCapacity: number;
|
|
20
|
+
}
|
|
21
|
+
> {}
|
|
8
22
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
23
|
+
interface PowerHolder extends WithSymbols<{
|
|
24
|
+
/** The amount of power stored in this building. */
|
|
25
|
+
readonly totalPower: number;
|
|
26
|
+
/** The maximum amount of power this building can hold. */
|
|
27
|
+
readonly powerCapacity: number;
|
|
28
|
+
/**
|
|
29
|
+
* The amount of power stored in the power net that is this building is a
|
|
30
|
+
* part of.
|
|
31
|
+
*/
|
|
32
|
+
readonly powerNetStored: number;
|
|
33
|
+
/**
|
|
34
|
+
* The maximum amount of power that can be stored in the power net that is
|
|
35
|
+
* this building is a part of.
|
|
36
|
+
*/
|
|
37
|
+
readonly powerNetCapacity: number;
|
|
38
|
+
/**
|
|
39
|
+
* How much power is being generated in the power net that is this building
|
|
40
|
+
* is a part of.
|
|
41
|
+
*/
|
|
42
|
+
readonly powerNetIn: number;
|
|
43
|
+
/**
|
|
44
|
+
* How much power is being spent in the power net that is this building is a
|
|
45
|
+
* part of.
|
|
46
|
+
*/
|
|
47
|
+
readonly powerNetOut: number;
|
|
48
|
+
}> {}
|
|
49
|
+
|
|
50
|
+
interface WithAim extends WithSymbols<{
|
|
51
|
+
readonly shootX: number;
|
|
52
|
+
readonly shootY: number;
|
|
53
|
+
}> {}
|
|
40
54
|
|
|
41
55
|
interface Shooting
|
|
42
|
-
extends
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
interface Heatable
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
interface
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
interface
|
|
127
|
-
|
|
56
|
+
extends
|
|
57
|
+
WithAim,
|
|
58
|
+
WithSymbols<{
|
|
59
|
+
readonly shooting: boolean;
|
|
60
|
+
readonly ammo: number;
|
|
61
|
+
readonly ammoCapacity: number;
|
|
62
|
+
readonly currentAmmoType?: ItemSymbol | LiquidSymbol;
|
|
63
|
+
}> {}
|
|
64
|
+
|
|
65
|
+
interface WithHealth extends WithSymbols<{
|
|
66
|
+
readonly health: number;
|
|
67
|
+
readonly maxHealth: number;
|
|
68
|
+
readonly dead: boolean;
|
|
69
|
+
}> {}
|
|
70
|
+
|
|
71
|
+
interface Heatable extends WithSymbols<{
|
|
72
|
+
/**
|
|
73
|
+
* Can mean:
|
|
74
|
+
*
|
|
75
|
+
* - The damage buildup in the force field of force projectors. This buildup
|
|
76
|
+
* decreases over time as the force projector regenerates.
|
|
77
|
+
* - The warmup progress of impact reactors, in the range: [0, 1].
|
|
78
|
+
* - The heat of a thorium reactor, in the range: [0, 1].
|
|
79
|
+
*/
|
|
80
|
+
readonly heat: number;
|
|
81
|
+
}> {}
|
|
82
|
+
|
|
83
|
+
interface WithShield extends WithSymbols<{
|
|
84
|
+
/**
|
|
85
|
+
* The amount of shield hp `this` has.
|
|
86
|
+
*
|
|
87
|
+
* If `this` has a force field, returns the force field's hp.
|
|
88
|
+
*
|
|
89
|
+
* Or else, if `this` is an unit, returns the hp of this unit's personal
|
|
90
|
+
* shield, which is as one given by a `pulsar`.
|
|
91
|
+
*/
|
|
92
|
+
readonly shield: number;
|
|
93
|
+
}> {}
|
|
94
|
+
|
|
95
|
+
interface WithEffiency extends WithSymbols<{
|
|
96
|
+
readonly efficiency: number;
|
|
97
|
+
}> {}
|
|
98
|
+
|
|
99
|
+
interface WithProgress extends WithSymbols<{
|
|
100
|
+
/**
|
|
101
|
+
* Action progress, in the range: [0, 1].
|
|
102
|
+
*
|
|
103
|
+
* Returns the production, turret reload or construction progress.
|
|
104
|
+
*/
|
|
105
|
+
readonly progress: number;
|
|
106
|
+
}> {}
|
|
107
|
+
|
|
108
|
+
interface WithTimescale extends WithSymbols<{
|
|
109
|
+
/**
|
|
110
|
+
* The speed boost applied to this building by, for example, an overdrive
|
|
111
|
+
* projector.
|
|
112
|
+
*/
|
|
113
|
+
readonly timescale: number;
|
|
114
|
+
}> {}
|
|
115
|
+
|
|
116
|
+
interface Rotatable extends WithSymbols<{
|
|
117
|
+
/**
|
|
118
|
+
* The rotation of this entity.
|
|
119
|
+
*
|
|
120
|
+
* Most buildings have their rotation represented by an integer within the
|
|
121
|
+
* range [0, 3]. With each meaning:
|
|
122
|
+
*
|
|
123
|
+
* - 0 => right
|
|
124
|
+
* - 1 => up
|
|
125
|
+
* - 2 => left
|
|
126
|
+
* - 3 => down
|
|
127
|
+
*
|
|
128
|
+
* While units and some other buildings (like turrets) will have their
|
|
129
|
+
* rotation represented in degrees stored in a floating point number.
|
|
130
|
+
*/
|
|
131
|
+
readonly rotation: number;
|
|
132
|
+
}> {}
|
|
133
|
+
|
|
134
|
+
interface Spaced extends WithSymbols<{
|
|
135
|
+
readonly x: number;
|
|
136
|
+
readonly y: number;
|
|
137
|
+
readonly size: number;
|
|
138
|
+
}> {}
|
|
139
|
+
|
|
140
|
+
interface Ranged extends WithSymbols<{
|
|
141
|
+
readonly range: number;
|
|
142
|
+
}> {}
|
|
143
|
+
|
|
144
|
+
interface Boosted extends WithSymbols<{
|
|
145
|
+
readonly boosting: boolean;
|
|
146
|
+
}> {}
|
|
147
|
+
|
|
148
|
+
interface Mining extends WithSymbols<{
|
|
149
|
+
readonly mineX: number;
|
|
150
|
+
readonly mineY: number;
|
|
151
|
+
readonly mining: number;
|
|
152
|
+
}> {}
|
|
153
|
+
|
|
154
|
+
interface Typed<T extends symbol = symbol> extends WithSymbols<{
|
|
155
|
+
readonly type: T;
|
|
156
|
+
}> {}
|
|
157
|
+
interface Flagged extends WithSymbols<{
|
|
158
|
+
readonly flag: number;
|
|
159
|
+
}> {}
|
|
160
|
+
|
|
161
|
+
interface Controlled extends WithSymbols<{
|
|
162
|
+
/**
|
|
163
|
+
* The type of control that is being applied to `this`.
|
|
164
|
+
*
|
|
165
|
+
* If `this` is a building:
|
|
166
|
+
*
|
|
167
|
+
* - `ControlKind.ctrlPlayer` if a player is controlling `this`.
|
|
168
|
+
* - `0` otherwise.
|
|
169
|
+
*
|
|
170
|
+
* If `this` is an unit:
|
|
171
|
+
*
|
|
172
|
+
* - `ControlKind.ctrlProcessor` if `this` is being controlled by a processor.
|
|
173
|
+
* - `ControlKind.ctrlPlayer` if `this` is being controlled directly by a
|
|
174
|
+
* player.
|
|
175
|
+
* - `ControlKind.ctrlCommand` if `this` is being controlled by player
|
|
176
|
+
* commands.
|
|
177
|
+
* - `0` otherwise.
|
|
178
|
+
*/
|
|
179
|
+
readonly controlled: 0 | ControlKind;
|
|
180
|
+
}> {}
|
|
181
|
+
|
|
182
|
+
interface WithController extends WithSymbols<{
|
|
183
|
+
/**
|
|
184
|
+
* The entity controlling this unit. Is either a player, a processor or
|
|
185
|
+
* `this`.
|
|
186
|
+
*/
|
|
187
|
+
readonly controller: AnyUnit | BasicBuilding;
|
|
188
|
+
}> {}
|
|
189
|
+
|
|
190
|
+
interface Nameable extends WithSymbols<{
|
|
191
|
+
/** The name of the player controlling this unit. */
|
|
192
|
+
readonly name?: string;
|
|
193
|
+
}> {}
|
|
194
|
+
|
|
195
|
+
interface PayloadHolder extends WithSymbols<
|
|
196
|
+
{
|
|
197
|
+
readonly [T in UnitSymbol | BlockSymbol]: number;
|
|
198
|
+
} & {
|
|
128
199
|
readonly payloadCount: number;
|
|
129
|
-
readonly payloadType?:
|
|
130
|
-
|
|
200
|
+
readonly payloadType?: UnitSymbol | BlockSymbol;
|
|
201
|
+
readonly totalPayload: number;
|
|
202
|
+
readonly payloadCapacity: number;
|
|
203
|
+
}
|
|
204
|
+
> {}
|
|
131
205
|
|
|
132
|
-
interface WithEnable
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}> {}
|
|
206
|
+
interface WithEnable extends WithSymbols<{
|
|
207
|
+
readonly enabled: boolean;
|
|
208
|
+
}> {}
|
|
136
209
|
interface WithConfig<
|
|
137
|
-
T extends symbol | number | undefined = symbol | undefined
|
|
210
|
+
T extends symbol | number | undefined = symbol | undefined,
|
|
138
211
|
> extends WithSymbols<{
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
interface WithSpeed
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
interface WithColor
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
212
|
+
readonly config: T;
|
|
213
|
+
}> {}
|
|
214
|
+
|
|
215
|
+
interface WithSpeed extends WithSymbols<{
|
|
216
|
+
/** The base movement speed of this unit. Measured in tiles/second. */
|
|
217
|
+
readonly speed: number;
|
|
218
|
+
}> {}
|
|
219
|
+
|
|
220
|
+
interface WithColor extends WithSymbols<{
|
|
221
|
+
/**
|
|
222
|
+
* Can be:
|
|
223
|
+
*
|
|
224
|
+
* - Color of the `this`, if it is an illuminator.
|
|
225
|
+
* - Color of the team of `this`.
|
|
226
|
+
*/
|
|
227
|
+
readonly color: number;
|
|
228
|
+
}> {}
|
|
229
|
+
|
|
230
|
+
interface WithTeam extends WithSymbols<{
|
|
231
|
+
/** The team id of `this`. */
|
|
232
|
+
readonly team: number;
|
|
233
|
+
}> {}
|
|
234
|
+
|
|
235
|
+
interface WithArmor extends WithSymbols<{
|
|
236
|
+
readonly armor: number;
|
|
237
|
+
}> {}
|
|
238
|
+
|
|
239
|
+
interface WithCamera extends WithSymbols<{
|
|
240
|
+
/**
|
|
241
|
+
* The player camera X coordinate. Privileged (world) processors only;
|
|
242
|
+
* evaluates to null on standard processors.
|
|
243
|
+
*/
|
|
244
|
+
readonly cameraX: number;
|
|
245
|
+
/**
|
|
246
|
+
* The player camera Y coordinate. Privileged (world) processors only;
|
|
247
|
+
* evaluates to null on standard processors.
|
|
248
|
+
*/
|
|
249
|
+
readonly cameraY: number;
|
|
250
|
+
/**
|
|
251
|
+
* The player camera viewport width. Privileged (world) processors only;
|
|
252
|
+
* evaluates to null on standard processors.
|
|
253
|
+
*/
|
|
254
|
+
readonly cameraWidth: number;
|
|
255
|
+
/**
|
|
256
|
+
* The player camera viewport height. Privileged (world) processors only;
|
|
257
|
+
* evaluates to null on standard processors.
|
|
258
|
+
*/
|
|
259
|
+
readonly cameraHeight: number;
|
|
260
|
+
}> {}
|
|
261
|
+
|
|
262
|
+
interface WithDisplay extends WithSymbols<{
|
|
263
|
+
readonly displayHeight: number;
|
|
264
|
+
readonly displayWidth: number;
|
|
265
|
+
}> {}
|
|
266
|
+
|
|
267
|
+
interface WithMemory extends WithSymbols<{
|
|
268
|
+
readonly memoryCapacity: number;
|
|
269
|
+
}> {}
|
|
270
|
+
|
|
271
|
+
interface WithBufferSize extends WithSymbols<{
|
|
272
|
+
readonly bufferSize: number;
|
|
273
|
+
}> {}
|
|
274
|
+
|
|
275
|
+
interface WithSolid extends WithSymbols<{
|
|
276
|
+
readonly solid: boolean;
|
|
277
|
+
}> {}
|
|
278
|
+
|
|
279
|
+
interface WithVelocity extends WithSymbols<{
|
|
280
|
+
readonly velocityX: number;
|
|
281
|
+
readonly velocityY: number;
|
|
282
|
+
}> {}
|
|
283
|
+
|
|
284
|
+
interface WithOperations extends WithSymbols<{
|
|
285
|
+
readonly operations: number;
|
|
286
|
+
}> {}
|
|
287
|
+
|
|
288
|
+
interface WithPing extends WithSymbols<{
|
|
289
|
+
readonly pingX: number;
|
|
290
|
+
readonly pingY: number;
|
|
291
|
+
readonly pingText?: string;
|
|
292
|
+
}> {}
|
|
293
|
+
|
|
294
|
+
interface WithSelected extends WithSymbols<{
|
|
295
|
+
readonly selectedBlock?: BlockSymbol;
|
|
296
|
+
readonly selectedRotation: number;
|
|
297
|
+
}> {}
|
|
298
|
+
|
|
299
|
+
interface WithBulletTime extends WithSymbols<{
|
|
300
|
+
readonly bulletLifetime: number;
|
|
301
|
+
readonly bulletTime: number;
|
|
302
|
+
}> {}
|
|
303
|
+
|
|
304
|
+
interface WithBuild extends WithSymbols<{
|
|
305
|
+
readonly buildX: number;
|
|
306
|
+
readonly buildY: number;
|
|
307
|
+
readonly building?: BasicBuilding;
|
|
308
|
+
readonly breaking?: BasicBuilding;
|
|
309
|
+
}> {}
|
|
310
|
+
|
|
311
|
+
interface Flying extends WithSymbols<{
|
|
312
|
+
readonly flying: boolean;
|
|
313
|
+
}> {}
|
|
314
|
+
|
|
315
|
+
interface WithMaxUnits extends WithSymbols<{
|
|
316
|
+
readonly maxUnits?: number;
|
|
317
|
+
}> {}
|
|
156
318
|
}
|