@defold-typescript/library-types 0.22.0 → 0.24.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 (145) hide show
  1. package/api-doc/boom.json +3870 -0
  2. package/api-doc/{bridge.bridge.json → bridge.json} +754 -844
  3. package/api-doc/bzAnim.json +338 -0
  4. package/api-doc/decore.json +23 -23
  5. package/api-doc/defcon.json +150 -0
  6. package/api-doc/{defmath.defmath.json → defmath.json} +6 -46
  7. package/api-doc/defsave.json +518 -0
  8. package/api-doc/deftest.json +741 -0
  9. package/api-doc/{dicebag.dicebag.json → dicebag.json} +19 -1
  10. package/api-doc/druid.json +249 -1846
  11. package/api-doc/event.json +1074 -0
  12. package/api-doc/gooey.json +2050 -0
  13. package/api-doc/immutable.json +65 -0
  14. package/api-doc/in.accelerometer.json +75 -1
  15. package/api-doc/in.button.json +17 -10
  16. package/api-doc/in.cursor.json +26 -0
  17. package/api-doc/in.gesture.json +401 -6
  18. package/api-doc/in.keyboard.json +2 -0
  19. package/api-doc/in.mapper.json +12 -8
  20. package/api-doc/in.onscreen.json +61 -5
  21. package/api-doc/in.state.json +61 -13
  22. package/api-doc/in.textbox.json +23 -12
  23. package/api-doc/in.triggers.json +336 -0
  24. package/api-doc/lang.json +528 -0
  25. package/api-doc/{event.event.json → log.json} +96 -101
  26. package/api-doc/metrics.fps.json +61 -2
  27. package/api-doc/metrics.mem.json +61 -2
  28. package/api-doc/monarch.monarch.json +249 -7
  29. package/api-doc/monarch.transitions.easings.json +19 -26
  30. package/api-doc/monarch.transitions.gui.json +782 -79
  31. package/api-doc/nakama.engine.defold.json +31 -18
  32. package/api-doc/{nakama.nakama.json → nakama.json} +4752 -2554
  33. package/api-doc/nakama.util.log.json +32 -4
  34. package/api-doc/narrator.json +647 -0
  35. package/api-doc/openapi/nakama.nakama.json +7680 -0
  36. package/api-doc/orthographic.camera.json +96 -98
  37. package/api-doc/orthographic.json +602 -0
  38. package/api-doc/panthera.json +1183 -0
  39. package/api-doc/{persist.persist.json → persist.json} +26 -1
  40. package/api-doc/{platypus.platypus.json → platypus.json} +68 -14
  41. package/api-doc/proto.json +995 -0
  42. package/api-doc/{rendy.rendy.json → rendy.json} +46 -99
  43. package/api-doc/richtext.color.json +77 -0
  44. package/api-doc/richtext.richtext.json +375 -5
  45. package/api-doc/saver.saver.json +714 -263
  46. package/api-doc/saver.storage.json +283 -52
  47. package/api-doc/squid.json +846 -0
  48. package/api-doc/{starly.starly.json → starly.json} +1 -1
  49. package/api-doc/tweener.json +277 -0
  50. package/api-doc/{yagames.yagames.json → yagames.json} +784 -189
  51. package/api-doc/{zzfx.api.json → zzfx.json} +9 -9
  52. package/authored-targets.json +403 -0
  53. package/generated/{boom.boom.d.ts → boom.d.ts} +14 -0
  54. package/generated/bridge.d.ts +468 -0
  55. package/generated/{bzAnim.bzLibrary.d.ts → bzAnim.d.ts} +6 -0
  56. package/generated/decore.d.ts +37 -37
  57. package/generated/defcon.d.ts +43 -0
  58. package/generated/{defmath.defmath.d.ts → defmath.d.ts} +3 -2
  59. package/generated/defsave.d.ts +144 -0
  60. package/generated/{dicebag.dicebag.d.ts → dicebag.d.ts} +25 -0
  61. package/generated/druid.d.ts +198 -502
  62. package/generated/event.d.ts +318 -0
  63. package/generated/{gooey.gooey.d.ts → gooey.d.ts} +61 -6
  64. package/generated/immutable.d.ts +13 -0
  65. package/generated/in.onscreen.d.ts +5 -0
  66. package/generated/in.textbox.d.ts +4 -0
  67. package/generated/lang.d.ts +101 -0
  68. package/generated/log.d.ts +36 -0
  69. package/generated/metrics.fps.d.ts +19 -1
  70. package/generated/metrics.mem.d.ts +19 -1
  71. package/generated/monarch.monarch.d.ts +44 -1
  72. package/generated/monarch.transitions.easings.d.ts +0 -1
  73. package/generated/monarch.transitions.gui.d.ts +96 -12
  74. package/generated/nakama.d.ts +1158 -0
  75. package/generated/nakama.engine.defold.d.ts +3 -1
  76. package/generated/nakama.util.log.d.ts +6 -0
  77. package/generated/narrator.d.ts +121 -0
  78. package/generated/openapi/nakama.nakama.d.ts +884 -0
  79. package/generated/orthographic.camera.d.ts +24 -38
  80. package/generated/orthographic.d.ts +155 -0
  81. package/generated/panthera.d.ts +170 -0
  82. package/generated/{persist.persist.d.ts → persist.d.ts} +3 -0
  83. package/generated/{platypus.platypus.d.ts → platypus.d.ts} +9 -0
  84. package/generated/proto.d.ts +146 -0
  85. package/generated/{rendy.rendy.d.ts → rendy.d.ts} +33 -80
  86. package/generated/richtext.color.d.ts +15 -0
  87. package/generated/saver.saver.d.ts +289 -42
  88. package/generated/saver.storage.d.ts +79 -14
  89. package/generated/squid.d.ts +127 -0
  90. package/generated/tweener.d.ts +42 -0
  91. package/generated/{yagames.yagames.d.ts → yagames.d.ts} +151 -29
  92. package/generated/{zzfx.api.d.ts → zzfx.d.ts} +7 -0
  93. package/library-classification.json +0 -227
  94. package/library-targets.json +1 -284
  95. package/luals-targets.json +168 -1
  96. package/openapi-targets.json +17 -0
  97. package/package.json +9 -88
  98. package/script-api-targets.json +15 -0
  99. package/scripts/__snapshots__/parse-luals.test.ts.snap +504 -85
  100. package/scripts/apply-luals-overrides.ts +95 -0
  101. package/scripts/authored-parity.ts +718 -0
  102. package/scripts/emit-library-dts.ts +177 -19
  103. package/scripts/extract-api-doc.ts +189 -38
  104. package/scripts/fidelity-floor.ts +178 -0
  105. package/scripts/import-upstream-docs.ts +125 -0
  106. package/scripts/lower-api-doc.ts +69 -19
  107. package/scripts/luals-fidelity.ts +22 -10
  108. package/scripts/map-luals-types.ts +86 -22
  109. package/scripts/parse-lua-surface.ts +187 -0
  110. package/scripts/parse-luals.ts +473 -22
  111. package/scripts/parse-markdown-api.ts +247 -0
  112. package/scripts/parse-openapi-api.ts +313 -0
  113. package/scripts/sync-authored-types.ts +249 -0
  114. package/scripts/sync-library-types.ts +99 -3
  115. package/scripts/sync-luals-types.ts +29 -2
  116. package/scripts/sync-markdown-types.ts +761 -0
  117. package/scripts/sync-openapi-types.ts +308 -0
  118. package/scripts/sync-script-api-types.ts +367 -0
  119. package/api-doc/boom.boom.json +0 -26
  120. package/api-doc/bzAnim.bzLibrary.json +0 -156
  121. package/api-doc/defcon.console.json +0 -109
  122. package/api-doc/defsave.defsave.json +0 -175
  123. package/api-doc/deftest.deftest.json +0 -71
  124. package/api-doc/gooey.gooey.json +0 -963
  125. package/api-doc/immutable.immutable.json +0 -63
  126. package/api-doc/lang.lang.json +0 -411
  127. package/api-doc/log.log.json +0 -50
  128. package/api-doc/narrator.narrator.json +0 -150
  129. package/api-doc/proto.proto.json +0 -355
  130. package/api-doc/squid.squid.json +0 -660
  131. package/api-doc/tweener.tweener.json +0 -419
  132. package/generated/bridge.bridge.d.ts +0 -533
  133. package/generated/defcon.console.d.ts +0 -24
  134. package/generated/defsave.defsave.d.ts +0 -31
  135. package/generated/event.event.d.ts +0 -54
  136. package/generated/immutable.immutable.d.ts +0 -13
  137. package/generated/lang.lang.d.ts +0 -33
  138. package/generated/log.log.d.ts +0 -40
  139. package/generated/nakama.nakama.d.ts +0 -594
  140. package/generated/narrator.narrator.d.ts +0 -66
  141. package/generated/proto.proto.d.ts +0 -36
  142. package/generated/squid.squid.d.ts +0 -106
  143. package/generated/tweener.tweener.d.ts +0 -151
  144. /package/generated/{deftest.deftest.d.ts → deftest.d.ts} +0 -0
  145. /package/generated/{starly.starly.d.ts → starly.d.ts} +0 -0
@@ -1,5 +1,6 @@
1
1
  /** @noResolution */
2
2
  declare module 'druid.druid' {
3
+ import { event } from 'event.event';
3
4
  type druid_text_adjust_type = "downscale" | "trim" | "no_adjust" | "downscale_limited" | "scroll" | "scale_then_scroll" | "trim_left" | "scale_then_trim" | "scale_then_trim_left";
4
5
  type color = Vector4 | Vector3 | string;
5
6
  type druid_container_mode = "stretch" | "fit" | "stretch_x" | "stretch_y";
@@ -15,13 +16,12 @@ declare module 'druid.druid' {
15
16
  * - It uses a key_back and key_backspace action ids
16
17
  */
17
18
  interface druid_back_handler extends druid_component {
18
- on_back: unknown;
19
- params: unknown | undefined;
19
+ on_back: event;
20
+ params?: unknown | undefined;
20
21
  /**
21
22
  * The Back Handler constructor
22
23
  */
23
- init(callback: unknown | undefined, params: unknown | undefined): void;
24
- on_input(action_id: Hash, action: LuaTable): boolean;
24
+ init(callback?: ((...args: any[]) => unknown) | undefined, params?: unknown | undefined): void;
25
25
  }
26
26
  /**
27
27
  * Druid component for block input. Use it to block input in special zone.
@@ -36,12 +36,10 @@ declare module 'druid.druid' {
36
36
  */
37
37
  interface druid_blocker extends druid_component {
38
38
  node: Opaque<"node">;
39
- _is_enabled: boolean;
40
39
  /**
41
40
  * The Blocker constructor
42
41
  */
43
42
  init(node: Opaque<"node"> | string): void;
44
- on_input(action_id: string, action: LuaTable): boolean;
45
43
  /**
46
44
  * Set blocker enabled state
47
45
  */
@@ -56,15 +54,15 @@ declare module 'druid.druid' {
56
54
  * You can override this component styles params in Druid styles table or create your own style
57
55
  */
58
56
  interface druid_button_style {
59
- LONGTAP_TIME: number | undefined;
60
- AUTOHOLD_TRIGGER: number | undefined;
61
- DOUBLETAP_TIME: number | undefined;
62
- on_init: ((self: unknown) => void) | undefined;
63
- on_click: ((self: unknown, node: unknown) => void) | undefined;
64
- on_click_disabled: ((self: unknown, node: unknown) => void) | undefined;
65
- on_hover: ((self: unknown, node: unknown, hover_state: unknown) => void) | undefined;
66
- on_mouse_hover: ((self: unknown, node: unknown, hover_state: unknown) => void) | undefined;
67
- on_set_enabled: ((self: unknown, node: unknown, enabled_state: unknown) => void) | undefined;
57
+ LONGTAP_TIME?: number | undefined;
58
+ AUTOHOLD_TRIGGER?: number | undefined;
59
+ DOUBLETAP_TIME?: number | undefined;
60
+ on_init?: ((self: druid_button) => void) | undefined;
61
+ on_click?: ((self: druid_button, node: Opaque<"node">) => void) | undefined;
62
+ on_click_disabled?: ((self: druid_button, node: Opaque<"node">) => void) | undefined;
63
+ on_hover?: ((self: druid_button, node: Opaque<"node">, hover_state: boolean) => void) | undefined;
64
+ on_mouse_hover?: ((self: druid_button, node: Opaque<"node">, hover_state: boolean) => void) | undefined;
65
+ on_set_enabled?: ((self: druid_button, node: Opaque<"node">, enabled_state: boolean | undefined) => void) | undefined;
68
66
  }
69
67
  /**
70
68
  * Basic Druid input component. Handle input on node and provide different callbacks on touch events.
@@ -85,19 +83,19 @@ declare module 'druid.druid' {
85
83
  * -
86
84
  */
87
85
  interface druid_button extends druid_component {
88
- on_click: unknown;
89
- on_pressed: unknown;
90
- on_repeated_click: unknown;
91
- on_long_click: unknown;
92
- on_double_click: unknown;
93
- on_hold_callback: unknown;
94
- on_click_outside: unknown;
86
+ on_click: event;
87
+ on_pressed: event;
88
+ on_repeated_click: event;
89
+ on_long_click: event;
90
+ on_double_click: event;
91
+ on_hold_callback: event;
92
+ on_click_outside: event;
95
93
  node: Opaque<"node">;
96
94
  node_id: Hash;
97
95
  anim_node: Opaque<"node">;
98
96
  params: unknown;
99
97
  hover: druid_hover;
100
- click_zone: Opaque<"node"> | undefined;
98
+ click_zone?: Opaque<"node"> | undefined;
101
99
  start_scale: Vector3;
102
100
  start_pos: Vector3;
103
101
  disabled: boolean;
@@ -106,21 +104,17 @@ declare module 'druid.druid' {
106
104
  /**
107
105
  * The constructor for the button component
108
106
  */
109
- init(node_or_node_id: Opaque<"node"> | string, callback: (() => void) | undefined, custom_args: unknown | undefined, anim_node: Opaque<"node"> | string | undefined): void;
110
- on_style_change(style: druid_button_style): void;
107
+ init(node_or_node_id: Opaque<"node"> | string, callback?: (() => void) | undefined, custom_args?: unknown | undefined, anim_node?: Opaque<"node"> | string | undefined): void;
111
108
  /**
112
109
  * Remove default button style animations
113
110
  */
114
111
  set_animations_disabled(): druid_button;
115
- on_late_init(): void;
116
- on_input(action_id: Hash, action: LuaTable): boolean;
117
- on_input_interrupt(): void;
118
112
  /**
119
113
  * Set button enabled state.
120
114
  * The style.on_set_enabled will be triggered.
121
115
  * Disabled button is not clickable.
122
116
  */
123
- set_enabled(state: boolean | undefined): druid_button;
117
+ set_enabled(state?: boolean | undefined): druid_button;
124
118
  /**
125
119
  * Get button enabled state.
126
120
  * By default all Buttons are enabled on creating.
@@ -131,7 +125,7 @@ declare module 'druid.druid' {
131
125
  * Useful to restrict click outside of stencil node or scrollable content.
132
126
  * If button node placed inside stencil node, it will be automatically set to this stencil node.
133
127
  */
134
- set_click_zone(zone: Opaque<"node"> | string | undefined): druid_button;
128
+ set_click_zone(zone?: Opaque<"node"> | string | undefined): druid_button;
135
129
  /**
136
130
  * Set key name to trigger this button by keyboard.
137
131
  */
@@ -143,7 +137,7 @@ declare module 'druid.druid' {
143
137
  /**
144
138
  * Set function for additional check for button click availability.
145
139
  */
146
- set_check_function(check_function: unknown | undefined, failure_callback: unknown | undefined): druid_button;
140
+ set_check_function(check_function?: ((...args: any[]) => unknown) | undefined, failure_callback?: ((...args: any[]) => unknown) | undefined): druid_button;
147
141
  /**
148
142
  * Set Button mode to work inside user HTML5 interaction event.
149
143
  *
@@ -152,7 +146,7 @@ declare module 'druid.druid' {
152
146
  *
153
147
  * If the game is not HTML, html mode will be not enabled
154
148
  */
155
- set_web_user_interaction(is_web_mode: boolean | undefined): druid_button;
149
+ set_web_user_interaction(is_web_mode?: boolean | undefined): druid_button;
156
150
  _is_input_match(action_id: Hash): boolean;
157
151
  /**
158
152
  * Call button style on_hover callback
@@ -193,13 +187,13 @@ declare module 'druid.druid' {
193
187
  */
194
188
  interface druid_drag extends druid_component {
195
189
  node: Opaque<"node">;
196
- on_touch_start: unknown;
197
- on_touch_end: unknown;
198
- on_drag_start: unknown;
199
- on_drag: unknown;
200
- on_drag_end: unknown;
190
+ on_touch_start: event;
191
+ on_touch_end: event;
192
+ on_drag_start: event;
193
+ on_drag: event;
194
+ on_drag_end: event;
201
195
  style: druid_drag_style;
202
- click_zone: Opaque<"node"> | undefined;
196
+ click_zone?: Opaque<"node"> | undefined;
203
197
  is_touch: boolean;
204
198
  is_drag: boolean;
205
199
  can_x: boolean;
@@ -212,26 +206,18 @@ declare module 'druid.druid' {
212
206
  screen_x: number;
213
207
  screen_y: number;
214
208
  touch_start_pos: Vector3;
215
- _is_enabled: boolean;
216
- _x_koef: number;
217
- _y_koef: number;
218
209
  /**
219
210
  * The constructor for Drag component
220
211
  */
221
- init(node_or_node_id: Opaque<"node"> | string, on_drag_callback: (self: unknown, touch: unknown) => void): void;
222
- on_style_change(style: druid_drag_style): void;
212
+ init(node_or_node_id: Opaque<"node"> | string, on_drag_callback: (self: unknown, dx: number, dy: number, x: number, y: number, touch: touch) => void): void;
223
213
  /**
224
214
  * Set Drag component enabled state.
225
215
  */
226
216
  set_drag_cursors(is_enabled: boolean): void;
227
- on_late_init(): void;
228
- on_window_resized(): void;
229
- on_input_interrupt(): void;
230
- on_input(action_id: Hash, action: LuaTable): boolean;
231
217
  /**
232
218
  * Set Drag click zone
233
219
  */
234
- set_click_zone(node: Opaque<"node"> | string | undefined): druid_drag;
220
+ set_click_zone(node?: Opaque<"node"> | string | undefined): druid_drag;
235
221
  /**
236
222
  * Set Drag component enabled state.
237
223
  */
@@ -241,7 +227,7 @@ declare module 'druid.druid' {
241
227
  */
242
228
  is_enabled(): boolean;
243
229
  _start_touch(): void;
244
- _end_touch(touch: touch | undefined): void;
230
+ _end_touch(touch?: touch | undefined): void;
245
231
  _process_touch(touch: touch): void;
246
232
  /**
247
233
  * Return current touch action from action input data
@@ -255,34 +241,26 @@ declare module 'druid.druid' {
255
241
  _on_touch_release(action_id: Hash, action: LuaTable, touch: LuaTable): void;
256
242
  }
257
243
  interface druid_hover_style {
258
- ON_HOVER_CURSOR: string | number | undefined;
259
- ON_MOUSE_HOVER_CURSOR: string | number | undefined;
244
+ ON_HOVER_CURSOR?: string | number | undefined;
245
+ ON_MOUSE_HOVER_CURSOR?: string | number | undefined;
260
246
  }
261
247
  /**
262
248
  * The component for handling hover events on a node
263
249
  */
264
250
  interface druid_hover extends druid_component {
265
251
  node: Opaque<"node">;
266
- on_hover: unknown;
267
- on_mouse_hover: unknown;
252
+ on_hover: event;
253
+ on_mouse_hover: event;
268
254
  style: druid_hover_style;
269
255
  click_zone: Opaque<"node">;
270
- _is_hovered: boolean | undefined;
271
- _is_mouse_hovered: boolean | undefined;
272
- _is_enabled: boolean | undefined;
273
- _is_mobile: boolean;
274
256
  /**
275
257
  * The constructor for the hover component
276
258
  */
277
- init(node: Opaque<"node">, on_hover_callback: unknown, on_mouse_hover: unknown): void;
278
- on_late_init(): void;
279
- on_style_change(style: druid_hover_style): void;
280
- on_input(action_id: Hash, action: LuaTable): boolean;
281
- on_input_interrupt(): void;
259
+ init(node: Opaque<"node">, on_hover_callback: (...args: any[]) => unknown, on_mouse_hover: (...args: any[]) => unknown): void;
282
260
  /**
283
261
  * Set hover state
284
262
  */
285
- set_hover(state: boolean | undefined): void;
263
+ set_hover(state?: boolean | undefined): void;
286
264
  /**
287
265
  * Return current hover state. True if touch action was on the node at current time
288
266
  */
@@ -290,7 +268,7 @@ declare module 'druid.druid' {
290
268
  /**
291
269
  * Set mouse hover state
292
270
  */
293
- set_mouse_hover(state: boolean | undefined): void;
271
+ set_mouse_hover(state?: boolean | undefined): void;
294
272
  /**
295
273
  * Return current hover state. True if nil action_id (usually desktop mouse) was on the node at current time
296
274
  */
@@ -298,36 +276,34 @@ declare module 'druid.druid' {
298
276
  /**
299
277
  * Strict hover click area. Useful for no click events outside stencil node
300
278
  */
301
- set_click_zone(zone: Opaque<"node"> | string | undefined): void;
279
+ set_click_zone(zone?: Opaque<"node"> | string | undefined): void;
302
280
  /**
303
281
  * Set enable state of hover component.
304
282
  * If hover is not enabled, it will not generate
305
283
  * any hover events
306
284
  */
307
- set_enabled(state: boolean | undefined): void;
285
+ set_enabled(state?: boolean | undefined): void;
308
286
  /**
309
287
  * Return current hover enabled state
310
288
  */
311
289
  is_enabled(): boolean;
312
- on_remove(): void;
313
- _set_cursor(): void;
314
290
  }
315
291
  /**
316
292
  * Scroll style parameters
317
293
  */
318
294
  interface druid_scroll_style {
319
- FRICT: number | undefined;
320
- FRICT_HOLD: number | undefined;
321
- INERT_THRESHOLD: number | undefined;
322
- INERT_SPEED: number | undefined;
323
- POINTS_DEADZONE: number | undefined;
324
- BACK_SPEED: number | undefined;
325
- ANIM_SPEED: number | undefined;
326
- EXTRA_STRETCH_SIZE: number | undefined;
327
- SMALL_CONTENT_SCROLL: boolean | undefined;
328
- WHEEL_SCROLL_SPEED: number | undefined;
329
- WHEEL_SCROLL_INVERTED: boolean | undefined;
330
- WHEEL_SCROLL_BY_INERTION: boolean | undefined;
295
+ FRICT?: number | undefined;
296
+ FRICT_HOLD?: number | undefined;
297
+ INERT_THRESHOLD?: number | undefined;
298
+ INERT_SPEED?: number | undefined;
299
+ POINTS_DEADZONE?: number | undefined;
300
+ BACK_SPEED?: number | undefined;
301
+ ANIM_SPEED?: number | undefined;
302
+ EXTRA_STRETCH_SIZE?: number | undefined;
303
+ SMALL_CONTENT_SCROLL?: boolean | undefined;
304
+ WHEEL_SCROLL_SPEED?: number | undefined;
305
+ WHEEL_SCROLL_INVERTED?: boolean | undefined;
306
+ WHEEL_SCROLL_BY_INERTION?: boolean | undefined;
331
307
  }
332
308
  /**
333
309
  * Basic Druid scroll component. Handles all scrolling behavior in Druid GUI.
@@ -350,10 +326,10 @@ declare module 'druid.druid' {
350
326
  */
351
327
  interface druid_scroll extends druid_component {
352
328
  node: Opaque<"node">;
353
- click_zone: Opaque<"node"> | undefined;
354
- on_scroll: unknown;
355
- on_scroll_to: unknown;
356
- on_point_scroll: unknown;
329
+ click_zone?: Opaque<"node"> | undefined;
330
+ on_scroll: event;
331
+ on_scroll_to: event;
332
+ on_point_scroll: event;
357
333
  view_node: Opaque<"node">;
358
334
  view_border: Vector4;
359
335
  content_node: Opaque<"node">;
@@ -363,43 +339,29 @@ declare module 'druid.druid' {
363
339
  available_pos: Vector4;
364
340
  available_size: Vector3;
365
341
  drag: druid_drag;
366
- selected: number | undefined;
342
+ selected?: number | undefined;
367
343
  is_animate: boolean;
368
344
  style: druid_scroll_style;
369
- _is_inert: boolean;
370
- inertion: Vector3;
371
- _is_horizontal_scroll: boolean;
372
- _is_vertical_scroll: boolean;
373
- _grid_on_change: unknown;
374
- _grid_on_change_callback: unknown;
375
- _offset: Vector3;
376
- _layout_on_change_callback: unknown;
377
345
  /**
378
346
  * The Scroll constructor
379
347
  */
380
348
  init(view_node: string | Opaque<"node">, content_node: string | Opaque<"node">): void;
381
- on_style_change(style: druid_scroll_style): void;
382
- on_late_init(): void;
383
- on_layout_change(): void;
384
- update(): void;
385
- on_input(): void;
386
- on_remove(): void;
387
349
  /**
388
350
  * Start scroll to target point.
389
351
  */
390
- scroll_to(point: Vector3, is_instant: boolean | undefined): void;
352
+ scroll_to(point: Vector3, is_instant?: boolean | undefined): void;
391
353
  /**
392
354
  * Scroll to the node, if node is not visible in scroll view
393
355
  */
394
- scroll_to_make_node_visible(node: Opaque<"node">, is_instant: boolean | undefined): void;
356
+ scroll_to_make_node_visible(node: Opaque<"node">, is_instant?: boolean | undefined): void;
395
357
  /**
396
358
  * Scroll to item in scroll by point index.
397
359
  */
398
- scroll_to_index(index: number, is_silent: boolean | undefined, is_instant: boolean | undefined): void;
360
+ scroll_to_index(index: number, is_silent?: boolean | undefined, is_instant?: boolean | undefined): void;
399
361
  /**
400
362
  * Start scroll to target scroll percent
401
363
  */
402
- scroll_to_percent(percent: Vector3, is_instant: boolean | undefined): void;
364
+ scroll_to_percent(percent: Vector3, is_instant?: boolean | undefined): void;
403
365
  /**
404
366
  * Return current scroll progress status.
405
367
  */
@@ -407,7 +369,7 @@ declare module 'druid.druid' {
407
369
  /**
408
370
  * Set scroll content size.
409
371
  */
410
- set_size(size: Vector3, offset: Vector3 | undefined): druid_scroll;
372
+ set_size(size: Vector3, offset?: Vector3 | undefined): druid_scroll;
411
373
  /**
412
374
  * Set new scroll view size in case the node size was changed.
413
375
  */
@@ -427,7 +389,7 @@ declare module 'druid.druid' {
427
389
  /**
428
390
  * Set extra size for scroll stretching
429
391
  */
430
- set_extra_stretch_size(stretch_size: number | undefined): druid_scroll;
392
+ set_extra_stretch_size(stretch_size?: number | undefined): druid_scroll;
431
393
  /**
432
394
  * Return vector of scroll size with width and height.
433
395
  */
@@ -451,11 +413,11 @@ declare module 'druid.druid' {
451
413
  /**
452
414
  * Bind the grid component (Static or Dynamic) to recalculate
453
415
  */
454
- bind_grid(grid: druid_grid | undefined): druid_scroll;
416
+ bind_grid(grid?: druid_grid | undefined): druid_scroll;
455
417
  /**
456
418
  * Bind the layout component to recalculate
457
419
  */
458
- bind_layout(layout: druid_layout | undefined): druid_scroll;
420
+ bind_layout(layout?: druid_layout | undefined): druid_scroll;
459
421
  /**
460
422
  * Strict drag scroll area. Useful for
461
423
  */
@@ -464,10 +426,6 @@ declare module 'druid.druid' {
464
426
  _check_soft_zone(): void;
465
427
  _cancel_animate(): void;
466
428
  _set_scroll_position(): void;
467
- /**
468
- * Find closer point of interest
469
- */
470
- _check_points(): void;
471
429
  _check_threshold(): void;
472
430
  _update_free_scroll(): void;
473
431
  _update_hand_scroll(): void;
@@ -489,18 +447,18 @@ declare module 'druid.druid' {
489
447
  _get_size_vector(vector: Vector4): Vector3;
490
448
  }
491
449
  interface druid_grid_style {
492
- IS_DYNAMIC_NODE_POSES: boolean | undefined;
493
- IS_ALIGN_LAST_ROW: boolean | undefined;
450
+ IS_DYNAMIC_NODE_POSES?: boolean | undefined;
451
+ IS_ALIGN_LAST_ROW?: boolean | undefined;
494
452
  }
495
453
  /**
496
454
  * The component for manage the nodes position in the grid with various options
497
455
  */
498
456
  interface druid_grid extends druid_component {
499
- on_add_item: unknown;
500
- on_remove_item: unknown;
501
- on_change_items: unknown;
502
- on_clear: unknown;
503
- on_update_positions: unknown;
457
+ on_add_item: event;
458
+ on_remove_item: event;
459
+ on_change_items: event;
460
+ on_clear: event;
461
+ on_update_positions: event;
504
462
  parent: Opaque<"node">;
505
463
  nodes: Opaque<"node">[];
506
464
  first_index: number;
@@ -514,8 +472,7 @@ declare module 'druid.druid' {
514
472
  /**
515
473
  * The constructor for the grid component
516
474
  */
517
- init(parent: string | Opaque<"node">, element: Opaque<"node">, in_row: number | undefined): void;
518
- on_style_change(style: druid_grid_style): void;
475
+ init(parent: string | Opaque<"node">, element: Opaque<"node">, in_row?: number | undefined): void;
519
476
  /**
520
477
  * Return pos for grid node index
521
478
  */
@@ -532,7 +489,6 @@ declare module 'druid.druid' {
532
489
  * Return grid index by node
533
490
  */
534
491
  get_index_by_node(node: Opaque<"node">): number | undefined;
535
- on_layout_change(): void;
536
492
  /**
537
493
  * Set grid anchor. Default anchor is equal to anchor of grid parent node
538
494
  */
@@ -548,15 +504,15 @@ declare module 'druid.druid' {
548
504
  /**
549
505
  * Add new item to the grid
550
506
  */
551
- add(item: Opaque<"node">, index: number | undefined, shift_policy: number | undefined, is_instant: boolean | undefined): druid_grid;
507
+ add(item: Opaque<"node">, index?: number | undefined, shift_policy?: number | undefined, is_instant?: boolean | undefined): druid_grid;
552
508
  /**
553
509
  * Set new items to the grid. All previous items will be removed
554
510
  */
555
- set_items(nodes: Opaque<"node">[], is_instant: boolean | undefined): druid_grid;
511
+ set_items(nodes: Opaque<"node">[], is_instant?: boolean | undefined): druid_grid;
556
512
  /**
557
513
  * Remove the item from the grid. Note that gui node will be not deleted
558
514
  */
559
- remove(index: number, shift_policy: number | undefined, is_instant: boolean | undefined): Opaque<"node">;
515
+ remove(index: number, shift_policy?: number | undefined, is_instant?: boolean | undefined): Opaque<"node">;
560
516
  /**
561
517
  * Return items count in grid
562
518
  */
@@ -580,7 +536,7 @@ declare module 'druid.druid' {
580
536
  /**
581
537
  * Change set position function for grid nodes. It will call on
582
538
  */
583
- set_position_function(callback: unknown): druid_grid;
539
+ set_position_function(callback: (...args: any[]) => unknown): druid_grid;
584
540
  /**
585
541
  * Clear grid nodes array. GUI nodes will be not deleted!
586
542
  */
@@ -596,44 +552,18 @@ declare module 'druid.druid' {
596
552
  /**
597
553
  * Set new node size for grid
598
554
  */
599
- set_item_size(width: number | undefined, height: number | undefined): druid_grid;
555
+ set_item_size(width?: number | undefined, height?: number | undefined): druid_grid;
600
556
  /**
601
557
  * Sort grid nodes by custom comparator function
602
558
  */
603
- sort_nodes(comparator: unknown): druid_grid;
604
- /**
605
- * Update grid inner state
606
- */
607
- _update(is_instant: boolean | undefined): void;
608
- /**
609
- * Update first and last indexes of grid nodes
610
- */
611
- _update_indexes(): void;
612
- /**
613
- * Update grid content borders, recalculate min and max values
614
- */
615
- _update_borders(): void;
616
- /**
617
- * Update grid nodes position
618
- */
619
- _update_pos(is_instant: boolean | undefined): void;
620
- /**
621
- * Return dynamic centering offset. Only non-zero when IS_DYNAMIC_NODE_POSES is enabled,
622
- * centers grid content according to pivot within its current borders.
623
- */
624
- _get_dynamic_offset(): LuaMultiReturn<[number, number]>;
625
- /**
626
- * Return x offset for a given row. For most rows returns _base_offset.x,
627
- * but when IS_ALIGN_LAST_ROW is enabled, the last row gets a different offset.
628
- */
629
- _get_row_offset_x(): number;
559
+ sort_nodes(comparator: (...args: any[]) => unknown): druid_grid;
630
560
  _extend_border(border: Vector4, pos: Vector3, size: Vector3, pivot: Vector3): void;
631
561
  }
632
562
  interface druid_text_style {
633
- TRIM_POSTFIX: string | undefined;
634
- DEFAULT_ADJUST: string | undefined;
635
- ADJUST_STEPS: number | undefined;
636
- ADJUST_SCALE_DELTA: number | undefined;
563
+ TRIM_POSTFIX?: string | undefined;
564
+ DEFAULT_ADJUST?: string | undefined;
565
+ ADJUST_STEPS?: number | undefined;
566
+ ADJUST_SCALE_DELTA?: number | undefined;
637
567
  }
638
568
  /**
639
569
  * Basic Druid text component. Text components by default have the text size adjusting.
@@ -657,9 +587,9 @@ declare module 'druid.druid' {
657
587
  */
658
588
  interface druid_text extends druid_component {
659
589
  node: Opaque<"node">;
660
- on_set_text: unknown;
661
- on_update_text_scale: unknown;
662
- on_set_pivot: unknown;
590
+ on_set_text: event;
591
+ on_update_text_scale: event;
592
+ on_set_pivot: event;
663
593
  style: druid_text_style;
664
594
  start_pivot: number;
665
595
  start_scale: Vector3;
@@ -667,19 +597,19 @@ declare module 'druid.druid' {
667
597
  /**
668
598
  * The Text constructor
669
599
  */
670
- init(node: string | Opaque<"node">, value: string | undefined, adjust_type: druid_text_adjust_type | undefined): void;
671
- on_style_change(style: druid_text_style): void;
672
- on_layout_change(): void;
600
+ init(node: string | Opaque<"node">, value?: string | undefined, adjust_type?: druid_text_adjust_type | undefined): void;
673
601
  /**
674
602
  * Calculate text width with font with respect to trailing space
675
603
  */
676
- get_text_size(text: string | undefined): LuaMultiReturn<[number, number]>;
604
+ get_text_size(text?: string | undefined): LuaMultiReturn<[number, number]>;
677
605
  /**
678
606
  * Get chars count by width
679
607
  */
680
608
  get_text_index_by_width(width: number): number;
681
609
  /**
682
610
  * Set text to text field
611
+ *
612
+ * @deprecated
683
613
  */
684
614
  set_to(set_to: string): druid_text;
685
615
  set_text(): void;
@@ -711,7 +641,7 @@ declare module 'druid.druid' {
711
641
  /**
712
642
  * Set text adjust, refresh the current text visuals, if needed
713
643
  */
714
- set_text_adjust(adjust_type: druid_text_adjust_type | undefined, minimal_scale: number | undefined): druid_text;
644
+ set_text_adjust(adjust_type?: druid_text_adjust_type | undefined, minimal_scale?: number | undefined): druid_text;
715
645
  /**
716
646
  * Set minimal scale for "downscale_limited" or "scale_then_scroll" adjust types
717
647
  */
@@ -720,20 +650,6 @@ declare module 'druid.druid' {
720
650
  * Return current text adjust type
721
651
  */
722
652
  get_text_adjust(): string;
723
- _update_text_size(): void;
724
- /**
725
- * Reset initial scale for text
726
- */
727
- _reset_default_scale(): void;
728
- _is_fit_info_area(metrics: LuaTable): boolean;
729
- /**
730
- * Setup scale x, but can only be smaller, than start text scale
731
- */
732
- _update_text_area_size(): void;
733
- _update_text_with_trim(trim_postfix: string): void;
734
- _update_text_with_trim_left(trim_postfix: string): void;
735
- _update_text_with_anchor_shift(): void;
736
- _update_adjust(): void;
737
653
  }
738
654
  /**
739
655
  * Color palette and utility functions for working with colors.
@@ -744,12 +660,12 @@ declare module 'druid.druid' {
744
660
  interface druid_component_meta {
745
661
  template: string;
746
662
  context: LuaTable;
747
- nodes: LuaTable<Hash, Opaque<"node">> | undefined;
748
- style: LuaTable | undefined;
663
+ nodes?: LuaTable<Hash, Opaque<"node">> | undefined;
664
+ style?: LuaTable | undefined;
749
665
  druid: druid_instance;
750
666
  input_enabled: boolean;
751
667
  children: LuaTable;
752
- parent: druid_component | undefined;
668
+ parent?: druid_component | undefined;
753
669
  instance_class: LuaTable;
754
670
  }
755
671
  interface druid_component_component {
@@ -760,71 +676,16 @@ declare module 'druid.druid' {
760
676
  _uid: number;
761
677
  }
762
678
  interface druid_component {
763
- druid: druid_instance;
764
- /**
765
- * Called when component is created
766
- */
767
- init?(...args: any[]): void;
768
- /**
769
- * Called every frame
770
- */
771
- update?(...args: any[]): void;
772
- /**
773
- * Called when component is removed
774
- */
775
- on_remove?(...args: any[]): void;
776
- /**
777
- * Called when input event is triggered
778
- */
779
- on_input?(...args: any[]): void;
780
- /**
781
- * Called when input event is consumed before
782
- */
783
- on_input_interrupt?(...args: any[]): void;
784
- /**
785
- * Called when message is received
786
- */
787
- on_message?(...args: any[]): void;
788
- /**
789
- * Called before update once time after GUI init
790
- */
791
- on_late_init?(...args: any[]): void;
792
- /**
793
- * Called when app lost focus
794
- */
795
- on_focus_lost?(...args: any[]): void;
796
- /**
797
- * Called when app gained focus
798
- */
799
- on_focus_gained?(...args: any[]): void;
800
- /**
801
- * Called when style is changed
802
- */
803
- on_style_change?(...args: any[]): void;
804
- /**
805
- * Called when GUI layout is changed
806
- */
807
- on_layout_change?(...args: any[]): void;
808
- /**
809
- * Called when window is resized
810
- */
811
- on_window_resized?(...args: any[]): void;
812
- /**
813
- * Called when language is changed
814
- */
815
- on_language_change?(...args: any[]): void;
816
- _component: druid_component_component;
817
- _meta: druid_component_meta;
818
679
  /**
819
680
  * Set component style. Pass nil to clear style
820
681
  */
821
- set_style<T>(self: T, druid_style: LuaTable | undefined): T;
682
+ set_style<T>(self: T, druid_style?: LuaTable | undefined): T;
822
683
  /**
823
684
  * Set component template name. Pass nil to clear template.
824
685
  * This template id used to access nodes inside the template on GUI scene.
825
686
  * Parent template will be added automatically if exist.
826
687
  */
827
- set_template<T>(self: T, template: string | undefined): T;
688
+ set_template<T>(self: T, template?: string | undefined): T;
828
689
  /**
829
690
  * Get full template name.
830
691
  */
@@ -832,27 +693,15 @@ declare module 'druid.druid' {
832
693
  /**
833
694
  * Set current component nodes, returned from `gui.clone_tree` function.
834
695
  */
835
- set_nodes(nodes: LuaTable<Hash, Opaque<"node">> | Opaque<"node"> | string | undefined): druid_component;
836
- /**
837
- * Return current component context
838
- */
839
- get_context(): unknown;
696
+ set_nodes(nodes?: LuaTable<Hash, Opaque<"node">> | Opaque<"node"> | string | undefined): druid_component;
840
697
  /**
841
698
  * Get component node by node_id. Respect to current template and nodes.
842
699
  */
843
700
  get_node(node_id: string | Opaque<"node">): Opaque<"node">;
844
- /**
845
- * Get Druid instance for inner component creation.
846
- */
847
- get_druid(template: string | undefined, nodes: LuaTable<Hash, Opaque<"node">> | Opaque<"node"> | string | undefined): druid_instance;
848
701
  /**
849
702
  * Get component name
850
703
  */
851
704
  get_name(): string;
852
- /**
853
- * Get parent component name
854
- */
855
- get_parent_name(): string | undefined;
856
705
  /**
857
706
  * Get component input priority, the bigger number processed first. Default value: 10
858
707
  */
@@ -860,15 +709,11 @@ declare module 'druid.druid' {
860
709
  /**
861
710
  * Set component input priority, the bigger number processed first. Default value: 10
862
711
  */
863
- set_input_priority(value: number, is_temporary: boolean | undefined): druid_component;
712
+ set_input_priority(value: number, is_temporary?: boolean | undefined): druid_component;
864
713
  /**
865
714
  * Reset component input priority to it's default value, that was set in `create` function or `set_input_priority`
866
715
  */
867
716
  reset_input_priority(): druid_component;
868
- /**
869
- * Get component UID, unique identifier created in component creation order.
870
- */
871
- get_uid(): number;
872
717
  /**
873
718
  * Set component input state. By default it's enabled.
874
719
  * If input is disabled, the component will not receive input events.
@@ -883,34 +728,6 @@ declare module 'druid.druid' {
883
728
  * Get parent component
884
729
  */
885
730
  get_parent_component(): druid_component | undefined;
886
- /**
887
- * Setup component context and his style table
888
- */
889
- setup_component(druid_instance: druid_instance, context: LuaTable, style: LuaTable, instance_class: LuaTable): druid_component;
890
- /**
891
- * Return true, if input priority was changed
892
- */
893
- _is_input_priority_changed(): void;
894
- /**
895
- * Reset is_input_priority_changed field
896
- */
897
- _reset_input_priority_changed(): void;
898
- /**
899
- * Get current component nodes
900
- */
901
- get_nodes(): LuaTable<Hash, Opaque<"node">> | undefined;
902
- /**
903
- * Add child to component children list
904
- */
905
- __add_child<T extends druid_component>(child: T): T;
906
- /**
907
- * Remove child from component children list
908
- */
909
- __remove_child<T extends druid_component>(child: T): boolean;
910
- /**
911
- * Return all children components, recursive
912
- */
913
- get_childrens(): LuaTable;
914
731
  }
915
732
  interface druid_system_const {
916
733
  }
@@ -924,7 +741,6 @@ declare module 'druid.druid' {
924
741
  cursor_text: Opaque<"node">;
925
742
  cursor_position: Vector3;
926
743
  init(template: string, nodes: LuaTable): void;
927
- on_input(action_id: Hash, action: LuaTable): boolean;
928
744
  /**
929
745
  * Set placeholder text
930
746
  */
@@ -1011,9 +827,9 @@ declare module 'druid.druid' {
1011
827
  interface druid_rich_text_metrics {
1012
828
  width: number;
1013
829
  height: number;
1014
- offset_x: number | undefined;
1015
- offset_y: number | undefined;
1016
- node_size: Vector3 | undefined;
830
+ offset_x?: number | undefined;
831
+ offset_y?: number | undefined;
832
+ node_size?: Vector3 | undefined;
1017
833
  }
1018
834
  /**
1019
835
  * The component that handles a rich text display, allows to custom color, size, font, etc. of the parts of the text
@@ -1021,13 +837,7 @@ declare module 'druid.druid' {
1021
837
  interface druid_rich_text extends druid_component {
1022
838
  root: Opaque<"node">;
1023
839
  text_prefab: Opaque<"node">;
1024
- _last_value: string;
1025
- _settings: LuaTable;
1026
- _split_to_characters: boolean;
1027
- _anchor: Vector3 | undefined;
1028
- init(text_node: Opaque<"node"> | string, value: string | undefined): void;
1029
- on_layout_change(): void;
1030
- on_style_change(style: druid_rich_text_style): void;
840
+ init(text_node: Opaque<"node"> | string, value?: string | undefined): void;
1031
841
  /**
1032
842
  * Set text for Rich Text
1033
843
  * -- Color
@@ -1058,7 +868,7 @@ declare module 'druid.druid' {
1058
868
  * rich_text:set_text("<img=texture:image,size>Display image with size")
1059
869
  * rich_text:set_text("<img=texture:image,width,height>Display image with width and height")
1060
870
  */
1061
- set_text(text: string | undefined): LuaMultiReturn<[druid_rich_text_word[], druid_rich_text_lines_metrics]>;
871
+ set_text(text?: string | undefined): LuaMultiReturn<[druid_rich_text_word[], druid_rich_text_lines_metrics]>;
1062
872
  /**
1063
873
  * Get the current text of the rich text
1064
874
  */
@@ -1067,7 +877,6 @@ declare module 'druid.druid' {
1067
877
  * Set pivot and keep the content in place (anchor). After this, resizing the root will keep the anchor fixed.
1068
878
  */
1069
879
  set_pivot(pivot: number): druid_rich_text;
1070
- on_remove(): void;
1071
880
  /**
1072
881
  * Clear all created words.
1073
882
  */
@@ -1088,7 +897,6 @@ declare module 'druid.druid' {
1088
897
  * Get the current line metrics
1089
898
  */
1090
899
  get_line_metric(): druid_rich_text_lines_metrics;
1091
- _create_settings(): LuaTable;
1092
900
  /**
1093
901
  * Set the width of the rich text, not affects the size of current spawned words
1094
902
  */
@@ -1135,20 +943,18 @@ declare module 'druid.druid' {
1135
943
  center_offset: Vector3;
1136
944
  mode: druid_container_mode;
1137
945
  fit_size: Vector3;
1138
- min_size_x: number | undefined;
1139
- min_size_y: number | undefined;
1140
- max_size_x: number | undefined;
1141
- max_size_y: number | undefined;
1142
- on_size_changed: unknown;
946
+ min_size_x?: number | undefined;
947
+ min_size_y?: number | undefined;
948
+ max_size_x?: number | undefined;
949
+ max_size_y?: number | undefined;
950
+ on_size_changed: event;
1143
951
  _parent_container: druid_container;
1144
952
  _containers: LuaTable;
1145
953
  _draggable_corners: LuaTable;
1146
954
  /**
1147
955
  * The Container constructor
1148
956
  */
1149
- init(node: Opaque<"node">, mode: string, callback: ((self: druid_container, size: Vector3) => void) | undefined): void;
1150
- on_late_init(): void;
1151
- on_remove(): void;
957
+ init(node: Opaque<"node">, mode: string, callback?: ((self: druid_container, size: Vector3) => void) | undefined): void;
1152
958
  /**
1153
959
  * Refresh the origins of the container, origins is the size and position of the container when it was created
1154
960
  */
@@ -1157,11 +963,10 @@ declare module 'druid.druid' {
1157
963
  * Set the pivot of the container
1158
964
  */
1159
965
  set_pivot(pivot: Opaque<"constant">): void;
1160
- on_style_change(style: druid_container_style): void;
1161
966
  /**
1162
967
  * Set new size of layout node
1163
968
  */
1164
- set_size(width: number | undefined, height: number | undefined, anchor_pivot: Opaque<"constant"> | undefined): druid_container;
969
+ set_size(width?: number | undefined, height?: number | undefined, anchor_pivot?: Opaque<"constant"> | undefined): druid_container;
1165
970
  /**
1166
971
  * Get the position of the container
1167
972
  */
@@ -1186,10 +991,9 @@ declare module 'druid.druid' {
1186
991
  * Set current size for layout node to fit inside it
1187
992
  */
1188
993
  fit_into_window(): druid_container;
1189
- on_window_resized(): void;
1190
- add_container(node_or_container: Opaque<"node"> | string | druid_container | LuaTable, mode: druid_container_mode | undefined, on_resize_callback: ((self: Opaque<"userdata">, size: Vector3) => void) | undefined): druid_container;
994
+ add_container(node_or_container: Opaque<"node"> | string | druid_container | LuaTable, mode?: druid_container_mode | undefined, on_resize_callback?: ((self: Opaque<"userdata">, size: Vector3) => void) | undefined): druid_container;
1191
995
  remove_container_by_node(): druid_container | undefined;
1192
- set_parent_container(parent_container: druid_container | undefined): void;
996
+ set_parent_container(parent_container?: druid_container | undefined): void;
1193
997
  refresh(): void;
1194
998
  refresh_scale(): void;
1195
999
  update_child_containers(): void;
@@ -1203,11 +1007,11 @@ declare module 'druid.druid' {
1203
1007
  /**
1204
1008
  * Set the minimum size of the container
1205
1009
  */
1206
- set_min_size(min_size_x: number | undefined, min_size_y: number | undefined): druid_container;
1010
+ set_min_size(min_size_x?: number | undefined, min_size_y?: number | undefined): druid_container;
1207
1011
  /**
1208
1012
  * Set the maximum size of the container
1209
1013
  */
1210
- set_max_size(max_size_x: number | undefined, max_size_y: number | undefined): druid_container;
1014
+ set_max_size(max_size_x?: number | undefined, max_size_y?: number | undefined): druid_container;
1211
1015
  }
1212
1016
  /**
1213
1017
  * Druid component to manage a list of data with a scrollable view, used to manage huge list data and render only visible elements.
@@ -1226,22 +1030,16 @@ declare module 'druid.druid' {
1226
1030
  interface druid_data_list extends druid_component {
1227
1031
  scroll: druid_scroll;
1228
1032
  grid: druid_grid;
1229
- on_scroll_progress_change: unknown;
1230
- on_element_add: unknown;
1231
- on_element_remove: unknown;
1033
+ on_scroll_progress_change: event;
1034
+ on_element_add: event;
1035
+ on_element_remove: event;
1232
1036
  top_index: number;
1233
1037
  last_index: number;
1234
1038
  scroll_progress: number;
1235
- _create_function: unknown;
1236
- _is_use_cache: boolean;
1237
- _cache: LuaTable;
1238
- _data: LuaTable;
1239
- _data_visual: LuaTable;
1240
1039
  /**
1241
1040
  * The DataList constructor
1242
1041
  */
1243
- init(scroll: druid_scroll, grid: druid_grid, create_function: unknown): void;
1244
- on_remove(): void;
1042
+ init(scroll: druid_scroll, grid: druid_grid, create_function: (...args: any[]) => unknown): void;
1245
1043
  /**
1246
1044
  * Set use cache version of DataList. Requires make setup of components in on_element_add callback and clean in on_element_remove
1247
1045
  */
@@ -1257,15 +1055,15 @@ declare module 'druid.druid' {
1257
1055
  /**
1258
1056
  * Add element to DataList
1259
1057
  */
1260
- add(data: LuaTable, index: number | undefined, shift_policy: number | undefined): druid_data_list;
1058
+ add(data: LuaTable, index?: number | undefined, shift_policy?: number | undefined): druid_data_list;
1261
1059
  /**
1262
1060
  * Remove element from DataList
1263
1061
  */
1264
- remove(index: number | undefined, shift_policy: number | undefined): druid_data_list;
1062
+ remove(index?: number | undefined, shift_policy?: number | undefined): druid_data_list;
1265
1063
  /**
1266
1064
  * Remove element from DataList by data value
1267
1065
  */
1268
- remove_by_data(data: LuaTable, shift_policy: number | undefined): druid_data_list;
1066
+ remove_by_data(data: LuaTable, shift_policy?: number | undefined): druid_data_list;
1269
1067
  /**
1270
1068
  * Clear the DataList and refresh visuals
1271
1069
  */
@@ -1286,23 +1084,6 @@ declare module 'druid.druid' {
1286
1084
  * Instant scroll to element with passed index
1287
1085
  */
1288
1086
  scroll_to_index(index: number): void;
1289
- /**
1290
- * Add element at passed index using cache or create new
1291
- */
1292
- _add_at(index: number): void;
1293
- /**
1294
- * Remove element from passed index and add it to cache if applicable
1295
- */
1296
- _remove_at(index: number): void;
1297
- /**
1298
- * Get the visible area bounds in content-local coordinates (top-left and bottom-right),
1299
- * clamped to the grid coordinate range so get_index_xy produces valid results.
1300
- */
1301
- _get_visible_bounds(): LuaMultiReturn<[number, number, number, number]>;
1302
- /**
1303
- * Refresh all elements in DataList
1304
- */
1305
- _refresh(): void;
1306
1087
  }
1307
1088
  interface druid_hotkey_style {
1308
1089
  MODIFICATORS: string[] | Hash[];
@@ -1323,26 +1104,18 @@ declare module 'druid.druid' {
1323
1104
  * - Hotkey can be set to repeat on key hold
1324
1105
  */
1325
1106
  interface druid_hotkey extends druid_component {
1326
- on_hotkey_pressed: unknown;
1327
- on_hotkey_released: unknown;
1107
+ on_hotkey_pressed: event;
1108
+ on_hotkey_released: event;
1328
1109
  style: druid_hotkey_style;
1329
- _hotkeys: LuaTable;
1330
- _modificators: LuaTable<Hash, boolean>;
1331
- _modificator_released_at: LuaTable<Hash, number>;
1332
- _node: Opaque<"node"> | undefined;
1333
1110
  /**
1334
1111
  * The Hotkey constructor
1335
1112
  */
1336
- init(keys: string[] | string, callback: unknown, callback_argument: unknown | undefined): void;
1337
- on_style_change(style: druid_hotkey_style): void;
1113
+ init(keys: string[] | string, callback: (...args: any[]) => unknown, callback_argument?: unknown | undefined): void;
1338
1114
  /**
1339
1115
  * Add hotkey for component callback
1340
1116
  */
1341
- add_hotkey(keys: string[] | Hash[] | string | Hash, callback_argument: unknown | undefined): druid_hotkey;
1117
+ add_hotkey(keys: string[] | Hash[] | string | Hash, callback_argument?: unknown | undefined): druid_hotkey;
1342
1118
  is_processing(): void;
1343
- on_focus_gained(): void;
1344
- _is_modificator_active(modificator: Hash, time: number): boolean;
1345
- on_input(action_id: Hash | undefined, action: action): boolean;
1346
1119
  /**
1347
1120
  * If true, the callback will be triggered on action.repeated
1348
1121
  */
@@ -1350,13 +1123,13 @@ declare module 'druid.druid' {
1350
1123
  /**
1351
1124
  * If node is provided, the hotkey can be disabled, if the node is disabled
1352
1125
  */
1353
- bind_node(node: Opaque<"node"> | undefined): druid_hotkey;
1126
+ bind_node(node?: Opaque<"node"> | undefined): druid_hotkey;
1354
1127
  }
1355
1128
  interface druid_input_style {
1356
1129
  MASK_DEFAULT_CHAR: string;
1357
1130
  IS_LONGTAP_ERASE: boolean;
1358
1131
  IS_UNSELECT_ON_RESELECT: boolean;
1359
- on_init: ((self: druid_input) => void) | undefined;
1132
+ on_init?: ((self: druid_input) => void) | undefined;
1360
1133
  on_select: (self: druid_input, button_node: Opaque<"node">) => void;
1361
1134
  on_unselect: (self: druid_input, button_node: Opaque<"node">) => void;
1362
1135
  on_input_wrong: (self: druid_input, button_node: Opaque<"node">) => void;
@@ -1376,18 +1149,15 @@ declare module 'druid.druid' {
1376
1149
  * - You can setup allowed characters. On add not allowed characters `on_input_wrong` will be called
1377
1150
  */
1378
1151
  interface druid_input extends druid_component {
1379
- on_input_select: unknown;
1380
- on_input_unselect: unknown;
1381
- on_input_text: unknown;
1382
- on_input_empty: unknown;
1383
- on_input_full: unknown;
1384
- on_input_wrong: unknown;
1385
- on_select_cursor_change: unknown;
1152
+ on_input_select: event;
1153
+ on_input_unselect: event;
1154
+ on_input_text: event;
1155
+ on_input_empty: event;
1156
+ on_input_full: event;
1157
+ on_input_wrong: event;
1158
+ on_select_cursor_change: event;
1386
1159
  style: druid_input_style;
1387
- init(click_node: Opaque<"node">, text_node: Opaque<"node"> | druid_text, keyboard_type: Opaque<"constant"> | undefined): void;
1388
- on_style_change(style: druid_input_style): void;
1389
- on_input(action_id: Hash | undefined, action: action): boolean;
1390
- on_focus_lost(): void;
1160
+ init(click_node: Opaque<"node">, text_node: Opaque<"node"> | druid_text, keyboard_type?: Opaque<"constant"> | undefined): void;
1391
1161
  get_text_selected(): void;
1392
1162
  /**
1393
1163
  * Replace selected text with new text
@@ -1396,7 +1166,7 @@ declare module 'druid.druid' {
1396
1166
  /**
1397
1167
  * Set text for input field
1398
1168
  */
1399
- set_text(input_text: string | undefined): void;
1169
+ set_text(input_text?: string | undefined): void;
1400
1170
  /**
1401
1171
  * Select input field. It will show the keyboard and trigger on_select events
1402
1172
  */
@@ -1429,7 +1199,7 @@ declare module 'druid.druid' {
1429
1199
  /**
1430
1200
  * Set cursor position in input field
1431
1201
  */
1432
- select_cursor(cursor_index: number | undefined, start_index: number | undefined, end_index: number | undefined): druid_input;
1202
+ select_cursor(cursor_index?: number | undefined, start_index?: number | undefined, end_index?: number | undefined): druid_input;
1433
1203
  /**
1434
1204
  * Change cursor position by delta
1435
1205
  */
@@ -1450,11 +1220,8 @@ declare module 'druid.druid' {
1450
1220
  interface druid_lang_text extends druid_component {
1451
1221
  text: druid_text;
1452
1222
  node: Opaque<"node">;
1453
- on_change: unknown;
1454
- last_locale_args: LuaTable;
1455
- last_locale: string;
1456
- init(node: string | Opaque<"node">, locale_id: string | undefined, adjust_type: string | undefined): void;
1457
- on_language_change(): void;
1223
+ on_change: event;
1224
+ init(node: string | Opaque<"node">, locale_id?: string | undefined, adjust_type?: string | undefined): void;
1458
1225
  /**
1459
1226
  * Setup raw text to lang_text component. This will clear any locale settings.
1460
1227
  */
@@ -1472,8 +1239,7 @@ declare module 'druid.druid' {
1472
1239
  */
1473
1240
  format(...args: string[]): druid_lang_text;
1474
1241
  }
1475
- interface event_on_size_changed {
1476
- subscribe: (_: unknown, callback: (new_size: Vector3) => void, context: unknown | undefined) => void;
1242
+ interface event_on_size_changed extends event {
1477
1243
  }
1478
1244
  interface druid_layout_row_data {
1479
1245
  width: number;
@@ -1485,7 +1251,7 @@ declare module 'druid.druid' {
1485
1251
  total_height: number;
1486
1252
  nodes_width: LuaTable<Opaque<"node">, number>;
1487
1253
  nodes_height: LuaTable<Opaque<"node">, number>;
1488
- rows: unknown;
1254
+ rows: druid_layout_row_data[];
1489
1255
  }
1490
1256
  /**
1491
1257
  * Druid component to manage the layout of nodes, placing them inside the node size with respect to the size and pivot of each node.
@@ -1522,8 +1288,8 @@ declare module 'druid.druid' {
1522
1288
  /**
1523
1289
  * Set the margin of the layout
1524
1290
  */
1525
- set_margin(margin_x: number | undefined, margin_y: number | undefined): druid_layout;
1526
- set_padding(padding_x: number | undefined, padding_y: number | undefined, padding_z: number | undefined, padding_w: number | undefined): druid_layout;
1291
+ set_margin(margin_x?: number | undefined, margin_y?: number | undefined): druid_layout;
1292
+ set_padding(padding_x?: number | undefined, padding_y?: number | undefined, padding_z?: number | undefined, padding_w?: number | undefined): druid_layout;
1527
1293
  set_dirty(): druid_layout;
1528
1294
  set_justify(is_justify: boolean): druid_layout;
1529
1295
  set_type(layout_type: druid_layout_type): druid_layout;
@@ -1537,23 +1303,19 @@ declare module 'druid.druid' {
1537
1303
  */
1538
1304
  remove(node_or_node_id: Opaque<"node"> | string): druid_layout;
1539
1305
  get_size(): Vector3;
1540
- get_content_size(): unknown;
1541
- refresh_layout(is_instant: boolean | undefined): druid_layout;
1306
+ get_content_size(): LuaMultiReturn<[number, number]>;
1307
+ refresh_layout(is_instant?: boolean | undefined): druid_layout;
1542
1308
  clear_layout(): druid_layout;
1543
1309
  get_node_size(node: Opaque<"node">): LuaMultiReturn<[number, number]>;
1544
- /**
1545
- * Calculate rows data for layout. Contains total width, height and rows info (width, height, count of elements in row)
1546
- */
1547
- calculate_rows_data(): druid_layout_rows_data;
1548
1310
  set_node_position(node: Opaque<"node">, x: number, y: number): Opaque<"node">;
1549
1311
  /**
1550
1312
  * Set custom position function for layout nodes. It will call on update poses on layout elements. Default: gui.set_position
1551
1313
  */
1552
- set_position_function(callback: unknown): druid_layout;
1314
+ set_position_function(callback: (...args: any[]) => unknown): druid_layout;
1553
1315
  }
1554
1316
  interface druid_progress_style {
1555
- SPEED: number | undefined;
1556
- MIN_DELTA: number | undefined;
1317
+ SPEED?: number | undefined;
1318
+ MIN_DELTA?: number | undefined;
1557
1319
  }
1558
1320
  /**
1559
1321
  * Basic Druid progress bar component. Changes the size or scale of a node to represent progress.
@@ -1570,14 +1332,11 @@ declare module 'druid.druid' {
1570
1332
  */
1571
1333
  interface druid_progress extends druid_component {
1572
1334
  node: Opaque<"node">;
1573
- on_change: unknown;
1335
+ on_change: event;
1574
1336
  style: druid_progress_style;
1575
1337
  key: string;
1576
1338
  prop: Hash;
1577
- init(node: string | Opaque<"node">, key: string, init_value: number | undefined): void;
1578
- on_style_change(style: druid_progress_style): void;
1579
- on_layout_change(): void;
1580
- on_remove(): void;
1339
+ init(node: string | Opaque<"node">, key: string, init_value?: number | undefined): void;
1581
1340
  update(dt: number): void;
1582
1341
  /**
1583
1342
  * Fill the progress bar
@@ -1598,17 +1357,15 @@ declare module 'druid.druid' {
1598
1357
  /**
1599
1358
  * Set points on progress bar to fire the callback
1600
1359
  */
1601
- set_steps(steps: number[], callback: unknown): druid_progress;
1360
+ set_steps(steps: number[], callback: (...args: any[]) => unknown): druid_progress;
1602
1361
  /**
1603
1362
  * Start animation of a progress bar
1604
1363
  */
1605
- to(to: number, callback: unknown | undefined): druid_progress;
1364
+ to(to: number, callback?: ((...args: any[]) => unknown) | undefined): druid_progress;
1606
1365
  /**
1607
1366
  * Set progress bar max node size
1608
1367
  */
1609
1368
  set_max_size(max_size: Vector3): druid_progress;
1610
- _check_steps(from: number, to: number, exactly: number | undefined): void;
1611
- _set_bar_to(set_to: number): void;
1612
1369
  }
1613
1370
  /**
1614
1371
  * Basic Druid slider component. Creates a draggable node over a line with progress reporting.
@@ -1625,29 +1382,16 @@ declare module 'druid.druid' {
1625
1382
  */
1626
1383
  interface druid_slider extends druid_component {
1627
1384
  node: Opaque<"node">;
1628
- on_change_value: unknown;
1385
+ on_change_value: event;
1629
1386
  style: LuaTable;
1630
- start_pos: Vector3;
1631
- pos: Vector3;
1632
- target_pos: Vector3;
1633
- end_pos: Vector3;
1634
- dist: Vector3;
1635
- is_drag: boolean;
1636
- value: number;
1637
- steps: number[] | undefined;
1638
1387
  /**
1639
1388
  * The Slider constructor
1640
1389
  */
1641
- init(node: Opaque<"node">, end_pos: Vector3, callback: unknown | undefined): void;
1642
- on_layout_change(): void;
1643
- on_remove(): void;
1644
- on_style_change(style: LuaTable): void;
1645
- on_window_resized(): void;
1646
- on_input(action_id: Hash, action: LuaTable): boolean;
1390
+ init(node: Opaque<"node">, end_pos: Vector3, callback?: ((...args: any[]) => unknown) | undefined): void;
1647
1391
  /**
1648
1392
  * Set value for slider
1649
1393
  */
1650
- set(value: number, is_silent: boolean | undefined): druid_slider;
1394
+ set(value: number, is_silent?: boolean | undefined): druid_slider;
1651
1395
  /**
1652
1396
  * Set slider steps. Pin node will
1653
1397
  * apply closest step position
@@ -1663,7 +1407,7 @@ declare module 'druid.druid' {
1663
1407
  * move at this position and node drag will start.
1664
1408
  * This function require the Defold version 1.3.0+
1665
1409
  */
1666
- set_input_node(input_node: Opaque<"node"> | string | undefined): druid_slider;
1410
+ set_input_node(input_node?: Opaque<"node"> | string | undefined): druid_slider;
1667
1411
  /**
1668
1412
  * Set Slider input enabled or disabled
1669
1413
  */
@@ -1672,36 +1416,25 @@ declare module 'druid.druid' {
1672
1416
  * Check if Slider component is enabled
1673
1417
  */
1674
1418
  is_enabled(): boolean;
1675
- _on_change_value(): void;
1676
- _set_position(): void;
1677
1419
  }
1678
1420
  interface druid_swipe_style {
1679
- SWIPE_TIME: number | undefined;
1680
- SWIPE_THRESHOLD: number | undefined;
1681
- SWIPE_TRIGGER_ON_MOVE: boolean | undefined;
1421
+ SWIPE_TIME?: number | undefined;
1422
+ SWIPE_THRESHOLD?: number | undefined;
1423
+ SWIPE_TRIGGER_ON_MOVE?: boolean | undefined;
1682
1424
  }
1683
1425
  /**
1684
1426
  * The component to manage swipe events over a node
1685
1427
  */
1686
1428
  interface druid_swipe extends druid_component {
1687
1429
  node: Opaque<"node">;
1688
- on_swipe: unknown;
1430
+ on_swipe: event;
1689
1431
  style: druid_swipe_style;
1690
1432
  click_zone: Opaque<"node">;
1691
- _trigger_on_move: boolean;
1692
- _swipe_start_time: number;
1693
- _start_pos: Vector3;
1694
- _is_enabled: boolean;
1695
- _is_mobile: boolean;
1696
- init(node_or_node_id: Opaque<"node"> | string, on_swipe_callback: unknown): void;
1697
- on_late_init(): void;
1698
- on_style_change(style: druid_swipe_style): void;
1699
- on_input(action_id: Hash, action: action): boolean;
1700
- on_input_interrupt(): void;
1433
+ init(node_or_node_id: Opaque<"node"> | string, on_swipe_callback: (...args: any[]) => unknown): void;
1701
1434
  /**
1702
1435
  * Set the click zone for the swipe, useful for restricting events outside stencil node
1703
1436
  */
1704
- set_click_zone(zone: Opaque<"node"> | string | undefined): void;
1437
+ set_click_zone(zone?: Opaque<"node"> | string | undefined): void;
1705
1438
  /**
1706
1439
  * Start swipe event
1707
1440
  */
@@ -1727,17 +1460,15 @@ declare module 'druid.druid' {
1727
1460
  * - Timer uses update function to handle time
1728
1461
  */
1729
1462
  interface druid_timer extends druid_component {
1730
- on_tick: unknown;
1731
- on_set_enabled: unknown;
1732
- on_timer_end: unknown;
1463
+ on_tick: event;
1464
+ on_set_enabled: event;
1465
+ on_timer_end: event;
1733
1466
  node: Opaque<"node">;
1734
1467
  from: number;
1735
1468
  target: number;
1736
1469
  value: number;
1737
- is_on: boolean | undefined;
1738
- init(node: Opaque<"node">, seconds_from: number | undefined, seconds_to: number | undefined, callback: unknown | undefined): void;
1739
- update(): void;
1740
- on_layout_change(): void;
1470
+ is_on?: boolean | undefined;
1471
+ init(node: Opaque<"node">, seconds_from?: number | undefined, seconds_to?: number | undefined, callback?: ((...args: any[]) => unknown) | undefined): void;
1741
1472
  /**
1742
1473
  * Set the timer to a specific value
1743
1474
  */
@@ -1745,12 +1476,11 @@ declare module 'druid.druid' {
1745
1476
  /**
1746
1477
  * Set the timer to a specific value
1747
1478
  */
1748
- set_state(is_on: boolean | undefined): druid_timer;
1479
+ set_state(is_on?: boolean | undefined): druid_timer;
1749
1480
  /**
1750
1481
  * Set the timer interval
1751
1482
  */
1752
1483
  set_interval(from: number, to: number): druid_timer;
1753
- _second_string_min(sec: number): string;
1754
1484
  }
1755
1485
  /**
1756
1486
  * The helper module contains various functions that are used in the Druid library.
@@ -1768,7 +1498,6 @@ declare module 'druid.druid' {
1768
1498
  v: Vector4;
1769
1499
  }
1770
1500
  interface druid_widget extends druid_component {
1771
- druid: druid_instance;
1772
1501
  }
1773
1502
  interface druid_logger {
1774
1503
  trace: (message: string, context: unknown) => void;
@@ -1829,24 +1558,14 @@ declare module 'druid.druid' {
1829
1558
  y: number;
1830
1559
  dx: number;
1831
1560
  dy: number;
1832
- acc_x: number | undefined;
1833
- acc_y: number | undefined;
1834
- acc_z: number | undefined;
1561
+ acc_x?: number | undefined;
1562
+ acc_y?: number | undefined;
1563
+ acc_z?: number | undefined;
1835
1564
  }
1836
1565
  /**
1837
1566
  * The Druid Factory used to create components
1838
1567
  */
1839
1568
  interface druid_instance {
1840
- input_inited: boolean;
1841
- components_all: druid_component[];
1842
- components_interest: LuaTable<string, druid_component[]>;
1843
- _context: LuaTable;
1844
- _style: LuaTable;
1845
- _late_init_timer_id: number;
1846
- _late_remove: druid_component[];
1847
- _is_late_remove_enabled: boolean;
1848
- _input_blacklist: druid_component[] | undefined;
1849
- _input_whitelist: druid_component[] | undefined;
1850
1569
  /**
1851
1570
  * Check whitelists and blacklists for input components
1852
1571
  */
@@ -1865,20 +1584,6 @@ declare module 'druid.druid' {
1865
1584
  * Component `on_remove` function will be invoked, if exist.
1866
1585
  */
1867
1586
  remove<T extends druid_component>(component: T): boolean;
1868
- /**
1869
- * Get a context of Druid instance (usually a self of gui script)
1870
- */
1871
- get_context(): unknown;
1872
- /**
1873
- * Get a style of Druid instance
1874
- */
1875
- get_style(): LuaTable;
1876
- /**
1877
- * Druid late update function called after initialization and before the regular update step.
1878
- * This function is used to check the GUI state and perform actions after all components and nodes have been created.
1879
- * An example use case is performing an auto stencil check in the GUI hierarchy for input components.
1880
- */
1881
- late_init(): void;
1882
1587
  /**
1883
1588
  * Call this in gui_script update function.
1884
1589
  */
@@ -1895,11 +1600,6 @@ declare module 'druid.druid' {
1895
1600
  * Called when the window event occurs
1896
1601
  */
1897
1602
  on_window_event(window_event: number): void;
1898
- /**
1899
- * Calls the on_language_change function in all related components
1900
- * This one called by global druid.on_language_change, but can be called manually to update all translations
1901
- */
1902
- on_language_change(): void;
1903
1603
  /**
1904
1604
  * Set whitelist components for input processing.
1905
1605
  * If whitelist is not empty and component not contains in this list,
@@ -1912,18 +1612,14 @@ declare module 'druid.druid' {
1912
1612
  * component will be not processed on the input step DruidInstance
1913
1613
  */
1914
1614
  set_blacklist(blacklist_components: LuaTable | druid_component[]): druid_instance;
1915
- /**
1916
- * Remove all components on late remove step DruidInstance
1917
- */
1918
- _clear_late_remove(): void;
1919
1615
  /**
1920
1616
  * Create new Druid widget instance
1921
1617
  */
1922
- new_widget<T extends druid_component>(widget: T, template: string | undefined, nodes: LuaTable<Hash, Opaque<"node">> | Opaque<"node"> | string | undefined, ...args: unknown[]): T;
1618
+ new_widget<T extends druid_component>(widget: T, template?: string | undefined, nodes?: LuaTable<Hash, Opaque<"node">> | Opaque<"node"> | string | undefined, ...args: unknown[]): T;
1923
1619
  /**
1924
1620
  * Create Button component
1925
1621
  */
1926
- new_button(node: string | Opaque<"node">, callback: unknown | unknown | undefined, params: unknown | undefined, anim_node: Opaque<"node"> | string | undefined): druid_button;
1622
+ new_button(node: string | Opaque<"node">, callback?: ((...args: any[]) => unknown) | event | undefined, params?: unknown | undefined, anim_node?: Opaque<"node"> | string | undefined): druid_button;
1927
1623
  /**
1928
1624
  * Create Blocker component
1929
1625
  */
@@ -1931,19 +1627,19 @@ declare module 'druid.druid' {
1931
1627
  /**
1932
1628
  * Create BackHandler component
1933
1629
  */
1934
- new_back_handler(callback: unknown | unknown | undefined, params: unknown | undefined): druid_back_handler;
1630
+ new_back_handler(callback?: ((...args: any[]) => unknown) | event | undefined, params?: unknown | undefined): druid_back_handler;
1935
1631
  /**
1936
1632
  * Create Hover component
1937
1633
  */
1938
- new_hover(node: string | Opaque<"node">, on_hover_callback: unknown | undefined, on_mouse_hover_callback: unknown | undefined): druid_hover;
1634
+ new_hover(node: string | Opaque<"node">, on_hover_callback?: ((...args: any[]) => unknown) | undefined, on_mouse_hover_callback?: ((...args: any[]) => unknown) | undefined): druid_hover;
1939
1635
  /**
1940
1636
  * Create Text component
1941
1637
  */
1942
- new_text(node: string | Opaque<"node"> | druid_text, value: string | undefined, adjust_type: string | undefined): druid_text;
1638
+ new_text(node: string | Opaque<"node"> | druid_text, value?: string | undefined, adjust_type?: string | undefined): druid_text;
1943
1639
  /**
1944
1640
  * Create Grid component
1945
1641
  */
1946
- new_grid(parent_node: string | Opaque<"node">, item: string | Opaque<"node">, in_row: number | undefined): druid_grid;
1642
+ new_grid(parent_node: string | Opaque<"node">, item: string | Opaque<"node">, in_row?: number | undefined): druid_grid;
1947
1643
  /**
1948
1644
  * Create Scroll component
1949
1645
  */
@@ -1951,63 +1647,63 @@ declare module 'druid.druid' {
1951
1647
  /**
1952
1648
  * Create Drag component
1953
1649
  */
1954
- new_drag(node: string | Opaque<"node">, on_drag_callback: unknown | undefined): druid_drag;
1650
+ new_drag(node: string | Opaque<"node">, on_drag_callback?: ((...args: any[]) => unknown) | undefined): druid_drag;
1955
1651
  /**
1956
1652
  * Create Swipe component
1957
1653
  */
1958
- new_swipe(node: string | Opaque<"node">, on_swipe_callback: unknown | undefined): druid_swipe;
1654
+ new_swipe(node: string | Opaque<"node">, on_swipe_callback?: ((...args: any[]) => unknown) | undefined): druid_swipe;
1959
1655
  /**
1960
1656
  * Create LangText component
1961
1657
  */
1962
- new_lang_text(node: string | Opaque<"node">, locale_id: string | undefined, adjust_type: string | undefined): druid_lang_text;
1658
+ new_lang_text(node: string | Opaque<"node">, locale_id?: string | undefined, adjust_type?: string | undefined): druid_lang_text;
1963
1659
  /**
1964
1660
  * Create Slider component
1965
1661
  */
1966
- new_slider(pin_node: string | Opaque<"node">, end_pos: Vector3, callback: unknown | undefined): druid_slider;
1662
+ new_slider(pin_node: string | Opaque<"node">, end_pos: Vector3, callback?: ((...args: any[]) => unknown) | undefined): druid_slider;
1967
1663
  /**
1968
1664
  * Create Input component
1969
1665
  */
1970
- new_input(click_node: string | Opaque<"node">, text_node: string | Opaque<"node"> | druid_text, keyboard_type: number | undefined): druid_input;
1666
+ new_input(click_node: string | Opaque<"node">, text_node: string | Opaque<"node"> | druid_text, keyboard_type?: number | undefined): druid_input;
1971
1667
  /**
1972
1668
  * Create DataList component
1973
1669
  */
1974
- new_data_list(druid_scroll: druid_scroll, druid_grid: druid_grid, create_function: unknown): druid_data_list;
1670
+ new_data_list(druid_scroll: druid_scroll, druid_grid: druid_grid, create_function: (...args: any[]) => unknown): druid_data_list;
1975
1671
  /**
1976
1672
  * Create Timer component
1977
1673
  */
1978
- new_timer(node: string | Opaque<"node">, seconds_from: number | undefined, seconds_to: number | undefined, callback: unknown | undefined): druid_timer;
1674
+ new_timer(node: string | Opaque<"node">, seconds_from?: number | undefined, seconds_to?: number | undefined, callback?: ((...args: any[]) => unknown) | undefined): druid_timer;
1979
1675
  /**
1980
1676
  * Create Progress component
1981
1677
  */
1982
- new_progress(node: string | Opaque<"node">, key: string, init_value: number | undefined): druid_progress;
1678
+ new_progress(node: string | Opaque<"node">, key: string, init_value?: number | undefined): druid_progress;
1983
1679
  /**
1984
1680
  * Create Layout component
1985
1681
  */
1986
- new_layout(node: string | Opaque<"node">, mode: string | undefined): druid_layout;
1682
+ new_layout(node: string | Opaque<"node">, mode?: string | undefined): druid_layout;
1987
1683
  /**
1988
1684
  * Create Container component
1989
1685
  */
1990
- new_container(node: string | Opaque<"node">, mode: druid_container_mode | undefined, callback: ((self: druid_container, size: Vector3) => void) | undefined): druid_container;
1686
+ new_container(node: string | Opaque<"node">, mode?: druid_container_mode | undefined, callback?: ((self: druid_container, size: Vector3) => void) | undefined): druid_container;
1991
1687
  /**
1992
1688
  * Create Hotkey component
1993
1689
  */
1994
- new_hotkey(keys_array: string | string[], callback: unknown | unknown | undefined, callback_argument: unknown | undefined): druid_hotkey;
1690
+ new_hotkey(keys_array: string | string[], callback?: ((...args: any[]) => unknown) | event | undefined, callback_argument?: unknown | undefined): druid_hotkey;
1995
1691
  /**
1996
1692
  * Create RichText component.
1997
1693
  */
1998
- new_rich_text(text_node: string | Opaque<"node">, value: string | undefined): druid_rich_text;
1694
+ new_rich_text(text_node: string | Opaque<"node">, value?: string | undefined): druid_rich_text;
1999
1695
  /**
2000
1696
  * Create RichInput component.
2001
1697
  * As a template please check rich_input.gui layout.
2002
1698
  */
2003
- new_rich_input(template: string, nodes: LuaTable | undefined): druid_rich_input;
1699
+ new_rich_input(template: string, nodes?: LuaTable | undefined): druid_rich_input;
2004
1700
  }
2005
1701
  interface druid_system_settings {
2006
1702
  }
2007
1703
  /**
2008
1704
  * Create a new Druid instance for creating GUI components.
2009
1705
  */
2010
- export function new_(this: void, context: LuaTable, style: LuaTable | undefined): druid_instance;
1706
+ export function new_(this: void, context: LuaTable, style?: LuaTable | undefined): druid_instance;
2011
1707
  export { new_ as new };
2012
1708
  /**
2013
1709
  * Register a new external Druid component.
@@ -2051,7 +1747,7 @@ declare module 'druid.druid' {
2051
1747
  * msg.url(nil, nil, "gui_widget") -- current game object
2052
1748
  * msg.url(nil, object_url, "gui_widget") -- other game object
2053
1749
  */
2054
- export function get_widget<T extends druid_widget>(this: void, widget_class: T, gui_url: Url | string, params: unknown | undefined): T;
1750
+ export function get_widget<T extends druid_widget>(this: void, widget_class: T, gui_url: Url | string, params?: unknown | undefined): T;
2055
1751
  /**
2056
1752
  * Bind a Druid GUI instance to the current game object.
2057
1753
  * This instance now can produce widgets from `druid.get_widget()` function.
@@ -2062,6 +1758,6 @@ declare module 'druid.druid' {
2062
1758
  * Should be called on final, where druid instance is destroyed.
2063
1759
  */
2064
1760
  export function unregister_druid_as_widget(this: void): void;
2065
- export function set_logger(this: void, logger_instance: druid_logger | LuaTable | undefined): void;
2066
- export function get_logger(this: void, name: string | undefined, level: string | undefined): druid_logger;
1761
+ export function set_logger(this: void, logger_instance?: druid_logger | LuaTable | undefined): void;
1762
+ export function get_logger(this: void, name?: string | undefined, level?: string | undefined): druid_logger;
2067
1763
  }