@origingame/engine 0.3.0 → 0.4.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 (84) hide show
  1. package/dist/web/origin-engine.d.ts +38 -2
  2. package/dist/web/origin-engine.js +250 -10
  3. package/dist/web/origin-engine_bg.wasm +0 -0
  4. package/dist/web/origin-engine_bg.wasm.d.ts +14 -2
  5. package/dist/web-publish/origin-engine-lanes.js +255 -34
  6. package/dist/web-publish/origin-engine-lanes_bg.wasm +0 -0
  7. package/dist/web-publish/origin-engine.d.ts +39 -3
  8. package/dist/web-publish/origin-engine.js +253 -32
  9. package/dist/web-publish/origin-engine_bg.wasm +0 -0
  10. package/dist/web-publish/origin-engine_bg.wasm.d.ts +15 -3
  11. package/dist/web-publish-2d/origin-engine-lanes.js +253 -32
  12. package/dist/web-publish-2d/origin-engine-lanes_bg.wasm +0 -0
  13. package/dist/web-publish-2d/origin-engine.d.ts +38 -2
  14. package/dist/web-publish-2d/origin-engine.js +250 -29
  15. package/dist/web-publish-2d/origin-engine_bg.wasm +0 -0
  16. package/dist/web-publish-2d/origin-engine_bg.wasm.d.ts +14 -2
  17. package/knowledge/README.md +2 -1
  18. package/knowledge/guides/three-to-og.md +393 -0
  19. package/knowledge/knowledge.json +2 -1
  20. package/knowledge/package.json +3 -2
  21. package/knowledge/scaffold/origin-engine.json +2 -2
  22. package/knowledge/scaffold/template/package.json +1 -1
  23. package/knowledge/scaffold/template/project.ogt +1 -1
  24. package/knowledge/scripts/validate.ts +140 -21
  25. package/knowledge/skills/og-audio/SKILL.md +2 -2
  26. package/knowledge/skills/og-build/SKILL.md +22 -3
  27. package/knowledge/skills/og-core/SKILL.md +20 -5
  28. package/knowledge/skills/og-feel/SKILL.md +2 -2
  29. package/knowledge/skills/og-game/SKILL.md +481 -35
  30. package/knowledge/skills/og-i18n/SKILL.md +7 -7
  31. package/knowledge/skills/og-model/SKILL.md +374 -0
  32. package/knowledge/skills/og-platform-sdk/SKILL.md +1 -1
  33. package/knowledge/skills/og-ui/SKILL.md +15 -8
  34. package/knowledge/wiki/ai.md +20 -20
  35. package/knowledge/wiki/anim.md +63 -55
  36. package/knowledge/wiki/atmosphere.md +13 -13
  37. package/knowledge/wiki/audio.md +18 -18
  38. package/knowledge/wiki/camera.md +13 -13
  39. package/knowledge/wiki/commands.md +11 -11
  40. package/knowledge/wiki/debug.md +13 -13
  41. package/knowledge/wiki/game.md +8 -8
  42. package/knowledge/wiki/i18n.md +7 -7
  43. package/knowledge/wiki/index.md +57 -3
  44. package/knowledge/wiki/input.md +47 -47
  45. package/knowledge/wiki/load.md +57 -57
  46. package/knowledge/wiki/nav.md +34 -34
  47. package/knowledge/wiki/net.md +10 -10
  48. package/knowledge/wiki/path.md +14 -14
  49. package/knowledge/wiki/physics.md +95 -95
  50. package/knowledge/wiki/platform.md +44 -44
  51. package/knowledge/wiki/probe.md +86 -86
  52. package/knowledge/wiki/reflect.md +16 -4
  53. package/knowledge/wiki/render.md +1168 -170
  54. package/knowledge/wiki/rng.md +14 -14
  55. package/knowledge/wiki/shapes.md +727 -0
  56. package/knowledge/wiki/stream.md +15 -15
  57. package/knowledge/wiki/system.md +8 -8
  58. package/knowledge/wiki/systems.md +2 -2
  59. package/knowledge/wiki/terrain.md +24 -20
  60. package/knowledge/wiki/tilemap.md +13 -13
  61. package/knowledge/wiki/time.md +4 -4
  62. package/knowledge/wiki/timeline.md +14 -14
  63. package/knowledge/wiki/transform.md +8 -8
  64. package/knowledge/wiki/tween.md +17 -17
  65. package/knowledge/wiki/ui.md +245 -269
  66. package/knowledge/wiki/video.md +5 -5
  67. package/knowledge/wiki/world.md +36 -36
  68. package/package.json +4 -4
  69. package/schema/api.schema.json +1834 -305
  70. package/shell/platform.ts +5 -0
  71. package/shell/player.ts +8 -2
  72. package/shell/transport.ts +6 -0
  73. package/src/generated/abi.ts +37 -1
  74. package/src/geom.ts +260 -0
  75. package/src/index.ts +8 -1
  76. package/src/node/playtest-run.ts +1 -0
  77. package/src/platform-local.ts +2 -0
  78. package/src/playtest.ts +8 -0
  79. package/src/runtime.ts +87 -6
  80. package/src/ui-kit/settings.ts +9 -0
  81. package/src/web/shell.ts +1 -1
  82. package/src/web/worker.ts +2 -2
  83. package/types/bindings.json +697 -402
  84. package/types/index.d.ts +1045 -127
@@ -22,7 +22,7 @@ module stream {
22
22
  # declarations follow, each quoted below
23
23
  ```
24
24
 
25
- <sub>`api.ogt` line 13254</sub>
25
+ <sub>`api.ogt` line 13824</sub>
26
26
 
27
27
  ## Contents
28
28
 
@@ -73,7 +73,7 @@ fn status {
73
73
  }
74
74
  ```
75
75
 
76
- <sub>`api.ogt` line 13324</sub>
76
+ <sub>`api.ogt` line 13894</sub>
77
77
 
78
78
  <a id="fn-request"></a>
79
79
 
@@ -103,7 +103,7 @@ fn request {
103
103
  }
104
104
  ```
105
105
 
106
- <sub>`api.ogt` line 13331</sub>
106
+ <sub>`api.ogt` line 13901</sub>
107
107
 
108
108
  <a id="fn-release"></a>
109
109
 
@@ -133,7 +133,7 @@ fn release {
133
133
  }
134
134
  ```
135
135
 
136
- <sub>`api.ogt` line 13338</sub>
136
+ <sub>`api.ogt` line 13908</sub>
137
137
 
138
138
  <a id="fn-budget"></a>
139
139
 
@@ -161,7 +161,7 @@ fn budget {
161
161
  }
162
162
  ```
163
163
 
164
- <sub>`api.ogt` line 13345</sub>
164
+ <sub>`api.ogt` line 13915</sub>
165
165
 
166
166
  <a id="fn-setBudget"></a>
167
167
 
@@ -191,7 +191,7 @@ fn setBudget {
191
191
  }
192
192
  ```
193
193
 
194
- <sub>`api.ogt` line 13351</sub>
194
+ <sub>`api.ogt` line 13921</sub>
195
195
 
196
196
  ## Components, resources and events
197
197
 
@@ -216,7 +216,7 @@ event StreamEvent {
216
216
  }
217
217
  ```
218
218
 
219
- <sub>`api.ogt` line 13277</sub>
219
+ <sub>`api.ogt` line 13847</sub>
220
220
 
221
221
  ## Types
222
222
 
@@ -247,7 +247,7 @@ enum StreamState {
247
247
  }
248
248
  ```
249
249
 
250
- <sub>`api.ogt` line 13262</sub>
250
+ <sub>`api.ogt` line 13832</sub>
251
251
 
252
252
  <a id="type-StreamStatus"></a>
253
253
 
@@ -298,7 +298,7 @@ struct StreamStatus {
298
298
  }
299
299
  ```
300
300
 
301
- <sub>`api.ogt` line 13283</sub>
301
+ <sub>`api.ogt` line 13853</sub>
302
302
 
303
303
  <a id="type-StreamBudget"></a>
304
304
 
@@ -333,7 +333,7 @@ struct StreamBudget {
333
333
  }
334
334
  ```
335
335
 
336
- <sub>`api.ogt` line 13307</sub>
336
+ <sub>`api.ogt` line 13877</sub>
337
337
 
338
338
  ## Constants
339
339
 
@@ -349,28 +349,28 @@ struct StreamBudget {
349
349
  const STREAM_UNLOADED u32 0 "`StreamEvent.state`: the group is unloaded (StreamState unloaded)."
350
350
  ```
351
351
 
352
- <sub>`api.ogt` line 13271</sub>
352
+ <sub>`api.ogt` line 13841</sub>
353
353
 
354
354
  ```ogt
355
355
  const STREAM_QUEUED u32 1 "`StreamEvent.state`: the group waits for room in the budget (StreamState queued)."
356
356
  ```
357
357
 
358
- <sub>`api.ogt` line 13272</sub>
358
+ <sub>`api.ogt` line 13842</sub>
359
359
 
360
360
  ```ogt
361
361
  const STREAM_LOADING u32 2 "`StreamEvent.state`: the group's pack is being read (StreamState loading)."
362
362
  ```
363
363
 
364
- <sub>`api.ogt` line 13273</sub>
364
+ <sub>`api.ogt` line 13843</sub>
365
365
 
366
366
  ```ogt
367
367
  const STREAM_RESIDENT u32 3 "`StreamEvent.state`: the group's assets are in place (StreamState resident)."
368
368
  ```
369
369
 
370
- <sub>`api.ogt` line 13274</sub>
370
+ <sub>`api.ogt` line 13844</sub>
371
371
 
372
372
  ```ogt
373
373
  const STREAM_FAILED u32 4 "`StreamEvent.state`: the group failed (StreamState failed; og.stream.status says why)."
374
374
  ```
375
375
 
376
- <sub>`api.ogt` line 13275</sub>
376
+ <sub>`api.ogt` line 13845</sub>
@@ -20,7 +20,7 @@ module system {
20
20
  # declarations follow, each quoted below
21
21
  ```
22
22
 
23
- <sub>`api.ogt` line 1001</sub>
23
+ <sub>`api.ogt` line 1007</sub>
24
24
 
25
25
  ## Contents
26
26
 
@@ -63,7 +63,7 @@ fn defineSystem {
63
63
  }
64
64
  ```
65
65
 
66
- <sub>`api.ogt` line 1033</sub>
66
+ <sub>`api.ogt` line 1039</sub>
67
67
 
68
68
  ## Interfaces
69
69
 
@@ -79,7 +79,7 @@ interface System {
79
79
  # members follow, each quoted below
80
80
  ```
81
81
 
82
- <sub>`api.ogt` line 1026</sub>
82
+ <sub>`api.ogt` line 1032</sub>
83
83
 
84
84
  <a id="member-System-name"></a>
85
85
 
@@ -97,7 +97,7 @@ Binding symbol `og_system_get_name` · publish builds: kept
97
97
  prop name String "The system's unique name."
98
98
  ```
99
99
 
100
- <sub>`api.ogt` line 1028</sub>
100
+ <sub>`api.ogt` line 1034</sub>
101
101
 
102
102
  <a id="member-System-reads"></a>
103
103
 
@@ -115,7 +115,7 @@ Binding symbol `og_system_get_reads` · publish builds: kept
115
115
  prop reads List.AnyReflected "What it reads."
116
116
  ```
117
117
 
118
- <sub>`api.ogt` line 1029</sub>
118
+ <sub>`api.ogt` line 1035</sub>
119
119
 
120
120
  <a id="member-System-writes"></a>
121
121
 
@@ -133,7 +133,7 @@ Binding symbol `og_system_get_writes` · publish builds: kept
133
133
  prop writes List.AnyReflected "What it writes."
134
134
  ```
135
135
 
136
- <sub>`api.ogt` line 1030</sub>
136
+ <sub>`api.ogt` line 1036</sub>
137
137
 
138
138
  ## Types
139
139
 
@@ -165,7 +165,7 @@ struct SystemDesc {
165
165
  }
166
166
  ```
167
167
 
168
- <sub>`api.ogt` line 1009</sub>
168
+ <sub>`api.ogt` line 1015</sub>
169
169
 
170
170
  <a id="type-SystemRun"></a>
171
171
 
@@ -194,4 +194,4 @@ callback SystemRun {
194
194
  }
195
195
  ```
196
196
 
197
- <sub>`api.ogt` line 1019</sub>
197
+ <sub>`api.ogt` line 1025</sub>
@@ -14,7 +14,7 @@ module systems {
14
14
  # declarations follow, each quoted below
15
15
  ```
16
16
 
17
- <sub>`api.ogt` line 12130</sub>
17
+ <sub>`api.ogt` line 12697</sub>
18
18
 
19
19
  ## Contents
20
20
 
@@ -40,4 +40,4 @@ const cameras: readonly System[]
40
40
  value cameras List.System "The camera controllers, in this order: og.orbitCamera (og.OrbitCamera), og.followCamera (og.FollowCamera) and og.follow2D (og.Follow2D). Each moves og.Camera only while an entity carries its component. List them before the game's systems that read og.Camera: `systems: [...og.systems.cameras, ...yours]`."
41
41
  ```
42
42
 
43
- <sub>`api.ogt` line 12134</sub>
43
+ <sub>`api.ogt` line 12701</sub>
@@ -4,7 +4,7 @@
4
4
 
5
5
  Terrain (phase 2): a height field over a rectangle, cooked by `og cook` from a `type terrain` .ogt (a 16-bit grey PNG or an EXR heightmap, an optional control map, up to four layered materials with slope and altitude rules, their maps separate textures or layers of two texture arrays: `layers` and `layerNormals` with each layer's `albedoLayer` and `normalLayer`, two sampled textures instead of up to eight) into tiles; drawn as a geometry clipmap around the camera (nested levels by distance, no cracks) that casts and receives shadows under the fog; collided with as a height field; baked into navmeshes by a navmesh file's `terrain` entry.
6
6
 
7
- Load it with og.terrain.load, then place it: an og.Terrain on an entity draws it placed by the entity's world transform (centred on its position, turned and scaled with it), and an og.Collider of shape SHAPE_HEIGHTFIELD naming the TerrainInfo's geometry makes it solid. og.TerrainScatter grows grass, flowers or stones over a layer near the camera. og.terrain.sample answers the surface's height and normal anywhere (pass it the entity's position, quaternion and scale); og.terrain.edit raises, lowers, flattens, smooths or paints it at runtime, and og.terrain.setLayer retunes a layer. Edits are world state: a snapshot keeps them, the world hash covers them, and a restore brings the ground back as it was (rebuilt from the cook with the restored edits replayed, for the renderer, physics and sample alike).
7
+ Load it with og.terrain.load, then place it: an og.Terrain on an entity draws it placed by the entity's world transform (centred on its position, turned and scaled with it), and an og.Collider of shape SHAPE_HEIGHTFIELD naming the TerrainInfo's geometry makes it solid. og.TerrainScatter grows grass, flowers or stones over a layer near the camera. og.terrain.sample answers the surface's height and normal anywhere (pass it the entity's position, quaternion and scale); og.terrain.edit raises, lowers, flattens, smooths or paints it at runtime, and og.terrain.setLayer retunes a layer. Terrain is 3D: the 2D profile's publish and lanes modules leave it out (RenderCapabilities.world3d is false), where every call here answers a refusal naming that field. Edits are world state: a snapshot keeps them, the world hash covers them, and a restore brings the ground back as it was (rebuilt from the cook with the restored edits replayed, for the renderer, physics and sample alike).
8
8
 
9
9
  Its tiles stream (phase 3): the cook stores the field as a pyramid of tiles, each compressed on its own, and every frame the renderer keeps on the GPU only the tiles the camera's clipmap wants, within each terrain's tile budget (16 MiB by default), decoded off the frame (a worker thread natively, the browser's DecompressionStream on the Web) a few at a time, the most needed first; until a tile arrives its area draws from the coarser level that holds it, then fades in. Nothing a tick reads depends on which tiles are resident (collision and og.terrain.sample read the whole field), so a run's world hash is the same streamed or not. The probe's `terrain_stream:resident` decodes every wanted tile before each frame instead (`terrain_stream:stream[:<MiB>]` streams again, within that budget), and `dump_stream`'s `terrain` gives the tiles resident, waiting, decoding and cached.
10
10
 
@@ -18,7 +18,7 @@ module terrain {
18
18
  # declarations follow, each quoted below
19
19
  ```
20
20
 
21
- <sub>`api.ogt` line 12944</sub>
21
+ <sub>`api.ogt` line 13511</sub>
22
22
 
23
23
  ## Contents
24
24
 
@@ -73,7 +73,7 @@ fn load {
73
73
  }
74
74
  ```
75
75
 
76
- <sub>`api.ogt` line 13196</sub>
76
+ <sub>`api.ogt` line 13766</sub>
77
77
 
78
78
  <a id="fn-sample"></a>
79
79
 
@@ -103,7 +103,7 @@ fn sample {
103
103
  }
104
104
  ```
105
105
 
106
- <sub>`api.ogt` line 13203</sub>
106
+ <sub>`api.ogt` line 13773</sub>
107
107
 
108
108
  <a id="fn-bounds"></a>
109
109
 
@@ -145,7 +145,7 @@ fn bounds {
145
145
  }
146
146
  ```
147
147
 
148
- <sub>`api.ogt` line 13210</sub>
148
+ <sub>`api.ogt` line 13780</sub>
149
149
 
150
150
  <a id="fn-edit"></a>
151
151
 
@@ -177,7 +177,7 @@ fn edit {
177
177
  }
178
178
  ```
179
179
 
180
- <sub>`api.ogt` line 13226</sub>
180
+ <sub>`api.ogt` line 13796</sub>
181
181
 
182
182
  <a id="fn-layer"></a>
183
183
 
@@ -209,7 +209,7 @@ fn layer {
209
209
  }
210
210
  ```
211
211
 
212
- <sub>`api.ogt` line 13234</sub>
212
+ <sub>`api.ogt` line 13804</sub>
213
213
 
214
214
  <a id="fn-setLayer"></a>
215
215
 
@@ -243,7 +243,7 @@ fn setLayer {
243
243
  }
244
244
  ```
245
245
 
246
- <sub>`api.ogt` line 13242</sub>
246
+ <sub>`api.ogt` line 13812</sub>
247
247
 
248
248
  ## Components, resources and events
249
249
 
@@ -282,7 +282,7 @@ component Terrain {
282
282
  }
283
283
  ```
284
284
 
285
- <sub>`api.ogt` line 12968</sub>
285
+ <sub>`api.ogt` line 13535</sub>
286
286
 
287
287
  <a id="record-TerrainScatter"></a>
288
288
 
@@ -357,7 +357,7 @@ component TerrainScatter {
357
357
  }
358
358
  ```
359
359
 
360
- <sub>`api.ogt` line 12986</sub>
360
+ <sub>`api.ogt` line 13553</sub>
361
361
 
362
362
  ## Types
363
363
 
@@ -373,7 +373,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
373
373
  handle TerrainData "A loaded terrain: its heights, control map and layers."
374
374
  ```
375
375
 
376
- <sub>`api.ogt` line 12950</sub>
376
+ <sub>`api.ogt` line 13517</sub>
377
377
 
378
378
  <a id="type-TerrainBrushMode"></a>
379
379
 
@@ -402,7 +402,7 @@ enum TerrainBrushMode {
402
402
  }
403
403
  ```
404
404
 
405
- <sub>`api.ogt` line 12959</sub>
405
+ <sub>`api.ogt` line 13526</sub>
406
406
 
407
407
  <a id="type-TerrainInfo"></a>
408
408
 
@@ -422,6 +422,7 @@ A loaded terrain.
422
422
  | `layers` | `number` | `0` | — | — | — | Its material layers (up to 4). |
423
423
  | `collision` | `boolean` | `false` | — | — | — | Whether its terrain file asks for a collider (`collision`, default true). |
424
424
  | `castShadows` | `boolean` | `false` | — | — | — | Its terrain file's `castShadows`. |
425
+ | `seaLevel` | `number \| null` | `null` | — | `m` | — | A generated terrain's sea level (`generate { sea <m> }`) above its entity: place an og.Water there, the terrain's size; null without a sea. |
425
426
 
426
427
  ```ogt
427
428
  struct TerrainInfo {
@@ -442,10 +443,13 @@ struct TerrainInfo {
442
443
  field layers u32 "Its material layers (up to 4)."
443
444
  field collision bool "Whether its terrain file asks for a collider (`collision`, default true)."
444
445
  field castShadows bool "Its terrain file's `castShadows`."
446
+ field seaLevel Option.f32 "A generated terrain's sea level (`generate { sea <m> }`) above its entity: place an og.Water there, the terrain's size; null without a sea." {
447
+ unit m
448
+ }
445
449
  }
446
450
  ```
447
451
 
448
- <sub>`api.ogt` line 13035</sub>
452
+ <sub>`api.ogt` line 13602</sub>
449
453
 
450
454
  <a id="type-TerrainSampleDesc"></a>
451
455
 
@@ -485,7 +489,7 @@ struct TerrainSampleDesc {
485
489
  }
486
490
  ```
487
491
 
488
- <sub>`api.ogt` line 13055</sub>
492
+ <sub>`api.ogt` line 13625</sub>
489
493
 
490
494
  <a id="type-TerrainSample"></a>
491
495
 
@@ -514,7 +518,7 @@ struct TerrainSample {
514
518
  }
515
519
  ```
516
520
 
517
- <sub>`api.ogt` line 13074</sub>
521
+ <sub>`api.ogt` line 13644</sub>
518
522
 
519
523
  <a id="type-TerrainBounds"></a>
520
524
 
@@ -539,7 +543,7 @@ struct TerrainBounds {
539
543
  }
540
544
  ```
541
545
 
542
- <sub>`api.ogt` line 13086</sub>
546
+ <sub>`api.ogt` line 13656</sub>
543
547
 
544
548
  <a id="type-TerrainBrush"></a>
545
549
 
@@ -597,7 +601,7 @@ struct TerrainBrush {
597
601
  }
598
602
  ```
599
603
 
600
- <sub>`api.ogt` line 13096</sub>
604
+ <sub>`api.ogt` line 13666</sub>
601
605
 
602
606
  <a id="type-TerrainEdit"></a>
603
607
 
@@ -624,7 +628,7 @@ struct TerrainEdit {
624
628
  }
625
629
  ```
626
630
 
627
- <sub>`api.ogt` line 13130</sub>
631
+ <sub>`api.ogt` line 13700</sub>
628
632
 
629
633
  <a id="type-TerrainLayerDesc"></a>
630
634
 
@@ -705,7 +709,7 @@ struct TerrainLayerDesc {
705
709
  }
706
710
  ```
707
711
 
708
- <sub>`api.ogt` line 13141</sub>
712
+ <sub>`api.ogt` line 13711</sub>
709
713
 
710
714
  ## Column kinds
711
715
 
@@ -724,4 +728,4 @@ column TerrainData {
724
728
  }
725
729
  ```
726
730
 
727
- <sub>`api.ogt` line 12952</sub>
731
+ <sub>`api.ogt` line 13519</sub>
@@ -20,7 +20,7 @@ module tilemap {
20
20
  # declarations follow, each quoted below
21
21
  ```
22
22
 
23
- <sub>`api.ogt` line 7922</sub>
23
+ <sub>`api.ogt` line 8495</sub>
24
24
 
25
25
  ## Contents
26
26
 
@@ -69,7 +69,7 @@ fn setTile {
69
69
  }
70
70
  ```
71
71
 
72
- <sub>`api.ogt` line 8032</sub>
72
+ <sub>`api.ogt` line 8605</sub>
73
73
 
74
74
  <a id="fn-getTile"></a>
75
75
 
@@ -105,7 +105,7 @@ fn getTile {
105
105
  }
106
106
  ```
107
107
 
108
- <sub>`api.ogt` line 8039</sub>
108
+ <sub>`api.ogt` line 8612</sub>
109
109
 
110
110
  <a id="fn-cellAt"></a>
111
111
 
@@ -137,7 +137,7 @@ fn cellAt {
137
137
  }
138
138
  ```
139
139
 
140
- <sub>`api.ogt` line 8049</sub>
140
+ <sub>`api.ogt` line 8622</sub>
141
141
 
142
142
  <a id="fn-cellCenter"></a>
143
143
 
@@ -171,7 +171,7 @@ fn cellCenter {
171
171
  }
172
172
  ```
173
173
 
174
- <sub>`api.ogt` line 8057</sub>
174
+ <sub>`api.ogt` line 8630</sub>
175
175
 
176
176
  ## Components, resources and events
177
177
 
@@ -226,7 +226,7 @@ component Tilemap {
226
226
  }
227
227
  ```
228
228
 
229
- <sub>`api.ogt` line 7938</sub>
229
+ <sub>`api.ogt` line 8511</sub>
230
230
 
231
231
  ## Types
232
232
 
@@ -242,7 +242,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
242
242
  handle TilemapAsset "A loaded map: its layers, tilesets and objects."
243
243
  ```
244
244
 
245
- <sub>`api.ogt` line 7929</sub>
245
+ <sub>`api.ogt` line 8502</sub>
246
246
 
247
247
  <a id="type-TileLayerInfo"></a>
248
248
 
@@ -279,7 +279,7 @@ struct TileLayerInfo {
279
279
  }
280
280
  ```
281
281
 
282
- <sub>`api.ogt` line 7968</sub>
282
+ <sub>`api.ogt` line 8541</sub>
283
283
 
284
284
  <a id="type-TileObject"></a>
285
285
 
@@ -314,7 +314,7 @@ struct TileObject {
314
314
  }
315
315
  ```
316
316
 
317
- <sub>`api.ogt` line 7982</sub>
317
+ <sub>`api.ogt` line 8555</sub>
318
318
 
319
319
  <a id="type-TilemapInfo"></a>
320
320
 
@@ -349,7 +349,7 @@ struct TilemapInfo {
349
349
  }
350
350
  ```
351
351
 
352
- <sub>`api.ogt` line 7998</sub>
352
+ <sub>`api.ogt` line 8571</sub>
353
353
 
354
354
  <a id="type-SetTileDesc"></a>
355
355
 
@@ -381,7 +381,7 @@ struct SetTileDesc {
381
381
  }
382
382
  ```
383
383
 
384
- <sub>`api.ogt` line 8013</sub>
384
+ <sub>`api.ogt` line 8586</sub>
385
385
 
386
386
  <a id="type-TileCell"></a>
387
387
 
@@ -404,7 +404,7 @@ struct TileCell {
404
404
  }
405
405
  ```
406
406
 
407
- <sub>`api.ogt` line 8025</sub>
407
+ <sub>`api.ogt` line 8598</sub>
408
408
 
409
409
  ## Column kinds
410
410
 
@@ -423,4 +423,4 @@ column TilemapAsset {
423
423
  }
424
424
  ```
425
425
 
426
- <sub>`api.ogt` line 7931</sub>
426
+ <sub>`api.ogt` line 8504</sub>
@@ -14,7 +14,7 @@ module time {
14
14
  # declarations follow, each quoted below
15
15
  ```
16
16
 
17
- <sub>`api.ogt` line 1166</sub>
17
+ <sub>`api.ogt` line 1172</sub>
18
18
 
19
19
  ## Contents
20
20
 
@@ -54,7 +54,7 @@ fn setScale {
54
54
  }
55
55
  ```
56
56
 
57
- <sub>`api.ogt` line 1208</sub>
57
+ <sub>`api.ogt` line 1214</sub>
58
58
 
59
59
  <a id="fn-hitStop"></a>
60
60
 
@@ -84,7 +84,7 @@ fn hitStop {
84
84
  }
85
85
  ```
86
86
 
87
- <sub>`api.ogt` line 1215</sub>
87
+ <sub>`api.ogt` line 1221</sub>
88
88
 
89
89
  ## Components, resources and events
90
90
 
@@ -147,4 +147,4 @@ resource Time {
147
147
  }
148
148
  ```
149
149
 
150
- <sub>`api.ogt` line 1170</sub>
150
+ <sub>`api.ogt` line 1176</sub>
@@ -18,7 +18,7 @@ module timeline {
18
18
  # declarations follow, each quoted below
19
19
  ```
20
20
 
21
- <sub>`api.ogt` line 13655</sub>
21
+ <sub>`api.ogt` line 14225</sub>
22
22
 
23
23
  ## Contents
24
24
 
@@ -68,7 +68,7 @@ fn info {
68
68
  }
69
69
  ```
70
70
 
71
- <sub>`api.ogt` line 13728</sub>
71
+ <sub>`api.ogt` line 14298</sub>
72
72
 
73
73
  <a id="fn-play"></a>
74
74
 
@@ -98,7 +98,7 @@ fn play {
98
98
  }
99
99
  ```
100
100
 
101
- <sub>`api.ogt` line 13735</sub>
101
+ <sub>`api.ogt` line 14305</sub>
102
102
 
103
103
  <a id="fn-pause"></a>
104
104
 
@@ -128,7 +128,7 @@ fn pause {
128
128
  }
129
129
  ```
130
130
 
131
- <sub>`api.ogt` line 13742</sub>
131
+ <sub>`api.ogt` line 14312</sub>
132
132
 
133
133
  <a id="fn-seek"></a>
134
134
 
@@ -160,7 +160,7 @@ fn seek {
160
160
  }
161
161
  ```
162
162
 
163
- <sub>`api.ogt` line 13749</sub>
163
+ <sub>`api.ogt` line 14319</sub>
164
164
 
165
165
  <a id="fn-stop"></a>
166
166
 
@@ -190,7 +190,7 @@ fn stop {
190
190
  }
191
191
  ```
192
192
 
193
- <sub>`api.ogt` line 13757</sub>
193
+ <sub>`api.ogt` line 14327</sub>
194
194
 
195
195
  ## Components, resources and events
196
196
 
@@ -229,7 +229,7 @@ component Timeline {
229
229
  }
230
230
  ```
231
231
 
232
- <sub>`api.ogt` line 13670</sub>
232
+ <sub>`api.ogt` line 14240</sub>
233
233
 
234
234
  <a id="record-TimelineStarted"></a>
235
235
 
@@ -252,7 +252,7 @@ event TimelineStarted {
252
252
  }
253
253
  ```
254
254
 
255
- <sub>`api.ogt` line 13687</sub>
255
+ <sub>`api.ogt` line 14257</sub>
256
256
 
257
257
  <a id="record-TimelineMarker"></a>
258
258
 
@@ -281,7 +281,7 @@ event TimelineMarker {
281
281
  }
282
282
  ```
283
283
 
284
- <sub>`api.ogt` line 13693</sub>
284
+ <sub>`api.ogt` line 14263</sub>
285
285
 
286
286
  <a id="record-TimelineEnded"></a>
287
287
 
@@ -304,7 +304,7 @@ event TimelineEnded {
304
304
  }
305
305
  ```
306
306
 
307
- <sub>`api.ogt` line 13703</sub>
307
+ <sub>`api.ogt` line 14273</sub>
308
308
 
309
309
  ## Types
310
310
 
@@ -320,7 +320,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
320
320
  handle TimelineAsset "A loaded timeline: its tracks, paths, sounds and clips."
321
321
  ```
322
322
 
323
- <sub>`api.ogt` line 13661</sub>
323
+ <sub>`api.ogt` line 14231</sub>
324
324
 
325
325
  <a id="type-TimelineTrackInfo"></a>
326
326
 
@@ -343,7 +343,7 @@ struct TimelineTrackInfo {
343
343
  }
344
344
  ```
345
345
 
346
- <sub>`api.ogt` line 13709</sub>
346
+ <sub>`api.ogt` line 14279</sub>
347
347
 
348
348
  <a id="type-TimelineInfo"></a>
349
349
 
@@ -374,7 +374,7 @@ struct TimelineInfo {
374
374
  }
375
375
  ```
376
376
 
377
- <sub>`api.ogt` line 13716</sub>
377
+ <sub>`api.ogt` line 14286</sub>
378
378
 
379
379
  ## Column kinds
380
380
 
@@ -393,4 +393,4 @@ column TimelineAsset {
393
393
  }
394
394
  ```
395
395
 
396
- <sub>`api.ogt` line 13663</sub>
396
+ <sub>`api.ogt` line 14233</sub>