@defold-typescript/types 0.50.1 → 0.52.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 (166) hide show
  1. package/api-availability.json +4 -58
  2. package/api-signatures.json +1128 -1552
  3. package/api-targets.json +15 -5
  4. package/examples/translations.json +19 -71
  5. package/fixtures/messages_doc.json +20 -39
  6. package/generated/b2d_world.d.ts +10 -10
  7. package/generated/buffer.d.ts +9 -9
  8. package/generated/builtin-messages.d.ts +16 -14
  9. package/generated/bullet3d_collision_object.d.ts +1 -1
  10. package/generated/bullet3d_constraint.d.ts +109 -7
  11. package/generated/bullet3d_shape.d.ts +2 -2
  12. package/generated/collectionfactory.d.ts +1 -1
  13. package/generated/collectionproxy.d.ts +2 -2
  14. package/generated/factory.d.ts +4 -2
  15. package/generated/go.d.ts +114 -220
  16. package/generated/graphics.d.ts +5 -0
  17. package/generated/gui.d.ts +148 -371
  18. package/generated/http.d.ts +4 -2
  19. package/generated/image.d.ts +56 -4
  20. package/generated/kinds/gui-script.d.ts +3 -0
  21. package/generated/kinds/render-script.d.ts +15 -15
  22. package/generated/kinds/script.d.ts +1 -0
  23. package/generated/liveupdate.d.ts +5 -1
  24. package/generated/material.d.ts +3 -3
  25. package/generated/model.d.ts +4 -5
  26. package/generated/particlefx.d.ts +20 -1
  27. package/generated/physics.d.ts +48 -4
  28. package/generated/render-script-modules/b2d.d.ts +711 -0
  29. package/generated/render-script-modules/bullet3d.d.ts +73 -0
  30. package/generated/render-script-modules/collectionfactory.d.ts +25 -0
  31. package/generated/render-script-modules/collectionproxy.d.ts +39 -0
  32. package/generated/render-script-modules/factory.d.ts +25 -0
  33. package/generated/render-script-modules/go.d.ts +436 -0
  34. package/generated/render-script-modules/label.d.ts +105 -0
  35. package/generated/render-script-modules/model.d.ts +89 -0
  36. package/generated/render-script-modules/particlefx.d.ts +59 -0
  37. package/generated/render-script-modules/physics.d.ts +333 -0
  38. package/generated/render-script-modules/resource.d.ts +1233 -0
  39. package/generated/render-script-modules/sound.d.ts +227 -0
  40. package/generated/render-script-modules/sprite.d.ts +68 -0
  41. package/generated/render-script-modules/tilemap.d.ts +43 -0
  42. package/generated/render.d.ts +175 -21
  43. package/generated/resource.d.ts +31 -10
  44. package/generated/sprite.d.ts +49 -1
  45. package/generated/sys.d.ts +78 -10
  46. package/generated/tilemap.d.ts +4 -4
  47. package/generated/versions/defold-1.12.4/buffer.d.ts +8 -8
  48. package/generated/versions/defold-1.12.4/collectionfactory.d.ts +1 -1
  49. package/generated/versions/defold-1.12.4/collectionproxy.d.ts +1 -1
  50. package/generated/versions/defold-1.12.4/factory.d.ts +4 -2
  51. package/generated/versions/defold-1.12.4/go.d.ts +115 -343
  52. package/generated/versions/defold-1.12.4/graphics.d.ts +1 -0
  53. package/generated/versions/defold-1.12.4/gui.d.ts +151 -513
  54. package/generated/versions/defold-1.12.4/http.d.ts +4 -2
  55. package/generated/versions/defold-1.12.4/image.d.ts +83 -3
  56. package/generated/versions/defold-1.12.4/index.d.ts +2 -0
  57. package/generated/versions/defold-1.12.4/liveupdate.d.ts +4 -0
  58. package/generated/versions/defold-1.12.4/model.d.ts +4 -5
  59. package/generated/versions/defold-1.12.4/particlefx.d.ts +22 -1
  60. package/generated/versions/defold-1.12.4/physics.d.ts +47 -3
  61. package/generated/versions/defold-1.12.4/render.d.ts +119 -15
  62. package/generated/versions/defold-1.12.4/resource.d.ts +43 -10
  63. package/generated/versions/defold-1.12.4/sprite.d.ts +58 -1
  64. package/generated/versions/defold-1.12.4/sys.d.ts +101 -6
  65. package/generated/versions/defold-1.12.4/tilemap.d.ts +4 -4
  66. package/generated/versions/defold-1.12.4/vmath.d.ts +0 -24
  67. package/generated/versions/defold-1.13.0/buffer.d.ts +8 -8
  68. package/generated/versions/defold-1.13.0/collectionfactory.d.ts +1 -1
  69. package/generated/versions/defold-1.13.0/collectionproxy.d.ts +1 -1
  70. package/generated/versions/defold-1.13.0/factory.d.ts +4 -2
  71. package/generated/versions/defold-1.13.0/go.d.ts +115 -370
  72. package/generated/versions/defold-1.13.0/graphics.d.ts +1 -0
  73. package/generated/versions/defold-1.13.0/gui.d.ts +151 -513
  74. package/generated/versions/defold-1.13.0/http.d.ts +4 -2
  75. package/generated/versions/defold-1.13.0/image.d.ts +83 -3
  76. package/generated/versions/defold-1.13.0/index.d.ts +2 -0
  77. package/generated/versions/defold-1.13.0/liveupdate.d.ts +4 -0
  78. package/generated/versions/defold-1.13.0/material.d.ts +3 -1
  79. package/generated/versions/defold-1.13.0/model.d.ts +4 -5
  80. package/generated/versions/defold-1.13.0/particlefx.d.ts +22 -1
  81. package/generated/versions/defold-1.13.0/physics.d.ts +47 -3
  82. package/generated/versions/defold-1.13.0/render.d.ts +182 -16
  83. package/generated/versions/defold-1.13.0/resource.d.ts +43 -10
  84. package/generated/versions/defold-1.13.0/sprite.d.ts +58 -1
  85. package/generated/versions/defold-1.13.0/sys.d.ts +101 -6
  86. package/generated/versions/defold-1.13.0/tilemap.d.ts +4 -4
  87. package/generated/versions/defold-1.13.0/vmath.d.ts +0 -24
  88. package/generated/versions/defold-1.13.1/buffer.d.ts +8 -8
  89. package/generated/versions/defold-1.13.1/collectionfactory.d.ts +1 -1
  90. package/generated/versions/defold-1.13.1/collectionproxy.d.ts +1 -1
  91. package/generated/versions/defold-1.13.1/factory.d.ts +4 -2
  92. package/generated/versions/defold-1.13.1/go.d.ts +115 -370
  93. package/generated/versions/defold-1.13.1/graphics.d.ts +1 -0
  94. package/generated/versions/defold-1.13.1/gui.d.ts +151 -529
  95. package/generated/versions/defold-1.13.1/http.d.ts +4 -2
  96. package/generated/versions/defold-1.13.1/image.d.ts +83 -3
  97. package/generated/versions/defold-1.13.1/index.d.ts +3 -0
  98. package/generated/versions/defold-1.13.1/liveupdate.d.ts +4 -0
  99. package/generated/versions/defold-1.13.1/material.d.ts +3 -1
  100. package/generated/versions/defold-1.13.1/model.d.ts +4 -5
  101. package/generated/versions/defold-1.13.1/particlefx.d.ts +22 -1
  102. package/generated/versions/defold-1.13.1/physics.d.ts +47 -3
  103. package/generated/versions/defold-1.13.1/render.d.ts +182 -16
  104. package/generated/versions/defold-1.13.1/resource.d.ts +43 -10
  105. package/generated/versions/defold-1.13.1/sprite.d.ts +58 -1
  106. package/generated/versions/defold-1.13.1/sys.d.ts +101 -6
  107. package/generated/versions/defold-1.13.1/tilemap.d.ts +4 -4
  108. package/generated/versions/defold-1.13.1/vmath.d.ts +0 -24
  109. package/generated/versions/defold-1.13.2/b2d_world.d.ts +10 -10
  110. package/generated/versions/defold-1.13.2/buffer.d.ts +9 -9
  111. package/generated/versions/defold-1.13.2/bullet3d_collision_object.d.ts +1 -1
  112. package/generated/versions/defold-1.13.2/bullet3d_constraint.d.ts +109 -7
  113. package/generated/versions/defold-1.13.2/bullet3d_shape.d.ts +2 -2
  114. package/generated/versions/defold-1.13.2/collectionfactory.d.ts +1 -1
  115. package/generated/versions/defold-1.13.2/collectionproxy.d.ts +2 -2
  116. package/generated/versions/defold-1.13.2/factory.d.ts +4 -2
  117. package/generated/versions/defold-1.13.2/go.d.ts +114 -220
  118. package/generated/versions/defold-1.13.2/graphics.d.ts +1 -0
  119. package/generated/versions/defold-1.13.2/gui.d.ts +148 -371
  120. package/generated/versions/defold-1.13.2/http.d.ts +4 -2
  121. package/generated/versions/defold-1.13.2/image.d.ts +56 -4
  122. package/generated/versions/defold-1.13.2/index.d.ts +3 -0
  123. package/generated/versions/defold-1.13.2/liveupdate.d.ts +5 -1
  124. package/generated/versions/defold-1.13.2/material.d.ts +3 -3
  125. package/generated/versions/defold-1.13.2/model.d.ts +4 -5
  126. package/generated/versions/defold-1.13.2/particlefx.d.ts +20 -1
  127. package/generated/versions/defold-1.13.2/physics.d.ts +48 -4
  128. package/generated/versions/defold-1.13.2/render.d.ts +164 -20
  129. package/generated/versions/defold-1.13.2/resource.d.ts +31 -10
  130. package/generated/versions/defold-1.13.2/sprite.d.ts +49 -1
  131. package/generated/versions/defold-1.13.2/sys.d.ts +78 -10
  132. package/generated/versions/defold-1.13.2/tilemap.d.ts +4 -4
  133. package/generated/versions/defold-1.13.2/vmath.d.ts +0 -24
  134. package/generated/versions/defold-1.13.2/window.d.ts +1 -1
  135. package/generated/vmath.d.ts +0 -24
  136. package/generated/window.d.ts +1 -1
  137. package/identity-vocabulary.json +98 -7
  138. package/index.d.ts +3 -0
  139. package/package.json +3 -1
  140. package/scripts/generate-api-availability.ts +6 -22
  141. package/scripts/generate-api-signatures.ts +87 -21
  142. package/scripts/materialize-version.ts +53 -6
  143. package/scripts/regen.ts +256 -44
  144. package/scripts/signature-store-fs.ts +1 -0
  145. package/scripts/target-version.ts +26 -0
  146. package/src/api-doc.ts +26 -0
  147. package/src/component-properties.d.ts +226 -6
  148. package/src/core-types.ts +82 -20
  149. package/src/doc-corrections.ts +53 -5
  150. package/src/emit-dts.ts +1300 -269
  151. package/src/emit-messages.ts +289 -0
  152. package/src/engine-globals.d.ts +8 -2
  153. package/src/go-overloads.d.ts +80 -15
  154. package/src/gui-overloads.d.ts +489 -0
  155. package/src/gui-texture-removal.d.ts +41 -0
  156. package/src/index.ts +2 -0
  157. package/src/lifecycle.ts +46 -37
  158. package/src/luals-type-expr.ts +6 -1
  159. package/src/msg-overloads.d.ts +25 -13
  160. package/src/physics-event-guard.d.ts +39 -0
  161. package/src/render-overloads.d.ts +2 -2
  162. package/src/return-correction-provenance.ts +36 -6
  163. package/src/signature-store.ts +50 -0
  164. package/src/timers.d.ts +2 -1
  165. package/src/vmath-overloads.d.ts +26 -0
  166. package/src/window-event-guard.d.ts +5 -3
@@ -130,7 +130,7 @@ declare global {
130
130
  /**
131
131
  * Buffer to bind to the resource.
132
132
  */
133
- buffer: Opaque<"buffer">;
133
+ buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> };
134
134
  /**
135
135
  * Whether the resource takes ownership of the buffer. The default is true.
136
136
  */
@@ -708,7 +708,7 @@ declare global {
708
708
  * });
709
709
  * ```
710
710
  */
711
- function create_sound_data(path: string, options: resource.sound_data_options): Hash;
711
+ function create_sound_data(path: string, options: resource.sound_data_options & ({ partial?: false } | ({ partial: true } & Required<Pick<resource.sound_data_options, "filesize">>))): Hash;
712
712
  /**
713
713
  * Creates a new texture resource that can be used in the same way as any texture created during build time.
714
714
  * The path used for creating the texture must be unique, trying to create a resource at a path that is already
@@ -836,7 +836,7 @@ declare global {
836
836
  * }
837
837
  * ```
838
838
  */
839
- function create_texture(path: string, table: resource.texture_creation_params, buffer?: Opaque<"buffer">): Hash;
839
+ function create_texture(path: string, table: resource.texture_creation_params, buffer?: Opaque<"buffer"> & { length: LuaLengthMethod<number> }): Hash;
840
840
  /**
841
841
  * Creates a new texture resource that can be used in the same way as any texture created during build time.
842
842
  * The path used for creating the texture must be unique, trying to create a resource at a path that is already
@@ -955,7 +955,7 @@ declare global {
955
955
  * });
956
956
  * ```
957
957
  */
958
- function create_texture_async(path: string, table: resource.texture_creation_params, buffer: Opaque<"buffer"> | undefined, callback: (self: unknown, request_id: number, result: resource.texture_creation_result) => void): LuaMultiReturn<[Hash, number]>;
958
+ function create_texture_async(path: string, table: resource.texture_creation_params, buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> } | undefined, callback: (self: unknown, request_id: number, result: resource.texture_creation_result) => void): LuaMultiReturn<[Hash, number]>;
959
959
  /**
960
960
  * Constructor-like function with two purposes:
961
961
  *
@@ -1024,7 +1024,7 @@ declare global {
1024
1024
  * });
1025
1025
  * ```
1026
1026
  */
1027
- function get_buffer(path: Hash | string): Opaque<"buffer">;
1027
+ function get_buffer(path: Hash | string): Opaque<"buffer"> & { length: LuaLengthMethod<number> };
1028
1028
  /**
1029
1029
  * Gets render target info from a render target resource path or a render target handle
1030
1030
  *
@@ -1080,7 +1080,28 @@ declare global {
1080
1080
  * });
1081
1081
  * ```
1082
1082
  */
1083
- function get_text_metrics(url: Hash | string, text: string, options?: resource.text_metrics_options): resource.text_metrics;
1083
+ function get_text_metrics(url: Hash | string, text: string): resource.text_metrics;
1084
+ /**
1085
+ * Gets the text metrics from a font. Rich text markup is measured using its
1086
+ * visible text and font sizes. If markup cannot be parsed, the text is measured literally.
1087
+ * Inline sprites reserve their specified dimensions, or one em by default.
1088
+ *
1089
+ * @param url - the font to get the (unscaled) metrics from
1090
+ * @param text - text to measure
1091
+ * @param options - optional text-metric options
1092
+ * @returns measured text metrics
1093
+ * @example
1094
+ * ```ts
1095
+ * export default defineScript({
1096
+ * init() {
1097
+ * const font = go.get<label.properties>()("#label", "font");
1098
+ * const metrics = resource.get_text_metrics(font, "The quick brown fox\n jumps over the lazy dog");
1099
+ * pprint(metrics);
1100
+ * },
1101
+ * });
1102
+ * ```
1103
+ */
1104
+ function get_text_metrics(url: Hash | string, text: string, options: resource.text_metrics_options): resource.text_metrics;
1084
1105
  /**
1085
1106
  * Gets texture info from a texture resource path or a texture handle
1086
1107
  *
@@ -1155,7 +1176,7 @@ declare global {
1155
1176
  * // custom_resources = resources/,assets/level_data.json
1156
1177
  * ```
1157
1178
  */
1158
- function load(path: string): Opaque<"buffer">;
1179
+ function load(path: string): Opaque<"buffer"> & { length: LuaLengthMethod<number> };
1159
1180
  /**
1160
1181
  * Constructor-like function with two purposes:
1161
1182
  *
@@ -1242,7 +1263,7 @@ declare global {
1242
1263
  * resource.set(go.get<sprite.properties>()("#sprite", "texture0"), buffer);
1243
1264
  * ```
1244
1265
  */
1245
- function set(path: string | Hash, buffer: Opaque<"buffer">): void;
1266
+ function set(path: string | Hash, buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> }): void;
1246
1267
  /**
1247
1268
  * Sets the data for a specific atlas resource. Setting new atlas data is specified by passing in
1248
1269
  * a texture path for the backing texture of the atlas, a list of geometries and a list of animations
@@ -1371,7 +1392,7 @@ declare global {
1371
1392
  * });
1372
1393
  * ```
1373
1394
  */
1374
- function set_buffer(path: Hash | string, buffer: Opaque<"buffer">, table?: resource.buffer_update_options): void;
1395
+ function set_buffer(path: Hash | string, buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> }, table?: resource.buffer_update_options): void;
1375
1396
  /**
1376
1397
  * Update internal sound resource (wavc/oggc/opusc) with new data
1377
1398
  *
@@ -1571,7 +1592,7 @@ declare global {
1571
1592
  * }
1572
1593
  * ```
1573
1594
  */
1574
- function set_texture(path: Hash | string, table: resource.texture_update_params, buffer: Opaque<"buffer">): void;
1595
+ function set_texture(path: Hash | string, table: resource.texture_update_params, buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> }): void;
1575
1596
  /**
1576
1597
  * Constructor-like function with two purposes:
1577
1598
  *
@@ -66,7 +66,55 @@ declare global {
66
66
  * });
67
67
  * ```
68
68
  */
69
- function play_flipbook(url: string | Hash | Url, id: string | Hash, complete_function?: (self: unknown, message_id: Hash, message: { current_tile: number; id: Hash }, sender: Url) => void, play_properties?: sprite.play_properties): void;
69
+ function play_flipbook(url: string | Hash | Url, id: string | Hash, complete_function?: (self: unknown, message_id: Hash, message: { current_tile: number; id: Hash }, sender: Url) => void): void;
70
+ /**
71
+ * Play an animation on a sprite component from its tile set
72
+ * An optional completion callback function can be provided that will be called when
73
+ * the animation has completed playing. If no function is provided,
74
+ * a animation_done message is sent to the script that started the animation.
75
+ *
76
+ * @param url - the sprite that should play the animation
77
+ * @param id - hashed id of the animation to play
78
+ * @param complete_function - function to call when the animation has completed.
79
+ *
80
+ * `self`
81
+ * script_instance The current script instance.
82
+ * `message_id`
83
+ * hash The name of the completion message, `"animation_done"`.
84
+ * `message`
85
+ * message.sprite.animation_done Information about the completion.
86
+ * `sender`
87
+ * url The invoker of the callback: the sprite component.
88
+ * @param play_properties - optional playback properties
89
+ * @example
90
+ * The following examples assumes that the model has id "sprite".
91
+ * How to play the "jump" animation followed by the "run" animation:
92
+ * ```ts
93
+ * const url = msg.url("#sprite");
94
+ *
95
+ * function anim_done(self: unknown, message_id: Hash, message: { id: Hash }) {
96
+ * if (message_id === hash("animation_done") && message.id === hash("jump")) {
97
+ * // jump animation done, chain with "run"
98
+ * sprite.play_flipbook(url, "run");
99
+ * }
100
+ * }
101
+ * ```
102
+ * @example
103
+ * ```ts
104
+ * export default defineScript({
105
+ * init() {
106
+ * const url = msg.url("#sprite");
107
+ * sprite.play_flipbook(url, "jump", (self, message_id, message) => {
108
+ * if (message_id === hash("animation_done") && message.id === hash("jump")) {
109
+ * // jump animation done, chain with "run"
110
+ * sprite.play_flipbook(url, "run");
111
+ * }
112
+ * });
113
+ * },
114
+ * });
115
+ * ```
116
+ */
117
+ function play_flipbook(url: string | Hash | Url, id: string | Hash, complete_function: ((self: unknown, message_id: Hash, message: { current_tile: number; id: Hash }, sender: Url) => void) | undefined, play_properties: sprite.play_properties): void;
70
118
  /**
71
119
  * Resets a shader constant for a sprite component.
72
120
  * The constant must be defined in the material assigned to the sprite.
@@ -57,6 +57,10 @@ declare global {
57
57
  * Whether the interface is running.
58
58
  */
59
59
  running: boolean;
60
+ /**
61
+ * Address family, absent for an interface that is neither IPv4 nor IPv6.
62
+ */
63
+ family?: "ipv4" | "ipv6";
60
64
  }
61
65
  /**
62
66
  * Asynchronous buffer-load result
@@ -69,7 +73,7 @@ declare global {
69
73
  /**
70
74
  * Loaded payload for a successful request.
71
75
  */
72
- buffer?: Opaque<"buffer">;
76
+ buffer?: Opaque<"buffer"> & { length: LuaLengthMethod<number> };
73
77
  }
74
78
  /**
75
79
  * URL opening attributes
@@ -87,11 +91,11 @@ declare global {
87
91
  /**
88
92
  * Device model on iOS and Android.
89
93
  */
90
- device_model?: string;
94
+ device_model: string;
91
95
  /**
92
96
  * Device manufacturer on iOS and Android.
93
97
  */
94
- manufacturer?: string;
98
+ manufacturer: string;
95
99
  /**
96
100
  * Operating-system name.
97
101
  */
@@ -123,11 +127,11 @@ declare global {
123
127
  /**
124
128
  * Operating-system-protected device identifier.
125
129
  */
126
- device_ident?: string;
130
+ device_ident: string;
127
131
  /**
128
132
  * HTTP user agent on HTML5.
129
133
  */
130
- user_agent?: string;
134
+ user_agent: string;
131
135
  }
132
136
  /**
133
137
  * System-information options
@@ -313,7 +317,40 @@ declare global {
313
317
  * }
314
318
  * ```
315
319
  */
316
- function get_config_int(key: string, default_value?: number): number;
320
+ function get_config_int(key: string): number;
321
+ /**
322
+ * Get integer config value from the game.project configuration file with optional default value
323
+ *
324
+ * @param key - key to get value for. The syntax is SECTION.KEY
325
+ * @param default_value - (optional) default value to return if the value does not exist
326
+ * @returns config value as an integer. default_value if the config key does not exist. 0 if no default value was supplied.
327
+ * @example
328
+ * Get user config value
329
+ * ```ts
330
+ * const speed = sys.get_config_int("my_game.speed", 20); // with default value
331
+ * ```
332
+ * @example
333
+ * ```ts
334
+ * const testmode = sys.get_config_int("my_game.testmode"); // without default value
335
+ * if (testmode !== undefined) {
336
+ * // do stuff
337
+ * }
338
+ * ```
339
+ */
340
+ function get_config_int(key: string, default_value: number): number;
341
+ /**
342
+ * Get number config value from the game.project configuration file with optional default value
343
+ *
344
+ * @param key - key to get value for. The syntax is SECTION.KEY
345
+ * @param default_value - (optional) default value to return if the value does not exist
346
+ * @returns config value as an number. default_value if the config key does not exist. 0 if no default value was supplied.
347
+ * @example
348
+ * ```ts
349
+ * // Get user config value
350
+ * const speed = sys.get_config_number("my_game.speed", 20.0);
351
+ * ```
352
+ */
353
+ function get_config_number(key: string): number;
317
354
  /**
318
355
  * Get number config value from the game.project configuration file with optional default value
319
356
  *
@@ -326,7 +363,7 @@ declare global {
326
363
  * const speed = sys.get_config_number("my_game.speed", 20.0);
327
364
  * ```
328
365
  */
329
- function get_config_number(key: string, default_value?: number): number;
366
+ function get_config_number(key: string, default_value: number): number;
330
367
  /**
331
368
  * Returns the current network connectivity status
332
369
  * on mobile platforms.
@@ -439,7 +476,22 @@ declare global {
439
476
  * }
440
477
  * ```
441
478
  */
442
- function get_sys_info(options?: sys.sys_info_options): sys.sys_info;
479
+ function get_sys_info(): sys.sys_info;
480
+ /**
481
+ * Returns a table with system information.
482
+ *
483
+ * @param options - optional system-information options
484
+ * @returns system information
485
+ * @example
486
+ * ```ts
487
+ * // How to get system information:
488
+ * const info = sys.get_sys_info();
489
+ * if (info.system_name === "HTML5") {
490
+ * // We are running in a browser.
491
+ * }
492
+ * ```
493
+ */
494
+ function get_sys_info(options: sys.sys_info_options): sys.sys_info;
443
495
  /**
444
496
  * If the file exists, it must have been created by `sys.save` to be loaded.
445
497
  * This function will raise a Lua error if an error occurs while loading the file.
@@ -485,7 +537,7 @@ declare global {
485
537
  * const asset_2 = sys.load_buffer("/my/absolute/path");
486
538
  * ```
487
539
  */
488
- function load_buffer(path: string): Opaque<"buffer">;
540
+ function load_buffer(path: string): Opaque<"buffer"> & { length: LuaLengthMethod<number> };
489
541
  /**
490
542
  * The sys.load_buffer function will first try to load the resource
491
543
  * from any of the mounted resource locations and return the data if
@@ -584,7 +636,23 @@ declare global {
584
636
  * }
585
637
  * ```
586
638
  */
587
- function open_url(url: string, attributes?: sys.open_url_attributes): boolean;
639
+ function open_url(url: string): boolean;
640
+ /**
641
+ * Open URL in default application, typically a browser
642
+ *
643
+ * @param url - url to open
644
+ * @param attributes - optional URL opening attributes
645
+ * @returns a boolean indicating if the url could be opened or not
646
+ * @example
647
+ * ```ts
648
+ * // Open an URL:
649
+ * const success = sys.open_url("http://www.defold.com", { target: "_blank" });
650
+ * if (!success) {
651
+ * // could not open the url...
652
+ * }
653
+ * ```
654
+ */
655
+ function open_url(url: string, attributes: sys.open_url_attributes): boolean;
588
656
  /**
589
657
  * Reboots the game engine with a specified set of arguments.
590
658
  * Arguments will be translated into command line arguments. Calling reboot
@@ -67,7 +67,7 @@ declare global {
67
67
  * }
68
68
  * ```
69
69
  */
70
- function get_tile(url: string | Hash | Url, layer: string | Hash, x: number, y: number): number;
70
+ function get_tile(url: string | Hash | Url, layer: string | Hash, x: number, y: number): number | undefined;
71
71
  /**
72
72
  * Get the tile information at the specified position in the tilemap.
73
73
  * The position is identified by the tile index starting at origin
@@ -95,7 +95,7 @@ declare global {
95
95
  * }
96
96
  * ```
97
97
  */
98
- function get_tile_info(url: string | Hash | Url, layer: string | Hash, x: number, y: number): { index: number; h_flip: boolean; v_flip: boolean; rotate_90: boolean };
98
+ function get_tile_info(url: string | Hash | Url, layer: string | Hash, x: number, y: number): { index: number; h_flip: boolean; v_flip: boolean; rotate_90: boolean } | undefined;
99
99
  /**
100
100
  * Retrieves all the tiles for the specified layer in the tilemap.
101
101
  * It returns a table of rows where the keys are the
@@ -113,13 +113,13 @@ declare global {
113
113
  * let count = 0;
114
114
  * for (let row_index = bottom; row_index <= bottom + rows_count - 1; row_index++) {
115
115
  * for (let column_index = left; column_index <= left + columns_count - 1; column_index++) {
116
- * tile = tiles.get(row_index)?.get(column_index) ?? 0;
116
+ * tile = tiles?.get(row_index)?.get(column_index) ?? 0;
117
117
  * count = count + 1;
118
118
  * }
119
119
  * }
120
120
  * ```
121
121
  */
122
- function get_tiles(url: string | Hash | Url, layer: string | Hash): LuaTable<number, LuaTable<number, number>>;
122
+ function get_tiles(url: string | Hash | Url, layer: string | Hash): LuaTable<number, LuaTable<number, number>> | undefined;
123
123
  /**
124
124
  * Resets a shader constant for a tile map component.
125
125
  * The constant must be defined in the material assigned to the tile map.
@@ -69,30 +69,6 @@ declare global {
69
69
  * ```
70
70
  */
71
71
  function cross(v1: Vector3, v2: Vector3): Vector3;
72
- /**
73
- * The returned value is a scalar defined as:
74
- * `P ⋅ Q = |P| |Q| cos θ`
75
- * where θ is the angle between the vectors P and Q.
76
- *
77
- * - If the dot product is positive then the angle between the vectors is below 90 degrees.
78
- * - If the dot product is zero the vectors are perpendicular (at right-angles to each other).
79
- * - If the dot product is negative then the angle between the vectors is more than 90 degrees.
80
- *
81
- * @param v1 - first vector
82
- * @param v2 - second vector
83
- * @returns dot product
84
- * @example
85
- * ```ts
86
- * const vector1 = vmath.vector3(1, 0, 0);
87
- * const vector2 = vmath.vector3(0, 1, 0);
88
- *
89
- * if (vmath.dot(vector1, vector2) === 0) {
90
- * // The two vectors are perpendicular (at right-angles to each other)
91
- * // ...
92
- * }
93
- * ```
94
- */
95
- function dot(v1: Vector3 | Vector4, v2: Vector3 | Vector4): number;
96
72
  /**
97
73
  * The resulting matrix is the inverse of the supplied matrix.
98
74
  * For ortho-normal matrices, e.g. regular object transformation,
@@ -161,7 +161,7 @@ declare global {
161
161
  * });
162
162
  * ```
163
163
  */
164
- function set_listener(callback: ((self: unknown, event: (typeof window)[Extract<keyof typeof window, `WINDOW_EVENT_${string}`>], data: Record<string | number, unknown>) => void) | undefined): void;
164
+ function set_listener(callback: ((self: unknown, event: (typeof window)[Extract<keyof typeof window, `WINDOW_EVENT_${string}`>], data: window.event_data) => void) | undefined): void;
165
165
  /**
166
166
  * Set the locking state for current mouse cursor on a PC platform.
167
167
  * This function locks or unlocks the mouse cursor to the center point of the window. While the cursor is locked,
@@ -69,30 +69,6 @@ declare global {
69
69
  * ```
70
70
  */
71
71
  function cross(v1: Vector3, v2: Vector3): Vector3;
72
- /**
73
- * The returned value is a scalar defined as:
74
- * `P ⋅ Q = |P| |Q| cos θ`
75
- * where θ is the angle between the vectors P and Q.
76
- *
77
- * - If the dot product is positive then the angle between the vectors is below 90 degrees.
78
- * - If the dot product is zero the vectors are perpendicular (at right-angles to each other).
79
- * - If the dot product is negative then the angle between the vectors is more than 90 degrees.
80
- *
81
- * @param v1 - first vector
82
- * @param v2 - second vector
83
- * @returns dot product
84
- * @example
85
- * ```ts
86
- * const vector1 = vmath.vector3(1, 0, 0);
87
- * const vector2 = vmath.vector3(0, 1, 0);
88
- *
89
- * if (vmath.dot(vector1, vector2) === 0) {
90
- * // The two vectors are perpendicular (at right-angles to each other)
91
- * // ...
92
- * }
93
- * ```
94
- */
95
- function dot(v1: Vector3 | Vector4, v2: Vector3 | Vector4): number;
96
72
  /**
97
73
  * The resulting matrix is the inverse of the supplied matrix.
98
74
  * For ortho-normal matrices, e.g. regular object transformation,
@@ -161,7 +161,7 @@ declare global {
161
161
  * });
162
162
  * ```
163
163
  */
164
- function set_listener(callback: ((self: unknown, event: (typeof window)[Extract<keyof typeof window, `WINDOW_EVENT_${string}`>], data: Record<string | number, unknown>) => void) | undefined): void;
164
+ function set_listener(callback: ((self: unknown, event: (typeof window)[Extract<keyof typeof window, `WINDOW_EVENT_${string}`>], data: window.event_data) => void) | undefined): void;
165
165
  /**
166
166
  * Set the locking state for current mouse cursor on a PC platform.
167
167
  * This function locks or unlocks the mouse cursor to the center point of the window. While the cursor is locked,
@@ -152,6 +152,7 @@
152
152
  "go.PLAYBACK": "number",
153
153
  "graphics.BLEND_EQUATION": "number",
154
154
  "graphics.BLEND_FACTOR": "number",
155
+ "graphics.BlendFactor": "number",
155
156
  "graphics.BUFFER_TYPE": "number",
156
157
  "graphics.BufferType": "number",
157
158
  "graphics.COMPARE_FUNC": "number",
@@ -212,6 +213,7 @@
212
213
  "render.CONTEXT_EVENT": "number",
213
214
  "render.FRUSTUM_PLANES": "number",
214
215
  "render.RENDER_TARGET_FLAG": "number",
216
+ "render.RenderTargetTextureType": "number",
215
217
  "render.SORT": "number",
216
218
  "sys.NETWORK": "number",
217
219
  "sys.NetworkConnectivity": "number",
@@ -297,6 +299,7 @@
297
299
  "b2d.joint.create_wheel:param:definition",
298
300
  "b2d.shape.ray_cast:param:max_fraction",
299
301
  "b2d.shape.set_shape:param:update_mass",
302
+ "buffer.get_bytes:param:stream_name",
300
303
  "go.cancel_animations:param:url",
301
304
  "go.world_to_local_position:param:url",
302
305
  "go.world_to_local_transform:param:url",
@@ -327,7 +330,6 @@
327
330
  "factory.unload:param:url",
328
331
  "gui.move_above:param:reference",
329
332
  "gui.move_below:param:reference",
330
- "gui.set:param:value",
331
333
  "gui.set_parent:param:parent",
332
334
  "html5.set_interaction_listener:param:callback",
333
335
  "resource.create_buffer:param:table",
@@ -339,6 +341,16 @@
339
341
  ],
340
342
  "parameterCorrections": {
341
343
  "buffer.get_bytes:param:stream_name": { "pins": [["hash"]], "adds": ["string"] },
344
+ "bullet3d.constraint.get_slider_motor:param:motor": {
345
+ "pins": [["string"]],
346
+ "adds": ["\"linear\"", "\"angular\""],
347
+ "removes": ["string"]
348
+ },
349
+ "bullet3d.constraint.set_slider_motor:param:motor": {
350
+ "pins": [["string"]],
351
+ "adds": ["\"linear\"", "\"angular\""],
352
+ "removes": ["string"]
353
+ },
342
354
  "camera.get_aspect_ratio:param:camera": {
343
355
  "pins": [["url", "number", "nil"]],
344
356
  "adds": ["string", "Hash"]
@@ -439,13 +451,11 @@
439
451
  "pins": [["nil", "string", "constant"]],
440
452
  "adds": ["Hash"]
441
453
  },
454
+ "gui.clone_tree:param:node": { "pins": [["node"]], "adds": ["undefined"] },
455
+ "gui.get_tree:param:node": { "pins": [["node"]], "adds": ["undefined"] },
442
456
  "gui.screen_to_local:param:screen_position": { "pins": [["vector3"]], "adds": ["Vector4"] },
443
457
  "gui.set_rotation:param:rotation": { "pins": [["quaternion", "vector4"]], "adds": ["Vector3"] },
444
458
  "gui.set_screen_position:param:screen_position": { "pins": [["vector3"]], "adds": ["Vector4"] },
445
- "gui.set:param:value": {
446
- "pins": [["number", "vector4", "vector3", "quaternion"]],
447
- "adds": ["Matrix4", "Hash"]
448
- },
449
459
  "model.get_mesh_enabled:param:mesh_id": {
450
460
  "pins": [["string", "hash", "url"]],
451
461
  "removes": ["Url"]
@@ -458,15 +468,26 @@
458
468
  "physics.get_maskbit:param:group": { "pins": [["string"]], "adds": ["Hash"] },
459
469
  "physics.set_group:param:group": { "pins": [["string"]], "adds": ["Hash"] },
460
470
  "physics.set_maskbit:param:group": { "pins": [["string"]], "adds": ["Hash"] },
471
+ "render.disable_state:param:state": {
472
+ "pins": [["graphics.STATE"]],
473
+ "adds": ["graphics.State"],
474
+ "removes": ["graphics.STATE"]
475
+ },
461
476
  "render.disable_texture:param:binding": {
462
477
  "pins": [["texture", "string", "hash"]],
463
- "adds": ["number"]
478
+ "adds": ["number"],
479
+ "removes": ["Opaque<\"texture\">"]
464
480
  },
465
481
  "render.draw:param:predicate": {
466
- "pins": [["number"], ["render_predicate"]],
482
+ "pins": [["number"]],
467
483
  "adds": ["Opaque<\"render_predicate\">"],
468
484
  "removes": ["number"]
469
485
  },
486
+ "render.enable_state:param:state": {
487
+ "pins": [["graphics.STATE"]],
488
+ "adds": ["graphics.State"],
489
+ "removes": ["graphics.STATE"]
490
+ },
470
491
  "render.enable_texture:param:handle_or_name": {
471
492
  "pins": [["texture", "string", "hash"]],
472
493
  "adds": ["Opaque<\"render_target\">", "number"]
@@ -479,6 +500,26 @@
479
500
  "pins": [["render_target"]],
480
501
  "adds": ["string", "Hash"]
481
502
  },
503
+ "render.set_blend_func_separate:param:destination_factor_alpha": {
504
+ "pins": [["number"]],
505
+ "adds": ["graphics.BlendFactor"],
506
+ "removes": ["number"]
507
+ },
508
+ "render.set_blend_func_separate:param:destination_factor_color": {
509
+ "pins": [["number"]],
510
+ "adds": ["graphics.BlendFactor"],
511
+ "removes": ["number"]
512
+ },
513
+ "render.set_blend_func_separate:param:source_factor_alpha": {
514
+ "pins": [["number"]],
515
+ "adds": ["graphics.BlendFactor"],
516
+ "removes": ["number"]
517
+ },
518
+ "render.set_blend_func_separate:param:source_factor_color": {
519
+ "pins": [["number"]],
520
+ "adds": ["graphics.BlendFactor"],
521
+ "removes": ["number"]
522
+ },
482
523
  "render.set_camera:param:camera": {
483
524
  "pins": [["url", "number", "nil"]],
484
525
  "adds": ["string", "Hash"]
@@ -539,11 +580,52 @@
539
580
  "undefined"
540
581
  ]
541
582
  },
583
+ "bullet3d.shape.get_shape": {
584
+ "pins": [["bullet3d.shape.definition"]],
585
+ "replaces": ["bullet3d.shape.definition", "{ type: typeof bullet3d.shape.SHAPE_TYPE_MESH }"]
586
+ },
587
+ "collectionfactory.create": {
588
+ "pins": [["table"], ["table<hash, hash>"]],
589
+ "replaces": ["LuaTable<Hash, Hash> & { get: LuaTableGetMethod<string, Hash> }"]
590
+ },
591
+ "collectionproxy.set_collection": {
592
+ "pins": [["number"], ["collectionproxy.RESULT"]],
593
+ "adds": ["nil"],
594
+ "slot": "code"
595
+ },
596
+ "factory.create": { "pins": [["hash"]], "adds": ["nil"] },
597
+ "gui.clone_tree": {
598
+ "pins": [["table"], ["table<hash, node>"]],
599
+ "replaces": [
600
+ "LuaTable<Hash, Opaque<\"node\">> & { get: LuaTableGetMethod<string, Opaque<\"node\">> }"
601
+ ]
602
+ },
603
+ "gui.get_tree": {
604
+ "pins": [["table"], ["table<hash, node>"]],
605
+ "replaces": [
606
+ "LuaTable<Hash, Opaque<\"node\">> & { get: LuaTableGetMethod<string, Opaque<\"node\">> }"
607
+ ]
608
+ },
542
609
  "gui.new_texture": {
543
610
  "pins": [["number"]],
544
611
  "replaces": ["number", "undefined"],
545
612
  "slot": "code"
546
613
  },
614
+ "image.get_astc_header": {
615
+ "pins": [["table", "nil"], ["image.astc_header", "nil"]],
616
+ "removes": ["nil"]
617
+ },
618
+ "physics.raycast": {
619
+ "pins": [
620
+ ["table", "nil"],
621
+ ["message.physics.ray_cast_response[]", "message.physics.ray_cast_response", "nil"]
622
+ ],
623
+ "replaces": [
624
+ "Omit<BuiltinMessages[\"ray_cast_response\"], \"request_id\">[]",
625
+ "Omit<BuiltinMessages[\"ray_cast_response\"], \"request_id\">",
626
+ "undefined"
627
+ ]
628
+ },
547
629
  "render.predicate": {
548
630
  "pins": [["number"], ["render_predicate"]],
549
631
  "replaces": ["Opaque<\"render_predicate\">"]
@@ -557,6 +639,15 @@
557
639
  "socket.protect": {
558
640
  "pins": [["function(function())"], ["fun(...:any):any"]],
559
641
  "replaces": ["(...args: unknown[]) => LuaMultiReturn<[unknown, string | undefined]>"]
642
+ },
643
+ "tilemap.get_tile": { "pins": [["number"], ["integer"]], "adds": ["nil"] },
644
+ "tilemap.get_tile_info": {
645
+ "pins": [["table"], ["{ index:integer, h_flip:boolean, v_flip:boolean, rotate_90:boolean }"]],
646
+ "adds": ["nil"]
647
+ },
648
+ "tilemap.get_tiles": {
649
+ "pins": [["table"], ["table<integer, table<integer, integer>>"]],
650
+ "adds": ["nil"]
560
651
  }
561
652
  }
562
653
  }
package/index.d.ts CHANGED
@@ -5,6 +5,7 @@ import "./src/custom-messages";
5
5
  import "./src/msg-overloads";
6
6
  import "./src/message-guard";
7
7
  import "./src/window-event-guard";
8
+ import "./src/physics-event-guard";
8
9
  import "./src/message-dispatch";
9
10
  import "./src/scene-addresses";
10
11
  import "./src/engine-globals";
@@ -34,6 +35,8 @@ import "./src/go-overloads";
34
35
  import "./src/component-properties";
35
36
  import "./generated/graphics";
36
37
  import "./generated/gui";
38
+ import "./src/gui-overloads";
39
+ import "./src/gui-texture-removal";
37
40
  import "./generated/html5";
38
41
  import "./generated/http";
39
42
  import "./generated/image";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defold-typescript/types",
3
- "version": "0.50.1",
3
+ "version": "0.52.0",
4
4
  "description": "TypeScript types for the Defold engine's Lua APIs.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -93,6 +93,8 @@
93
93
  "!scripts/example-typecheck.ts",
94
94
  "!scripts/example-variant-drift.ts",
95
95
  "!scripts/engine-binding-extract.ts",
96
+ "!scripts/go-instance-functions.ts",
97
+ "!scripts/binding-pin.ts",
96
98
  "!scripts/sync-engine-bindings.ts",
97
99
  "!scripts/engine-binding-diff.ts",
98
100
  "!scripts/engine-binding-verdicts.ts",