typed-factorio 0.17.1 → 0.18.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/Changelog.md +148 -143
- package/LICENSE +21 -21
- package/README.md +133 -133
- package/data/types.d.ts +13 -13
- package/generated/classes.d.ts +16 -12
- package/generated/concepts.d.ts +2 -2
- package/generator/typescript-internal.d.ts +9 -9
- package/package.json +58 -58
- package/runtime/index.d.ts +10 -10
- package/runtime/librariesAndFunctions.d.ts +123 -123
- package/runtime/mod-gui.d.ts +11 -11
- package/runtime/pairs.d.ts +14 -14
- package/runtime/util.d.ts +116 -116
- package/settings/types.d.ts +120 -120
package/generated/classes.d.ts
CHANGED
@@ -1382,7 +1382,8 @@ interface LuaControl {
|
|
1382
1382
|
*
|
1383
1383
|
* {@link https://lua-api.factorio.com/latest/LuaControl.html#LuaControl.force View documentation}
|
1384
1384
|
*/
|
1385
|
-
force:
|
1385
|
+
get force(): LuaForce
|
1386
|
+
set force(value: ForceIdentification)
|
1386
1387
|
/**
|
1387
1388
|
* The currently selected entity; `nil` if none. Assigning an entity will select it if selectable otherwise clears selection.
|
1388
1389
|
*
|
@@ -1532,7 +1533,8 @@ interface LuaControl {
|
|
1532
1533
|
*
|
1533
1534
|
* {@link https://lua-api.factorio.com/latest/LuaControl.html#LuaControl.cursor_ghost View documentation}
|
1534
1535
|
*/
|
1535
|
-
cursor_ghost:
|
1536
|
+
get cursor_ghost(): LuaItemPrototype
|
1537
|
+
set cursor_ghost(value: ItemPrototypeIdentification)
|
1536
1538
|
/**
|
1537
1539
|
* `true` if the player is in a vehicle. Writing to this attribute puts the player in or out of a vehicle.
|
1538
1540
|
*
|
@@ -2316,7 +2318,7 @@ interface LuaEntity extends LuaControl {
|
|
2316
2318
|
* @param flag - The flag to test. See {@link EntityPrototypeFlags} for a list of flags.
|
2317
2319
|
* @returns `true` if this entity has the given flag set.
|
2318
2320
|
*/
|
2319
|
-
has_flag(flag:
|
2321
|
+
has_flag(flag: keyof EntityPrototypeFlags): boolean
|
2320
2322
|
/**
|
2321
2323
|
* Same as {@link LuaEntity.has_flag LuaEntity::has_flag}, but targets the inner entity on a entity ghost.
|
2322
2324
|
*
|
@@ -2327,7 +2329,7 @@ interface LuaEntity extends LuaControl {
|
|
2327
2329
|
* @param flag - The flag to test. See {@link EntityPrototypeFlags} for a list of flags.
|
2328
2330
|
* @returns `true` if the entity has the given flag set.
|
2329
2331
|
*/
|
2330
|
-
ghost_has_flag(flag:
|
2332
|
+
ghost_has_flag(flag: keyof EntityPrototypeFlags): boolean
|
2331
2333
|
/**
|
2332
2334
|
* Offer a thing on the market.
|
2333
2335
|
*
|
@@ -4410,7 +4412,8 @@ interface LuaEntity extends LuaControl {
|
|
4410
4412
|
*
|
4411
4413
|
* {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.render_to_forces View documentation}
|
4412
4414
|
*/
|
4413
|
-
render_to_forces:
|
4415
|
+
get render_to_forces(): LuaForce[] | undefined
|
4416
|
+
set render_to_forces(value: ForceIdentification[] | undefined)
|
4414
4417
|
/**
|
4415
4418
|
* The rail target of this pump or `nil`.
|
4416
4419
|
*
|
@@ -4740,7 +4743,7 @@ interface BaseEntity extends LuaControl {
|
|
4740
4743
|
* @param flag - The flag to test. See {@link EntityPrototypeFlags} for a list of flags.
|
4741
4744
|
* @returns `true` if this entity has the given flag set.
|
4742
4745
|
*/
|
4743
|
-
has_flag(flag:
|
4746
|
+
has_flag(flag: keyof EntityPrototypeFlags): boolean
|
4744
4747
|
/**
|
4745
4748
|
* Connect two devices with a circuit wire or copper cable. Depending on which type of connection should be made,
|
4746
4749
|
* there are different procedures:
|
@@ -5800,7 +5803,8 @@ interface BaseEntity extends LuaControl {
|
|
5800
5803
|
*
|
5801
5804
|
* {@link https://lua-api.factorio.com/latest/LuaEntity.html#LuaEntity.render_to_forces View documentation}
|
5802
5805
|
*/
|
5803
|
-
render_to_forces:
|
5806
|
+
get render_to_forces(): LuaForce[] | undefined
|
5807
|
+
set render_to_forces(value: ForceIdentification[] | undefined)
|
5804
5808
|
/**
|
5805
5809
|
* Returns the id of the electric network that this entity is connected to or `nil`.
|
5806
5810
|
*
|
@@ -6016,7 +6020,7 @@ interface EntityGhostEntity extends BaseEntity {
|
|
6016
6020
|
* @param flag - The flag to test. See {@link EntityPrototypeFlags} for a list of flags.
|
6017
6021
|
* @returns `true` if the entity has the given flag set.
|
6018
6022
|
*/
|
6019
|
-
ghost_has_flag(flag:
|
6023
|
+
ghost_has_flag(flag: keyof EntityPrototypeFlags): boolean
|
6020
6024
|
/**
|
6021
6025
|
* The unit number of the entity contained in this ghost or nil if the entity doesn't have one.
|
6022
6026
|
*
|
@@ -7317,7 +7321,7 @@ interface LuaEntityPrototype {
|
|
7317
7321
|
* @param flag - The flag to test. See {@link EntityPrototypeFlags} for a list of flags.
|
7318
7322
|
* @returns `true` if this prototype has the given flag set.
|
7319
7323
|
*/
|
7320
|
-
has_flag(flag:
|
7324
|
+
has_flag(flag: keyof EntityPrototypeFlags): boolean
|
7321
7325
|
/**
|
7322
7326
|
* Gets the base size of the given inventory on this entity or `nil` if the given inventory doesn't exist.
|
7323
7327
|
*
|
@@ -8657,7 +8661,7 @@ interface BaseEntityPrototype {
|
|
8657
8661
|
* @param flag - The flag to test. See {@link EntityPrototypeFlags} for a list of flags.
|
8658
8662
|
* @returns `true` if this prototype has the given flag set.
|
8659
8663
|
*/
|
8660
|
-
has_flag(flag:
|
8664
|
+
has_flag(flag: keyof EntityPrototypeFlags): boolean
|
8661
8665
|
/**
|
8662
8666
|
* Gets the base size of the given inventory on this entity or `nil` if the given inventory doesn't exist.
|
8663
8667
|
*
|
@@ -15568,7 +15572,7 @@ interface LuaItemPrototype {
|
|
15568
15572
|
* @param flag - The flag to test. See {@link ItemPrototypeFlags} for a list of flags.
|
15569
15573
|
* @returns `true` if this prototype has the given flag set.
|
15570
15574
|
*/
|
15571
|
-
has_flag(flag:
|
15575
|
+
has_flag(flag: keyof ItemPrototypeFlags): boolean
|
15572
15576
|
/**
|
15573
15577
|
* Type of this ammo prototype or `nil` if this is not an ammo prototype.
|
15574
15578
|
*
|
@@ -16107,7 +16111,7 @@ interface BaseItemPrototype {
|
|
16107
16111
|
* @param flag - The flag to test. See {@link ItemPrototypeFlags} for a list of flags.
|
16108
16112
|
* @returns `true` if this prototype has the given flag set.
|
16109
16113
|
*/
|
16110
|
-
has_flag(flag:
|
16114
|
+
has_flag(flag: keyof ItemPrototypeFlags): boolean
|
16111
16115
|
/**
|
16112
16116
|
* Type of this ammo prototype or `nil` if this is not an ammo prototype.
|
16113
16117
|
*
|
package/generated/concepts.d.ts
CHANGED
@@ -3227,7 +3227,7 @@ interface TypeItemPrototypeFilter extends BaseItemPrototypeFilter {
|
|
3227
3227
|
interface FlagItemPrototypeFilter extends BaseItemPrototypeFilter {
|
3228
3228
|
readonly filter: "flag"
|
3229
3229
|
/** One of the values in {@link ItemPrototypeFlags}. */
|
3230
|
-
readonly flag:
|
3230
|
+
readonly flag: keyof ItemPrototypeFlags
|
3231
3231
|
}
|
3232
3232
|
|
3233
3233
|
interface SubgroupItemPrototypeFilter extends BaseItemPrototypeFilter {
|
@@ -4079,7 +4079,7 @@ interface CollisionMaskEntityPrototypeFilter extends BaseEntityPrototypeFilter {
|
|
4079
4079
|
interface FlagEntityPrototypeFilter extends BaseEntityPrototypeFilter {
|
4080
4080
|
readonly filter: "flag"
|
4081
4081
|
/** One of the values in {@link EntityPrototypeFlags}. */
|
4082
|
-
readonly flag:
|
4082
|
+
readonly flag: keyof EntityPrototypeFlags
|
4083
4083
|
}
|
4084
4084
|
|
4085
4085
|
interface BuildBaseEvolutionRequirementEntityPrototypeFilter extends BaseEntityPrototypeFilter {
|
@@ -1,9 +1,9 @@
|
|
1
|
-
declare module "typescript" {
|
2
|
-
interface JSDocContainer {
|
3
|
-
jsDoc?: JSDoc[]
|
4
|
-
}
|
5
|
-
interface Node {
|
6
|
-
emitNode?: unknown
|
7
|
-
}
|
8
|
-
}
|
9
|
-
export {}
|
1
|
+
declare module "typescript" {
|
2
|
+
interface JSDocContainer {
|
3
|
+
jsDoc?: JSDoc[]
|
4
|
+
}
|
5
|
+
interface Node {
|
6
|
+
emitNode?: unknown
|
7
|
+
}
|
8
|
+
}
|
9
|
+
export {}
|
package/package.json
CHANGED
@@ -1,58 +1,58 @@
|
|
1
|
-
{
|
2
|
-
"name": "typed-factorio",
|
3
|
-
"version": "0.
|
4
|
-
"description": "Featureful typescript definitions for the the Factorio modding lua api.",
|
5
|
-
"keywords": [
|
6
|
-
"factorio",
|
7
|
-
"types",
|
8
|
-
"typescript-to-lua",
|
9
|
-
"tstl"
|
10
|
-
],
|
11
|
-
"repository": "https://github.com/GlassBricks/typed-factorio",
|
12
|
-
"license": "MIT",
|
13
|
-
"files": [
|
14
|
-
"**/*.d.ts"
|
15
|
-
],
|
16
|
-
"homepage": "https://github.com/GlassBricks/typed-factorio#readme",
|
17
|
-
"scripts": {
|
18
|
-
"gen": "ts-node -P generator/tsconfig.json generator/main.ts",
|
19
|
-
"generate": "yarn run gen --in ./generatorSrc --out ./generated --warn-as-error",
|
20
|
-
"generate:dev": "yarn run gen --in ./generatorSrc --out ./generated --no-format",
|
21
|
-
"clean": "rimraf generated",
|
22
|
-
"pretest": "yarn run generate",
|
23
|
-
"test": "jest",
|
24
|
-
"lint": "eslint .",
|
25
|
-
"check": "yarn run lint && yarn run test",
|
26
|
-
"prepublishOnly": "yarn run check",
|
27
|
-
"download-latest-runtime-api": "ts-node ./scripts/downloadLatest.ts"
|
28
|
-
},
|
29
|
-
"peerDependencies": {
|
30
|
-
"lua-types": "^2.11.0",
|
31
|
-
"typescript-to-lua": "^1.3.1"
|
32
|
-
},
|
33
|
-
"devDependencies": {
|
34
|
-
"@types/jest": "^27.0.3",
|
35
|
-
"@types/node": "^16.11.12",
|
36
|
-
"@types/prettier": "^2.4.2",
|
37
|
-
"@typescript-eslint/eslint-plugin": "^5.6.0",
|
38
|
-
"@typescript-eslint/parser": "^5.6.0",
|
39
|
-
"chalk": "^3.0.0",
|
40
|
-
"commander": "^8.3.0",
|
41
|
-
"eslint": "^8.4.1",
|
42
|
-
"eslint-config-prettier": "^8.3.0",
|
43
|
-
"eslint-config-standard": "^16.0.3",
|
44
|
-
"eslint-import-resolver-typescript": "^2.5.0",
|
45
|
-
"eslint-plugin-import": "^2.25.3",
|
46
|
-
"eslint-plugin-node": "^11.1.0",
|
47
|
-
"eslint-plugin-prettier": "^4.0.0",
|
48
|
-
"eslint-plugin-promise": "^5.2.0",
|
49
|
-
"jest": "^27.4.3",
|
50
|
-
"lua-types": "^2.11.0",
|
51
|
-
"prettier": "^2.5.1",
|
52
|
-
"prettier-plugin-jsdoc": "^0.3.30",
|
53
|
-
"ts-jest": "^27.1.0",
|
54
|
-
"ts-node": "^10.4.0",
|
55
|
-
"typescript": "4.5.2",
|
56
|
-
"typescript-to-lua": "^1.3.1"
|
57
|
-
}
|
58
|
-
}
|
1
|
+
{
|
2
|
+
"name": "typed-factorio",
|
3
|
+
"version": "0.18.0",
|
4
|
+
"description": "Featureful typescript definitions for the the Factorio modding lua api.",
|
5
|
+
"keywords": [
|
6
|
+
"factorio",
|
7
|
+
"types",
|
8
|
+
"typescript-to-lua",
|
9
|
+
"tstl"
|
10
|
+
],
|
11
|
+
"repository": "https://github.com/GlassBricks/typed-factorio",
|
12
|
+
"license": "MIT",
|
13
|
+
"files": [
|
14
|
+
"**/*.d.ts"
|
15
|
+
],
|
16
|
+
"homepage": "https://github.com/GlassBricks/typed-factorio#readme",
|
17
|
+
"scripts": {
|
18
|
+
"gen": "ts-node -P generator/tsconfig.json generator/main.ts",
|
19
|
+
"generate": "yarn run gen --in ./generatorSrc --out ./generated --warn-as-error",
|
20
|
+
"generate:dev": "yarn run gen --in ./generatorSrc --out ./generated --no-format",
|
21
|
+
"clean": "rimraf generated",
|
22
|
+
"pretest": "yarn run generate",
|
23
|
+
"test": "jest",
|
24
|
+
"lint": "eslint .",
|
25
|
+
"check": "yarn run lint && yarn run test",
|
26
|
+
"prepublishOnly": "yarn run check",
|
27
|
+
"download-latest-runtime-api": "ts-node ./scripts/downloadLatest.ts"
|
28
|
+
},
|
29
|
+
"peerDependencies": {
|
30
|
+
"lua-types": "^2.11.0",
|
31
|
+
"typescript-to-lua": "^1.3.1"
|
32
|
+
},
|
33
|
+
"devDependencies": {
|
34
|
+
"@types/jest": "^27.0.3",
|
35
|
+
"@types/node": "^16.11.12",
|
36
|
+
"@types/prettier": "^2.4.2",
|
37
|
+
"@typescript-eslint/eslint-plugin": "^5.6.0",
|
38
|
+
"@typescript-eslint/parser": "^5.6.0",
|
39
|
+
"chalk": "^3.0.0",
|
40
|
+
"commander": "^8.3.0",
|
41
|
+
"eslint": "^8.4.1",
|
42
|
+
"eslint-config-prettier": "^8.3.0",
|
43
|
+
"eslint-config-standard": "^16.0.3",
|
44
|
+
"eslint-import-resolver-typescript": "^2.5.0",
|
45
|
+
"eslint-plugin-import": "^2.25.3",
|
46
|
+
"eslint-plugin-node": "^11.1.0",
|
47
|
+
"eslint-plugin-prettier": "^4.0.0",
|
48
|
+
"eslint-plugin-promise": "^5.2.0",
|
49
|
+
"jest": "^27.4.3",
|
50
|
+
"lua-types": "^2.11.0",
|
51
|
+
"prettier": "^2.5.1",
|
52
|
+
"prettier-plugin-jsdoc": "^0.3.30",
|
53
|
+
"ts-jest": "^27.1.0",
|
54
|
+
"ts-node": "^10.4.0",
|
55
|
+
"typescript": "4.5.2",
|
56
|
+
"typescript-to-lua": "^1.3.1"
|
57
|
+
}
|
58
|
+
}
|
package/runtime/index.d.ts
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
/// <reference types="lua-types/5.2" />
|
2
|
-
|
3
|
-
/// <reference path="../generated/index.d.ts" />
|
4
|
-
|
5
|
-
/// <reference path="librariesAndFunctions.d.ts" />
|
6
|
-
/// <reference path="pairs.d.ts" />
|
7
|
-
|
8
|
-
// lualib
|
9
|
-
/// <reference path="util.d.ts" />
|
10
|
-
/// <reference path="mod-gui.d.ts" />
|
1
|
+
/// <reference types="lua-types/5.2" />
|
2
|
+
|
3
|
+
/// <reference path="../generated/index.d.ts" />
|
4
|
+
|
5
|
+
/// <reference path="librariesAndFunctions.d.ts" />
|
6
|
+
/// <reference path="pairs.d.ts" />
|
7
|
+
|
8
|
+
// lualib
|
9
|
+
/// <reference path="util.d.ts" />
|
10
|
+
/// <reference path="mod-gui.d.ts" />
|
@@ -1,123 +1,123 @@
|
|
1
|
-
// from https://lua-api.factorio.com/latest/Libraries.html
|
2
|
-
// last updated for 1.1.35, 1.1.36, 1.1.37
|
3
|
-
|
4
|
-
/** @noSelfInFile */
|
5
|
-
|
6
|
-
/** @noSelf */
|
7
|
-
interface SerpentOptions {
|
8
|
-
/** Indentation; triggers long multi-line output. */
|
9
|
-
indent: string
|
10
|
-
/** Provide stringified value in a comment (up to maxlevel of depth). */
|
11
|
-
comment: boolean | number
|
12
|
-
/** Sort keys. */
|
13
|
-
sortkeys: boolean | ((this: void, keys: any[], table: any) => void)
|
14
|
-
/** Force sparse encoding (no nil filling based on #t). */
|
15
|
-
sparse: boolean
|
16
|
-
/** Remove spaces. */
|
17
|
-
compact: boolean
|
18
|
-
/** Raise fatal error on non-serializable values. */
|
19
|
-
fatal: boolean
|
20
|
-
/** Disable bytecode serialization for easy comparison. */
|
21
|
-
nocode: boolean
|
22
|
-
/** Disable checking numbers against undefined and huge values. */
|
23
|
-
nohuge: boolean
|
24
|
-
/** Specify max level up to which to expand nested tables. */
|
25
|
-
maxlevel: number
|
26
|
-
/** Specify max number of elements in a table. */
|
27
|
-
maxnum: number
|
28
|
-
/** Specify max length for all table elements. */
|
29
|
-
maxlength: number
|
30
|
-
/**
|
31
|
-
* Use __tostring metamethod when serializing tables (v0.29); set to false to disable and serialize the table as is,
|
32
|
-
* even when __tostring is present.
|
33
|
-
*/
|
34
|
-
metatostring: boolean
|
35
|
-
/**
|
36
|
-
* Specify format for numeric values as shortest possible round-trippable double (v0.30). Use "%.16g" for better
|
37
|
-
* readability and "%.17g" (the default value) to preserve floating point precision.
|
38
|
-
*/
|
39
|
-
numformat: string
|
40
|
-
/** Allows to specify a list of values to ignore (as keys). */
|
41
|
-
valignore: string[]
|
42
|
-
/** Allows to specify the list of keys to be serialized. Any keys not in this list are not included in final output (as keys). */
|
43
|
-
keyallow: string[]
|
44
|
-
/** Allows to specity the list of keys to ignore in serialization. */
|
45
|
-
keyignore: string[]
|
46
|
-
/** Allows to specify a list of value types to ignore (as keys). */
|
47
|
-
valtypeignore: string[]
|
48
|
-
/** Provide custom output for tables. */
|
49
|
-
custom(opts: {
|
50
|
-
/** The name of the current element with '=' or an empty string in case of array index, */
|
51
|
-
tag: string
|
52
|
-
/** An opening table bracket { and associated indentation and newline (if any), */
|
53
|
-
head: string
|
54
|
-
/** Table elements concatenated into a string using commas and indentation/newlines (if any), */
|
55
|
-
body: string
|
56
|
-
/** A closing table bracket } and associated indentation and newline (if any), and */
|
57
|
-
tail: string
|
58
|
-
/** The current level. */
|
59
|
-
level: number
|
60
|
-
}): string
|
61
|
-
/** Name; triggers full serialization with self-ref section. */
|
62
|
-
name: string
|
63
|
-
|
64
|
-
refcomment: boolean | number
|
65
|
-
tablecomment: boolean | number
|
66
|
-
}
|
67
|
-
|
68
|
-
/**
|
69
|
-
* Factorio provides the {@link https://github.com/pkulchenko/serpent serpent library} as a global variable `serpent` for
|
70
|
-
* all mods to use. It allows for easy debugging of tables, because serpent makes it trivial to print them, for example
|
71
|
-
* by using `serpent.block()`. However, serpent cannot pretty-print LuaObjects such as LuaEntity. The serpent library
|
72
|
-
* was modified to improve determinism, e.g. comments are turned off by default to avoid returning table addresses.
|
73
|
-
* Furthermore, two options were added: `refcomment` (true/false/maxlevel) and `tablecomment` (true/false/maxlevel),
|
74
|
-
* which allow to separately control the self-reference and table value output of the `comment` option.
|
75
|
-
*/
|
76
|
-
declare namespace serpent {
|
77
|
-
/** Full serialization; sets name, compact and sparse options; */
|
78
|
-
function dump(tbl: unknown, options?: Partial<SerpentOptions>): string
|
79
|
-
|
80
|
-
/** Single line pretty printing, no self-ref section; sets sortkeys and comment options; */
|
81
|
-
function line(tbl: unknown, options?: Partial<SerpentOptions>): string
|
82
|
-
|
83
|
-
/** Multi-line indented pretty printing, no self-ref section; sets indent, sortkeys, and comment options. */
|
84
|
-
function block(tbl: unknown, options?: Partial<SerpentOptions>): string
|
85
|
-
|
86
|
-
/**
|
87
|
-
* For loading serialized fragments, serpent also provides `load` function that adds safety checks and reports an
|
88
|
-
* error if there is any executable code in the fragment.
|
89
|
-
*/
|
90
|
-
function load<T>(str: string, options?: { safe?: boolean }): LuaMultiReturn<[true, T] | [false, string]>
|
91
|
-
}
|
92
|
-
|
93
|
-
/**
|
94
|
-
* This function allows to log {@link LocalisedString} to the Factorio
|
95
|
-
* {@link https://wiki.factorio.com/Log_file log file}. This, in combination with serpent, makes debugging in the data
|
96
|
-
* stage easier, because it allows to simply inspect entire prototype tables. For example, this allows to see all
|
97
|
-
* properties of the sulfur item prototype: `log(serpent.block(data.raw["item"]["sulfur"]))`
|
98
|
-
*/
|
99
|
-
declare function log(ls: LocalisedString): void
|
100
|
-
|
101
|
-
/**
|
102
|
-
* This function allows printing {@link LocalisedString}s to stdout without polluting the logfile. This is primarily
|
103
|
-
* useful for communicating with external tools that launch Factorio as a child process.
|
104
|
-
*/
|
105
|
-
declare function localised_print(ls: LocalisedString): void
|
106
|
-
|
107
|
-
/**
|
108
|
-
* Factorio provides the function `table_size()` as a simple way to find the size of tables with non-continuous keys,
|
109
|
-
* because the standard `#` does not work correctly for these. The function is a C++-side implementation of the
|
110
|
-
* following Lua code, thus it is faster than using this code in Lua:
|
111
|
-
*
|
112
|
-
* local function size(t)
|
113
|
-
* local count = 0
|
114
|
-
* for k,v in pairs(t) do
|
115
|
-
* count = count + 1
|
116
|
-
* end
|
117
|
-
* return count
|
118
|
-
* end
|
119
|
-
*
|
120
|
-
* Note that `table_size()` does not work correctly for {@link LuaCustomTable}s, their size has to be determined with
|
121
|
-
* {@link LuaCustomTable.length LuaCustomTable::operator #} instead.
|
122
|
-
*/
|
123
|
-
declare function table_size(tbl: table): number
|
1
|
+
// from https://lua-api.factorio.com/latest/Libraries.html
|
2
|
+
// last updated for 1.1.35, 1.1.36, 1.1.37
|
3
|
+
|
4
|
+
/** @noSelfInFile */
|
5
|
+
|
6
|
+
/** @noSelf */
|
7
|
+
interface SerpentOptions {
|
8
|
+
/** Indentation; triggers long multi-line output. */
|
9
|
+
indent: string
|
10
|
+
/** Provide stringified value in a comment (up to maxlevel of depth). */
|
11
|
+
comment: boolean | number
|
12
|
+
/** Sort keys. */
|
13
|
+
sortkeys: boolean | ((this: void, keys: any[], table: any) => void)
|
14
|
+
/** Force sparse encoding (no nil filling based on #t). */
|
15
|
+
sparse: boolean
|
16
|
+
/** Remove spaces. */
|
17
|
+
compact: boolean
|
18
|
+
/** Raise fatal error on non-serializable values. */
|
19
|
+
fatal: boolean
|
20
|
+
/** Disable bytecode serialization for easy comparison. */
|
21
|
+
nocode: boolean
|
22
|
+
/** Disable checking numbers against undefined and huge values. */
|
23
|
+
nohuge: boolean
|
24
|
+
/** Specify max level up to which to expand nested tables. */
|
25
|
+
maxlevel: number
|
26
|
+
/** Specify max number of elements in a table. */
|
27
|
+
maxnum: number
|
28
|
+
/** Specify max length for all table elements. */
|
29
|
+
maxlength: number
|
30
|
+
/**
|
31
|
+
* Use __tostring metamethod when serializing tables (v0.29); set to false to disable and serialize the table as is,
|
32
|
+
* even when __tostring is present.
|
33
|
+
*/
|
34
|
+
metatostring: boolean
|
35
|
+
/**
|
36
|
+
* Specify format for numeric values as shortest possible round-trippable double (v0.30). Use "%.16g" for better
|
37
|
+
* readability and "%.17g" (the default value) to preserve floating point precision.
|
38
|
+
*/
|
39
|
+
numformat: string
|
40
|
+
/** Allows to specify a list of values to ignore (as keys). */
|
41
|
+
valignore: string[]
|
42
|
+
/** Allows to specify the list of keys to be serialized. Any keys not in this list are not included in final output (as keys). */
|
43
|
+
keyallow: string[]
|
44
|
+
/** Allows to specity the list of keys to ignore in serialization. */
|
45
|
+
keyignore: string[]
|
46
|
+
/** Allows to specify a list of value types to ignore (as keys). */
|
47
|
+
valtypeignore: string[]
|
48
|
+
/** Provide custom output for tables. */
|
49
|
+
custom(opts: {
|
50
|
+
/** The name of the current element with '=' or an empty string in case of array index, */
|
51
|
+
tag: string
|
52
|
+
/** An opening table bracket { and associated indentation and newline (if any), */
|
53
|
+
head: string
|
54
|
+
/** Table elements concatenated into a string using commas and indentation/newlines (if any), */
|
55
|
+
body: string
|
56
|
+
/** A closing table bracket } and associated indentation and newline (if any), and */
|
57
|
+
tail: string
|
58
|
+
/** The current level. */
|
59
|
+
level: number
|
60
|
+
}): string
|
61
|
+
/** Name; triggers full serialization with self-ref section. */
|
62
|
+
name: string
|
63
|
+
|
64
|
+
refcomment: boolean | number
|
65
|
+
tablecomment: boolean | number
|
66
|
+
}
|
67
|
+
|
68
|
+
/**
|
69
|
+
* Factorio provides the {@link https://github.com/pkulchenko/serpent serpent library} as a global variable `serpent` for
|
70
|
+
* all mods to use. It allows for easy debugging of tables, because serpent makes it trivial to print them, for example
|
71
|
+
* by using `serpent.block()`. However, serpent cannot pretty-print LuaObjects such as LuaEntity. The serpent library
|
72
|
+
* was modified to improve determinism, e.g. comments are turned off by default to avoid returning table addresses.
|
73
|
+
* Furthermore, two options were added: `refcomment` (true/false/maxlevel) and `tablecomment` (true/false/maxlevel),
|
74
|
+
* which allow to separately control the self-reference and table value output of the `comment` option.
|
75
|
+
*/
|
76
|
+
declare namespace serpent {
|
77
|
+
/** Full serialization; sets name, compact and sparse options; */
|
78
|
+
function dump(tbl: unknown, options?: Partial<SerpentOptions>): string
|
79
|
+
|
80
|
+
/** Single line pretty printing, no self-ref section; sets sortkeys and comment options; */
|
81
|
+
function line(tbl: unknown, options?: Partial<SerpentOptions>): string
|
82
|
+
|
83
|
+
/** Multi-line indented pretty printing, no self-ref section; sets indent, sortkeys, and comment options. */
|
84
|
+
function block(tbl: unknown, options?: Partial<SerpentOptions>): string
|
85
|
+
|
86
|
+
/**
|
87
|
+
* For loading serialized fragments, serpent also provides `load` function that adds safety checks and reports an
|
88
|
+
* error if there is any executable code in the fragment.
|
89
|
+
*/
|
90
|
+
function load<T>(str: string, options?: { safe?: boolean }): LuaMultiReturn<[true, T] | [false, string]>
|
91
|
+
}
|
92
|
+
|
93
|
+
/**
|
94
|
+
* This function allows to log {@link LocalisedString} to the Factorio
|
95
|
+
* {@link https://wiki.factorio.com/Log_file log file}. This, in combination with serpent, makes debugging in the data
|
96
|
+
* stage easier, because it allows to simply inspect entire prototype tables. For example, this allows to see all
|
97
|
+
* properties of the sulfur item prototype: `log(serpent.block(data.raw["item"]["sulfur"]))`
|
98
|
+
*/
|
99
|
+
declare function log(ls: LocalisedString): void
|
100
|
+
|
101
|
+
/**
|
102
|
+
* This function allows printing {@link LocalisedString}s to stdout without polluting the logfile. This is primarily
|
103
|
+
* useful for communicating with external tools that launch Factorio as a child process.
|
104
|
+
*/
|
105
|
+
declare function localised_print(ls: LocalisedString): void
|
106
|
+
|
107
|
+
/**
|
108
|
+
* Factorio provides the function `table_size()` as a simple way to find the size of tables with non-continuous keys,
|
109
|
+
* because the standard `#` does not work correctly for these. The function is a C++-side implementation of the
|
110
|
+
* following Lua code, thus it is faster than using this code in Lua:
|
111
|
+
*
|
112
|
+
* local function size(t)
|
113
|
+
* local count = 0
|
114
|
+
* for k,v in pairs(t) do
|
115
|
+
* count = count + 1
|
116
|
+
* end
|
117
|
+
* return count
|
118
|
+
* end
|
119
|
+
*
|
120
|
+
* Note that `table_size()` does not work correctly for {@link LuaCustomTable}s, their size has to be determined with
|
121
|
+
* {@link LuaCustomTable.length LuaCustomTable::operator #} instead.
|
122
|
+
*/
|
123
|
+
declare function table_size(tbl: table): number
|
package/runtime/mod-gui.d.ts
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
/** @noSelfInFile */
|
2
|
-
|
3
|
-
/** @noResolution */
|
4
|
-
declare module "mod-gui" {
|
5
|
-
const button_style: string
|
6
|
-
const frame_style: string
|
7
|
-
|
8
|
-
function get_button_flow(player: LuaPlayer): FrameGuiElement
|
9
|
-
|
10
|
-
function get_frame_flow(player: LuaPlayer): FlowGuiElement
|
11
|
-
}
|
1
|
+
/** @noSelfInFile */
|
2
|
+
|
3
|
+
/** @noResolution */
|
4
|
+
declare module "mod-gui" {
|
5
|
+
const button_style: string
|
6
|
+
const frame_style: string
|
7
|
+
|
8
|
+
function get_button_flow(player: LuaPlayer): FrameGuiElement
|
9
|
+
|
10
|
+
function get_frame_flow(player: LuaPlayer): FlowGuiElement
|
11
|
+
}
|
package/runtime/pairs.d.ts
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
/** @noSelfInFile */
|
2
|
-
|
3
|
-
/**
|
4
|
-
* Iterating with `pairs` will only iterate the array part of a {@link LuaCustomTable}.
|
5
|
-
*
|
6
|
-
* **Note**: you can also iterate on a LuaCustomTable directly without using `pairs`, e.g. `for(const [k, v] of table)`.
|
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. */
|
14
|
-
declare function ipairs(table: LuaCustomTable<any, any>): never
|
1
|
+
/** @noSelfInFile */
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Iterating with `pairs` will only iterate the array part of a {@link LuaCustomTable}.
|
5
|
+
*
|
6
|
+
* **Note**: you can also iterate on a LuaCustomTable directly without using `pairs`, e.g. `for(const [k, v] of table)`.
|
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. */
|
14
|
+
declare function ipairs(table: LuaCustomTable<any, any>): never
|