@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
@@ -18,7 +18,7 @@ module anim {
18
18
  # declarations follow, each quoted below
19
19
  ```
20
20
 
21
- <sub>`api.ogt` line 7139</sub>
21
+ <sub>`api.ogt` line 7707</sub>
22
22
 
23
23
  ## Contents
24
24
 
@@ -68,7 +68,7 @@ module anim {
68
68
  | [`Rig2D`](#type-Rig2D) | handle | A 2D rig (a cooked `.ogt` of `type rig2d`): bones, slots, region, mesh, bounding-box and child-armature attachments, IK constraints, child armatures and clips, from og.load.rig2d. |
69
69
  | [`Rig2D()`](#column-Rig2D) | column kind | A Rig2D handle field. |
70
70
  | [`og.Skeleton2D`](#record-Skeleton2D) | component | Plays a clip of a 2D rig at the entity: the og.skeleton2d system advances it by scaled time (Time.scaledDt) after the game's systems and fires its events as og.Skeleton2DEvent; extraction draws its slots, in their order, as textured triangles of the sprite batch at `layer` (region attachments as quads, mesh attachments weighted to bones and deformed by the clip), lit by og.Lighting2D when the layer is in its range, as a sprite there is. The rig's pixels are `unit` to a world unit and +y is up; the entity's og.Transform places, turns (about z) and scales it. |
71
- | [`og.Skeleton2DEvent`](#record-Skeleton2DEvent) | event | A 2D skeleton's clip passed one of its events (`event 0.2 "step"` in the rig) in the last tick: footsteps, the frame a swing lands. Read in the tick after, like every event; a clip started at 0 fires its events at 0, a looping clip fires each once per pass. |
71
+ | [`og.Skeleton2DEvent`](#record-Skeleton2DEvent) | event | A 2D skeleton's clip, or the clip a child armature in one of its slots plays, passed one of its events (`event 0.2 "step"` in the rig) in the last tick: footsteps, the frame a swing lands. Read in the tick after, like every event; a clip started at 0 fires its events at 0, a looping clip fires each once per pass. |
72
72
  | [`og.IkTarget2D`](#record-IkTarget2D) | component | Moves one IK constraint of a 2D skeleton (Rig2DInfo.constraints) to a point: a foot planted on the ground under it, a hand on a ledge, a tail's tip. A constraint is a chain of any length: one bone points at the target, two are solved exactly (bending the way the rig says), three or more by FABRIK from the animated pose, curling the way the rig says. Put it on its own entity, one per constraint; og.skeleton2d writes `reached` and `error`, and the drawn pose solves the same way. |
73
73
  | [`Rig2DClipInfo`](#type-Rig2DClipInfo) | struct | One clip of a loaded 2D rig. |
74
74
  | [`Rig2DInfo`](#type-Rig2DInfo) | struct | What og.load.rig2d registered, or og.anim.rig2dInfo reads back from a handle. |
@@ -106,7 +106,7 @@ fn graph {
106
106
  }
107
107
  ```
108
108
 
109
- <sub>`api.ogt` line 7454</sub>
109
+ <sub>`api.ogt` line 8022</sub>
110
110
 
111
111
  <a id="fn-humanoid"></a>
112
112
 
@@ -136,7 +136,7 @@ fn humanoid {
136
136
  }
137
137
  ```
138
138
 
139
- <sub>`api.ogt` line 7482</sub>
139
+ <sub>`api.ogt` line 8050</sub>
140
140
 
141
141
  <a id="fn-retarget"></a>
142
142
 
@@ -166,7 +166,7 @@ fn retarget {
166
166
  }
167
167
  ```
168
168
 
169
- <sub>`api.ogt` line 7502</sub>
169
+ <sub>`api.ogt` line 8070</sub>
170
170
 
171
171
  <a id="fn-clip"></a>
172
172
 
@@ -197,7 +197,7 @@ fn clip {
197
197
  }
198
198
  ```
199
199
 
200
- <sub>`api.ogt` line 7587</sub>
200
+ <sub>`api.ogt` line 8155</sub>
201
201
 
202
202
  <a id="fn-clip-2"></a>
203
203
 
@@ -228,7 +228,7 @@ fn clip {
228
228
  }
229
229
  ```
230
230
 
231
- <sub>`api.ogt` line 7595</sub>
231
+ <sub>`api.ogt` line 8163</sub>
232
232
 
233
233
  <a id="fn-clip-3"></a>
234
234
 
@@ -259,7 +259,7 @@ fn clip {
259
259
  }
260
260
  ```
261
261
 
262
- <sub>`api.ogt` line 7603</sub>
262
+ <sub>`api.ogt` line 8171</sub>
263
263
 
264
264
  <a id="fn-rig2dInfo"></a>
265
265
 
@@ -289,7 +289,7 @@ fn rig2dInfo {
289
289
  }
290
290
  ```
291
291
 
292
- <sub>`api.ogt` line 7708</sub>
292
+ <sub>`api.ogt` line 8281</sub>
293
293
 
294
294
  <a id="fn-skeleton2dBoxes"></a>
295
295
 
@@ -319,7 +319,7 @@ fn skeleton2dBoxes {
319
319
  }
320
320
  ```
321
321
 
322
- <sub>`api.ogt` line 7722</sub>
322
+ <sub>`api.ogt` line 8295</sub>
323
323
 
324
324
  ## Components, resources and events
325
325
 
@@ -356,7 +356,7 @@ component Skeleton {
356
356
  }
357
357
  ```
358
358
 
359
- <sub>`api.ogt` line 7223</sub>
359
+ <sub>`api.ogt` line 7791</sub>
360
360
 
361
361
  <a id="record-AnimationPlayer"></a>
362
362
 
@@ -418,7 +418,7 @@ component AnimationPlayer {
418
418
  }
419
419
  ```
420
420
 
421
- <sub>`api.ogt` line 7238</sub>
421
+ <sub>`api.ogt` line 7806</sub>
422
422
 
423
423
  <a id="record-AnimationGraph"></a>
424
424
 
@@ -494,7 +494,7 @@ component AnimationGraph {
494
494
  }
495
495
  ```
496
496
 
497
- <sub>`api.ogt` line 7277</sub>
497
+ <sub>`api.ogt` line 7845</sub>
498
498
 
499
499
  <a id="record-Blendshapes"></a>
500
500
 
@@ -567,7 +567,7 @@ component Blendshapes {
567
567
  }
568
568
  ```
569
569
 
570
- <sub>`api.ogt` line 7325</sub>
570
+ <sub>`api.ogt` line 7893</sub>
571
571
 
572
572
  <a id="record-IkChain"></a>
573
573
 
@@ -638,7 +638,7 @@ component IkChain {
638
638
  }
639
639
  ```
640
640
 
641
- <sub>`api.ogt` line 7373</sub>
641
+ <sub>`api.ogt` line 7941</sub>
642
642
 
643
643
  <a id="record-AnimationEvent"></a>
644
644
 
@@ -669,7 +669,7 @@ event AnimationEvent {
669
669
  }
670
670
  ```
671
671
 
672
- <sub>`api.ogt` line 7417</sub>
672
+ <sub>`api.ogt` line 7985</sub>
673
673
 
674
674
  <a id="record-Flipbook"></a>
675
675
 
@@ -725,7 +725,7 @@ component Flipbook {
725
725
  }
726
726
  ```
727
727
 
728
- <sub>`api.ogt` line 7525</sub>
728
+ <sub>`api.ogt` line 8093</sub>
729
729
 
730
730
  <a id="record-FlipbookEvent"></a>
731
731
 
@@ -752,7 +752,7 @@ event FlipbookEvent {
752
752
  }
753
753
  ```
754
754
 
755
- <sub>`api.ogt` line 7556</sub>
755
+ <sub>`api.ogt` line 8124</sub>
756
756
 
757
757
  <a id="record-Skeleton2D"></a>
758
758
 
@@ -773,6 +773,7 @@ Token `og.Skeleton2D`, registered under the schema name `og.Skeleton2D`; its val
773
773
  | `loop` | `boolean` | `true` | — | — | — | Wrap at the clip's end; otherwise hold the last pose and set `finished`. Rig2DInfo.clips says what the rig's author meant. |
774
774
  | `flipX` | `boolean` | `false` | — | — | — | Mirror the rig left to right about the entity's position (a character facing left). |
775
775
  | `layer` | `number` | `0` | — | — | — | The sprite layer it draws in, sorted with the sprites there (after them when they share the layer). |
776
+ | `skin` | `number` | `0` | ≥ 0 | — | — | The skin it wears: an index into Rig2DInfo.skins (0 is the rig's default; `rig.skins.indexOf("armor")` finds one by name). A skin shows its own attachment wherever the setup pose or a clip shows the default's; a slot the skin leaves alone shows the default's. Change it any tick: the pose is drawn from it. |
776
777
  | `finished` | `boolean` | `false` | — | — | read only | Written: a clip that does not loop reached its end (or its start, played backwards). |
777
778
 
778
779
  ```ogt
@@ -798,19 +799,22 @@ component Skeleton2D {
798
799
  }
799
800
  field flipX bool "Mirror the rig left to right about the entity's position (a character facing left)."
800
801
  field layer i32 "The sprite layer it draws in, sorted with the sprites there (after them when they share the layer)."
802
+ field skin u32 "The skin it wears: an index into Rig2DInfo.skins (0 is the rig's default; `rig.skins.indexOf(\"armor\")` finds one by name). A skin shows its own attachment wherever the setup pose or a clip shows the default's; a slot the skin leaves alone shows the default's. Change it any tick: the pose is drawn from it." {
803
+ min 0
804
+ }
801
805
  field finished bool "Written: a clip that does not loop reached its end (or its start, played backwards)." {
802
806
  readonly true
803
807
  }
804
808
  }
805
809
  ```
806
810
 
807
- <sub>`api.ogt` line 7620</sub>
811
+ <sub>`api.ogt` line 8188</sub>
808
812
 
809
813
  <a id="record-Skeleton2DEvent"></a>
810
814
 
811
815
  ### `og.Skeleton2DEvent` (event)
812
816
 
813
- A 2D skeleton's clip passed one of its events (`event 0.2 "step"` in the rig) in the last tick: footsteps, the frame a swing lands. Read in the tick after, like every event; a clip started at 0 fires its events at 0, a looping clip fires each once per pass.
817
+ A 2D skeleton's clip, or the clip a child armature in one of its slots plays, passed one of its events (`event 0.2 "step"` in the rig) in the last tick: footsteps, the frame a swing lands. Read in the tick after, like every event; a clip started at 0 fires its events at 0, a looping clip fires each once per pass.
814
818
 
815
819
  Token `og.Skeleton2DEvent`, registered under the schema name `og.Skeleton2DEvent`; its value type is `Skeleton2DEvent`.
816
820
 
@@ -820,20 +824,22 @@ Token `og.Skeleton2DEvent`, registered under the schema name `og.Skeleton2DEvent
820
824
  | `clip` | `number` | `0` | — | — | — | The clip index. |
821
825
  | `name` | `string` | `""` | — | — | — | The event's name (at most 63 bytes). |
822
826
  | `time` | `number` | `0` | — | `s` | — | The event's time in the clip. |
827
+ | `armature` | `string` | `""` | — | — | — | Empty for the skeleton's own clip; for an event of a child armature shown in one of its slots, that armature's name (`clip` and `time` are then the child's clip and its time): a flame's crackle apart from the keeper's footsteps (at most 63 bytes). |
823
828
 
824
829
  ```ogt
825
830
  event Skeleton2DEvent {
826
- doc "A 2D skeleton's clip passed one of its events (`event 0.2 \"step\"` in the rig) in the last tick: footsteps, the frame a swing lands. Read in the tick after, like every event; a clip started at 0 fires its events at 0, a looping clip fires each once per pass."
831
+ doc "A 2D skeleton's clip, or the clip a child armature in one of its slots plays, passed one of its events (`event 0.2 \"step\"` in the rig) in the last tick: footsteps, the frame a swing lands. Read in the tick after, like every event; a clip started at 0 fires its events at 0, a looping clip fires each once per pass."
827
832
  field entity Entity "The entity with the og.Skeleton2D."
828
833
  field clip u32 "The clip index."
829
834
  field name String "The event's name (at most 63 bytes)."
830
835
  field time f32 "The event's time in the clip." {
831
836
  unit s
832
837
  }
838
+ field armature String "Empty for the skeleton's own clip; for an event of a child armature shown in one of its slots, that armature's name (`clip` and `time` are then the child's clip and its time): a flame's crackle apart from the keeper's footsteps (at most 63 bytes)."
833
839
  }
834
840
  ```
835
841
 
836
- <sub>`api.ogt` line 7647</sub>
842
+ <sub>`api.ogt` line 8218</sub>
837
843
 
838
844
  <a id="record-IkTarget2D"></a>
839
845
 
@@ -884,7 +890,7 @@ component IkTarget2D {
884
890
  }
885
891
  ```
886
892
 
887
- <sub>`api.ogt` line 7657</sub>
893
+ <sub>`api.ogt` line 8229</sub>
888
894
 
889
895
  ## Types
890
896
 
@@ -900,7 +906,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
900
906
  handle SkeletonAsset "A rig: a glTF's nodes in topological order with their rest transforms, and its skins (joints and inverse bind matrices)."
901
907
  ```
902
908
 
903
- <sub>`api.ogt` line 7145</sub>
909
+ <sub>`api.ogt` line 7713</sub>
904
910
 
905
911
  <a id="type-ClipAsset"></a>
906
912
 
@@ -914,7 +920,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
914
920
  handle ClipAsset "An animation clip, resampled at the cook's rate, with its markers."
915
921
  ```
916
922
 
917
- <sub>`api.ogt` line 7146</sub>
923
+ <sub>`api.ogt` line 7714</sub>
918
924
 
919
925
  <a id="type-GraphAsset"></a>
920
926
 
@@ -928,7 +934,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
928
934
  handle GraphAsset "A blend-tree graph (`type animgraph`) whose clip references were resolved to clip handles."
929
935
  ```
930
936
 
931
- <sub>`api.ogt` line 7147</sub>
937
+ <sub>`api.ogt` line 7715</sub>
932
938
 
933
939
  <a id="type-RootMotion"></a>
934
940
 
@@ -953,7 +959,7 @@ enum RootMotion {
953
959
  }
954
960
  ```
955
961
 
956
- <sub>`api.ogt` line 7170</sub>
962
+ <sub>`api.ogt` line 7738</sub>
957
963
 
958
964
  <a id="type-BlendshapeSource"></a>
959
965
 
@@ -976,7 +982,7 @@ enum BlendshapeSource {
976
982
  }
977
983
  ```
978
984
 
979
- <sub>`api.ogt` line 7184</sub>
985
+ <sub>`api.ogt` line 7752</sub>
980
986
 
981
987
  <a id="type-IkSolver"></a>
982
988
 
@@ -999,7 +1005,7 @@ enum IkSolver {
999
1005
  }
1000
1006
  ```
1001
1007
 
1002
- <sub>`api.ogt` line 7197</sub>
1008
+ <sub>`api.ogt` line 7765</sub>
1003
1009
 
1004
1010
  <a id="type-IkSpace"></a>
1005
1011
 
@@ -1022,7 +1028,7 @@ enum IkSpace {
1022
1028
  }
1023
1029
  ```
1024
1030
 
1025
- <sub>`api.ogt` line 7210</sub>
1031
+ <sub>`api.ogt` line 7778</sub>
1026
1032
 
1027
1033
  <a id="type-ClipInfo"></a>
1028
1034
 
@@ -1049,7 +1055,7 @@ struct ClipInfo {
1049
1055
  }
1050
1056
  ```
1051
1057
 
1052
- <sub>`api.ogt` line 7428</sub>
1058
+ <sub>`api.ogt` line 7996</sub>
1053
1059
 
1054
1060
  <a id="type-Animation"></a>
1055
1061
 
@@ -1076,7 +1082,7 @@ struct Animation {
1076
1082
  }
1077
1083
  ```
1078
1084
 
1079
- <sub>`api.ogt` line 7438</sub>
1085
+ <sub>`api.ogt` line 8006</sub>
1080
1086
 
1081
1087
  <a id="type-GraphDesc"></a>
1082
1088
 
@@ -1100,7 +1106,7 @@ struct GraphDesc {
1100
1106
  }
1101
1107
  ```
1102
1108
 
1103
- <sub>`api.ogt` line 7447</sub>
1109
+ <sub>`api.ogt` line 8015</sub>
1104
1110
 
1105
1111
  <a id="type-Rig"></a>
1106
1112
 
@@ -1114,7 +1120,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
1114
1120
  handle Rig "A humanoid map from og.load.rig (a cooked `.ogt` of `type rig`): the naming scheme a skeleton's node names follow and the standard bones it names outright."
1115
1121
  ```
1116
1122
 
1117
- <sub>`api.ogt` line 7461</sub>
1123
+ <sub>`api.ogt` line 8029</sub>
1118
1124
 
1119
1125
  <a id="type-HumanBone"></a>
1120
1126
 
@@ -1135,7 +1141,7 @@ struct HumanBone {
1135
1141
  }
1136
1142
  ```
1137
1143
 
1138
- <sub>`api.ogt` line 7463</sub>
1144
+ <sub>`api.ogt` line 8031</sub>
1139
1145
 
1140
1146
  <a id="type-Humanoid"></a>
1141
1147
 
@@ -1156,7 +1162,7 @@ struct Humanoid {
1156
1162
  }
1157
1163
  ```
1158
1164
 
1159
- <sub>`api.ogt` line 7469</sub>
1165
+ <sub>`api.ogt` line 8037</sub>
1160
1166
 
1161
1167
  <a id="type-HumanoidDesc"></a>
1162
1168
 
@@ -1180,7 +1186,7 @@ struct HumanoidDesc {
1180
1186
  }
1181
1187
  ```
1182
1188
 
1183
- <sub>`api.ogt` line 7475</sub>
1189
+ <sub>`api.ogt` line 8043</sub>
1184
1190
 
1185
1191
  <a id="type-RetargetDesc"></a>
1186
1192
 
@@ -1214,7 +1220,7 @@ struct RetargetDesc {
1214
1220
  }
1215
1221
  ```
1216
1222
 
1217
- <sub>`api.ogt` line 7489</sub>
1223
+ <sub>`api.ogt` line 8057</sub>
1218
1224
 
1219
1225
  <a id="type-FlipbookSheet"></a>
1220
1226
 
@@ -1228,7 +1234,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
1228
1234
  handle FlipbookSheet "A sprite sheet's frames and clips (a cooked `.ogt` of `type flipbook`), from og.load.flipbook."
1229
1235
  ```
1230
1236
 
1231
- <sub>`api.ogt` line 7509</sub>
1237
+ <sub>`api.ogt` line 8077</sub>
1232
1238
 
1233
1239
  <a id="type-FlipMode"></a>
1234
1240
 
@@ -1253,7 +1259,7 @@ enum FlipMode {
1253
1259
  }
1254
1260
  ```
1255
1261
 
1256
- <sub>`api.ogt` line 7518</sub>
1262
+ <sub>`api.ogt` line 8086</sub>
1257
1263
 
1258
1264
  <a id="type-FlipbookClipInfo"></a>
1259
1265
 
@@ -1284,7 +1290,7 @@ struct FlipbookClipInfo {
1284
1290
  }
1285
1291
  ```
1286
1292
 
1287
- <sub>`api.ogt` line 7564</sub>
1293
+ <sub>`api.ogt` line 8132</sub>
1288
1294
 
1289
1295
  <a id="type-FlipbookInfo"></a>
1290
1296
 
@@ -1315,7 +1321,7 @@ struct FlipbookInfo {
1315
1321
  }
1316
1322
  ```
1317
1323
 
1318
- <sub>`api.ogt` line 7576</sub>
1324
+ <sub>`api.ogt` line 8144</sub>
1319
1325
 
1320
1326
  <a id="type-Rig2D"></a>
1321
1327
 
@@ -1329,7 +1335,7 @@ A generational handle: a number the engine hands out. A dead handle is an error
1329
1335
  handle Rig2D "A 2D rig (a cooked `.ogt` of `type rig2d`): bones, slots, region, mesh, bounding-box and child-armature attachments, IK constraints, child armatures and clips, from og.load.rig2d."
1330
1336
  ```
1331
1337
 
1332
- <sub>`api.ogt` line 7611</sub>
1338
+ <sub>`api.ogt` line 8179</sub>
1333
1339
 
1334
1340
  <a id="type-Rig2DClipInfo"></a>
1335
1341
 
@@ -1358,7 +1364,7 @@ struct Rig2DClipInfo {
1358
1364
  }
1359
1365
  ```
1360
1366
 
1361
- <sub>`api.ogt` line 7686</sub>
1367
+ <sub>`api.ogt` line 8258</sub>
1362
1368
 
1363
1369
  <a id="type-Rig2DInfo"></a>
1364
1370
 
@@ -1374,6 +1380,7 @@ What og.load.rig2d registered, or og.anim.rig2dInfo reads back from a handle.
1374
1380
  | `bones` | `readonly string[]` | `[]` | — | — | — | The bones' names, parents first. |
1375
1381
  | `slots` | `readonly string[]` | `[]` | — | — | — | The slots' names, in draw order. |
1376
1382
  | `constraints` | `readonly string[]` | `[]` | — | — | — | The IK constraints' names: an index here is IkTarget2D.constraint. |
1383
+ | `skins` | `readonly string[]` | `[]` | — | — | — | Its skins' names, `default` (the rig's own attachments) first: an index here is Skeleton2D.skin. |
1377
1384
  | `clips` | `readonly Rig2DClipInfo[]` | `[]` | — | — | — | Its clips, in file order. |
1378
1385
 
1379
1386
  ```ogt
@@ -1385,11 +1392,12 @@ struct Rig2DInfo {
1385
1392
  field bones List.String "The bones' names, parents first."
1386
1393
  field slots List.String "The slots' names, in draw order."
1387
1394
  field constraints List.String "The IK constraints' names: an index here is IkTarget2D.constraint."
1395
+ field skins List.String "Its skins' names, `default` (the rig's own attachments) first: an index here is Skeleton2D.skin."
1388
1396
  field clips List.Rig2DClipInfo "Its clips, in file order."
1389
1397
  }
1390
1398
  ```
1391
1399
 
1392
- <sub>`api.ogt` line 7697</sub>
1400
+ <sub>`api.ogt` line 8269</sub>
1393
1401
 
1394
1402
  <a id="type-Skeleton2DBox"></a>
1395
1403
 
@@ -1412,7 +1420,7 @@ struct Skeleton2DBox {
1412
1420
  }
1413
1421
  ```
1414
1422
 
1415
- <sub>`api.ogt` line 7715</sub>
1423
+ <sub>`api.ogt` line 8288</sub>
1416
1424
 
1417
1425
  ## Column kinds
1418
1426
 
@@ -1439,7 +1447,7 @@ column SkeletonAsset {
1439
1447
  }
1440
1448
  ```
1441
1449
 
1442
- <sub>`api.ogt` line 7149</sub>
1450
+ <sub>`api.ogt` line 7717</sub>
1443
1451
 
1444
1452
  ```ogt
1445
1453
  column ClipAsset {
@@ -1450,7 +1458,7 @@ column ClipAsset {
1450
1458
  }
1451
1459
  ```
1452
1460
 
1453
- <sub>`api.ogt` line 7156</sub>
1461
+ <sub>`api.ogt` line 7724</sub>
1454
1462
 
1455
1463
  ```ogt
1456
1464
  column GraphAsset {
@@ -1461,7 +1469,7 @@ column GraphAsset {
1461
1469
  }
1462
1470
  ```
1463
1471
 
1464
- <sub>`api.ogt` line 7163</sub>
1472
+ <sub>`api.ogt` line 7731</sub>
1465
1473
 
1466
1474
  ```ogt
1467
1475
  column RootMotion {
@@ -1472,7 +1480,7 @@ column RootMotion {
1472
1480
  }
1473
1481
  ```
1474
1482
 
1475
- <sub>`api.ogt` line 7177</sub>
1483
+ <sub>`api.ogt` line 7745</sub>
1476
1484
 
1477
1485
  ```ogt
1478
1486
  column BlendshapeSource {
@@ -1483,7 +1491,7 @@ column BlendshapeSource {
1483
1491
  }
1484
1492
  ```
1485
1493
 
1486
- <sub>`api.ogt` line 7190</sub>
1494
+ <sub>`api.ogt` line 7758</sub>
1487
1495
 
1488
1496
  ```ogt
1489
1497
  column IkSolver {
@@ -1494,7 +1502,7 @@ column IkSolver {
1494
1502
  }
1495
1503
  ```
1496
1504
 
1497
- <sub>`api.ogt` line 7203</sub>
1505
+ <sub>`api.ogt` line 7771</sub>
1498
1506
 
1499
1507
  ```ogt
1500
1508
  column IkSpace {
@@ -1505,7 +1513,7 @@ column IkSpace {
1505
1513
  }
1506
1514
  ```
1507
1515
 
1508
- <sub>`api.ogt` line 7216</sub>
1516
+ <sub>`api.ogt` line 7784</sub>
1509
1517
 
1510
1518
  ```ogt
1511
1519
  column FlipbookSheet {
@@ -1516,7 +1524,7 @@ column FlipbookSheet {
1516
1524
  }
1517
1525
  ```
1518
1526
 
1519
- <sub>`api.ogt` line 7511</sub>
1527
+ <sub>`api.ogt` line 8079</sub>
1520
1528
 
1521
1529
  ```ogt
1522
1530
  column Rig2D {
@@ -1527,4 +1535,4 @@ column Rig2D {
1527
1535
  }
1528
1536
  ```
1529
1537
 
1530
- <sub>`api.ogt` line 7613</sub>
1538
+ <sub>`api.ogt` line 8181</sub>
@@ -16,7 +16,7 @@ module atmosphere {
16
16
  # declarations follow, each quoted below
17
17
  ```
18
18
 
19
- <sub>`api.ogt` line 6734</sub>
19
+ <sub>`api.ogt` line 7302</sub>
20
20
 
21
21
  ## Contents
22
22
 
@@ -63,7 +63,7 @@ fn timeOfDay {
63
63
  }
64
64
  ```
65
65
 
66
- <sub>`api.ogt` line 7130</sub>
66
+ <sub>`api.ogt` line 7698</sub>
67
67
 
68
68
  ## Components, resources and events
69
69
 
@@ -177,7 +177,7 @@ resource Fog {
177
177
  }
178
178
  ```
179
179
 
180
- <sub>`api.ogt` line 6745</sub>
180
+ <sub>`api.ogt` line 7313</sub>
181
181
 
182
182
  <a id="record-Sky"></a>
183
183
 
@@ -284,7 +284,7 @@ resource Sky {
284
284
  }
285
285
  ```
286
286
 
287
- <sub>`api.ogt` line 6826</sub>
287
+ <sub>`api.ogt` line 7394</sub>
288
288
 
289
289
  <a id="record-DayNight"></a>
290
290
 
@@ -366,7 +366,7 @@ resource DayNight {
366
366
  }
367
367
  ```
368
368
 
369
- <sub>`api.ogt` line 6901</sub>
369
+ <sub>`api.ogt` line 7469</sub>
370
370
 
371
371
  <a id="record-Weather"></a>
372
372
 
@@ -428,7 +428,7 @@ resource Weather {
428
428
  }
429
429
  ```
430
430
 
431
- <sub>`api.ogt` line 6958</sub>
431
+ <sub>`api.ogt` line 7526</sub>
432
432
 
433
433
  <a id="record-Water"></a>
434
434
 
@@ -562,7 +562,7 @@ component Water {
562
562
  }
563
563
  ```
564
564
 
565
- <sub>`api.ogt` line 6998</sub>
565
+ <sub>`api.ogt` line 7566</sub>
566
566
 
567
567
  <a id="record-Water2D"></a>
568
568
 
@@ -616,7 +616,7 @@ component Water2D {
616
616
  }
617
617
  ```
618
618
 
619
- <sub>`api.ogt` line 7098</sub>
619
+ <sub>`api.ogt` line 7666</sub>
620
620
 
621
621
  ## Constants
622
622
 
@@ -632,28 +632,28 @@ component Water2D {
632
632
  const WEATHER_NONE u32 0 "Weather.kind: clear."
633
633
  ```
634
634
 
635
- <sub>`api.ogt` line 6739</sub>
635
+ <sub>`api.ogt` line 7307</sub>
636
636
 
637
637
  ```ogt
638
638
  const WEATHER_RAIN u32 1 "Weather.kind: rain streaks falling with the wind, the light dimmed and a grey distance fog."
639
639
  ```
640
640
 
641
- <sub>`api.ogt` line 6740</sub>
641
+ <sub>`api.ogt` line 7308</sub>
642
642
 
643
643
  ```ogt
644
644
  const WEATHER_SNOW u32 2 "Weather.kind: flakes drifting down on gusts, a pale fog."
645
645
  ```
646
646
 
647
- <sub>`api.ogt` line 6741</sub>
647
+ <sub>`api.ogt` line 7309</sub>
648
648
 
649
649
  ```ogt
650
650
  const WEATHER_DUST u32 3 "Weather.kind: dust blowing along the wind near the ground, a warm thick fog."
651
651
  ```
652
652
 
653
- <sub>`api.ogt` line 6742</sub>
653
+ <sub>`api.ogt` line 7310</sub>
654
654
 
655
655
  ```ogt
656
656
  const WEATHER_MIST u32 4 "Weather.kind: no particles, a dense low height fog."
657
657
  ```
658
658
 
659
- <sub>`api.ogt` line 6743</sub>
659
+ <sub>`api.ogt` line 7311</sub>