@defold-typescript/types 0.51.0 → 0.53.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 (228) hide show
  1. package/api-availability.json +4 -58
  2. package/api-signatures.json +2804 -3172
  3. package/api-targets.json +15 -5
  4. package/examples/translations.json +19 -71
  5. package/generated/b2d.d.ts +39 -39
  6. package/generated/b2d_body.d.ts +11 -11
  7. package/generated/b2d_chain.d.ts +3 -3
  8. package/generated/b2d_fixture.d.ts +5 -5
  9. package/generated/b2d_joint.d.ts +29 -29
  10. package/generated/b2d_shape.d.ts +13 -13
  11. package/generated/b2d_world.d.ts +15 -15
  12. package/generated/buffer.d.ts +10 -11
  13. package/generated/bullet3d.d.ts +6 -6
  14. package/generated/bullet3d_collision_object.d.ts +10 -10
  15. package/generated/bullet3d_constraint.d.ts +173 -71
  16. package/generated/bullet3d_rigid_body.d.ts +3 -3
  17. package/generated/bullet3d_shape.d.ts +11 -11
  18. package/generated/bullet3d_world.d.ts +20 -20
  19. package/generated/camera.d.ts +4 -4
  20. package/generated/collectionfactory.d.ts +2 -3
  21. package/generated/collectionproxy.d.ts +5 -5
  22. package/generated/compute.d.ts +5 -5
  23. package/generated/crash.d.ts +7 -7
  24. package/generated/editor-vm/http.d.ts +13 -13
  25. package/generated/editor-vm/image.d.ts +4 -4
  26. package/generated/editor-vm/json.d.ts +1 -1
  27. package/generated/editor-vm/tilemap_tiles.d.ts +9 -9
  28. package/generated/editor-vm/zip.d.ts +4 -4
  29. package/generated/editor.d.ts +183 -183
  30. package/generated/factory.d.ts +2 -3
  31. package/generated/font.d.ts +4 -4
  32. package/generated/go.d.ts +122 -230
  33. package/generated/graphics.d.ts +23 -25
  34. package/generated/gui.d.ts +186 -423
  35. package/generated/http.d.ts +3 -3
  36. package/generated/image.d.ts +63 -11
  37. package/generated/json.d.ts +4 -4
  38. package/generated/kinds/gui-script.d.ts +2 -0
  39. package/generated/kinds/render-script.d.ts +14 -15
  40. package/generated/label.d.ts +5 -5
  41. package/generated/liveupdate.d.ts +7 -3
  42. package/generated/material.d.ts +49 -49
  43. package/generated/model.d.ts +46 -14
  44. package/generated/particlefx.d.ts +24 -5
  45. package/generated/physics.d.ts +64 -20
  46. package/generated/profiler.d.ts +3 -5
  47. package/generated/render-script-modules/b2d.d.ts +711 -0
  48. package/generated/render-script-modules/bullet3d.d.ts +73 -0
  49. package/generated/render-script-modules/collectionfactory.d.ts +24 -0
  50. package/generated/render-script-modules/collectionproxy.d.ts +39 -0
  51. package/generated/render-script-modules/factory.d.ts +24 -0
  52. package/generated/render-script-modules/go.d.ts +434 -0
  53. package/generated/render-script-modules/label.d.ts +105 -0
  54. package/generated/render-script-modules/model.d.ts +121 -0
  55. package/generated/render-script-modules/particlefx.d.ts +59 -0
  56. package/generated/render-script-modules/physics.d.ts +333 -0
  57. package/generated/render-script-modules/resource.d.ts +1232 -0
  58. package/generated/render-script-modules/sound.d.ts +227 -0
  59. package/generated/render-script-modules/sprite.d.ts +68 -0
  60. package/generated/render-script-modules/tilemap.d.ts +43 -0
  61. package/generated/render.d.ts +172 -47
  62. package/generated/resource.d.ts +81 -61
  63. package/generated/socket.d.ts +18 -23
  64. package/generated/sound.d.ts +6 -6
  65. package/generated/sprite.d.ts +51 -3
  66. package/generated/sys.d.ts +87 -24
  67. package/generated/tilemap.d.ts +3 -3
  68. package/generated/timer.d.ts +3 -3
  69. package/generated/versions/defold-1.12.4/b2d.d.ts +2 -2
  70. package/generated/versions/defold-1.12.4/b2d_body.d.ts +2 -2
  71. package/generated/versions/defold-1.12.4/buffer.d.ts +8 -8
  72. package/generated/versions/defold-1.12.4/go.d.ts +117 -345
  73. package/generated/versions/defold-1.12.4/graphics.d.ts +2 -1
  74. package/generated/versions/defold-1.12.4/gui.d.ts +169 -532
  75. package/generated/versions/defold-1.12.4/http.d.ts +2 -2
  76. package/generated/versions/defold-1.12.4/image.d.ts +82 -2
  77. package/generated/versions/defold-1.12.4/index.d.ts +1 -0
  78. package/generated/versions/defold-1.12.4/label.d.ts +1 -1
  79. package/generated/versions/defold-1.12.4/liveupdate.d.ts +4 -0
  80. package/generated/versions/defold-1.12.4/model.d.ts +42 -10
  81. package/generated/versions/defold-1.12.4/particlefx.d.ts +23 -2
  82. package/generated/versions/defold-1.12.4/physics.d.ts +46 -2
  83. package/generated/versions/defold-1.12.4/render.d.ts +83 -7
  84. package/generated/versions/defold-1.12.4/resource.d.ts +50 -17
  85. package/generated/versions/defold-1.12.4/socket.d.ts +12 -12
  86. package/generated/versions/defold-1.12.4/sound.d.ts +1 -1
  87. package/generated/versions/defold-1.12.4/sprite.d.ts +59 -2
  88. package/generated/versions/defold-1.12.4/sys.d.ts +103 -8
  89. package/generated/versions/defold-1.12.4/tilemap.d.ts +1 -1
  90. package/generated/versions/defold-1.12.4/vmath.d.ts +0 -24
  91. package/generated/versions/defold-1.12.4/window.d.ts +3 -4
  92. package/generated/versions/defold-1.13.0/b2d.d.ts +2 -2
  93. package/generated/versions/defold-1.13.0/b2d_body.d.ts +2 -2
  94. package/generated/versions/defold-1.13.0/b2d_chain.d.ts +1 -1
  95. package/generated/versions/defold-1.13.0/b2d_joint.d.ts +1 -1
  96. package/generated/versions/defold-1.13.0/b2d_shape.d.ts +1 -1
  97. package/generated/versions/defold-1.13.0/buffer.d.ts +8 -8
  98. package/generated/versions/defold-1.13.0/camera.d.ts +1 -1
  99. package/generated/versions/defold-1.13.0/go.d.ts +117 -372
  100. package/generated/versions/defold-1.13.0/graphics.d.ts +2 -1
  101. package/generated/versions/defold-1.13.0/gui.d.ts +169 -532
  102. package/generated/versions/defold-1.13.0/http.d.ts +2 -2
  103. package/generated/versions/defold-1.13.0/image.d.ts +82 -2
  104. package/generated/versions/defold-1.13.0/index.d.ts +1 -0
  105. package/generated/versions/defold-1.13.0/label.d.ts +1 -1
  106. package/generated/versions/defold-1.13.0/liveupdate.d.ts +4 -0
  107. package/generated/versions/defold-1.13.0/material.d.ts +3 -1
  108. package/generated/versions/defold-1.13.0/model.d.ts +42 -10
  109. package/generated/versions/defold-1.13.0/particlefx.d.ts +23 -2
  110. package/generated/versions/defold-1.13.0/physics.d.ts +46 -2
  111. package/generated/versions/defold-1.13.0/render.d.ts +147 -9
  112. package/generated/versions/defold-1.13.0/resource.d.ts +50 -17
  113. package/generated/versions/defold-1.13.0/socket.d.ts +12 -12
  114. package/generated/versions/defold-1.13.0/sound.d.ts +1 -1
  115. package/generated/versions/defold-1.13.0/sprite.d.ts +59 -2
  116. package/generated/versions/defold-1.13.0/sys.d.ts +103 -8
  117. package/generated/versions/defold-1.13.0/tilemap.d.ts +1 -1
  118. package/generated/versions/defold-1.13.0/vmath.d.ts +0 -24
  119. package/generated/versions/defold-1.13.0/window.d.ts +3 -4
  120. package/generated/versions/defold-1.13.1/b2d.d.ts +2 -2
  121. package/generated/versions/defold-1.13.1/b2d_body.d.ts +2 -2
  122. package/generated/versions/defold-1.13.1/b2d_chain.d.ts +1 -1
  123. package/generated/versions/defold-1.13.1/b2d_joint.d.ts +1 -1
  124. package/generated/versions/defold-1.13.1/b2d_shape.d.ts +1 -1
  125. package/generated/versions/defold-1.13.1/buffer.d.ts +8 -8
  126. package/generated/versions/defold-1.13.1/camera.d.ts +1 -1
  127. package/generated/versions/defold-1.13.1/go.d.ts +117 -372
  128. package/generated/versions/defold-1.13.1/graphics.d.ts +2 -1
  129. package/generated/versions/defold-1.13.1/gui.d.ts +169 -548
  130. package/generated/versions/defold-1.13.1/http.d.ts +2 -2
  131. package/generated/versions/defold-1.13.1/image.d.ts +82 -2
  132. package/generated/versions/defold-1.13.1/index.d.ts +2 -0
  133. package/generated/versions/defold-1.13.1/label.d.ts +1 -1
  134. package/generated/versions/defold-1.13.1/liveupdate.d.ts +4 -0
  135. package/generated/versions/defold-1.13.1/material.d.ts +3 -1
  136. package/generated/versions/defold-1.13.1/model.d.ts +42 -10
  137. package/generated/versions/defold-1.13.1/particlefx.d.ts +23 -2
  138. package/generated/versions/defold-1.13.1/physics.d.ts +46 -2
  139. package/generated/versions/defold-1.13.1/render.d.ts +147 -9
  140. package/generated/versions/defold-1.13.1/resource.d.ts +50 -17
  141. package/generated/versions/defold-1.13.1/socket.d.ts +12 -12
  142. package/generated/versions/defold-1.13.1/sound.d.ts +1 -1
  143. package/generated/versions/defold-1.13.1/sprite.d.ts +59 -2
  144. package/generated/versions/defold-1.13.1/sys.d.ts +103 -8
  145. package/generated/versions/defold-1.13.1/tilemap.d.ts +1 -1
  146. package/generated/versions/defold-1.13.1/vmath.d.ts +0 -24
  147. package/generated/versions/defold-1.13.1/window.d.ts +3 -4
  148. package/generated/versions/defold-1.13.2/b2d.d.ts +39 -39
  149. package/generated/versions/defold-1.13.2/b2d_body.d.ts +11 -11
  150. package/generated/versions/defold-1.13.2/b2d_chain.d.ts +3 -3
  151. package/generated/versions/defold-1.13.2/b2d_fixture.d.ts +5 -5
  152. package/generated/versions/defold-1.13.2/b2d_joint.d.ts +29 -29
  153. package/generated/versions/defold-1.13.2/b2d_shape.d.ts +13 -13
  154. package/generated/versions/defold-1.13.2/b2d_world.d.ts +15 -15
  155. package/generated/versions/defold-1.13.2/buffer.d.ts +10 -11
  156. package/generated/versions/defold-1.13.2/bullet3d.d.ts +6 -6
  157. package/generated/versions/defold-1.13.2/bullet3d_collision_object.d.ts +10 -10
  158. package/generated/versions/defold-1.13.2/bullet3d_constraint.d.ts +173 -71
  159. package/generated/versions/defold-1.13.2/bullet3d_rigid_body.d.ts +3 -3
  160. package/generated/versions/defold-1.13.2/bullet3d_shape.d.ts +11 -11
  161. package/generated/versions/defold-1.13.2/bullet3d_world.d.ts +20 -20
  162. package/generated/versions/defold-1.13.2/camera.d.ts +4 -4
  163. package/generated/versions/defold-1.13.2/collectionfactory.d.ts +2 -3
  164. package/generated/versions/defold-1.13.2/collectionproxy.d.ts +5 -5
  165. package/generated/versions/defold-1.13.2/compute.d.ts +5 -5
  166. package/generated/versions/defold-1.13.2/crash.d.ts +7 -7
  167. package/generated/versions/defold-1.13.2/editor-vm/http.d.ts +13 -13
  168. package/generated/versions/defold-1.13.2/editor-vm/image.d.ts +4 -4
  169. package/generated/versions/defold-1.13.2/editor-vm/json.d.ts +1 -1
  170. package/generated/versions/defold-1.13.2/editor-vm/tilemap_tiles.d.ts +9 -9
  171. package/generated/versions/defold-1.13.2/editor-vm/zip.d.ts +4 -4
  172. package/generated/versions/defold-1.13.2/editor.d.ts +183 -183
  173. package/generated/versions/defold-1.13.2/factory.d.ts +2 -3
  174. package/generated/versions/defold-1.13.2/font.d.ts +4 -4
  175. package/generated/versions/defold-1.13.2/go.d.ts +122 -230
  176. package/generated/versions/defold-1.13.2/graphics.d.ts +22 -24
  177. package/generated/versions/defold-1.13.2/gui.d.ts +186 -423
  178. package/generated/versions/defold-1.13.2/http.d.ts +3 -3
  179. package/generated/versions/defold-1.13.2/image.d.ts +63 -11
  180. package/generated/versions/defold-1.13.2/index.d.ts +2 -0
  181. package/generated/versions/defold-1.13.2/json.d.ts +4 -4
  182. package/generated/versions/defold-1.13.2/label.d.ts +5 -5
  183. package/generated/versions/defold-1.13.2/liveupdate.d.ts +7 -3
  184. package/generated/versions/defold-1.13.2/material.d.ts +49 -49
  185. package/generated/versions/defold-1.13.2/model.d.ts +46 -14
  186. package/generated/versions/defold-1.13.2/particlefx.d.ts +24 -5
  187. package/generated/versions/defold-1.13.2/physics.d.ts +64 -20
  188. package/generated/versions/defold-1.13.2/profiler.d.ts +3 -5
  189. package/generated/versions/defold-1.13.2/render.d.ts +161 -46
  190. package/generated/versions/defold-1.13.2/resource.d.ts +81 -61
  191. package/generated/versions/defold-1.13.2/socket.d.ts +18 -23
  192. package/generated/versions/defold-1.13.2/sound.d.ts +6 -6
  193. package/generated/versions/defold-1.13.2/sprite.d.ts +51 -3
  194. package/generated/versions/defold-1.13.2/sys.d.ts +87 -24
  195. package/generated/versions/defold-1.13.2/tilemap.d.ts +3 -3
  196. package/generated/versions/defold-1.13.2/timer.d.ts +3 -3
  197. package/generated/versions/defold-1.13.2/vmath.d.ts +0 -25
  198. package/generated/versions/defold-1.13.2/window.d.ts +8 -10
  199. package/generated/vmath.d.ts +0 -25
  200. package/generated/window.d.ts +8 -10
  201. package/identity-vocabulary.json +86 -34
  202. package/index.d.ts +2 -0
  203. package/package.json +3 -1
  204. package/scripts/generate-api-availability.ts +10 -24
  205. package/scripts/generate-api-signatures.ts +75 -14
  206. package/scripts/materialize-version.ts +48 -7
  207. package/scripts/regen.ts +214 -19
  208. package/scripts/shared-handle-methods.ts +3 -2
  209. package/scripts/signature-store-fs.ts +1 -0
  210. package/scripts/target-version.ts +26 -0
  211. package/src/api-doc.ts +34 -0
  212. package/src/api-identity.ts +32 -1
  213. package/src/component-properties.d.ts +96 -7
  214. package/src/core-types.ts +71 -28
  215. package/src/doc-corrections.ts +62 -5
  216. package/src/emit-dts.ts +1423 -401
  217. package/src/engine-globals.d.ts +5 -1
  218. package/src/engine-type-name.ts +33 -0
  219. package/src/go-overloads.d.ts +74 -19
  220. package/src/gui-overloads.d.ts +489 -0
  221. package/src/gui-texture-removal.d.ts +41 -0
  222. package/src/index.ts +3 -0
  223. package/src/lifecycle.ts +32 -23
  224. package/src/msg-overloads.d.ts +25 -13
  225. package/src/signature-store.ts +50 -0
  226. package/src/socket-types.d.ts +3 -3
  227. package/src/timers.d.ts +2 -1
  228. package/src/vmath-overloads.d.ts +26 -0
@@ -8,7 +8,7 @@ import type { Hash, Vector3 } from "./core-types";
8
8
  // evidence. A key the engine reads but never writes is `readonly`.
9
9
  declare global {
10
10
  namespace go {
11
- interface properties {
11
+ interface Properties {
12
12
  /** The position's x component. `gameobject.cpp:GetProperty` reads one float. */
13
13
  "position.x": number;
14
14
  /** The position's y component. `gameobject.cpp:GetProperty` reads one float. */
@@ -44,8 +44,97 @@ declare global {
44
44
  }
45
45
  }
46
46
 
47
+ namespace label {
48
+ interface Properties {
49
+ /** The scale's x component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
50
+ "scale.x": number;
51
+ /** The scale's y component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
52
+ "scale.y": number;
53
+ /** The scale's z component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
54
+ "scale.z": number;
55
+ /**
56
+ * The scale's x and y components. `comp_label.cpp` reads it through
57
+ * `comp_private.cpp:GetProperty`, which returns the whole vector3. `go.set`
58
+ * also takes a number, which it applies to both x and y, as `go`'s
59
+ * `"scale.xy"` does.
60
+ */
61
+ "scale.xy": Vector3;
62
+ /** The size's x component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
63
+ "size.x": number;
64
+ /** The size's y component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
65
+ "size.y": number;
66
+ /** The size's z component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
67
+ "size.z": number;
68
+ /**
69
+ * The size's x and y components. `comp_label.cpp` reads it through
70
+ * `comp_private.cpp:GetProperty`, which returns the whole vector3. `go.set`
71
+ * also takes a number, which it applies to both x and y, as `go`'s
72
+ * `"scale.xy"` does.
73
+ */
74
+ "size.xy": Vector3;
75
+ /** The color's x component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
76
+ "color.x": number;
77
+ /** The color's y component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
78
+ "color.y": number;
79
+ /** The color's z component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
80
+ "color.z": number;
81
+ /** The color's w component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
82
+ "color.w": number;
83
+ /** The outline color's x component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
84
+ "outline.x": number;
85
+ /** The outline color's y component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
86
+ "outline.y": number;
87
+ /** The outline color's z component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
88
+ "outline.z": number;
89
+ /** The outline color's w component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
90
+ "outline.w": number;
91
+ /** The shadow color's x component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
92
+ "shadow.x": number;
93
+ /** The shadow color's y component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
94
+ "shadow.y": number;
95
+ /** The shadow color's z component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
96
+ "shadow.z": number;
97
+ /** The shadow color's w component. `comp_label.cpp` and `comp_private.cpp` read and write one float. */
98
+ "shadow.w": number;
99
+ }
100
+ }
101
+
47
102
  namespace sprite {
48
- interface properties {
103
+ interface Properties {
104
+ /** The scale's x component. `comp_sprite.cpp` and `comp_private.cpp` read and write one float. */
105
+ "scale.x": number;
106
+ /** The scale's y component. `comp_sprite.cpp` and `comp_private.cpp` read and write one float. */
107
+ "scale.y": number;
108
+ /** The scale's z component. `comp_sprite.cpp` and `comp_private.cpp` read and write one float. */
109
+ "scale.z": number;
110
+ /**
111
+ * The scale's x and y components. `comp_sprite.cpp` reads it through
112
+ * `comp_private.cpp:GetProperty`, which returns the whole vector3. `go.set`
113
+ * also takes a number, which it applies to both x and y, as `go`'s
114
+ * `"scale.xy"` does.
115
+ */
116
+ "scale.xy": Vector3;
117
+ /** The size's x component. `comp_sprite.cpp` and `comp_private.cpp` read and write one float. */
118
+ "size.x": number;
119
+ /** The size's y component. `comp_sprite.cpp` and `comp_private.cpp` read and write one float. */
120
+ "size.y": number;
121
+ /** The size's z component. `comp_sprite.cpp` and `comp_private.cpp` read and write one float. */
122
+ "size.z": number;
123
+ /**
124
+ * The size's x and y components. `comp_sprite.cpp` reads it through
125
+ * `comp_private.cpp:GetProperty`, which returns the whole vector3. `go.set`
126
+ * also takes a number, which it applies to both x and y, as `go`'s
127
+ * `"scale.xy"` does.
128
+ */
129
+ "size.xy": Vector3;
130
+ /** The slice-9 border's x component. `comp_sprite.cpp` and `comp_private.cpp` read and write one float. */
131
+ "slice.x": number;
132
+ /** The slice-9 border's y component. `comp_sprite.cpp` and `comp_private.cpp` read and write one float. */
133
+ "slice.y": number;
134
+ /** The slice-9 border's z component. `comp_sprite.cpp` and `comp_private.cpp` read and write one float. */
135
+ "slice.z": number;
136
+ /** The slice-9 border's w component. `comp_sprite.cpp` and `comp_private.cpp` read and write one float. */
137
+ "slice.w": number;
49
138
  /**
50
139
  * The texture bound to the sprite's first sampler. Not in the sprite
51
140
  * ref-doc; `resource.set`'s example reads it with
@@ -57,7 +146,7 @@ declare global {
57
146
  }
58
147
 
59
148
  namespace model {
60
- interface properties {
149
+ interface Properties {
61
150
  /**
62
151
  * The material resource the model renders with.
63
152
  * `comp_model.cpp:CompModelGetProperty` and `CompModelSetProperty` read
@@ -73,7 +162,7 @@ declare global {
73
162
  }
74
163
 
75
164
  namespace physics {
76
- interface properties {
165
+ interface Properties {
77
166
  /**
78
167
  * Whether the body runs continuous collision detection as a fast-moving
79
168
  * bullet. Box2D only: `comp_collision_object_box2d.cpp` reads and writes
@@ -87,7 +176,7 @@ declare global {
87
176
  /**
88
177
  * Factory component properties. Upstream's factory reference declares none.
89
178
  */
90
- interface properties {
179
+ interface Properties {
91
180
  /**
92
181
  * The path hash of the prototype the factory spawns. Read-only:
93
182
  * `comp_factory.cpp:CompFactoryGetProperty` reads it and the component
@@ -102,7 +191,7 @@ declare global {
102
191
  * Collection factory component properties. Upstream's collectionfactory
103
192
  * reference declares none.
104
193
  */
105
- interface properties {
194
+ interface Properties {
106
195
  /**
107
196
  * The path hash of the collection prototype the factory spawns.
108
197
  * Read-only: `comp_collection_factory.cpp:CompCollectionFactoryGetProperty`
@@ -118,7 +207,7 @@ declare global {
118
207
  * `CompMeshSetProperty` handle.
119
208
  */
120
209
  namespace mesh {
121
- interface properties {
210
+ interface Properties {
122
211
  /**
123
212
  * The buffer resource holding the mesh's vertex data.
124
213
  * `resource.get_buffer` and `resource.set_buffer` read it with
package/src/core-types.ts CHANGED
@@ -87,10 +87,30 @@ export interface Matrix4 {
87
87
  m31: number;
88
88
  m32: number;
89
89
  m33: number;
90
- c0: Vector4;
91
- c1: Vector4;
92
- c2: Vector4;
93
- c3: Vector4;
90
+ /**
91
+ * The first column. A read returns a new `Vector4`, so writing one of its
92
+ * fields changes nothing; assigning a whole `Vector4` sets the column.
93
+ */
94
+ get c0(): Readonly<Vector4>;
95
+ set c0(value: Vector4);
96
+ /**
97
+ * The second column. A read returns a new `Vector4`, so writing one of its
98
+ * fields changes nothing; assigning a whole `Vector4` sets the column.
99
+ */
100
+ get c1(): Readonly<Vector4>;
101
+ set c1(value: Vector4);
102
+ /**
103
+ * The third column. A read returns a new `Vector4`, so writing one of its
104
+ * fields changes nothing; assigning a whole `Vector4` sets the column.
105
+ */
106
+ get c2(): Readonly<Vector4>;
107
+ set c2(value: Vector4);
108
+ /**
109
+ * The fourth column. A read returns a new `Vector4`, so writing one of its
110
+ * fields changes nothing; assigning a whole `Vector4` sets the column.
111
+ */
112
+ get c3(): Readonly<Vector4>;
113
+ set c3(value: Vector4);
94
114
  mul: LuaMultiplicationMethod<Matrix4, Matrix4> &
95
115
  LuaMultiplicationMethod<Vector4, Vector4> &
96
116
  LuaMultiplicationMethod<number, Matrix4>;
@@ -178,11 +198,14 @@ declare const OpaqueBrand: unique symbol;
178
198
  * - GUI & rendering: `Opaque<"node">`, `Opaque<"texture">`,
179
199
  * `Opaque<"render_target">`, `Opaque<"constant">`, `Opaque<"constant_buffer">`
180
200
  * - Buffers: `Opaque<"buffer">`, `Opaque<"bufferstream">`
181
- * - Sockets: `Opaque<"client">`, `Opaque<"server">`, `Opaque<"master">`,
182
- * `Opaque<"connected">`, `Opaque<"unconnected">`
201
+ * - Sockets are not brands: `socket.socket_client`, `socket.socket_server`,
202
+ * `socket.socket_master`, `socket.socket_connected` and
203
+ * `socket.socket_unconnected` are interfaces carrying each handle's methods
183
204
  * - Box2D physics: `Opaque<"b2Body">`, `Opaque<"b2World">`
184
205
  * - Generic: `Opaque<"userdata">`
185
206
  *
207
+ * A buffer's `buf.length()` compiles to `#buf` and returns its element count.
208
+ *
186
209
  * @example
187
210
  * Handles always come back from the engine — for instance:
188
211
  * ```ts
@@ -209,21 +232,39 @@ export interface Opaque<Name extends string> {
209
232
  *
210
233
  * @remarks
211
234
  * Each field is writable and takes a `Hash` or a string, which the engine
212
- * hashes. Every `msg.url` form resolves a socket, so `socket` is always set.
213
- * `path` and `fragment` read `undefined` when unset: a socket-only address
214
- * (`msg.url("main:")`) has no `path`, so narrow it before use. Assigning
215
- * `undefined` clears `path` or `fragment`.
235
+ * hashes. Every field reads `undefined` when unset, so narrow it before use. A
236
+ * socket-only address (`msg.url("main:")`) has no `path`. `socket` is unset on
237
+ * the `sender` of an engine message posted with no sender, such as
238
+ * `ray_cast_response` and `ray_cast_missed` from `physics.raycast_async`,
239
+ * `animation_done` from a `model.play_anim` with no callback, and
240
+ * `window_resized` in a render script, and after `url.socket = undefined`.
241
+ * Assigning `undefined` clears any of the three fields.
216
242
  */
217
243
  export interface Url {
218
- get socket(): Hash;
219
- set socket(value: Hash | string);
244
+ get socket(): Hash | undefined;
245
+ set socket(value: Hash | string | undefined);
220
246
  get path(): Hash | undefined;
221
247
  set path(value: Hash | string | undefined);
222
248
  get fragment(): Hash | undefined;
223
249
  set fragment(value: Hash | string | undefined);
224
250
  }
225
251
 
226
- const BUFFER_TYPE = 'Opaque<"buffer">';
252
+ // The receiver of each socket handle's colon methods (`client:send`) and the one
253
+ // name its method-bearing interface takes inside `namespace socket` on every
254
+ // target: the PascalCase name of the 1.13.2 TYPEDEF (`socket_client`). Older
255
+ // references name the TYPEDEF after the receiver, so both spellings resolve to
256
+ // the same interface.
257
+ export const SOCKET_HANDLE_NAMES = {
258
+ client: "SocketClient",
259
+ connected: "SocketConnected",
260
+ master: "SocketMaster",
261
+ server: "SocketServer",
262
+ unconnected: "SocketUnconnected",
263
+ } as const;
264
+
265
+ export type SocketHandleReceiver = keyof typeof SOCKET_HANDLE_NAMES;
266
+
267
+ const BUFFER_TYPE = 'Opaque<"buffer"> & { length: LuaLengthMethod<number> }';
227
268
  const BUFFERSTREAM_TYPE =
228
269
  'Opaque<"bufferstream"> & { [index: number]: number; length: LuaLengthMethod<number> }';
229
270
 
@@ -276,29 +317,31 @@ export const DEFOLD_TYPE_MAP: Readonly<Record<string, string>> = {
276
317
  btRigidBody: 'Opaque<"btRigidBody">',
277
318
  b2BodyType:
278
319
  '(number & { readonly __brand: "b2d.body.B2_DYNAMIC_BODY" }) | (number & { readonly __brand: "b2d.body.B2_KINEMATIC_BODY" }) | (number & { readonly __brand: "b2d.body.B2_STATIC_BODY" })',
279
- // socket handle types resolve to the method-bearing `interface <receiver>`
320
+ // socket handle types resolve to the method-bearing `interface Socket<Receiver>`
280
321
  // emitted inside `namespace socket`, not opaque brands — the documented
281
322
  // colon methods (`client:send`, …) make each handle structurally distinct.
282
- client: "client",
283
- connected: "connected",
284
- master: "master",
285
- server: "server",
286
- unconnected: "unconnected",
323
+ client: SOCKET_HANDLE_NAMES.client,
324
+ connected: SOCKET_HANDLE_NAMES.connected,
325
+ master: SOCKET_HANDLE_NAMES.master,
326
+ server: SOCKET_HANDLE_NAMES.server,
327
+ unconnected: SOCKET_HANDLE_NAMES.unconnected,
287
328
  any: "unknown",
288
329
  // 1.13.2 renames of the leaves above, same slots. Upstream declares each only as
289
330
  // a `userdata`/`number` handle TYPEDEF, so each keeps its 1.13.1 mapping, with
290
- // two exceptions: `script_instance` is the untyped `self` a callback recovery
291
- // emits, and `resource_data` (1.13.1 `resource`, only in the hand-authored
292
- // `go.get`/`go.set`/`go.property` slots) is a path hash.
331
+ // three exceptions: `script_instance` is the untyped `self` a callback recovery
332
+ // emits, `resource_data` (1.13.1 `resource`, only in the hand-authored
333
+ // `go.get`/`go.set`/`go.property` slots) is a path hash, and `render_predicate`
334
+ // (1.13.1 `number`) is the userdata `render.predicate` returns and
335
+ // render_script.cpp:RenderScriptPredicate_Check reads.
293
336
  buffer_data: BUFFER_TYPE,
294
337
  buffer_stream: BUFFERSTREAM_TYPE,
295
338
  script_instance: "unknown",
296
339
  resource_data: "Hash",
297
340
  timer_handle: "number",
298
- render_predicate: "number",
299
- socket_client: "client",
300
- socket_connected: "connected",
301
- socket_master: "master",
302
- socket_server: "server",
303
- socket_unconnected: "unconnected",
341
+ render_predicate: 'Opaque<"render_predicate">',
342
+ socket_client: SOCKET_HANDLE_NAMES.client,
343
+ socket_connected: SOCKET_HANDLE_NAMES.connected,
344
+ socket_master: SOCKET_HANDLE_NAMES.master,
345
+ socket_server: SOCKET_HANDLE_NAMES.server,
346
+ socket_unconnected: SOCKET_HANDLE_NAMES.unconnected,
304
347
  } as const;
@@ -2,14 +2,15 @@ import { fnv1a64 } from "./fnv1a";
2
2
 
3
3
  // A function slot whose upstream doc HTML is malformed badly enough to misread,
4
4
  // replaced wholesale with authored HTML that keeps upstream's wording, or a
5
- // property description that contradicts what the engine does. Each
5
+ // function or property doc that contradicts what the engine does. Each
6
6
  // entry is pinned by the FNV-1a hash of the exact upstream HTML it replaces: the
7
7
  // parse applies it only while the vendored doc still hashes to that value, so a
8
8
  // fixed or reworded upstream doc wins by itself, and
9
9
  // `doc-correction-provenance.test.ts` reds until the stale entry is deleted.
10
10
  //
11
- // Keyed `<function>#param:<name>`, `<function>#return:<name>`, or
12
- // `<namespace>#property:<name>` (the ref-doc `PROPERTY` element's bare name).
11
+ // Keyed `<function>#param:<name>`, `<function>#return:<name>`, `<function>#brief`,
12
+ // `<function>#description`, or `<namespace>#property:<name>` (the ref-doc
13
+ // `PROPERTY` element's bare name).
13
14
  export interface DocCorrection {
14
15
  readonly upstreamHash: string;
15
16
  readonly html: string;
@@ -19,6 +20,9 @@ export interface DocCorrection {
19
20
  const li = (name: string, type: string, doc: string) =>
20
21
  `<li><code>${name}</code> <span class="type">${type}</span> ${doc}</li>`;
21
22
 
23
+ const GET_BYTES_REASON =
24
+ "script_buffer.cpp:GetBytes reads only argument 1 with CheckBufferUnpack and pushes every byte of the buffer, so no stream is selected";
25
+
22
26
  export const DOC_CORRECTIONS: ReadonlyMap<string, DocCorrection> = new Map([
23
27
  [
24
28
  "graphics.get_adapter_info#return:info",
@@ -90,14 +94,67 @@ export const DOC_CORRECTIONS: ReadonlyMap<string, DocCorrection> = new Map([
90
94
  html: "The scale of the label. <code>go.get</code> returns and <code>go.set</code> takes a vector3; <code>go.animate</code> also takes a number, which sets a uniform scale.",
91
95
  },
92
96
  ],
97
+ [
98
+ "model#property:textureN",
99
+ {
100
+ upstreamHash: "d6b885cb54de309f",
101
+ reason:
102
+ "the engine handles texture units 0-15 on 1.12.4 and later (render.h `MAX_TEXTURE_COUNT = 16`), while upstream's 0-7 holds on 1.11.0 and earlier, so the text names no range",
103
+ html: "The texture hash id of the model, read and written on the texture unit the key's number names (<code>texture3</code> is unit 3).",
104
+ },
105
+ ],
106
+ [
107
+ "buffer.get_bytes#brief",
108
+ {
109
+ upstreamHash: "e30a9df6b7f4f67d",
110
+ reason: GET_BYTES_REASON,
111
+ html: "gets all the bytes of a buffer",
112
+ },
113
+ ],
114
+ [
115
+ "buffer.get_bytes#description",
116
+ {
117
+ upstreamHash: "0f16f8e9dce4eb3a",
118
+ reason: GET_BYTES_REASON,
119
+ html: "Get a copy of all the bytes of the buffer, every stream included, as a Lua string.",
120
+ },
121
+ ],
122
+ [
123
+ "buffer.get_bytes#param:stream_name",
124
+ {
125
+ upstreamHash: "cfd40e4525c59409",
126
+ reason: GET_BYTES_REASON,
127
+ html: "the name of the stream; the engine ignores it and returns every byte of the buffer",
128
+ },
129
+ ],
130
+ [
131
+ "gui.clone_tree#param:node",
132
+ {
133
+ upstreamHash: "5c72743d24931629",
134
+ reason:
135
+ "gui_script.cpp:LuaCloneTree tests argument 1 with lua_isnil after pushing its result table, so nil selects the whole scene and an absent argument raises",
136
+ html: "root node to clone, or <code>nil</code> to clone the whole scene; leaving the argument out raises an error",
137
+ },
138
+ ],
139
+ [
140
+ "gui.get_tree#param:node",
141
+ {
142
+ upstreamHash: "47ef2cdd6bf46434",
143
+ reason:
144
+ "gui_script.cpp:LuaGetTree tests argument 1 with lua_isnil after pushing its result table, so nil selects the whole scene and an absent argument raises",
145
+ html: "root node to get node tree from, or <code>nil</code> to get the whole scene; leaving the argument out raises an error",
146
+ },
147
+ ],
93
148
  ]);
94
149
 
150
+ export function docCorrectionKey(owner: string, slot: "brief" | "description"): string;
95
151
  export function docCorrectionKey(
96
152
  owner: string,
97
153
  slot: "param" | "return" | "property",
98
154
  name: string,
99
- ): string {
100
- return `${owner}#${slot}:${name}`;
155
+ ): string;
156
+ export function docCorrectionKey(owner: string, slot: string, name?: string): string {
157
+ return name === undefined ? `${owner}#${slot}` : `${owner}#${slot}:${name}`;
101
158
  }
102
159
 
103
160
  // The slot's doc with its correction applied, or `doc` itself when the slot has