@defold-typescript/library-types 0.22.0 → 0.23.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 (56) hide show
  1. package/api-doc/{bridge.bridge.json → bridge.json} +749 -844
  2. package/api-doc/decore.json +22 -22
  3. package/api-doc/druid.json +195 -1790
  4. package/api-doc/event.json +1074 -0
  5. package/api-doc/immutable.json +65 -0
  6. package/api-doc/lang.json +528 -0
  7. package/api-doc/{event.event.json → log.json} +96 -101
  8. package/api-doc/narrator.json +647 -0
  9. package/api-doc/proto.json +995 -0
  10. package/api-doc/saver.saver.json +713 -263
  11. package/api-doc/saver.storage.json +282 -52
  12. package/api-doc/squid.json +846 -0
  13. package/api-doc/tweener.json +277 -0
  14. package/generated/bridge.d.ts +468 -0
  15. package/generated/decore.d.ts +36 -36
  16. package/generated/druid.d.ts +137 -443
  17. package/generated/event.d.ts +318 -0
  18. package/generated/immutable.d.ts +13 -0
  19. package/generated/lang.d.ts +101 -0
  20. package/generated/log.d.ts +36 -0
  21. package/generated/narrator.d.ts +121 -0
  22. package/generated/proto.d.ts +146 -0
  23. package/generated/saver.saver.d.ts +287 -42
  24. package/generated/saver.storage.d.ts +77 -14
  25. package/generated/squid.d.ts +127 -0
  26. package/generated/tweener.d.ts +42 -0
  27. package/library-classification.json +0 -71
  28. package/library-targets.json +0 -66
  29. package/luals-targets.json +114 -0
  30. package/package.json +4 -33
  31. package/script-api-targets.json +15 -0
  32. package/scripts/__snapshots__/parse-luals.test.ts.snap +340 -75
  33. package/scripts/apply-luals-overrides.ts +63 -0
  34. package/scripts/emit-library-dts.ts +84 -3
  35. package/scripts/lower-api-doc.ts +48 -16
  36. package/scripts/luals-fidelity.ts +7 -0
  37. package/scripts/map-luals-types.ts +34 -1
  38. package/scripts/parse-luals.ts +423 -18
  39. package/scripts/sync-luals-types.ts +15 -1
  40. package/scripts/sync-script-api-types.ts +368 -0
  41. package/api-doc/immutable.immutable.json +0 -63
  42. package/api-doc/lang.lang.json +0 -411
  43. package/api-doc/log.log.json +0 -50
  44. package/api-doc/narrator.narrator.json +0 -150
  45. package/api-doc/proto.proto.json +0 -355
  46. package/api-doc/squid.squid.json +0 -660
  47. package/api-doc/tweener.tweener.json +0 -419
  48. package/generated/bridge.bridge.d.ts +0 -533
  49. package/generated/event.event.d.ts +0 -54
  50. package/generated/immutable.immutable.d.ts +0 -13
  51. package/generated/lang.lang.d.ts +0 -33
  52. package/generated/log.log.d.ts +0 -40
  53. package/generated/narrator.narrator.d.ts +0 -66
  54. package/generated/proto.proto.d.ts +0 -36
  55. package/generated/squid.squid.d.ts +0 -106
  56. package/generated/tweener.tweener.d.ts +0 -151
@@ -16,12 +16,11 @@ declare module 'druid.druid' {
16
16
  */
17
17
  interface druid_back_handler extends druid_component {
18
18
  on_back: unknown;
19
- params: unknown | undefined;
19
+ params?: unknown | undefined;
20
20
  /**
21
21
  * The Back Handler constructor
22
22
  */
23
- init(callback: unknown | undefined, params: unknown | undefined): void;
24
- on_input(action_id: Hash, action: LuaTable): boolean;
23
+ init(callback?: unknown | undefined, params?: unknown | undefined): void;
25
24
  }
26
25
  /**
27
26
  * Druid component for block input. Use it to block input in special zone.
@@ -36,12 +35,10 @@ declare module 'druid.druid' {
36
35
  */
37
36
  interface druid_blocker extends druid_component {
38
37
  node: Opaque<"node">;
39
- _is_enabled: boolean;
40
38
  /**
41
39
  * The Blocker constructor
42
40
  */
43
41
  init(node: Opaque<"node"> | string): void;
44
- on_input(action_id: string, action: LuaTable): boolean;
45
42
  /**
46
43
  * Set blocker enabled state
47
44
  */
@@ -56,15 +53,15 @@ declare module 'druid.druid' {
56
53
  * You can override this component styles params in Druid styles table or create your own style
57
54
  */
58
55
  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;
56
+ LONGTAP_TIME?: number | undefined;
57
+ AUTOHOLD_TRIGGER?: number | undefined;
58
+ DOUBLETAP_TIME?: number | undefined;
59
+ on_init?: ((self: unknown) => void) | undefined;
60
+ on_click?: ((self: unknown, node: unknown) => void) | undefined;
61
+ on_click_disabled?: ((self: unknown, node: unknown) => void) | undefined;
62
+ on_hover?: ((self: unknown, node: unknown, hover_state: unknown) => void) | undefined;
63
+ on_mouse_hover?: ((self: unknown, node: unknown, hover_state: unknown) => void) | undefined;
64
+ on_set_enabled?: ((self: unknown, node: unknown, enabled_state: unknown) => void) | undefined;
68
65
  }
69
66
  /**
70
67
  * Basic Druid input component. Handle input on node and provide different callbacks on touch events.
@@ -97,7 +94,7 @@ declare module 'druid.druid' {
97
94
  anim_node: Opaque<"node">;
98
95
  params: unknown;
99
96
  hover: druid_hover;
100
- click_zone: Opaque<"node"> | undefined;
97
+ click_zone?: Opaque<"node"> | undefined;
101
98
  start_scale: Vector3;
102
99
  start_pos: Vector3;
103
100
  disabled: boolean;
@@ -106,21 +103,17 @@ declare module 'druid.druid' {
106
103
  /**
107
104
  * The constructor for the button component
108
105
  */
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;
106
+ init(node_or_node_id: Opaque<"node"> | string, callback?: (() => void) | undefined, custom_args?: unknown | undefined, anim_node?: Opaque<"node"> | string | undefined): void;
111
107
  /**
112
108
  * Remove default button style animations
113
109
  */
114
110
  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
111
  /**
119
112
  * Set button enabled state.
120
113
  * The style.on_set_enabled will be triggered.
121
114
  * Disabled button is not clickable.
122
115
  */
123
- set_enabled(state: boolean | undefined): druid_button;
116
+ set_enabled(state?: boolean | undefined): druid_button;
124
117
  /**
125
118
  * Get button enabled state.
126
119
  * By default all Buttons are enabled on creating.
@@ -131,7 +124,7 @@ declare module 'druid.druid' {
131
124
  * Useful to restrict click outside of stencil node or scrollable content.
132
125
  * If button node placed inside stencil node, it will be automatically set to this stencil node.
133
126
  */
134
- set_click_zone(zone: Opaque<"node"> | string | undefined): druid_button;
127
+ set_click_zone(zone?: Opaque<"node"> | string | undefined): druid_button;
135
128
  /**
136
129
  * Set key name to trigger this button by keyboard.
137
130
  */
@@ -143,7 +136,7 @@ declare module 'druid.druid' {
143
136
  /**
144
137
  * Set function for additional check for button click availability.
145
138
  */
146
- set_check_function(check_function: unknown | undefined, failure_callback: unknown | undefined): druid_button;
139
+ set_check_function(check_function?: unknown | undefined, failure_callback?: unknown | undefined): druid_button;
147
140
  /**
148
141
  * Set Button mode to work inside user HTML5 interaction event.
149
142
  *
@@ -152,7 +145,7 @@ declare module 'druid.druid' {
152
145
  *
153
146
  * If the game is not HTML, html mode will be not enabled
154
147
  */
155
- set_web_user_interaction(is_web_mode: boolean | undefined): druid_button;
148
+ set_web_user_interaction(is_web_mode?: boolean | undefined): druid_button;
156
149
  _is_input_match(action_id: Hash): boolean;
157
150
  /**
158
151
  * Call button style on_hover callback
@@ -199,7 +192,7 @@ declare module 'druid.druid' {
199
192
  on_drag: unknown;
200
193
  on_drag_end: unknown;
201
194
  style: druid_drag_style;
202
- click_zone: Opaque<"node"> | undefined;
195
+ click_zone?: Opaque<"node"> | undefined;
203
196
  is_touch: boolean;
204
197
  is_drag: boolean;
205
198
  can_x: boolean;
@@ -212,26 +205,18 @@ declare module 'druid.druid' {
212
205
  screen_x: number;
213
206
  screen_y: number;
214
207
  touch_start_pos: Vector3;
215
- _is_enabled: boolean;
216
- _x_koef: number;
217
- _y_koef: number;
218
208
  /**
219
209
  * The constructor for Drag component
220
210
  */
221
211
  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;
223
212
  /**
224
213
  * Set Drag component enabled state.
225
214
  */
226
215
  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
216
  /**
232
217
  * Set Drag click zone
233
218
  */
234
- set_click_zone(node: Opaque<"node"> | string | undefined): druid_drag;
219
+ set_click_zone(node?: Opaque<"node"> | string | undefined): druid_drag;
235
220
  /**
236
221
  * Set Drag component enabled state.
237
222
  */
@@ -241,7 +226,7 @@ declare module 'druid.druid' {
241
226
  */
242
227
  is_enabled(): boolean;
243
228
  _start_touch(): void;
244
- _end_touch(touch: touch | undefined): void;
229
+ _end_touch(touch?: touch | undefined): void;
245
230
  _process_touch(touch: touch): void;
246
231
  /**
247
232
  * Return current touch action from action input data
@@ -255,8 +240,8 @@ declare module 'druid.druid' {
255
240
  _on_touch_release(action_id: Hash, action: LuaTable, touch: LuaTable): void;
256
241
  }
257
242
  interface druid_hover_style {
258
- ON_HOVER_CURSOR: string | number | undefined;
259
- ON_MOUSE_HOVER_CURSOR: string | number | undefined;
243
+ ON_HOVER_CURSOR?: string | number | undefined;
244
+ ON_MOUSE_HOVER_CURSOR?: string | number | undefined;
260
245
  }
261
246
  /**
262
247
  * The component for handling hover events on a node
@@ -267,22 +252,14 @@ declare module 'druid.druid' {
267
252
  on_mouse_hover: unknown;
268
253
  style: druid_hover_style;
269
254
  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
255
  /**
275
256
  * The constructor for the hover component
276
257
  */
277
258
  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;
282
259
  /**
283
260
  * Set hover state
284
261
  */
285
- set_hover(state: boolean | undefined): void;
262
+ set_hover(state?: boolean | undefined): void;
286
263
  /**
287
264
  * Return current hover state. True if touch action was on the node at current time
288
265
  */
@@ -290,7 +267,7 @@ declare module 'druid.druid' {
290
267
  /**
291
268
  * Set mouse hover state
292
269
  */
293
- set_mouse_hover(state: boolean | undefined): void;
270
+ set_mouse_hover(state?: boolean | undefined): void;
294
271
  /**
295
272
  * Return current hover state. True if nil action_id (usually desktop mouse) was on the node at current time
296
273
  */
@@ -298,36 +275,34 @@ declare module 'druid.druid' {
298
275
  /**
299
276
  * Strict hover click area. Useful for no click events outside stencil node
300
277
  */
301
- set_click_zone(zone: Opaque<"node"> | string | undefined): void;
278
+ set_click_zone(zone?: Opaque<"node"> | string | undefined): void;
302
279
  /**
303
280
  * Set enable state of hover component.
304
281
  * If hover is not enabled, it will not generate
305
282
  * any hover events
306
283
  */
307
- set_enabled(state: boolean | undefined): void;
284
+ set_enabled(state?: boolean | undefined): void;
308
285
  /**
309
286
  * Return current hover enabled state
310
287
  */
311
288
  is_enabled(): boolean;
312
- on_remove(): void;
313
- _set_cursor(): void;
314
289
  }
315
290
  /**
316
291
  * Scroll style parameters
317
292
  */
318
293
  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;
294
+ FRICT?: number | undefined;
295
+ FRICT_HOLD?: number | undefined;
296
+ INERT_THRESHOLD?: number | undefined;
297
+ INERT_SPEED?: number | undefined;
298
+ POINTS_DEADZONE?: number | undefined;
299
+ BACK_SPEED?: number | undefined;
300
+ ANIM_SPEED?: number | undefined;
301
+ EXTRA_STRETCH_SIZE?: number | undefined;
302
+ SMALL_CONTENT_SCROLL?: boolean | undefined;
303
+ WHEEL_SCROLL_SPEED?: number | undefined;
304
+ WHEEL_SCROLL_INVERTED?: boolean | undefined;
305
+ WHEEL_SCROLL_BY_INERTION?: boolean | undefined;
331
306
  }
332
307
  /**
333
308
  * Basic Druid scroll component. Handles all scrolling behavior in Druid GUI.
@@ -350,7 +325,7 @@ declare module 'druid.druid' {
350
325
  */
351
326
  interface druid_scroll extends druid_component {
352
327
  node: Opaque<"node">;
353
- click_zone: Opaque<"node"> | undefined;
328
+ click_zone?: Opaque<"node"> | undefined;
354
329
  on_scroll: unknown;
355
330
  on_scroll_to: unknown;
356
331
  on_point_scroll: unknown;
@@ -363,43 +338,29 @@ declare module 'druid.druid' {
363
338
  available_pos: Vector4;
364
339
  available_size: Vector3;
365
340
  drag: druid_drag;
366
- selected: number | undefined;
341
+ selected?: number | undefined;
367
342
  is_animate: boolean;
368
343
  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
344
  /**
378
345
  * The Scroll constructor
379
346
  */
380
347
  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
348
  /**
388
349
  * Start scroll to target point.
389
350
  */
390
- scroll_to(point: Vector3, is_instant: boolean | undefined): void;
351
+ scroll_to(point: Vector3, is_instant?: boolean | undefined): void;
391
352
  /**
392
353
  * Scroll to the node, if node is not visible in scroll view
393
354
  */
394
- scroll_to_make_node_visible(node: Opaque<"node">, is_instant: boolean | undefined): void;
355
+ scroll_to_make_node_visible(node: Opaque<"node">, is_instant?: boolean | undefined): void;
395
356
  /**
396
357
  * Scroll to item in scroll by point index.
397
358
  */
398
- scroll_to_index(index: number, is_silent: boolean | undefined, is_instant: boolean | undefined): void;
359
+ scroll_to_index(index: number, is_silent?: boolean | undefined, is_instant?: boolean | undefined): void;
399
360
  /**
400
361
  * Start scroll to target scroll percent
401
362
  */
402
- scroll_to_percent(percent: Vector3, is_instant: boolean | undefined): void;
363
+ scroll_to_percent(percent: Vector3, is_instant?: boolean | undefined): void;
403
364
  /**
404
365
  * Return current scroll progress status.
405
366
  */
@@ -407,7 +368,7 @@ declare module 'druid.druid' {
407
368
  /**
408
369
  * Set scroll content size.
409
370
  */
410
- set_size(size: Vector3, offset: Vector3 | undefined): druid_scroll;
371
+ set_size(size: Vector3, offset?: Vector3 | undefined): druid_scroll;
411
372
  /**
412
373
  * Set new scroll view size in case the node size was changed.
413
374
  */
@@ -427,7 +388,7 @@ declare module 'druid.druid' {
427
388
  /**
428
389
  * Set extra size for scroll stretching
429
390
  */
430
- set_extra_stretch_size(stretch_size: number | undefined): druid_scroll;
391
+ set_extra_stretch_size(stretch_size?: number | undefined): druid_scroll;
431
392
  /**
432
393
  * Return vector of scroll size with width and height.
433
394
  */
@@ -451,11 +412,11 @@ declare module 'druid.druid' {
451
412
  /**
452
413
  * Bind the grid component (Static or Dynamic) to recalculate
453
414
  */
454
- bind_grid(grid: druid_grid | undefined): druid_scroll;
415
+ bind_grid(grid?: druid_grid | undefined): druid_scroll;
455
416
  /**
456
417
  * Bind the layout component to recalculate
457
418
  */
458
- bind_layout(layout: druid_layout | undefined): druid_scroll;
419
+ bind_layout(layout?: druid_layout | undefined): druid_scroll;
459
420
  /**
460
421
  * Strict drag scroll area. Useful for
461
422
  */
@@ -464,10 +425,6 @@ declare module 'druid.druid' {
464
425
  _check_soft_zone(): void;
465
426
  _cancel_animate(): void;
466
427
  _set_scroll_position(): void;
467
- /**
468
- * Find closer point of interest
469
- */
470
- _check_points(): void;
471
428
  _check_threshold(): void;
472
429
  _update_free_scroll(): void;
473
430
  _update_hand_scroll(): void;
@@ -489,8 +446,8 @@ declare module 'druid.druid' {
489
446
  _get_size_vector(vector: Vector4): Vector3;
490
447
  }
491
448
  interface druid_grid_style {
492
- IS_DYNAMIC_NODE_POSES: boolean | undefined;
493
- IS_ALIGN_LAST_ROW: boolean | undefined;
449
+ IS_DYNAMIC_NODE_POSES?: boolean | undefined;
450
+ IS_ALIGN_LAST_ROW?: boolean | undefined;
494
451
  }
495
452
  /**
496
453
  * The component for manage the nodes position in the grid with various options
@@ -514,8 +471,7 @@ declare module 'druid.druid' {
514
471
  /**
515
472
  * The constructor for the grid component
516
473
  */
517
- init(parent: string | Opaque<"node">, element: Opaque<"node">, in_row: number | undefined): void;
518
- on_style_change(style: druid_grid_style): void;
474
+ init(parent: string | Opaque<"node">, element: Opaque<"node">, in_row?: number | undefined): void;
519
475
  /**
520
476
  * Return pos for grid node index
521
477
  */
@@ -532,7 +488,6 @@ declare module 'druid.druid' {
532
488
  * Return grid index by node
533
489
  */
534
490
  get_index_by_node(node: Opaque<"node">): number | undefined;
535
- on_layout_change(): void;
536
491
  /**
537
492
  * Set grid anchor. Default anchor is equal to anchor of grid parent node
538
493
  */
@@ -548,15 +503,15 @@ declare module 'druid.druid' {
548
503
  /**
549
504
  * Add new item to the grid
550
505
  */
551
- add(item: Opaque<"node">, index: number | undefined, shift_policy: number | undefined, is_instant: boolean | undefined): druid_grid;
506
+ add(item: Opaque<"node">, index?: number | undefined, shift_policy?: number | undefined, is_instant?: boolean | undefined): druid_grid;
552
507
  /**
553
508
  * Set new items to the grid. All previous items will be removed
554
509
  */
555
- set_items(nodes: Opaque<"node">[], is_instant: boolean | undefined): druid_grid;
510
+ set_items(nodes: Opaque<"node">[], is_instant?: boolean | undefined): druid_grid;
556
511
  /**
557
512
  * Remove the item from the grid. Note that gui node will be not deleted
558
513
  */
559
- remove(index: number, shift_policy: number | undefined, is_instant: boolean | undefined): Opaque<"node">;
514
+ remove(index: number, shift_policy?: number | undefined, is_instant?: boolean | undefined): Opaque<"node">;
560
515
  /**
561
516
  * Return items count in grid
562
517
  */
@@ -596,44 +551,18 @@ declare module 'druid.druid' {
596
551
  /**
597
552
  * Set new node size for grid
598
553
  */
599
- set_item_size(width: number | undefined, height: number | undefined): druid_grid;
554
+ set_item_size(width?: number | undefined, height?: number | undefined): druid_grid;
600
555
  /**
601
556
  * Sort grid nodes by custom comparator function
602
557
  */
603
558
  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;
630
559
  _extend_border(border: Vector4, pos: Vector3, size: Vector3, pivot: Vector3): void;
631
560
  }
632
561
  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;
562
+ TRIM_POSTFIX?: string | undefined;
563
+ DEFAULT_ADJUST?: string | undefined;
564
+ ADJUST_STEPS?: number | undefined;
565
+ ADJUST_SCALE_DELTA?: number | undefined;
637
566
  }
638
567
  /**
639
568
  * Basic Druid text component. Text components by default have the text size adjusting.
@@ -667,13 +596,11 @@ declare module 'druid.druid' {
667
596
  /**
668
597
  * The Text constructor
669
598
  */
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;
599
+ init(node: string | Opaque<"node">, value?: string | undefined, adjust_type?: druid_text_adjust_type | undefined): void;
673
600
  /**
674
601
  * Calculate text width with font with respect to trailing space
675
602
  */
676
- get_text_size(text: string | undefined): LuaMultiReturn<[number, number]>;
603
+ get_text_size(text?: string | undefined): LuaMultiReturn<[number, number]>;
677
604
  /**
678
605
  * Get chars count by width
679
606
  */
@@ -711,7 +638,7 @@ declare module 'druid.druid' {
711
638
  /**
712
639
  * Set text adjust, refresh the current text visuals, if needed
713
640
  */
714
- set_text_adjust(adjust_type: druid_text_adjust_type | undefined, minimal_scale: number | undefined): druid_text;
641
+ set_text_adjust(adjust_type?: druid_text_adjust_type | undefined, minimal_scale?: number | undefined): druid_text;
715
642
  /**
716
643
  * Set minimal scale for "downscale_limited" or "scale_then_scroll" adjust types
717
644
  */
@@ -720,20 +647,6 @@ declare module 'druid.druid' {
720
647
  * Return current text adjust type
721
648
  */
722
649
  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
650
  }
738
651
  /**
739
652
  * Color palette and utility functions for working with colors.
@@ -744,12 +657,12 @@ declare module 'druid.druid' {
744
657
  interface druid_component_meta {
745
658
  template: string;
746
659
  context: LuaTable;
747
- nodes: LuaTable<Hash, Opaque<"node">> | undefined;
748
- style: LuaTable | undefined;
660
+ nodes?: LuaTable<Hash, Opaque<"node">> | undefined;
661
+ style?: LuaTable | undefined;
749
662
  druid: druid_instance;
750
663
  input_enabled: boolean;
751
664
  children: LuaTable;
752
- parent: druid_component | undefined;
665
+ parent?: druid_component | undefined;
753
666
  instance_class: LuaTable;
754
667
  }
755
668
  interface druid_component_component {
@@ -760,71 +673,16 @@ declare module 'druid.druid' {
760
673
  _uid: number;
761
674
  }
762
675
  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
676
  /**
819
677
  * Set component style. Pass nil to clear style
820
678
  */
821
- set_style<T>(self: T, druid_style: LuaTable | undefined): T;
679
+ set_style<T>(self: T, druid_style?: LuaTable | undefined): T;
822
680
  /**
823
681
  * Set component template name. Pass nil to clear template.
824
682
  * This template id used to access nodes inside the template on GUI scene.
825
683
  * Parent template will be added automatically if exist.
826
684
  */
827
- set_template<T>(self: T, template: string | undefined): T;
685
+ set_template<T>(self: T, template?: string | undefined): T;
828
686
  /**
829
687
  * Get full template name.
830
688
  */
@@ -832,27 +690,15 @@ declare module 'druid.druid' {
832
690
  /**
833
691
  * Set current component nodes, returned from `gui.clone_tree` function.
834
692
  */
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;
693
+ set_nodes(nodes?: LuaTable<Hash, Opaque<"node">> | Opaque<"node"> | string | undefined): druid_component;
840
694
  /**
841
695
  * Get component node by node_id. Respect to current template and nodes.
842
696
  */
843
697
  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
698
  /**
849
699
  * Get component name
850
700
  */
851
701
  get_name(): string;
852
- /**
853
- * Get parent component name
854
- */
855
- get_parent_name(): string | undefined;
856
702
  /**
857
703
  * Get component input priority, the bigger number processed first. Default value: 10
858
704
  */
@@ -860,15 +706,11 @@ declare module 'druid.druid' {
860
706
  /**
861
707
  * Set component input priority, the bigger number processed first. Default value: 10
862
708
  */
863
- set_input_priority(value: number, is_temporary: boolean | undefined): druid_component;
709
+ set_input_priority(value: number, is_temporary?: boolean | undefined): druid_component;
864
710
  /**
865
711
  * Reset component input priority to it's default value, that was set in `create` function or `set_input_priority`
866
712
  */
867
713
  reset_input_priority(): druid_component;
868
- /**
869
- * Get component UID, unique identifier created in component creation order.
870
- */
871
- get_uid(): number;
872
714
  /**
873
715
  * Set component input state. By default it's enabled.
874
716
  * If input is disabled, the component will not receive input events.
@@ -883,34 +725,6 @@ declare module 'druid.druid' {
883
725
  * Get parent component
884
726
  */
885
727
  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
728
  }
915
729
  interface druid_system_const {
916
730
  }
@@ -924,7 +738,6 @@ declare module 'druid.druid' {
924
738
  cursor_text: Opaque<"node">;
925
739
  cursor_position: Vector3;
926
740
  init(template: string, nodes: LuaTable): void;
927
- on_input(action_id: Hash, action: LuaTable): boolean;
928
741
  /**
929
742
  * Set placeholder text
930
743
  */
@@ -1011,9 +824,9 @@ declare module 'druid.druid' {
1011
824
  interface druid_rich_text_metrics {
1012
825
  width: number;
1013
826
  height: number;
1014
- offset_x: number | undefined;
1015
- offset_y: number | undefined;
1016
- node_size: Vector3 | undefined;
827
+ offset_x?: number | undefined;
828
+ offset_y?: number | undefined;
829
+ node_size?: Vector3 | undefined;
1017
830
  }
1018
831
  /**
1019
832
  * The component that handles a rich text display, allows to custom color, size, font, etc. of the parts of the text
@@ -1021,13 +834,7 @@ declare module 'druid.druid' {
1021
834
  interface druid_rich_text extends druid_component {
1022
835
  root: Opaque<"node">;
1023
836
  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;
837
+ init(text_node: Opaque<"node"> | string, value?: string | undefined): void;
1031
838
  /**
1032
839
  * Set text for Rich Text
1033
840
  * -- Color
@@ -1058,7 +865,7 @@ declare module 'druid.druid' {
1058
865
  * rich_text:set_text("<img=texture:image,size>Display image with size")
1059
866
  * rich_text:set_text("<img=texture:image,width,height>Display image with width and height")
1060
867
  */
1061
- set_text(text: string | undefined): LuaMultiReturn<[druid_rich_text_word[], druid_rich_text_lines_metrics]>;
868
+ set_text(text?: string | undefined): LuaMultiReturn<[druid_rich_text_word[], druid_rich_text_lines_metrics]>;
1062
869
  /**
1063
870
  * Get the current text of the rich text
1064
871
  */
@@ -1067,7 +874,6 @@ declare module 'druid.druid' {
1067
874
  * Set pivot and keep the content in place (anchor). After this, resizing the root will keep the anchor fixed.
1068
875
  */
1069
876
  set_pivot(pivot: number): druid_rich_text;
1070
- on_remove(): void;
1071
877
  /**
1072
878
  * Clear all created words.
1073
879
  */
@@ -1088,7 +894,6 @@ declare module 'druid.druid' {
1088
894
  * Get the current line metrics
1089
895
  */
1090
896
  get_line_metric(): druid_rich_text_lines_metrics;
1091
- _create_settings(): LuaTable;
1092
897
  /**
1093
898
  * Set the width of the rich text, not affects the size of current spawned words
1094
899
  */
@@ -1135,10 +940,10 @@ declare module 'druid.druid' {
1135
940
  center_offset: Vector3;
1136
941
  mode: druid_container_mode;
1137
942
  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;
943
+ min_size_x?: number | undefined;
944
+ min_size_y?: number | undefined;
945
+ max_size_x?: number | undefined;
946
+ max_size_y?: number | undefined;
1142
947
  on_size_changed: unknown;
1143
948
  _parent_container: druid_container;
1144
949
  _containers: LuaTable;
@@ -1146,9 +951,7 @@ declare module 'druid.druid' {
1146
951
  /**
1147
952
  * The Container constructor
1148
953
  */
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;
954
+ init(node: Opaque<"node">, mode: string, callback?: ((self: druid_container, size: Vector3) => void) | undefined): void;
1152
955
  /**
1153
956
  * Refresh the origins of the container, origins is the size and position of the container when it was created
1154
957
  */
@@ -1157,11 +960,10 @@ declare module 'druid.druid' {
1157
960
  * Set the pivot of the container
1158
961
  */
1159
962
  set_pivot(pivot: Opaque<"constant">): void;
1160
- on_style_change(style: druid_container_style): void;
1161
963
  /**
1162
964
  * Set new size of layout node
1163
965
  */
1164
- set_size(width: number | undefined, height: number | undefined, anchor_pivot: Opaque<"constant"> | undefined): druid_container;
966
+ set_size(width?: number | undefined, height?: number | undefined, anchor_pivot?: Opaque<"constant"> | undefined): druid_container;
1165
967
  /**
1166
968
  * Get the position of the container
1167
969
  */
@@ -1186,10 +988,9 @@ declare module 'druid.druid' {
1186
988
  * Set current size for layout node to fit inside it
1187
989
  */
1188
990
  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;
991
+ 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
992
  remove_container_by_node(): druid_container | undefined;
1192
- set_parent_container(parent_container: druid_container | undefined): void;
993
+ set_parent_container(parent_container?: druid_container | undefined): void;
1193
994
  refresh(): void;
1194
995
  refresh_scale(): void;
1195
996
  update_child_containers(): void;
@@ -1203,11 +1004,11 @@ declare module 'druid.druid' {
1203
1004
  /**
1204
1005
  * Set the minimum size of the container
1205
1006
  */
1206
- set_min_size(min_size_x: number | undefined, min_size_y: number | undefined): druid_container;
1007
+ set_min_size(min_size_x?: number | undefined, min_size_y?: number | undefined): druid_container;
1207
1008
  /**
1208
1009
  * Set the maximum size of the container
1209
1010
  */
1210
- set_max_size(max_size_x: number | undefined, max_size_y: number | undefined): druid_container;
1011
+ set_max_size(max_size_x?: number | undefined, max_size_y?: number | undefined): druid_container;
1211
1012
  }
1212
1013
  /**
1213
1014
  * Druid component to manage a list of data with a scrollable view, used to manage huge list data and render only visible elements.
@@ -1232,16 +1033,10 @@ declare module 'druid.druid' {
1232
1033
  top_index: number;
1233
1034
  last_index: number;
1234
1035
  scroll_progress: number;
1235
- _create_function: unknown;
1236
- _is_use_cache: boolean;
1237
- _cache: LuaTable;
1238
- _data: LuaTable;
1239
- _data_visual: LuaTable;
1240
1036
  /**
1241
1037
  * The DataList constructor
1242
1038
  */
1243
1039
  init(scroll: druid_scroll, grid: druid_grid, create_function: unknown): void;
1244
- on_remove(): void;
1245
1040
  /**
1246
1041
  * Set use cache version of DataList. Requires make setup of components in on_element_add callback and clean in on_element_remove
1247
1042
  */
@@ -1257,15 +1052,15 @@ declare module 'druid.druid' {
1257
1052
  /**
1258
1053
  * Add element to DataList
1259
1054
  */
1260
- add(data: LuaTable, index: number | undefined, shift_policy: number | undefined): druid_data_list;
1055
+ add(data: LuaTable, index?: number | undefined, shift_policy?: number | undefined): druid_data_list;
1261
1056
  /**
1262
1057
  * Remove element from DataList
1263
1058
  */
1264
- remove(index: number | undefined, shift_policy: number | undefined): druid_data_list;
1059
+ remove(index?: number | undefined, shift_policy?: number | undefined): druid_data_list;
1265
1060
  /**
1266
1061
  * Remove element from DataList by data value
1267
1062
  */
1268
- remove_by_data(data: LuaTable, shift_policy: number | undefined): druid_data_list;
1063
+ remove_by_data(data: LuaTable, shift_policy?: number | undefined): druid_data_list;
1269
1064
  /**
1270
1065
  * Clear the DataList and refresh visuals
1271
1066
  */
@@ -1286,23 +1081,6 @@ declare module 'druid.druid' {
1286
1081
  * Instant scroll to element with passed index
1287
1082
  */
1288
1083
  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
1084
  }
1307
1085
  interface druid_hotkey_style {
1308
1086
  MODIFICATORS: string[] | Hash[];
@@ -1326,23 +1104,15 @@ declare module 'druid.druid' {
1326
1104
  on_hotkey_pressed: unknown;
1327
1105
  on_hotkey_released: unknown;
1328
1106
  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
1107
  /**
1334
1108
  * The Hotkey constructor
1335
1109
  */
1336
- init(keys: string[] | string, callback: unknown, callback_argument: unknown | undefined): void;
1337
- on_style_change(style: druid_hotkey_style): void;
1110
+ init(keys: string[] | string, callback: unknown, callback_argument?: unknown | undefined): void;
1338
1111
  /**
1339
1112
  * Add hotkey for component callback
1340
1113
  */
1341
- add_hotkey(keys: string[] | Hash[] | string | Hash, callback_argument: unknown | undefined): druid_hotkey;
1114
+ add_hotkey(keys: string[] | Hash[] | string | Hash, callback_argument?: unknown | undefined): druid_hotkey;
1342
1115
  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
1116
  /**
1347
1117
  * If true, the callback will be triggered on action.repeated
1348
1118
  */
@@ -1350,13 +1120,13 @@ declare module 'druid.druid' {
1350
1120
  /**
1351
1121
  * If node is provided, the hotkey can be disabled, if the node is disabled
1352
1122
  */
1353
- bind_node(node: Opaque<"node"> | undefined): druid_hotkey;
1123
+ bind_node(node?: Opaque<"node"> | undefined): druid_hotkey;
1354
1124
  }
1355
1125
  interface druid_input_style {
1356
1126
  MASK_DEFAULT_CHAR: string;
1357
1127
  IS_LONGTAP_ERASE: boolean;
1358
1128
  IS_UNSELECT_ON_RESELECT: boolean;
1359
- on_init: ((self: druid_input) => void) | undefined;
1129
+ on_init?: ((self: druid_input) => void) | undefined;
1360
1130
  on_select: (self: druid_input, button_node: Opaque<"node">) => void;
1361
1131
  on_unselect: (self: druid_input, button_node: Opaque<"node">) => void;
1362
1132
  on_input_wrong: (self: druid_input, button_node: Opaque<"node">) => void;
@@ -1384,10 +1154,7 @@ declare module 'druid.druid' {
1384
1154
  on_input_wrong: unknown;
1385
1155
  on_select_cursor_change: unknown;
1386
1156
  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;
1157
+ init(click_node: Opaque<"node">, text_node: Opaque<"node"> | druid_text, keyboard_type?: Opaque<"constant"> | undefined): void;
1391
1158
  get_text_selected(): void;
1392
1159
  /**
1393
1160
  * Replace selected text with new text
@@ -1396,7 +1163,7 @@ declare module 'druid.druid' {
1396
1163
  /**
1397
1164
  * Set text for input field
1398
1165
  */
1399
- set_text(input_text: string | undefined): void;
1166
+ set_text(input_text?: string | undefined): void;
1400
1167
  /**
1401
1168
  * Select input field. It will show the keyboard and trigger on_select events
1402
1169
  */
@@ -1429,7 +1196,7 @@ declare module 'druid.druid' {
1429
1196
  /**
1430
1197
  * Set cursor position in input field
1431
1198
  */
1432
- select_cursor(cursor_index: number | undefined, start_index: number | undefined, end_index: number | undefined): druid_input;
1199
+ select_cursor(cursor_index?: number | undefined, start_index?: number | undefined, end_index?: number | undefined): druid_input;
1433
1200
  /**
1434
1201
  * Change cursor position by delta
1435
1202
  */
@@ -1451,10 +1218,7 @@ declare module 'druid.druid' {
1451
1218
  text: druid_text;
1452
1219
  node: Opaque<"node">;
1453
1220
  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;
1221
+ init(node: string | Opaque<"node">, locale_id?: string | undefined, adjust_type?: string | undefined): void;
1458
1222
  /**
1459
1223
  * Setup raw text to lang_text component. This will clear any locale settings.
1460
1224
  */
@@ -1522,8 +1286,8 @@ declare module 'druid.druid' {
1522
1286
  /**
1523
1287
  * Set the margin of the layout
1524
1288
  */
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;
1289
+ set_margin(margin_x?: number | undefined, margin_y?: number | undefined): druid_layout;
1290
+ set_padding(padding_x?: number | undefined, padding_y?: number | undefined, padding_z?: number | undefined, padding_w?: number | undefined): druid_layout;
1527
1291
  set_dirty(): druid_layout;
1528
1292
  set_justify(is_justify: boolean): druid_layout;
1529
1293
  set_type(layout_type: druid_layout_type): druid_layout;
@@ -1538,13 +1302,9 @@ declare module 'druid.druid' {
1538
1302
  remove(node_or_node_id: Opaque<"node"> | string): druid_layout;
1539
1303
  get_size(): Vector3;
1540
1304
  get_content_size(): unknown;
1541
- refresh_layout(is_instant: boolean | undefined): druid_layout;
1305
+ refresh_layout(is_instant?: boolean | undefined): druid_layout;
1542
1306
  clear_layout(): druid_layout;
1543
1307
  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
1308
  set_node_position(node: Opaque<"node">, x: number, y: number): Opaque<"node">;
1549
1309
  /**
1550
1310
  * Set custom position function for layout nodes. It will call on update poses on layout elements. Default: gui.set_position
@@ -1552,8 +1312,8 @@ declare module 'druid.druid' {
1552
1312
  set_position_function(callback: unknown): druid_layout;
1553
1313
  }
1554
1314
  interface druid_progress_style {
1555
- SPEED: number | undefined;
1556
- MIN_DELTA: number | undefined;
1315
+ SPEED?: number | undefined;
1316
+ MIN_DELTA?: number | undefined;
1557
1317
  }
1558
1318
  /**
1559
1319
  * Basic Druid progress bar component. Changes the size or scale of a node to represent progress.
@@ -1574,10 +1334,7 @@ declare module 'druid.druid' {
1574
1334
  style: druid_progress_style;
1575
1335
  key: string;
1576
1336
  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;
1337
+ init(node: string | Opaque<"node">, key: string, init_value?: number | undefined): void;
1581
1338
  update(dt: number): void;
1582
1339
  /**
1583
1340
  * Fill the progress bar
@@ -1602,13 +1359,11 @@ declare module 'druid.druid' {
1602
1359
  /**
1603
1360
  * Start animation of a progress bar
1604
1361
  */
1605
- to(to: number, callback: unknown | undefined): druid_progress;
1362
+ to(to: number, callback?: unknown | undefined): druid_progress;
1606
1363
  /**
1607
1364
  * Set progress bar max node size
1608
1365
  */
1609
1366
  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
1367
  }
1613
1368
  /**
1614
1369
  * Basic Druid slider component. Creates a draggable node over a line with progress reporting.
@@ -1627,27 +1382,14 @@ declare module 'druid.druid' {
1627
1382
  node: Opaque<"node">;
1628
1383
  on_change_value: unknown;
1629
1384
  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
1385
  /**
1639
1386
  * The Slider constructor
1640
1387
  */
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;
1388
+ init(node: Opaque<"node">, end_pos: Vector3, callback?: unknown | undefined): void;
1647
1389
  /**
1648
1390
  * Set value for slider
1649
1391
  */
1650
- set(value: number, is_silent: boolean | undefined): druid_slider;
1392
+ set(value: number, is_silent?: boolean | undefined): druid_slider;
1651
1393
  /**
1652
1394
  * Set slider steps. Pin node will
1653
1395
  * apply closest step position
@@ -1663,7 +1405,7 @@ declare module 'druid.druid' {
1663
1405
  * move at this position and node drag will start.
1664
1406
  * This function require the Defold version 1.3.0+
1665
1407
  */
1666
- set_input_node(input_node: Opaque<"node"> | string | undefined): druid_slider;
1408
+ set_input_node(input_node?: Opaque<"node"> | string | undefined): druid_slider;
1667
1409
  /**
1668
1410
  * Set Slider input enabled or disabled
1669
1411
  */
@@ -1672,13 +1414,11 @@ declare module 'druid.druid' {
1672
1414
  * Check if Slider component is enabled
1673
1415
  */
1674
1416
  is_enabled(): boolean;
1675
- _on_change_value(): void;
1676
- _set_position(): void;
1677
1417
  }
1678
1418
  interface druid_swipe_style {
1679
- SWIPE_TIME: number | undefined;
1680
- SWIPE_THRESHOLD: number | undefined;
1681
- SWIPE_TRIGGER_ON_MOVE: boolean | undefined;
1419
+ SWIPE_TIME?: number | undefined;
1420
+ SWIPE_THRESHOLD?: number | undefined;
1421
+ SWIPE_TRIGGER_ON_MOVE?: boolean | undefined;
1682
1422
  }
1683
1423
  /**
1684
1424
  * The component to manage swipe events over a node
@@ -1688,20 +1428,11 @@ declare module 'druid.druid' {
1688
1428
  on_swipe: unknown;
1689
1429
  style: druid_swipe_style;
1690
1430
  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
1431
  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;
1701
1432
  /**
1702
1433
  * Set the click zone for the swipe, useful for restricting events outside stencil node
1703
1434
  */
1704
- set_click_zone(zone: Opaque<"node"> | string | undefined): void;
1435
+ set_click_zone(zone?: Opaque<"node"> | string | undefined): void;
1705
1436
  /**
1706
1437
  * Start swipe event
1707
1438
  */
@@ -1734,10 +1465,8 @@ declare module 'druid.druid' {
1734
1465
  from: number;
1735
1466
  target: number;
1736
1467
  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;
1468
+ is_on?: boolean | undefined;
1469
+ init(node: Opaque<"node">, seconds_from?: number | undefined, seconds_to?: number | undefined, callback?: unknown | undefined): void;
1741
1470
  /**
1742
1471
  * Set the timer to a specific value
1743
1472
  */
@@ -1745,12 +1474,11 @@ declare module 'druid.druid' {
1745
1474
  /**
1746
1475
  * Set the timer to a specific value
1747
1476
  */
1748
- set_state(is_on: boolean | undefined): druid_timer;
1477
+ set_state(is_on?: boolean | undefined): druid_timer;
1749
1478
  /**
1750
1479
  * Set the timer interval
1751
1480
  */
1752
1481
  set_interval(from: number, to: number): druid_timer;
1753
- _second_string_min(sec: number): string;
1754
1482
  }
1755
1483
  /**
1756
1484
  * The helper module contains various functions that are used in the Druid library.
@@ -1768,7 +1496,6 @@ declare module 'druid.druid' {
1768
1496
  v: Vector4;
1769
1497
  }
1770
1498
  interface druid_widget extends druid_component {
1771
- druid: druid_instance;
1772
1499
  }
1773
1500
  interface druid_logger {
1774
1501
  trace: (message: string, context: unknown) => void;
@@ -1829,24 +1556,14 @@ declare module 'druid.druid' {
1829
1556
  y: number;
1830
1557
  dx: number;
1831
1558
  dy: number;
1832
- acc_x: number | undefined;
1833
- acc_y: number | undefined;
1834
- acc_z: number | undefined;
1559
+ acc_x?: number | undefined;
1560
+ acc_y?: number | undefined;
1561
+ acc_z?: number | undefined;
1835
1562
  }
1836
1563
  /**
1837
1564
  * The Druid Factory used to create components
1838
1565
  */
1839
1566
  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
1567
  /**
1851
1568
  * Check whitelists and blacklists for input components
1852
1569
  */
@@ -1865,20 +1582,6 @@ declare module 'druid.druid' {
1865
1582
  * Component `on_remove` function will be invoked, if exist.
1866
1583
  */
1867
1584
  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
1585
  /**
1883
1586
  * Call this in gui_script update function.
1884
1587
  */
@@ -1895,11 +1598,6 @@ declare module 'druid.druid' {
1895
1598
  * Called when the window event occurs
1896
1599
  */
1897
1600
  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
1601
  /**
1904
1602
  * Set whitelist components for input processing.
1905
1603
  * If whitelist is not empty and component not contains in this list,
@@ -1912,18 +1610,14 @@ declare module 'druid.druid' {
1912
1610
  * component will be not processed on the input step DruidInstance
1913
1611
  */
1914
1612
  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
1613
  /**
1920
1614
  * Create new Druid widget instance
1921
1615
  */
1922
- new_widget<T extends druid_component>(widget: T, template: string | undefined, nodes: LuaTable<Hash, Opaque<"node">> | Opaque<"node"> | string | undefined, ...args: unknown[]): T;
1616
+ new_widget<T extends druid_component>(widget: T, template?: string | undefined, nodes?: LuaTable<Hash, Opaque<"node">> | Opaque<"node"> | string | undefined, ...args: unknown[]): T;
1923
1617
  /**
1924
1618
  * Create Button component
1925
1619
  */
1926
- new_button(node: string | Opaque<"node">, callback: unknown | unknown | undefined, params: unknown | undefined, anim_node: Opaque<"node"> | string | undefined): druid_button;
1620
+ new_button(node: string | Opaque<"node">, callback?: unknown | unknown | undefined, params?: unknown | undefined, anim_node?: Opaque<"node"> | string | undefined): druid_button;
1927
1621
  /**
1928
1622
  * Create Blocker component
1929
1623
  */
@@ -1931,19 +1625,19 @@ declare module 'druid.druid' {
1931
1625
  /**
1932
1626
  * Create BackHandler component
1933
1627
  */
1934
- new_back_handler(callback: unknown | unknown | undefined, params: unknown | undefined): druid_back_handler;
1628
+ new_back_handler(callback?: unknown | unknown | undefined, params?: unknown | undefined): druid_back_handler;
1935
1629
  /**
1936
1630
  * Create Hover component
1937
1631
  */
1938
- new_hover(node: string | Opaque<"node">, on_hover_callback: unknown | undefined, on_mouse_hover_callback: unknown | undefined): druid_hover;
1632
+ new_hover(node: string | Opaque<"node">, on_hover_callback?: unknown | undefined, on_mouse_hover_callback?: unknown | undefined): druid_hover;
1939
1633
  /**
1940
1634
  * Create Text component
1941
1635
  */
1942
- new_text(node: string | Opaque<"node"> | druid_text, value: string | undefined, adjust_type: string | undefined): druid_text;
1636
+ new_text(node: string | Opaque<"node"> | druid_text, value?: string | undefined, adjust_type?: string | undefined): druid_text;
1943
1637
  /**
1944
1638
  * Create Grid component
1945
1639
  */
1946
- new_grid(parent_node: string | Opaque<"node">, item: string | Opaque<"node">, in_row: number | undefined): druid_grid;
1640
+ new_grid(parent_node: string | Opaque<"node">, item: string | Opaque<"node">, in_row?: number | undefined): druid_grid;
1947
1641
  /**
1948
1642
  * Create Scroll component
1949
1643
  */
@@ -1951,23 +1645,23 @@ declare module 'druid.druid' {
1951
1645
  /**
1952
1646
  * Create Drag component
1953
1647
  */
1954
- new_drag(node: string | Opaque<"node">, on_drag_callback: unknown | undefined): druid_drag;
1648
+ new_drag(node: string | Opaque<"node">, on_drag_callback?: unknown | undefined): druid_drag;
1955
1649
  /**
1956
1650
  * Create Swipe component
1957
1651
  */
1958
- new_swipe(node: string | Opaque<"node">, on_swipe_callback: unknown | undefined): druid_swipe;
1652
+ new_swipe(node: string | Opaque<"node">, on_swipe_callback?: unknown | undefined): druid_swipe;
1959
1653
  /**
1960
1654
  * Create LangText component
1961
1655
  */
1962
- new_lang_text(node: string | Opaque<"node">, locale_id: string | undefined, adjust_type: string | undefined): druid_lang_text;
1656
+ new_lang_text(node: string | Opaque<"node">, locale_id?: string | undefined, adjust_type?: string | undefined): druid_lang_text;
1963
1657
  /**
1964
1658
  * Create Slider component
1965
1659
  */
1966
- new_slider(pin_node: string | Opaque<"node">, end_pos: Vector3, callback: unknown | undefined): druid_slider;
1660
+ new_slider(pin_node: string | Opaque<"node">, end_pos: Vector3, callback?: unknown | undefined): druid_slider;
1967
1661
  /**
1968
1662
  * Create Input component
1969
1663
  */
1970
- new_input(click_node: string | Opaque<"node">, text_node: string | Opaque<"node"> | druid_text, keyboard_type: number | undefined): druid_input;
1664
+ new_input(click_node: string | Opaque<"node">, text_node: string | Opaque<"node"> | druid_text, keyboard_type?: number | undefined): druid_input;
1971
1665
  /**
1972
1666
  * Create DataList component
1973
1667
  */
@@ -1975,39 +1669,39 @@ declare module 'druid.druid' {
1975
1669
  /**
1976
1670
  * Create Timer component
1977
1671
  */
1978
- new_timer(node: string | Opaque<"node">, seconds_from: number | undefined, seconds_to: number | undefined, callback: unknown | undefined): druid_timer;
1672
+ new_timer(node: string | Opaque<"node">, seconds_from?: number | undefined, seconds_to?: number | undefined, callback?: unknown | undefined): druid_timer;
1979
1673
  /**
1980
1674
  * Create Progress component
1981
1675
  */
1982
- new_progress(node: string | Opaque<"node">, key: string, init_value: number | undefined): druid_progress;
1676
+ new_progress(node: string | Opaque<"node">, key: string, init_value?: number | undefined): druid_progress;
1983
1677
  /**
1984
1678
  * Create Layout component
1985
1679
  */
1986
- new_layout(node: string | Opaque<"node">, mode: string | undefined): druid_layout;
1680
+ new_layout(node: string | Opaque<"node">, mode?: string | undefined): druid_layout;
1987
1681
  /**
1988
1682
  * Create Container component
1989
1683
  */
1990
- new_container(node: string | Opaque<"node">, mode: druid_container_mode | undefined, callback: ((self: druid_container, size: Vector3) => void) | undefined): druid_container;
1684
+ new_container(node: string | Opaque<"node">, mode?: druid_container_mode | undefined, callback?: ((self: druid_container, size: Vector3) => void) | undefined): druid_container;
1991
1685
  /**
1992
1686
  * Create Hotkey component
1993
1687
  */
1994
- new_hotkey(keys_array: string | string[], callback: unknown | unknown | undefined, callback_argument: unknown | undefined): druid_hotkey;
1688
+ new_hotkey(keys_array: string | string[], callback?: unknown | unknown | undefined, callback_argument?: unknown | undefined): druid_hotkey;
1995
1689
  /**
1996
1690
  * Create RichText component.
1997
1691
  */
1998
- new_rich_text(text_node: string | Opaque<"node">, value: string | undefined): druid_rich_text;
1692
+ new_rich_text(text_node: string | Opaque<"node">, value?: string | undefined): druid_rich_text;
1999
1693
  /**
2000
1694
  * Create RichInput component.
2001
1695
  * As a template please check rich_input.gui layout.
2002
1696
  */
2003
- new_rich_input(template: string, nodes: LuaTable | undefined): druid_rich_input;
1697
+ new_rich_input(template: string, nodes?: LuaTable | undefined): druid_rich_input;
2004
1698
  }
2005
1699
  interface druid_system_settings {
2006
1700
  }
2007
1701
  /**
2008
1702
  * Create a new Druid instance for creating GUI components.
2009
1703
  */
2010
- export function new_(this: void, context: LuaTable, style: LuaTable | undefined): druid_instance;
1704
+ export function new_(this: void, context: LuaTable, style?: LuaTable | undefined): druid_instance;
2011
1705
  export { new_ as new };
2012
1706
  /**
2013
1707
  * Register a new external Druid component.
@@ -2051,7 +1745,7 @@ declare module 'druid.druid' {
2051
1745
  * msg.url(nil, nil, "gui_widget") -- current game object
2052
1746
  * msg.url(nil, object_url, "gui_widget") -- other game object
2053
1747
  */
2054
- export function get_widget<T extends druid_widget>(this: void, widget_class: T, gui_url: Url | string, params: unknown | undefined): T;
1748
+ export function get_widget<T extends druid_widget>(this: void, widget_class: T, gui_url: Url | string, params?: unknown | undefined): T;
2055
1749
  /**
2056
1750
  * Bind a Druid GUI instance to the current game object.
2057
1751
  * This instance now can produce widgets from `druid.get_widget()` function.
@@ -2062,6 +1756,6 @@ declare module 'druid.druid' {
2062
1756
  * Should be called on final, where druid instance is destroyed.
2063
1757
  */
2064
1758
  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;
1759
+ export function set_logger(this: void, logger_instance?: druid_logger | LuaTable | undefined): void;
1760
+ export function get_logger(this: void, name?: string | undefined, level?: string | undefined): druid_logger;
2067
1761
  }