typed-factorio 0.15.0 → 0.16.0
Sign up to get free protection for your applications and to get access to all the features.
- package/Changelog.md +6 -1
- package/README.md +8 -3
- package/generated/classes.d.ts +4 -2
- package/package.json +7 -4
- package/runtime/pairs.d.ts +8 -7
package/Changelog.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
# v0.16.0
|
2
|
+
|
3
|
+
- `LuaCustomTable` can be iterated on in a for-of loop directly (without using `pairs`). This requires TSTL v1.3.0 or later.
|
4
|
+
- TSTL dependency minimum version is now v1.3.0.
|
5
|
+
|
1
6
|
# v0.15.0
|
2
7
|
|
3
8
|
- Table or array concepts are now declared in table form wherever it is an "read" position.
|
@@ -7,7 +12,7 @@
|
|
7
12
|
- Arrays which are known to be in a "write" only form (e.g. method parameters) now are marked readonly. This means you can now pass readonly-only arrays to these methods.
|
8
13
|
- `MapPosition` is now a table or array concept.
|
9
14
|
- Classes with subclasses are now declared with all properties, instead of an intersection of subclasses (reversion)
|
10
|
-
- Subclass specializations
|
15
|
+
- Subclass specializations added for some missing classes
|
11
16
|
|
12
17
|
# v0.14.1
|
13
18
|
|
package/README.md
CHANGED
@@ -73,7 +73,7 @@ The `global` table is just a lua table which can have any shape the mod desires,
|
|
73
73
|
|
74
74
|
Typed-factorio has 100% complete types for the runtime stage. Description-only concepts and some not documented types are filled in manually.
|
75
75
|
|
76
|
-
Here are some details on particular type features
|
76
|
+
Here are some details on particular type features:
|
77
77
|
|
78
78
|
### Lua features
|
79
79
|
|
@@ -96,6 +96,7 @@ The type for a specific variant is prefixed with the variant name, or with "Othe
|
|
96
96
|
### Types with subclasses
|
97
97
|
|
98
98
|
Some classes have attributes that are documented to only work on particular subclasses. For these classes, e.g. `LuaEntity`, there are also these other types that you can _optionally_ use:
|
99
|
+
|
99
100
|
- a "Base" type, e.g. `BaseEntity`, which only contains members usable by all subclasses
|
100
101
|
- individual subclass types, e.g. `CraftingMachineEntity`, which extends the base type with members specific to that subclass
|
101
102
|
|
@@ -111,9 +112,13 @@ You can pass a type parameter to `script.generate_event_name<T>()`, and it will
|
|
111
112
|
|
112
113
|
Classes that have an index operator, a length operator, and have an array-like structure, inherit from `(Readonly)Array`. These are `LuaInventory`, `LuaFluidBox`, `LuaTransportLine`. This allows you to use these classes like arrays, meaning having array methods, and `.length` translating to the lua length operator. However, this also means, like typescript arrays, they are **0-indexed, not 1-indexed**.
|
113
114
|
|
114
|
-
### Table or array types
|
115
|
+
### Table or array types, and "Read" concepts
|
116
|
+
|
117
|
+
For table-or-array types (e.g. Position), there also are types such as `PositionTable` and `PositionArray` that refer to the table or array form.
|
118
|
+
|
119
|
+
Table-or-array types will appear in the Table form when known to be in a read position. This also applies to other concepts/complex types that have table-or-array attributes.
|
115
120
|
|
116
|
-
For
|
121
|
+
For some concepts, there is also a special form for when the concept is used in a "read" position, where all table-or-array types are in Table form. These types are suffixed with `Read`, e.g. `ScriptPositionRead`.
|
117
122
|
|
118
123
|
### LuaGuiElement
|
119
124
|
|
package/generated/classes.d.ts
CHANGED
@@ -1939,7 +1939,7 @@ interface LuaCustomInputPrototype {
|
|
1939
1939
|
help(): string
|
1940
1940
|
}
|
1941
1941
|
|
1942
|
-
type CustomTableIndex<K extends
|
1942
|
+
type CustomTableIndex<K extends string | number, V>
|
1943
1943
|
/**
|
1944
1944
|
* Access an element of this custom table.
|
1945
1945
|
*
|
@@ -2012,7 +2012,9 @@ interface LuaCustomTableMembers {
|
|
2012
2012
|
* global.p = game.players -- This has high potential to make the game unsaveable
|
2013
2013
|
* ```
|
2014
2014
|
*/
|
2015
|
-
type LuaCustomTable<K extends
|
2015
|
+
type LuaCustomTable<K extends string | number, V> = LuaCustomTableMembers &
|
2016
|
+
CustomTableIndex<K, V> &
|
2017
|
+
LuaPairsIterable<[number] extends [K] ? number : K, V>
|
2016
2018
|
|
2017
2019
|
/**
|
2018
2020
|
* Prototype of a damage.
|
package/package.json
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "typed-factorio",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.16.0",
|
4
4
|
"description": "Featureful typescript definitions for the the Factorio modding lua api.",
|
5
5
|
"keywords": [
|
6
|
-
"factorio",
|
6
|
+
"factorio",
|
7
|
+
"types",
|
8
|
+
"typescript-to-lua",
|
9
|
+
"tstl"
|
7
10
|
],
|
8
11
|
"repository": "https://github.com/GlassBricks/typed-factorio",
|
9
12
|
"license": "MIT",
|
@@ -25,7 +28,7 @@
|
|
25
28
|
},
|
26
29
|
"peerDependencies": {
|
27
30
|
"lua-types": "^2.11.0",
|
28
|
-
"typescript-to-lua": "^1.
|
31
|
+
"typescript-to-lua": "^1.3.1"
|
29
32
|
},
|
30
33
|
"devDependencies": {
|
31
34
|
"@types/jest": "^27.0.3",
|
@@ -50,6 +53,6 @@
|
|
50
53
|
"ts-jest": "^27.1.0",
|
51
54
|
"ts-node": "^10.4.0",
|
52
55
|
"typescript": "4.5.2",
|
53
|
-
"typescript-to-lua": "^1.
|
56
|
+
"typescript-to-lua": "^1.3.1"
|
54
57
|
}
|
55
58
|
}
|
package/runtime/pairs.d.ts
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
/** @noSelfInFile */
|
2
2
|
|
3
|
-
/** Iterating with `pairs` will only iterate the array part of a {@link LuaCustomTable}. */
|
4
|
-
declare function pairs<V>(table: LuaCustomTable<number | string, V>): LuaIterable<LuaMultiReturn<[number, V]>>
|
5
|
-
|
6
|
-
declare function pairs<K extends keyof any, V>(table: LuaCustomTable<K, V>): LuaIterable<LuaMultiReturn<[K, V]>>
|
7
|
-
|
8
3
|
/**
|
9
|
-
*
|
4
|
+
* Iterating with `pairs` will only iterate the array part of a {@link LuaCustomTable}.
|
10
5
|
*
|
11
|
-
*
|
6
|
+
* **Note**: you can also iterate on a LuaCustomTable directly without using `pairs`, e.g. `for(const [k, v] of table)`.
|
12
7
|
*/
|
8
|
+
declare function pairs<V>(table: LuaCustomTable<number | string, V>): LuaIterable<LuaMultiReturn<[number, V]>>
|
9
|
+
|
10
|
+
/** **Note**: you can also iterate on a LuaCustomTable directly without using `pairs`, e.g. `for(const [k, v] of table)`. */
|
11
|
+
declare function pairs<K extends number | string, V>(table: LuaCustomTable<K, V>): LuaIterable<LuaMultiReturn<[K, V]>>
|
12
|
+
|
13
|
+
/** @deprecated {@link LuaCustomTable} cannot be iterated with `ipairs`; Use {@link pairs} instead. */
|
13
14
|
declare function ipairs(table: LuaCustomTable<any, any>): never
|