narraleaf-studio 1.0.0 → 1.2.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.
- package/dist/_api.d.ts +640 -84
- package/dist/plugin.d.ts +2 -0
- package/dist/runtime.d.ts +2 -0
- package/package.json +1 -1
package/dist/_api.d.ts
CHANGED
|
@@ -665,27 +665,60 @@ type StoryActionPayload = {
|
|
|
665
665
|
} | {
|
|
666
666
|
/**
|
|
667
667
|
* A `Video` — an Actionable, not a Displayable, which is why it has its own verb set rather
|
|
668
|
-
* than sharing `displayable`'s.
|
|
668
|
+
* than sharing `displayable`'s.
|
|
669
669
|
*
|
|
670
|
-
* `
|
|
671
|
-
*
|
|
670
|
+
* **`play` is the only row that puts a clip on the stage** (v27). It carries the file
|
|
671
|
+
* ({@link assetId}) and defines the clip under {@link objectName}: it reveals the clip, runs
|
|
672
|
+
* it, and - unless {@link hideOnEnd} says otherwise - takes it off the stage when it ends. A
|
|
673
|
+
* second `play` of the same name and file runs that clip again.
|
|
672
674
|
*
|
|
673
|
-
*
|
|
674
|
-
*
|
|
675
|
-
*
|
|
676
|
-
*
|
|
677
|
-
*
|
|
678
|
-
* written before them carries either, so no schema bump.
|
|
675
|
+
* Every other operation names a clip a `play` defined: `pause`, `resume`, `seek`, `stop`
|
|
676
|
+
* (end it now, as though it had reached its end - the defining play then hides it or holds
|
|
677
|
+
* its frame, as it says) and `hide`. A video is a cutscene the story plays, not an object it
|
|
678
|
+
* stages, so there is no row that declares or reveals a clip without running it; v27
|
|
679
|
+
* folded the `create` and `show` rows that used to into the plays that followed them.
|
|
679
680
|
*/
|
|
680
681
|
action: "video";
|
|
681
|
-
operation: "
|
|
682
|
+
operation: "hide" | "play" | "pause" | "resume" | "stop" | "seek";
|
|
682
683
|
objectName: string;
|
|
683
|
-
/**
|
|
684
|
+
/**
|
|
685
|
+
* Which clip a control operation addresses, bound to the `play` that defines it. Same rule
|
|
686
|
+
* as the `image` arm's `target`. A `play` carries none: it defines its clip itself.
|
|
687
|
+
*/
|
|
684
688
|
target?: StoryActionableTargetRef;
|
|
689
|
+
/** `play` — the clip it plays. Required: a play with no file plays nothing. */
|
|
685
690
|
assetId?: string;
|
|
691
|
+
/** `play` — whether the clip plays without sound. */
|
|
686
692
|
muted?: boolean;
|
|
687
693
|
/** `seek` — where to jump to, in milliseconds. The engine's `seek` takes seconds; the compiler converts. */
|
|
688
694
|
timeMs?: number;
|
|
695
|
+
/**
|
|
696
|
+
* `play` — whether the story waits for the clip to end before it moves on.
|
|
697
|
+
*
|
|
698
|
+
* Absent means it waits, which is what every `play` written before this field did. `false`
|
|
699
|
+
* lets the next row run at once while the clip plays on; the clip still leaves the stage
|
|
700
|
+
* when it ends, as {@link hideOnEnd} says. `videoPlayWaits` is the one reading of this field.
|
|
701
|
+
*
|
|
702
|
+
* Added with v27; a v26 document cannot carry it.
|
|
703
|
+
*/
|
|
704
|
+
waitForEnd?: boolean;
|
|
705
|
+
/**
|
|
706
|
+
* `play` — whether the clip leaves the stage once it has played to the end.
|
|
707
|
+
*
|
|
708
|
+
* Absent means it does: a clip that ends holds its last frame above every scene, across a
|
|
709
|
+
* jump too, so clearing itself away is what a cutscene is expected to do. `false` holds that
|
|
710
|
+
* last frame until a `hide` row takes it away. `videoPlayHidesOnEnd` is the one reading of
|
|
711
|
+
* this field.
|
|
712
|
+
*/
|
|
713
|
+
hideOnEnd?: boolean;
|
|
714
|
+
/**
|
|
715
|
+
* How long the clip takes to fade out, in milliseconds - on a `hide`, and on a `play` that
|
|
716
|
+
* hides its clip when it ends. `0` is a cut.
|
|
717
|
+
*
|
|
718
|
+
* Unset, a `hide` cuts, as it always did, and a hiding `play` fades over the default every
|
|
719
|
+
* other hide row is seeded with. `videoLeaveFadeMs` is the one reading of this field.
|
|
720
|
+
*/
|
|
721
|
+
durationMs?: number;
|
|
689
722
|
} | {
|
|
690
723
|
/**
|
|
691
724
|
* The story's stage camera (`story.camera`) — a Displayable like any other in the engine, but
|
|
@@ -2109,6 +2142,21 @@ type PluginContributes = {
|
|
|
2109
2142
|
* capability to consent to at install time.
|
|
2110
2143
|
*/
|
|
2111
2144
|
tests?: string[];
|
|
2145
|
+
/**
|
|
2146
|
+
* Save ids the plugin keeps for its own bookkeeping - a quick-save slot, a checkpoint - rather
|
|
2147
|
+
* than slots a player chose.
|
|
2148
|
+
*
|
|
2149
|
+
* The game leaves them out of `List Saves`, and so out of every save screen built on it, the way
|
|
2150
|
+
* it leaves out its own autosave ring. Nothing else changes for them: the plugin still writes,
|
|
2151
|
+
* loads and finds them through `app.game.saves` (whose `listIds` is the raw store listing and
|
|
2152
|
+
* still includes them), and the explicit-id save nodes - `Load Save`, `Delete Save`, the
|
|
2153
|
+
* `Get Save` readers - take them like any other id.
|
|
2154
|
+
*
|
|
2155
|
+
* Prefixed with the plugin id like the type lists above, so a plugin can only reserve ids in its
|
|
2156
|
+
* own namespace and can never hide a slot the author's own `Save Game` wrote. That is also why it
|
|
2157
|
+
* derives no install permission: it reaches nothing the plugin did not already own.
|
|
2158
|
+
*/
|
|
2159
|
+
reservedSaveIds?: string[];
|
|
2112
2160
|
/**
|
|
2113
2161
|
* Capability domains the `runtime` entry may use. Each maps 1:1 onto a
|
|
2114
2162
|
* namespace on `app.game`, and an undeclared domain is absent from that
|
|
@@ -2172,9 +2220,29 @@ type PluginContributes = {
|
|
|
2172
2220
|
*/
|
|
2173
2221
|
network?: string[];
|
|
2174
2222
|
};
|
|
2223
|
+
/**
|
|
2224
|
+
* The plugin's name and description in one editor language. Either may be left out, and the plain
|
|
2225
|
+
* manifest field is shown in its place.
|
|
2226
|
+
*/
|
|
2227
|
+
export type PluginManifestLocalizedText = {
|
|
2228
|
+
name?: string;
|
|
2229
|
+
description?: string;
|
|
2230
|
+
};
|
|
2231
|
+
/**
|
|
2232
|
+
* `name` and `description` per editor locale, keyed by the exact code Studio's language setting
|
|
2233
|
+
* stores (`zh`, `ja`, or a code a language pack adds). There is no region matching: an entry under
|
|
2234
|
+
* `zh-CN` is never shown, because no Studio locale is called that.
|
|
2235
|
+
*/
|
|
2236
|
+
export type PluginManifestLocalized = Record<string, PluginManifestLocalizedText>;
|
|
2175
2237
|
export type PluginManifestV2 = Omit<PluginIdentity, "id" | "name" | "version"> & Required<Pick<PluginIdentity, "id" | "name" | "version">> & {
|
|
2176
2238
|
manifestVersion: typeof PluginManifestVersion;
|
|
2177
2239
|
description?: string;
|
|
2240
|
+
/**
|
|
2241
|
+
* Translations of `name` and `description`, shown wherever Studio names the plugin to an author
|
|
2242
|
+
* whose editor is set to that language. The plain fields stay the plugin's identity: command
|
|
2243
|
+
* lines, project files and built games name it by them.
|
|
2244
|
+
*/
|
|
2245
|
+
localized?: PluginManifestLocalized;
|
|
2178
2246
|
/**
|
|
2179
2247
|
* Package-relative path to the thumbnail shown beside the plugin's name in
|
|
2180
2248
|
* the Launcher list. Square, at most 512x512, and one of the extensions in
|
|
@@ -2565,6 +2633,21 @@ type UIDocument = {
|
|
|
2565
2633
|
* `inputAction.ts`.
|
|
2566
2634
|
*/
|
|
2567
2635
|
actions?: Record<string, UIInputActionDef>;
|
|
2636
|
+
/**
|
|
2637
|
+
* The page the game starts on, by id.
|
|
2638
|
+
*
|
|
2639
|
+
* Absent means the page carrying `MAIN_APP_SURFACE_ID` - the id a new document gives its first
|
|
2640
|
+
* page, and the only entry a document had before this field existed - so a document whose author
|
|
2641
|
+
* never moved the entry stays exactly as short as it was. Read only through `resolveEntrySurface`
|
|
2642
|
+
* (`entrySurface.ts`), which also says what a pointer that has lost its page falls back to.
|
|
2643
|
+
*
|
|
2644
|
+
* A pointer rather than an id swap: a page's id is what its blueprints are filed under and what
|
|
2645
|
+
* every `Go Page` names, so making another page the entry must not change which id it has.
|
|
2646
|
+
*
|
|
2647
|
+
* Carries no schema bump, for the reason `actions` and `structs` did not: absence already means a
|
|
2648
|
+
* defined answer, so a document written before this field reads correctly without one.
|
|
2649
|
+
*/
|
|
2650
|
+
entrySurfaceId?: UISurfaceId;
|
|
2568
2651
|
meta?: UIDocumentMeta;
|
|
2569
2652
|
};
|
|
2570
2653
|
type UIDocumentMeta = {
|
|
@@ -3006,6 +3089,7 @@ declare const en: {
|
|
|
3006
3089
|
readonly welcome: "Open Welcome";
|
|
3007
3090
|
readonly docs: "Documentation";
|
|
3008
3091
|
readonly feedback: "Send Feedback";
|
|
3092
|
+
readonly exportLogs: "Export Logs\u2026";
|
|
3009
3093
|
readonly about: "About {name}";
|
|
3010
3094
|
};
|
|
3011
3095
|
};
|
|
@@ -3786,6 +3870,11 @@ declare const en: {
|
|
|
3786
3870
|
readonly removeKey: "Remove key";
|
|
3787
3871
|
readonly removeKeyConfirm: "Remove {name}?";
|
|
3788
3872
|
readonly removeKeyConfirmDetail: "Existing translations of this key stay in the language files.";
|
|
3873
|
+
readonly removeKeyUsedBy: "Used by:";
|
|
3874
|
+
readonly removeKeyUsedByElement: "{owner} \u25B8 {element}";
|
|
3875
|
+
readonly removeKeyUsedByBlueprint: "Blueprint \u201C{name}\u201D";
|
|
3876
|
+
readonly removeKeyUsedByMore: "and {count} more";
|
|
3877
|
+
readonly removeKeyUsedByAfter: "Once the key is removed, the project check reports each of them.";
|
|
3789
3878
|
readonly sourceColumn: "Source";
|
|
3790
3879
|
readonly targetColumn: "Translation";
|
|
3791
3880
|
readonly targetPlaceholder: "Translate\u2026";
|
|
@@ -4228,6 +4317,10 @@ declare const en: {
|
|
|
4228
4317
|
readonly one: "{count} more waiting";
|
|
4229
4318
|
readonly other: "{count} more waiting";
|
|
4230
4319
|
};
|
|
4320
|
+
readonly repeated: {
|
|
4321
|
+
readonly one: "{count} time";
|
|
4322
|
+
readonly other: "{count} times";
|
|
4323
|
+
};
|
|
4231
4324
|
};
|
|
4232
4325
|
readonly background: {
|
|
4233
4326
|
readonly command: "Set background image\u2026";
|
|
@@ -4297,7 +4390,7 @@ declare const en: {
|
|
|
4297
4390
|
readonly saveFailed: "Save failed";
|
|
4298
4391
|
readonly retrySave: "Retry saving now";
|
|
4299
4392
|
readonly resetZoom: "Reset zoom to 100%";
|
|
4300
|
-
readonly shortcuts: "
|
|
4393
|
+
readonly shortcuts: "Shortcuts and mouse actions";
|
|
4301
4394
|
readonly words: {
|
|
4302
4395
|
readonly one: "{count} word";
|
|
4303
4396
|
readonly other: "{count} words";
|
|
@@ -4316,7 +4409,7 @@ declare const en: {
|
|
|
4316
4409
|
readonly studioTasks: "Background work";
|
|
4317
4410
|
readonly unsavedChanges: "Unsaved changes";
|
|
4318
4411
|
readonly wordCount: "Story stats";
|
|
4319
|
-
readonly shortcuts: "
|
|
4412
|
+
readonly shortcuts: "Shortcuts and mouse actions";
|
|
4320
4413
|
readonly notifications: "Notifications";
|
|
4321
4414
|
readonly theme: "Theme switcher";
|
|
4322
4415
|
readonly zoom: "Zoom level";
|
|
@@ -4671,7 +4764,7 @@ declare const en: {
|
|
|
4671
4764
|
readonly conflict: "Also bound to {name}";
|
|
4672
4765
|
readonly empty: "No matching shortcuts";
|
|
4673
4766
|
readonly openSettings: "Customize Keyboard Shortcuts";
|
|
4674
|
-
readonly cheatSheetTitle: "
|
|
4767
|
+
readonly cheatSheetTitle: "Shortcuts and Mouse Actions";
|
|
4675
4768
|
readonly cheatSheetCustomize: "Customize\u2026";
|
|
4676
4769
|
readonly categories: {
|
|
4677
4770
|
readonly general: "General";
|
|
@@ -4690,12 +4783,13 @@ declare const en: {
|
|
|
4690
4783
|
readonly catalog: {
|
|
4691
4784
|
readonly commandPalette: "Show and Run Commands";
|
|
4692
4785
|
readonly quickOpen: "Quick Open";
|
|
4693
|
-
readonly cheatSheet: "Show
|
|
4786
|
+
readonly cheatSheet: "Show Shortcuts and Mouse Actions";
|
|
4694
4787
|
readonly contextHelp: "Help for What Is Focused";
|
|
4695
4788
|
readonly reopenClosedTab: "Reopen Closed Tab";
|
|
4696
4789
|
readonly localizationFind: "Find in Translations";
|
|
4697
4790
|
readonly voiceFind: "Find in Voice-over";
|
|
4698
4791
|
readonly lintFind: "Find in Problems";
|
|
4792
|
+
readonly blueprintOverviewFind: "Find in Blueprint Overview";
|
|
4699
4793
|
readonly run: {
|
|
4700
4794
|
readonly stop: "Stop the Run";
|
|
4701
4795
|
};
|
|
@@ -4744,6 +4838,104 @@ declare const en: {
|
|
|
4744
4838
|
readonly playheadEnd: "Move Playhead to End";
|
|
4745
4839
|
};
|
|
4746
4840
|
};
|
|
4841
|
+
readonly gestures: {
|
|
4842
|
+
readonly withModifiers: "{keys}+{gesture}";
|
|
4843
|
+
readonly middleClickTab: "Middle-click a tab";
|
|
4844
|
+
readonly doubleClickTab: "Double-click a tab";
|
|
4845
|
+
readonly clickTab: "Click a tab";
|
|
4846
|
+
readonly doubleClickDivider: "Double-click the divider";
|
|
4847
|
+
readonly doubleClickRow: "Double-click a row";
|
|
4848
|
+
readonly clickRow: "Click a row";
|
|
4849
|
+
readonly dragAcrossRows: "Drag across rows";
|
|
4850
|
+
readonly dragRowHandle: "Drag a row's handle";
|
|
4851
|
+
readonly clickName: "Click a name";
|
|
4852
|
+
readonly dragHandle: "Drag a handle";
|
|
4853
|
+
readonly arrowKeys: "Arrow keys";
|
|
4854
|
+
readonly middleDrag: "Middle-drag";
|
|
4855
|
+
readonly scroll: "Scroll";
|
|
4856
|
+
readonly drag: "Drag";
|
|
4857
|
+
readonly clickElement: "Click an element";
|
|
4858
|
+
readonly doubleClickContainer: "Double-click a container";
|
|
4859
|
+
readonly doubleClickText: "Double-click text or a button";
|
|
4860
|
+
readonly doubleClickImage: "Double-click an image";
|
|
4861
|
+
readonly dragImageAsset: "Drag an image asset onto the canvas";
|
|
4862
|
+
readonly doubleClickOutlineItem: "Double-click an outline item";
|
|
4863
|
+
readonly dragOutlineItem: "Drag an outline item";
|
|
4864
|
+
readonly clickNode: "Click a node";
|
|
4865
|
+
readonly rightClickCanvas: "Right-click the canvas";
|
|
4866
|
+
readonly dragPinToCanvas: "Drag from a pin onto empty canvas";
|
|
4867
|
+
readonly doubleClickWire: "Double-click a wire";
|
|
4868
|
+
readonly doubleClickGroupTitle: "Double-click a group's title";
|
|
4869
|
+
readonly middleClickTitle: "Middle-click the title row";
|
|
4870
|
+
readonly doubleClickTrack: "Double-click a track";
|
|
4871
|
+
readonly clickAsset: "Click an asset";
|
|
4872
|
+
readonly doubleClick: "Double-click";
|
|
4873
|
+
readonly dragToEditorArea: "Drag into the editor area";
|
|
4874
|
+
readonly dragOntoGroup: "Drag onto a group";
|
|
4875
|
+
readonly dragWaveform: "Drag on the waveform";
|
|
4876
|
+
readonly doubleClickWaveform: "Double-click the waveform";
|
|
4877
|
+
readonly doubleClickMarker: "Double-click a marker";
|
|
4878
|
+
readonly doubleClickPicture: "Double-click the picture";
|
|
4879
|
+
readonly doubleClickTimeline: "Double-click the timeline";
|
|
4880
|
+
};
|
|
4881
|
+
readonly fixed: {
|
|
4882
|
+
readonly toggleSelection: "Add to or Remove from Selection";
|
|
4883
|
+
readonly addToSelection: "Add to Selection";
|
|
4884
|
+
readonly panCanvas: "Pan the Canvas";
|
|
4885
|
+
readonly zoomAtPointer: "Zoom at the Pointer";
|
|
4886
|
+
readonly easingSnap: "Snap an Easing Handle to the Grid";
|
|
4887
|
+
readonly easingNudge: "Nudge a Focused Easing Handle";
|
|
4888
|
+
readonly general: {
|
|
4889
|
+
readonly keepTabOpen: "Keep a Preview Tab Open";
|
|
4890
|
+
readonly selectTabs: "Select Several Tabs";
|
|
4891
|
+
readonly resetSplit: "Split the Editor Area Evenly";
|
|
4892
|
+
};
|
|
4893
|
+
readonly story: {
|
|
4894
|
+
readonly selectRowRange: "Select a Range of Rows";
|
|
4895
|
+
readonly moveRows: "Move Rows";
|
|
4896
|
+
readonly followReference: "Go to What a Name Refers To";
|
|
4897
|
+
readonly continueRow: "Commit and Continue With the Same Kind of Row";
|
|
4898
|
+
readonly blankRow: "Commit and Start a Blank Row";
|
|
4899
|
+
readonly finishEditing: "Finish Editing a Row";
|
|
4900
|
+
readonly pastePlain: "Paste Without Paste as Rows";
|
|
4901
|
+
};
|
|
4902
|
+
readonly uiEditor: {
|
|
4903
|
+
readonly selectInside: "Select Inside a Container";
|
|
4904
|
+
readonly editText: "Edit Text in Place";
|
|
4905
|
+
readonly discardText: "Discard the Text Being Edited";
|
|
4906
|
+
readonly crop: "Crop an Image";
|
|
4907
|
+
readonly suspendSnap: "Suspend Smart Snap";
|
|
4908
|
+
readonly dropImage: "Add an Image Element";
|
|
4909
|
+
readonly reorder: "Reorder or Move Into Another Element";
|
|
4910
|
+
};
|
|
4911
|
+
readonly blueprint: {
|
|
4912
|
+
readonly addNode: "Add a Node";
|
|
4913
|
+
readonly addConnectedNode: "Add a Connected Node";
|
|
4914
|
+
readonly deleteWire: "Delete a Wire";
|
|
4915
|
+
readonly deleteSelection: "Delete Selection";
|
|
4916
|
+
readonly renameGroup: "Rename a Group";
|
|
4917
|
+
};
|
|
4918
|
+
readonly storyMotion: {
|
|
4919
|
+
readonly noFrameSnap: "Drag Without Frame Snapping";
|
|
4920
|
+
readonly addKeyframe: "Add a Keyframe";
|
|
4921
|
+
readonly panPreview: "Pan the Preview";
|
|
4922
|
+
readonly zoom: "Zoom the Preview or Timeline";
|
|
4923
|
+
readonly scrollTimeline: "Scroll the Timeline Sideways";
|
|
4924
|
+
};
|
|
4925
|
+
readonly assets: {
|
|
4926
|
+
readonly selectAssetRange: "Select a Range of Assets";
|
|
4927
|
+
readonly open: "Open";
|
|
4928
|
+
readonly moveToGroup: "Move to a Group";
|
|
4929
|
+
readonly tileSize: "Resize Thumbnails";
|
|
4930
|
+
readonly audioScroll: "Scroll the Waveform Sideways";
|
|
4931
|
+
readonly audioZoomTime: "Zoom the Waveform in Time";
|
|
4932
|
+
readonly audioZoomAmplitude: "Magnify the Waveform Vertically";
|
|
4933
|
+
readonly selectAudioRange: "Select a Stretch of Audio";
|
|
4934
|
+
readonly clearMarker: "Clear a Marker";
|
|
4935
|
+
readonly videoZoom: "Zoom the Picture";
|
|
4936
|
+
readonly videoActualSize: "Switch Between Fit and Actual Pixels";
|
|
4937
|
+
};
|
|
4938
|
+
};
|
|
4747
4939
|
};
|
|
4748
4940
|
readonly search: {
|
|
4749
4941
|
readonly placeholder: "Search project\u2026";
|
|
@@ -4847,7 +5039,7 @@ declare const en: {
|
|
|
4847
5039
|
readonly other: "Its {count} scenes are deleted with it.";
|
|
4848
5040
|
};
|
|
4849
5041
|
readonly deleteSceneConfirm: "Delete scene \"{name}\"?";
|
|
4850
|
-
readonly deleteSceneDetail: "This removes the scene and its
|
|
5042
|
+
readonly deleteSceneDetail: "This removes the scene and all its rows. Jumps to it will stop resolving.";
|
|
4851
5043
|
};
|
|
4852
5044
|
readonly readFailed: {
|
|
4853
5045
|
readonly missing: "This story is no longer in this project.";
|
|
@@ -4942,9 +5134,9 @@ declare const en: {
|
|
|
4942
5134
|
readonly undoSceneRestored: "That scene is in the story again.";
|
|
4943
5135
|
readonly undoChapterGone: "That chapter is gone.";
|
|
4944
5136
|
readonly undoChapterRestored: "That chapter is in the story again.";
|
|
4945
|
-
readonly undoContainerGone: "The
|
|
5137
|
+
readonly undoContainerGone: "The row that line was inside is gone.";
|
|
4946
5138
|
readonly undoAnchorGone: "Where that line moved from is gone.";
|
|
4947
|
-
readonly undoContainerFilled: "That
|
|
5139
|
+
readonly undoContainerFilled: "That row has other lines inside it now.";
|
|
4948
5140
|
readonly undoSubtreeLost: "The lines that were inside it cannot be put back.";
|
|
4949
5141
|
readonly undoChaptersChanged: "The chapters are not the ones that step recorded.";
|
|
4950
5142
|
readonly undoCharacterGone: "That character is gone.";
|
|
@@ -5335,6 +5527,7 @@ declare const en: {
|
|
|
5335
5527
|
readonly scopedTo: "Actions for {name}";
|
|
5336
5528
|
readonly addStarred: "Add to starred";
|
|
5337
5529
|
readonly removeStarred: "Remove from starred";
|
|
5530
|
+
readonly starredEmpty: "Starred commands are listed first in the \u201C/\u201D menu.";
|
|
5338
5531
|
};
|
|
5339
5532
|
readonly music: {
|
|
5340
5533
|
readonly missingAudio: "Missing audio";
|
|
@@ -5388,6 +5581,7 @@ declare const en: {
|
|
|
5388
5581
|
readonly mirrorState: "On / Off";
|
|
5389
5582
|
readonly waitFor: "Seconds or click";
|
|
5390
5583
|
readonly waitForEnd: "Wait for the clip";
|
|
5584
|
+
readonly hideOnEnd: "Hide when finished";
|
|
5391
5585
|
readonly fade: "Fade Seconds";
|
|
5392
5586
|
readonly loop: "Loop";
|
|
5393
5587
|
readonly returnable: "Return";
|
|
@@ -5832,7 +6026,7 @@ declare const en: {
|
|
|
5832
6026
|
readonly image: "Image \u201C{name}\u201D is not on stage; an earlier row has to create it.";
|
|
5833
6027
|
readonly text: "Text \u201C{name}\u201D is not on stage; an earlier row has to create it.";
|
|
5834
6028
|
readonly layer: "Layer \u201C{name}\u201D is not on stage; an earlier row has to create it.";
|
|
5835
|
-
readonly video: "Video \u201C{name}\u201D is not on stage; an earlier row has to
|
|
6029
|
+
readonly video: "Video \u201C{name}\u201D is not on stage; an earlier row has to play it.";
|
|
5836
6030
|
readonly ambience: "Ambience effect \u201C{name}\u201D is not on stage; an earlier row has to create it.";
|
|
5837
6031
|
readonly character: "Character \u201C{name}\u201D is not on stage; an earlier row has to bring it on stage.";
|
|
5838
6032
|
readonly characterGone: "The character this row acts on is no longer in this project, so it is not on stage.";
|
|
@@ -5899,8 +6093,8 @@ declare const en: {
|
|
|
5899
6093
|
readonly kindExpression: "Expression";
|
|
5900
6094
|
readonly expressionPlaceholder: "gold >= 100 && !met";
|
|
5901
6095
|
readonly expressionVariables: "In scope: {names}";
|
|
5902
|
-
readonly
|
|
5903
|
-
readonly
|
|
6096
|
+
readonly opIsTrue: "is true";
|
|
6097
|
+
readonly opIsFalse: "is false";
|
|
5904
6098
|
readonly opEquals: "equals";
|
|
5905
6099
|
readonly opNotEquals: "does not equal";
|
|
5906
6100
|
readonly opGreaterThan: "is greater than";
|
|
@@ -5972,7 +6166,7 @@ declare const en: {
|
|
|
5972
6166
|
};
|
|
5973
6167
|
readonly show: {
|
|
5974
6168
|
readonly label: "Show";
|
|
5975
|
-
readonly detail: "Show a character, a stage object, or an image
|
|
6169
|
+
readonly detail: "Show a character, a stage object, or an image from the asset library";
|
|
5976
6170
|
};
|
|
5977
6171
|
readonly hide: {
|
|
5978
6172
|
readonly label: "Hide";
|
|
@@ -6010,10 +6204,6 @@ declare const en: {
|
|
|
6010
6204
|
readonly label: "Text";
|
|
6011
6205
|
readonly detail: "Declare text on stage; /show reveals it";
|
|
6012
6206
|
};
|
|
6013
|
-
readonly video: {
|
|
6014
|
-
readonly label: "Video";
|
|
6015
|
-
readonly detail: "Declare a video on stage; /show reveals it";
|
|
6016
|
-
};
|
|
6017
6207
|
readonly vfx: {
|
|
6018
6208
|
readonly label: "Ambience";
|
|
6019
6209
|
readonly detail: "Declare a looping full-screen overlay: petals, rain, dust, light";
|
|
@@ -6028,7 +6218,7 @@ declare const en: {
|
|
|
6028
6218
|
};
|
|
6029
6219
|
readonly play: {
|
|
6030
6220
|
readonly label: "Play";
|
|
6031
|
-
readonly detail: "Play a video";
|
|
6221
|
+
readonly detail: "Play a video from the asset library, or play a video again";
|
|
6032
6222
|
};
|
|
6033
6223
|
readonly front: {
|
|
6034
6224
|
readonly label: "Bring to Front";
|
|
@@ -6171,10 +6361,10 @@ declare const en: {
|
|
|
6171
6361
|
readonly condition: "Condition";
|
|
6172
6362
|
readonly if: "If";
|
|
6173
6363
|
readonly elseIf: "Else if";
|
|
6174
|
-
readonly else: "
|
|
6364
|
+
readonly else: "Else";
|
|
6175
6365
|
readonly repeat: "Repeat";
|
|
6176
6366
|
readonly repeatUntil: "Repeat until";
|
|
6177
|
-
readonly parallel: "
|
|
6367
|
+
readonly parallel: "Parallel";
|
|
6178
6368
|
readonly race: "Race, first to finish";
|
|
6179
6369
|
readonly sequence: "In order";
|
|
6180
6370
|
readonly nvl: "NVL";
|
|
@@ -6185,7 +6375,7 @@ declare const en: {
|
|
|
6185
6375
|
readonly declare: {
|
|
6186
6376
|
readonly scene: "Local";
|
|
6187
6377
|
readonly saved: "Var";
|
|
6188
|
-
readonly persistent: "
|
|
6378
|
+
readonly persistent: "Persistent";
|
|
6189
6379
|
};
|
|
6190
6380
|
readonly narration: "Narration";
|
|
6191
6381
|
readonly dialogue: "Dialogue";
|
|
@@ -6815,7 +7005,7 @@ declare const en: {
|
|
|
6815
7005
|
readonly setZIndex: "Set z-index";
|
|
6816
7006
|
};
|
|
6817
7007
|
readonly videoOperation: {
|
|
6818
|
-
readonly play: "Play
|
|
7008
|
+
readonly play: "Play";
|
|
6819
7009
|
readonly pause: "Pause";
|
|
6820
7010
|
readonly resume: "Resume";
|
|
6821
7011
|
readonly stop: "Stop";
|
|
@@ -6895,6 +7085,10 @@ declare const en: {
|
|
|
6895
7085
|
readonly videoName: "Video name";
|
|
6896
7086
|
readonly videoAsset: "Video asset";
|
|
6897
7087
|
readonly seekTime: "Seek to";
|
|
7088
|
+
readonly hideOnEnd: "Hide when finished";
|
|
7089
|
+
readonly leave: "Exit";
|
|
7090
|
+
readonly waitForEnd: "Wait for the video";
|
|
7091
|
+
readonly skipHint: "The player can end the video early by clicking or pressing the skip key.";
|
|
6898
7092
|
};
|
|
6899
7093
|
readonly nvl: {
|
|
6900
7094
|
readonly hint: "Child rows run in NVL mode. The transform below animates the NVL layer as it enters.";
|
|
@@ -6960,8 +7154,8 @@ declare const en: {
|
|
|
6960
7154
|
readonly conditionContainer: "Condition container. Add condition branches as children.";
|
|
6961
7155
|
readonly control: "Control";
|
|
6962
7156
|
readonly sequence: "Sequence";
|
|
6963
|
-
readonly parallel: "Parallel
|
|
6964
|
-
readonly race: "Race
|
|
7157
|
+
readonly parallel: "Parallel";
|
|
7158
|
+
readonly race: "Race";
|
|
6965
7159
|
readonly repeat: "Repeat";
|
|
6966
7160
|
readonly mode: {
|
|
6967
7161
|
readonly do: "Do";
|
|
@@ -7125,6 +7319,7 @@ declare const en: {
|
|
|
7125
7319
|
readonly list: "List view";
|
|
7126
7320
|
readonly icons: "Icon view";
|
|
7127
7321
|
readonly overview: "Overview";
|
|
7322
|
+
readonly details: "Details view";
|
|
7128
7323
|
};
|
|
7129
7324
|
readonly filter: {
|
|
7130
7325
|
readonly label: "Filters";
|
|
@@ -7143,6 +7338,17 @@ declare const en: {
|
|
|
7143
7338
|
readonly list: {
|
|
7144
7339
|
readonly emptyFiltered: "No assets matched the current filters.";
|
|
7145
7340
|
};
|
|
7341
|
+
readonly browser: {
|
|
7342
|
+
readonly results: {
|
|
7343
|
+
readonly one: "{count} result";
|
|
7344
|
+
readonly other: "{count} results";
|
|
7345
|
+
};
|
|
7346
|
+
readonly selected: {
|
|
7347
|
+
readonly one: "{count} selected";
|
|
7348
|
+
readonly other: "{count} selected";
|
|
7349
|
+
};
|
|
7350
|
+
readonly location: "Location";
|
|
7351
|
+
};
|
|
7146
7352
|
readonly iconView: {
|
|
7147
7353
|
readonly updating: "Updating\u2026";
|
|
7148
7354
|
readonly assetCount: {
|
|
@@ -7292,13 +7498,13 @@ declare const en: {
|
|
|
7292
7498
|
readonly locale: "Language";
|
|
7293
7499
|
readonly release: "Variant";
|
|
7294
7500
|
};
|
|
7295
|
-
readonly deletedVariant: "Deleted
|
|
7501
|
+
readonly deletedVariant: "Deleted value";
|
|
7296
7502
|
readonly variantCount: {
|
|
7297
|
-
readonly one: "{count}
|
|
7298
|
-
readonly other: "{count}
|
|
7503
|
+
readonly one: "{count} value";
|
|
7504
|
+
readonly other: "{count} values";
|
|
7299
7505
|
};
|
|
7300
|
-
readonly variantsResolved: "{resolved} of {total}
|
|
7301
|
-
readonly unfinished: "No
|
|
7506
|
+
readonly variantsResolved: "{resolved} of {total} values";
|
|
7507
|
+
readonly unfinished: "No values declared";
|
|
7302
7508
|
readonly inUseTitle: "{name} is still in use";
|
|
7303
7509
|
readonly inUseMessage: "The following places name it and will stop resolving:";
|
|
7304
7510
|
readonly deleteConfirmMessage: "The files inside this set are deleted too.";
|
|
@@ -7313,7 +7519,7 @@ declare const en: {
|
|
|
7313
7519
|
};
|
|
7314
7520
|
readonly create: {
|
|
7315
7521
|
readonly title: "New asset set";
|
|
7316
|
-
readonly subTitle: "New set under this
|
|
7522
|
+
readonly subTitle: "New set under this value";
|
|
7317
7523
|
readonly no: {
|
|
7318
7524
|
readonly locale: "This project declares one language.";
|
|
7319
7525
|
readonly release: "This project has no variants.";
|
|
@@ -7326,8 +7532,8 @@ declare const en: {
|
|
|
7326
7532
|
readonly filter: "Members carry";
|
|
7327
7533
|
readonly residencyBlocked: "A set that varies by variant cannot sit under one that varies by language.";
|
|
7328
7534
|
readonly fallback: "Falls back to";
|
|
7329
|
-
readonly fallbackMissing: "This
|
|
7330
|
-
readonly variants: "
|
|
7535
|
+
readonly fallbackMissing: "This value has no file, so nothing in this set resolves.";
|
|
7536
|
+
readonly variants: "Values";
|
|
7331
7537
|
readonly variantInherited: "fallback";
|
|
7332
7538
|
readonly variantMissing: "No file";
|
|
7333
7539
|
readonly variantAmbiguous: "{count} files";
|
|
@@ -7617,7 +7823,7 @@ declare const en: {
|
|
|
7617
7823
|
readonly tab: {
|
|
7618
7824
|
readonly title: "Blueprint";
|
|
7619
7825
|
readonly invalid: "Blueprint tab is invalid.";
|
|
7620
|
-
readonly notFound: "Blueprint not found
|
|
7826
|
+
readonly notFound: "Blueprint not found in this project";
|
|
7621
7827
|
};
|
|
7622
7828
|
readonly breakpoint: {
|
|
7623
7829
|
readonly add: "Add breakpoint";
|
|
@@ -7643,7 +7849,6 @@ declare const en: {
|
|
|
7643
7849
|
readonly collapse: "Collapse side panel";
|
|
7644
7850
|
};
|
|
7645
7851
|
readonly canvas: {
|
|
7646
|
-
readonly addLayer: "Add layer";
|
|
7647
7852
|
readonly selectLayer: "Select a layer on the left.";
|
|
7648
7853
|
readonly previewUnavailable: "Preview unavailable";
|
|
7649
7854
|
readonly unknownNode: "Unknown node";
|
|
@@ -7652,6 +7857,14 @@ declare const en: {
|
|
|
7652
7857
|
readonly other: "Deleted the unknown node and its {count} hidden connections. Undo to restore.";
|
|
7653
7858
|
};
|
|
7654
7859
|
};
|
|
7860
|
+
readonly wire: {
|
|
7861
|
+
readonly nodeDetail: "{node} ({detail})";
|
|
7862
|
+
readonly end: "{node} \u00B7 {pin}";
|
|
7863
|
+
readonly connectedTo: "Connected to {target}";
|
|
7864
|
+
readonly goTo: "Go to {target}";
|
|
7865
|
+
readonly goToNth: "Go to {target} ({n})";
|
|
7866
|
+
readonly goToConnected: "Go to connected node";
|
|
7867
|
+
};
|
|
7655
7868
|
readonly crossProject: {
|
|
7656
7869
|
readonly pasted: {
|
|
7657
7870
|
readonly one: "{count} node pasted";
|
|
@@ -7877,6 +8090,46 @@ declare const en: {
|
|
|
7877
8090
|
readonly other: "Already run by {count} layers";
|
|
7878
8091
|
};
|
|
7879
8092
|
};
|
|
8093
|
+
readonly layerTemplates: {
|
|
8094
|
+
readonly heading: "New layer";
|
|
8095
|
+
readonly description: "Start from a template or from a blank layer.";
|
|
8096
|
+
readonly listLabel: "Layer templates";
|
|
8097
|
+
readonly blank: {
|
|
8098
|
+
readonly title: "Blank layer";
|
|
8099
|
+
readonly description: "An empty canvas, or one of your own scripts.";
|
|
8100
|
+
};
|
|
8101
|
+
readonly library: {
|
|
8102
|
+
readonly title: "More templates";
|
|
8103
|
+
readonly description: "Browse every template for this blueprint by category.";
|
|
8104
|
+
};
|
|
8105
|
+
};
|
|
8106
|
+
readonly templateLibrary: {
|
|
8107
|
+
readonly title: "Template library";
|
|
8108
|
+
readonly open: "Add from template library";
|
|
8109
|
+
readonly all: "All";
|
|
8110
|
+
readonly categoriesLabel: "Categories";
|
|
8111
|
+
readonly search: "Search templates";
|
|
8112
|
+
readonly emptyFiltered: "No templates match.";
|
|
8113
|
+
readonly empty: "No templates suit this blueprint.";
|
|
8114
|
+
readonly add: "Add";
|
|
8115
|
+
readonly back: "Back";
|
|
8116
|
+
readonly openDetail: "Show details";
|
|
8117
|
+
readonly choicesHeading: "To choose after adding";
|
|
8118
|
+
readonly choicesNone: "Runs as it is once added.";
|
|
8119
|
+
readonly previewLabel: "Graph preview";
|
|
8120
|
+
readonly category: {
|
|
8121
|
+
readonly pageFlow: "Page flow";
|
|
8122
|
+
readonly navigation: "Navigation";
|
|
8123
|
+
readonly game: "Game";
|
|
8124
|
+
readonly settings: "Settings";
|
|
8125
|
+
readonly audio: "Audio";
|
|
8126
|
+
readonly motion: "Motion";
|
|
8127
|
+
readonly keys: "Keys";
|
|
8128
|
+
readonly window: "Window";
|
|
8129
|
+
readonly display: "Display";
|
|
8130
|
+
readonly conditions: "Conditions";
|
|
8131
|
+
};
|
|
8132
|
+
};
|
|
7880
8133
|
readonly owner: {
|
|
7881
8134
|
readonly global: "Global";
|
|
7882
8135
|
readonly storyAction: "Story Action";
|
|
@@ -7980,6 +8233,7 @@ declare const en: {
|
|
|
7980
8233
|
readonly select: "Select element";
|
|
7981
8234
|
readonly selectNamed: "Select element {name}";
|
|
7982
8235
|
readonly unbound: "Unbound";
|
|
8236
|
+
readonly missing: "Missing element";
|
|
7983
8237
|
};
|
|
7984
8238
|
readonly pin: {
|
|
7985
8239
|
readonly addInput: "Add input pin";
|
|
@@ -8793,6 +9047,7 @@ declare const en: {
|
|
|
8793
9047
|
readonly getVisible: "Get Visible";
|
|
8794
9048
|
readonly getWrapMode: "Get Wrap Mode";
|
|
8795
9049
|
readonly goPage: "Go Page";
|
|
9050
|
+
readonly replacePage: "Replace Page";
|
|
8796
9051
|
readonly goBack: "Go back";
|
|
8797
9052
|
readonly showLayer: "Show Layer";
|
|
8798
9053
|
readonly hideLayer: "Hide Layer";
|
|
@@ -9046,9 +9301,45 @@ declare const en: {
|
|
|
9046
9301
|
readonly getPlaytime: "Get Playtime";
|
|
9047
9302
|
readonly getTotalPlaytime: "Get Total Playtime";
|
|
9048
9303
|
};
|
|
9304
|
+
readonly nodeDescription: {
|
|
9305
|
+
readonly compareEqual: "True when A and B are the same value of the same type. The number 1 and the text \"1\" are not equal.";
|
|
9306
|
+
readonly compareNotEqual: "True when A and B differ in value or in type. The number 1 and the text \"1\" count as different.";
|
|
9307
|
+
readonly compareGreaterThan: "True when A is greater than B. Both sides are compared as numbers; a side that cannot be read as a number gives false.";
|
|
9308
|
+
readonly compareGreaterThanOrEqual: "True when A is greater than or equal to B. Both sides are compared as numbers; a side that cannot be read as a number gives false.";
|
|
9309
|
+
readonly compareLessThan: "True when A is less than B. Both sides are compared as numbers; a side that cannot be read as a number gives false.";
|
|
9310
|
+
readonly compareLessThanOrEqual: "True when A is less than or equal to B. Both sides are compared as numbers; a side that cannot be read as a number gives false.";
|
|
9311
|
+
readonly mathEqual: "True when A and B are the same number. Both sides are read as numbers first, so the text \"1\" equals the number 1.";
|
|
9312
|
+
readonly mathNotEqual: "True when A and B are different numbers. Both sides are read as numbers first, so the text \"1\" and the number 1 count as equal.";
|
|
9313
|
+
readonly flowReturn: "Stops the current run here. Nothing after it runs, including the remaining outputs of a Sequence. Gives back no value; to give one back, use Return Value, or Fn Return inside a function.";
|
|
9314
|
+
readonly returnValue: "Gives the value back as the result and ends the run. Used where a blueprint has to produce a value, such as a Blueprint Value.";
|
|
9315
|
+
readonly appBoot: "Runs once each time the game starts, after the first screen is showing, and does not hold that screen back. On Game Ready has already run by then. In Dev Mode it runs again after every reload.";
|
|
9316
|
+
readonly gameReady: "Runs when the game is ready, before any story starts and before the first screen shows; the screen waits for it to finish. Runs before App Boot, and can run again when a game is started or loaded.";
|
|
9317
|
+
readonly goBack: "Closes the current page and returns to the page beneath it. On the bottom page it does nothing.";
|
|
9318
|
+
readonly replacePage: "Opens a page in place of the current page, and closes the current page. Go back and Go Page set to None do not return to it.";
|
|
9319
|
+
readonly isGameOverlay: "True when this page, layer or Game UI is shown over a running game. In the global blueprint, true while a page or a modal layer covers the story.";
|
|
9320
|
+
};
|
|
9049
9321
|
readonly live: {
|
|
9050
9322
|
readonly nodeClaimed: "{name} is editing this node";
|
|
9051
9323
|
};
|
|
9324
|
+
readonly overview: {
|
|
9325
|
+
readonly title: "Blueprint Overview";
|
|
9326
|
+
readonly count: {
|
|
9327
|
+
readonly one: "{count} blueprint";
|
|
9328
|
+
readonly other: "{count} blueprints";
|
|
9329
|
+
};
|
|
9330
|
+
readonly noBlueprints: "No blueprints";
|
|
9331
|
+
readonly search: "Search blueprints";
|
|
9332
|
+
readonly noMatches: "No blueprints match \u201C{query}\u201D.";
|
|
9333
|
+
readonly nodes: {
|
|
9334
|
+
readonly one: "{count} node";
|
|
9335
|
+
readonly other: "{count} nodes";
|
|
9336
|
+
};
|
|
9337
|
+
readonly group: {
|
|
9338
|
+
readonly project: "Project";
|
|
9339
|
+
readonly componentCaption: "Component";
|
|
9340
|
+
readonly storyCaption: "Story";
|
|
9341
|
+
};
|
|
9342
|
+
};
|
|
9052
9343
|
};
|
|
9053
9344
|
readonly characters: {
|
|
9054
9345
|
readonly errors: {
|
|
@@ -9130,7 +9421,7 @@ declare const en: {
|
|
|
9130
9421
|
readonly describeOk: "Filled from the model";
|
|
9131
9422
|
readonly describeNoModel: "No model to read";
|
|
9132
9423
|
readonly describeNoBackend: "No runtime chosen";
|
|
9133
|
-
readonly describeBackendMissing: "Runtime not installed
|
|
9424
|
+
readonly describeBackendMissing: "Runtime not installed in this project";
|
|
9134
9425
|
readonly describeDistrusted: "Project not trusted";
|
|
9135
9426
|
readonly describeNotSupported: "This runtime lists nothing";
|
|
9136
9427
|
readonly describeFailed: "The model could not be read";
|
|
@@ -9288,10 +9579,10 @@ declare const en: {
|
|
|
9288
9579
|
readonly editorTitle: "Character Properties";
|
|
9289
9580
|
readonly thumbnail: "Thumbnail";
|
|
9290
9581
|
readonly preview: "Preview";
|
|
9291
|
-
readonly defaultAvatar: "
|
|
9292
|
-
readonly voiceTrack: "Voice
|
|
9293
|
-
readonly voiceTrackMissing: "Missing
|
|
9294
|
-
readonly voiceTrackEmpty: "Add a
|
|
9582
|
+
readonly defaultAvatar: "Default dialog avatar";
|
|
9583
|
+
readonly voiceTrack: "Voice track";
|
|
9584
|
+
readonly voiceTrackMissing: "Missing track";
|
|
9585
|
+
readonly voiceTrackEmpty: "Add a track under Voice in Project \u25B8 Game to give this character its own volume control.";
|
|
9295
9586
|
readonly entrance: "Entrance defaults";
|
|
9296
9587
|
readonly entranceEmpty: "Entrance rows use the stage's own values until this is set.";
|
|
9297
9588
|
readonly entranceDrag: "Drag to place";
|
|
@@ -9376,6 +9667,7 @@ declare const en: {
|
|
|
9376
9667
|
readonly addCreate: "Create action";
|
|
9377
9668
|
readonly removeAction: "Stop answering {name}";
|
|
9378
9669
|
readonly answer: "Answer {name}";
|
|
9670
|
+
readonly reveal: "Show {name} in Input Actions";
|
|
9379
9671
|
readonly bubble: "After it fires";
|
|
9380
9672
|
readonly bubbleStop: "Intercept";
|
|
9381
9673
|
readonly bubbleContinue: "Continue";
|
|
@@ -9402,9 +9694,25 @@ declare const en: {
|
|
|
9402
9694
|
readonly uiElement: "UI Element";
|
|
9403
9695
|
readonly linkedComponent: "Linked Component";
|
|
9404
9696
|
};
|
|
9697
|
+
readonly interactionSound: {
|
|
9698
|
+
readonly title: "Sound";
|
|
9699
|
+
readonly hover: "Hover";
|
|
9700
|
+
readonly hoverTip: "Plays when the pointer moves onto the element, on the SFX track unless its options name another. Of nested elements with a hover sound, only the innermost one plays.";
|
|
9701
|
+
readonly click: "Click";
|
|
9702
|
+
readonly clickTip: "Plays when the element is clicked, on the SFX track unless its options name another. Of nested elements with a click sound, only the innermost one plays.";
|
|
9703
|
+
readonly none: "No sound";
|
|
9704
|
+
readonly options: "Playback options";
|
|
9705
|
+
readonly summary: "Volume {volume} \u00B7 {track}";
|
|
9706
|
+
readonly volume: "Volume";
|
|
9707
|
+
readonly track: "Track";
|
|
9708
|
+
readonly chooseHover: "Choose hover sound";
|
|
9709
|
+
readonly chooseClick: "Choose click sound";
|
|
9710
|
+
readonly missing: "Missing sound";
|
|
9711
|
+
};
|
|
9405
9712
|
readonly linkedComponent: {
|
|
9406
9713
|
readonly missing: "Missing component";
|
|
9407
9714
|
readonly info: "Linked instance. Only its params and its position, size and rotation can be changed before unlinking.";
|
|
9715
|
+
readonly reveal: "Show in Component Library";
|
|
9408
9716
|
};
|
|
9409
9717
|
readonly componentParams: {
|
|
9410
9718
|
readonly title: "Params";
|
|
@@ -9853,6 +10161,10 @@ declare const en: {
|
|
|
9853
10161
|
readonly string: "String";
|
|
9854
10162
|
readonly json: "JSON";
|
|
9855
10163
|
};
|
|
10164
|
+
readonly value: {
|
|
10165
|
+
readonly true: "True";
|
|
10166
|
+
readonly false: "False";
|
|
10167
|
+
};
|
|
9856
10168
|
readonly row: {
|
|
9857
10169
|
readonly nameAria: "Variable name";
|
|
9858
10170
|
readonly defaultPlaceholder: "default";
|
|
@@ -9872,7 +10184,7 @@ declare const en: {
|
|
|
9872
10184
|
readonly hint: "Defined in the project; the value lives in the save file.";
|
|
9873
10185
|
};
|
|
9874
10186
|
readonly persistent: {
|
|
9875
|
-
readonly title: "
|
|
10187
|
+
readonly title: "Persistent variables";
|
|
9876
10188
|
readonly hint: "Defined in the project; app-level, shared with blueprints.";
|
|
9877
10189
|
};
|
|
9878
10190
|
};
|
|
@@ -9901,8 +10213,8 @@ declare const en: {
|
|
|
9901
10213
|
readonly ownerLabel: {
|
|
9902
10214
|
readonly globalMain: "App logic";
|
|
9903
10215
|
readonly surfaceMain: "Page logic";
|
|
9904
|
-
readonly widgetMain: "
|
|
9905
|
-
readonly widgetValue: "
|
|
10216
|
+
readonly widgetMain: "Widget logic";
|
|
10217
|
+
readonly widgetValue: "Widget value";
|
|
9906
10218
|
readonly storyAction: "Story action";
|
|
9907
10219
|
};
|
|
9908
10220
|
readonly stageSlot: {
|
|
@@ -9932,6 +10244,7 @@ declare const en: {
|
|
|
9932
10244
|
readonly duplicateSurface: "Duplicate {label}";
|
|
9933
10245
|
readonly copySurface: "Copy {label}";
|
|
9934
10246
|
readonly pasteSurface: "Paste interface";
|
|
10247
|
+
readonly setEntryPage: "Set as Entry Page";
|
|
9935
10248
|
readonly deleteSurface: "Delete {label}";
|
|
9936
10249
|
readonly surfaceActions: "{label} actions";
|
|
9937
10250
|
readonly deleteConfirm: "Delete {label}?";
|
|
@@ -9940,6 +10253,10 @@ declare const en: {
|
|
|
9940
10253
|
readonly pageValidationHint: "Check the page name and size before creating it.";
|
|
9941
10254
|
readonly gameUiSlotHint: "Select an available Game UI slot before creating it.";
|
|
9942
10255
|
readonly allSlotsUsed: "All Game UI slots already have a surface. Open an existing Game UI from the list.";
|
|
10256
|
+
readonly starterTitlePage: {
|
|
10257
|
+
readonly title: "Create Title Page";
|
|
10258
|
+
readonly description: "Includes Start and Continue buttons with their blueprints. Replaces the empty entry page.";
|
|
10259
|
+
};
|
|
9943
10260
|
};
|
|
9944
10261
|
readonly naming: {
|
|
9945
10262
|
readonly page: "Page {index}";
|
|
@@ -9949,6 +10266,7 @@ declare const en: {
|
|
|
9949
10266
|
};
|
|
9950
10267
|
readonly history: {
|
|
9951
10268
|
readonly moveSurface: "move interface {name}";
|
|
10269
|
+
readonly setEntryPage: "set entry page {name}";
|
|
9952
10270
|
};
|
|
9953
10271
|
readonly inputActions: {
|
|
9954
10272
|
readonly title: "Input Actions";
|
|
@@ -10048,6 +10366,8 @@ declare const en: {
|
|
|
10048
10366
|
readonly canvas: {
|
|
10049
10367
|
readonly unknownWidget: "Unknown widget";
|
|
10050
10368
|
readonly widgetRenderFailed: "Widget failed to draw";
|
|
10369
|
+
readonly wordsFromRowField: "These words come from the list row field \u201C{field}\u201D.";
|
|
10370
|
+
readonly wordsFromBlueprintValue: "These words come from the blueprint value \u201C{name}\u201D.";
|
|
10051
10371
|
};
|
|
10052
10372
|
readonly editor: {
|
|
10053
10373
|
readonly componentNotFound: "Component not found";
|
|
@@ -10067,6 +10387,8 @@ declare const en: {
|
|
|
10067
10387
|
readonly layerFallback: "Layer";
|
|
10068
10388
|
readonly openComponent: "Open component";
|
|
10069
10389
|
readonly unlinkComponent: "Unlink component";
|
|
10390
|
+
readonly openComponentNamed: "Open component {name}";
|
|
10391
|
+
readonly openPageNamed: "Open page {name}";
|
|
10070
10392
|
};
|
|
10071
10393
|
readonly zoom: {
|
|
10072
10394
|
readonly label: "Zoom";
|
|
@@ -10096,7 +10418,7 @@ declare const en: {
|
|
|
10096
10418
|
readonly showSelected: "Show selected";
|
|
10097
10419
|
readonly hideSelected: "Hide selected";
|
|
10098
10420
|
readonly addToComponentLibrary: "Add to Component Library";
|
|
10099
|
-
readonly
|
|
10421
|
+
readonly group: "Group";
|
|
10100
10422
|
readonly ungroup: "Ungroup";
|
|
10101
10423
|
readonly addState: "Add state";
|
|
10102
10424
|
readonly arrange: {
|
|
@@ -10213,7 +10535,7 @@ declare const en: {
|
|
|
10213
10535
|
readonly interaction: "Interaction";
|
|
10214
10536
|
};
|
|
10215
10537
|
readonly blueprint: {
|
|
10216
|
-
readonly controlLabel: "
|
|
10538
|
+
readonly controlLabel: "Widget logic";
|
|
10217
10539
|
};
|
|
10218
10540
|
readonly appearance: {
|
|
10219
10541
|
readonly title: "Appearance";
|
|
@@ -10271,9 +10593,16 @@ declare const en: {
|
|
|
10271
10593
|
readonly enableItalic: "Enable italic";
|
|
10272
10594
|
readonly disableItalic: "Disable italic";
|
|
10273
10595
|
};
|
|
10596
|
+
readonly sampleText: {
|
|
10597
|
+
readonly label: "Sample text";
|
|
10598
|
+
readonly hint: "Shown in the editor only. The game shows the story's current line.";
|
|
10599
|
+
readonly bindingNoEffect: "This binding has no effect in the {slot} slot.";
|
|
10600
|
+
readonly removeBinding: "Remove";
|
|
10601
|
+
};
|
|
10274
10602
|
readonly localization: {
|
|
10275
|
-
readonly
|
|
10276
|
-
readonly
|
|
10603
|
+
readonly direct: "Direct";
|
|
10604
|
+
readonly translationKey: "Translation key";
|
|
10605
|
+
readonly noSourceLanguage: "The project has no source language";
|
|
10277
10606
|
readonly none: "None";
|
|
10278
10607
|
readonly createKey: "Create new key\u2026";
|
|
10279
10608
|
readonly createKeyTitle: "New localization key";
|
|
@@ -10290,7 +10619,7 @@ declare const en: {
|
|
|
10290
10619
|
readonly title: "List";
|
|
10291
10620
|
readonly sectionContent: "Content";
|
|
10292
10621
|
readonly runtimeItems: "Runtime items";
|
|
10293
|
-
readonly
|
|
10622
|
+
readonly runtimeListContent: "List content";
|
|
10294
10623
|
readonly runtimePageState: "Page state array";
|
|
10295
10624
|
readonly runtimeAppState: "App state array";
|
|
10296
10625
|
readonly runtimePageProps: "Page props array";
|
|
@@ -10368,8 +10697,6 @@ declare const en: {
|
|
|
10368
10697
|
readonly value: "Value";
|
|
10369
10698
|
readonly valueHint: "Starting text. What the player types is held by the running game, not by this document.";
|
|
10370
10699
|
readonly placeholder: "Placeholder";
|
|
10371
|
-
readonly placeholderKey: "Placeholder key";
|
|
10372
|
-
readonly placeholderKeyHint: "The placeholder is shown to the player: attach a key to translate it.";
|
|
10373
10700
|
readonly sectionBehavior: "Behavior";
|
|
10374
10701
|
readonly inputMode: "Input mode";
|
|
10375
10702
|
readonly inputModeText: "Text";
|
|
@@ -10428,7 +10755,6 @@ declare const en: {
|
|
|
10428
10755
|
readonly start: "Start";
|
|
10429
10756
|
readonly center: "Center";
|
|
10430
10757
|
readonly end: "End";
|
|
10431
|
-
readonly stretch: "Stretch";
|
|
10432
10758
|
readonly spaceBetween: "Space between";
|
|
10433
10759
|
readonly spaceAround: "Space around";
|
|
10434
10760
|
readonly gapHint: "Gap between children";
|
|
@@ -10577,6 +10903,9 @@ declare const en: {
|
|
|
10577
10903
|
readonly container: {
|
|
10578
10904
|
readonly name: "Container";
|
|
10579
10905
|
};
|
|
10906
|
+
readonly group: {
|
|
10907
|
+
readonly name: "Group";
|
|
10908
|
+
};
|
|
10580
10909
|
readonly dialog: {
|
|
10581
10910
|
readonly name: "Sentence";
|
|
10582
10911
|
readonly text: "The current line will appear here.";
|
|
@@ -11333,15 +11662,15 @@ declare const en: {
|
|
|
11333
11662
|
};
|
|
11334
11663
|
readonly bgmVolume: {
|
|
11335
11664
|
readonly title: "Music volume";
|
|
11336
|
-
readonly description: "The Music
|
|
11665
|
+
readonly description: "The Music track.";
|
|
11337
11666
|
};
|
|
11338
11667
|
readonly soundVolume: {
|
|
11339
11668
|
readonly title: "SFX volume";
|
|
11340
|
-
readonly description: "The SFX
|
|
11669
|
+
readonly description: "The SFX track.";
|
|
11341
11670
|
};
|
|
11342
11671
|
readonly voiceVolume: {
|
|
11343
11672
|
readonly title: "Voice volume";
|
|
11344
|
-
readonly description: "The Voice
|
|
11673
|
+
readonly description: "The Voice track.";
|
|
11345
11674
|
};
|
|
11346
11675
|
readonly voiceEndMode: {
|
|
11347
11676
|
readonly title: "When a voiced line ends";
|
|
@@ -11384,18 +11713,18 @@ declare const en: {
|
|
|
11384
11713
|
};
|
|
11385
11714
|
readonly deleteConfirm: "Delete \"{name}\"?";
|
|
11386
11715
|
readonly deleteDetail: {
|
|
11387
|
-
readonly one: "{count} reference falls back to its default
|
|
11388
|
-
readonly other: "{count} references fall back to their default
|
|
11716
|
+
readonly one: "{count} reference falls back to its default track.";
|
|
11717
|
+
readonly other: "{count} references fall back to their default track.";
|
|
11389
11718
|
};
|
|
11390
11719
|
readonly deleteChildren: {
|
|
11391
11720
|
readonly one: "{count} track under it moves to {parent}.";
|
|
11392
11721
|
readonly other: "{count} tracks under it move to {parent}.";
|
|
11393
11722
|
};
|
|
11394
11723
|
readonly slider: {
|
|
11395
|
-
readonly bgm: "
|
|
11396
|
-
readonly sound: "
|
|
11397
|
-
readonly voice: "Voice
|
|
11398
|
-
readonly global: "
|
|
11724
|
+
readonly bgm: "Music volume";
|
|
11725
|
+
readonly sound: "SFX volume";
|
|
11726
|
+
readonly voice: "Voice volume";
|
|
11727
|
+
readonly global: "Master volume";
|
|
11399
11728
|
};
|
|
11400
11729
|
};
|
|
11401
11730
|
readonly settings: {
|
|
@@ -11600,6 +11929,10 @@ declare const en: {
|
|
|
11600
11929
|
readonly label: "Help";
|
|
11601
11930
|
readonly description: "How the parts of Studio behave.";
|
|
11602
11931
|
};
|
|
11932
|
+
readonly titlePage: {
|
|
11933
|
+
readonly label: "New Title Page";
|
|
11934
|
+
readonly description: "Start and Continue buttons included.";
|
|
11935
|
+
};
|
|
11603
11936
|
};
|
|
11604
11937
|
readonly reopenHint: {
|
|
11605
11938
|
readonly menu: "Reopen this page from Help \u2192 Open Welcome.";
|
|
@@ -11779,6 +12112,12 @@ declare const en: {
|
|
|
11779
12112
|
readonly label: "About";
|
|
11780
12113
|
readonly tooltip: "About NarraLeaf Studio";
|
|
11781
12114
|
};
|
|
12115
|
+
readonly exportLogs: {
|
|
12116
|
+
readonly label: "Export Logs\u2026";
|
|
12117
|
+
readonly tooltip: "Save all Studio logs as a zip archive";
|
|
12118
|
+
readonly done: "Logs saved to {path}";
|
|
12119
|
+
readonly failed: "The logs could not be exported.";
|
|
12120
|
+
};
|
|
11782
12121
|
};
|
|
11783
12122
|
readonly export: {
|
|
11784
12123
|
readonly chooseFolder: "Choose a folder for the exported project package.";
|
|
@@ -12116,7 +12455,14 @@ declare const en: {
|
|
|
12116
12455
|
readonly title: "Layers";
|
|
12117
12456
|
readonly empty: "Nothing is on screen";
|
|
12118
12457
|
readonly stack: "Stack, bottom to top";
|
|
12458
|
+
readonly stage: "Stage";
|
|
12459
|
+
readonly gameUi: "Game UI";
|
|
12119
12460
|
readonly page: "Page";
|
|
12461
|
+
readonly layer: "Layer";
|
|
12462
|
+
readonly faded: "Faded out";
|
|
12463
|
+
readonly dialogHidden: "Hidden";
|
|
12464
|
+
readonly hiddenForGame: "Hidden while the game runs";
|
|
12465
|
+
readonly returnsOnBack: "Shown again on Go back";
|
|
12120
12466
|
readonly onScreenCount: "{onScreen} of {total} on screen";
|
|
12121
12467
|
readonly offScreen: "Not on screen";
|
|
12122
12468
|
readonly offScreenNote: "A layer stays off screen while this project has no surface with its id.";
|
|
@@ -12124,6 +12470,7 @@ declare const en: {
|
|
|
12124
12470
|
readonly queued: "Waiting for a group";
|
|
12125
12471
|
readonly takesClicks: "Takes clicks";
|
|
12126
12472
|
readonly takesNoClicks: "Takes no clicks";
|
|
12473
|
+
readonly takesNoInput: "Takes no clicks or keys";
|
|
12127
12474
|
readonly keyboard: "Keyboard";
|
|
12128
12475
|
readonly modal: "Modal";
|
|
12129
12476
|
readonly dismissible: "Go back closes it";
|
|
@@ -12458,6 +12805,7 @@ declare const en: {
|
|
|
12458
12805
|
readonly createGroup: {
|
|
12459
12806
|
readonly title: "Create Group";
|
|
12460
12807
|
readonly prompt: "Please enter a name for the {type} group";
|
|
12808
|
+
readonly promptIn: "Please enter a name for the group in {parent}";
|
|
12461
12809
|
readonly placeholder: "Enter group name\u2026";
|
|
12462
12810
|
readonly empty: "Group name cannot be empty";
|
|
12463
12811
|
};
|
|
@@ -12495,6 +12843,7 @@ declare const en: {
|
|
|
12495
12843
|
readonly inputAction: "input action";
|
|
12496
12844
|
readonly asset: "asset";
|
|
12497
12845
|
readonly page: "Page";
|
|
12846
|
+
readonly entryPage: "Entry Page";
|
|
12498
12847
|
readonly gameUi: "Game UI";
|
|
12499
12848
|
readonly image: "Image";
|
|
12500
12849
|
readonly audio: "Audio";
|
|
@@ -12543,6 +12892,7 @@ declare const en: {
|
|
|
12543
12892
|
readonly supported: "Supported files";
|
|
12544
12893
|
readonly images: "Images";
|
|
12545
12894
|
readonly log: "Log";
|
|
12895
|
+
readonly zip: "Zip archive";
|
|
12546
12896
|
readonly text: "Text";
|
|
12547
12897
|
readonly json: "JSON";
|
|
12548
12898
|
readonly patch: "Patch";
|
|
@@ -12615,12 +12965,20 @@ declare const en: {
|
|
|
12615
12965
|
};
|
|
12616
12966
|
readonly unavailable: {
|
|
12617
12967
|
readonly windows: "Cannot build Windows apps on this machine.";
|
|
12618
|
-
readonly macos: "macOS apps
|
|
12968
|
+
readonly macos: "Cannot build macOS apps on this machine.";
|
|
12619
12969
|
readonly linux: "Cannot build Linux apps on this machine.";
|
|
12620
12970
|
readonly web: "Web builds are available on every machine.";
|
|
12621
12971
|
readonly android: "Android builds are available on every machine.";
|
|
12622
12972
|
readonly ios: "iOS builds are available on every machine.";
|
|
12623
12973
|
};
|
|
12974
|
+
readonly formatUnavailable: {
|
|
12975
|
+
readonly windows: "Not available on this machine.";
|
|
12976
|
+
readonly macos: "Requires a Mac.";
|
|
12977
|
+
readonly linux: "Not available on Windows.";
|
|
12978
|
+
readonly web: "Not available on this machine.";
|
|
12979
|
+
readonly android: "Not available on this machine.";
|
|
12980
|
+
readonly ios: "Not available on this machine.";
|
|
12981
|
+
};
|
|
12624
12982
|
readonly format: {
|
|
12625
12983
|
readonly zip: "Portable ZIP";
|
|
12626
12984
|
readonly nsis: "Installer";
|
|
@@ -12672,15 +13030,15 @@ declare const en: {
|
|
|
12672
13030
|
readonly appId: "App ID";
|
|
12673
13031
|
readonly copyright: "Copyright";
|
|
12674
13032
|
readonly icons: "Icons";
|
|
12675
|
-
readonly iconsHint: "Click an icon to change it in
|
|
13033
|
+
readonly iconsHint: "Click an icon to change it in Project \u25B8 App";
|
|
12676
13034
|
readonly iconUnset: "Not set";
|
|
12677
13035
|
readonly notSet: "Not set";
|
|
12678
13036
|
readonly editInProject: "Edit in Project \u25B8 App";
|
|
12679
13037
|
};
|
|
12680
13038
|
readonly content: {
|
|
12681
13039
|
readonly protection: "Asset protection";
|
|
12682
|
-
readonly protectionOn: "Assets
|
|
12683
|
-
readonly protectionOff: "Assets
|
|
13040
|
+
readonly protectionOn: "Assets are encrypted in the packaged game.";
|
|
13041
|
+
readonly protectionOff: "Assets ship unencrypted.";
|
|
12684
13042
|
readonly plugins: "Bundled plugins";
|
|
12685
13043
|
readonly pluginsNone: "No plugins are bundled with this game.";
|
|
12686
13044
|
readonly pluginsRescanUnavailable: "The plugin list cannot be rescanned in this window.";
|
|
@@ -12728,6 +13086,7 @@ declare const en: {
|
|
|
12728
13086
|
readonly artifactReadVersioned: "{product} {version}, built {date}";
|
|
12729
13087
|
readonly artifactVariantStated: "Read from the build folder.";
|
|
12730
13088
|
readonly artifactVariantUnknown: "This build does not state its variant. Select it below.";
|
|
13089
|
+
readonly artifactNoKey: "This build was made without a distribution key. The game ignores any patch exported for it.";
|
|
12731
13090
|
readonly artifactVariantMismatch: "This build is {build}. The DLC attaches to {variant}.";
|
|
12732
13091
|
readonly artifactWholeGame: "The patch includes the whole game.";
|
|
12733
13092
|
readonly contentLabel: "Variant the content comes from";
|
|
@@ -12839,6 +13198,7 @@ declare const en: {
|
|
|
12839
13198
|
readonly preflight: {
|
|
12840
13199
|
readonly "no-targets": "Select at least one platform and format.";
|
|
12841
13200
|
readonly "unbuildable-platform": "This machine cannot build for {platform}.";
|
|
13201
|
+
readonly "unbuildable-format": "This machine cannot build the {format} format for {platform}.";
|
|
12842
13202
|
readonly "version-invalid": "Version {version} is not a valid semantic version; the build will fail.";
|
|
12843
13203
|
readonly "version-missing": "No version set; the game builds as 0.0.0.";
|
|
12844
13204
|
readonly "identifier-missing": "No project identifier; using the app id {appId}.";
|
|
@@ -12858,6 +13218,7 @@ declare const en: {
|
|
|
12858
13218
|
readonly "sidecar-crossbuild-exec-bit": string;
|
|
12859
13219
|
readonly "web-unprotected": "Asset protection does not apply to the web export; its files ship unprotected.";
|
|
12860
13220
|
readonly "mobile-unprotected": "Asset protection does not apply to Android or iOS packages.";
|
|
13221
|
+
readonly "distribution-key-missing": "No distribution key. The game this build produces will not accept patches.";
|
|
12861
13222
|
readonly "progress-carry-unsupported": string;
|
|
12862
13223
|
readonly "lossy-images": "Images are re-encoded at quality {setting} and lose detail permanently.";
|
|
12863
13224
|
readonly "lossy-audio": "Audio is re-encoded at {setting} kbit/s and loses detail permanently.";
|
|
@@ -13305,6 +13666,11 @@ declare const en: {
|
|
|
13305
13666
|
readonly description: "Two rows creating one stage name; the second reuses the first";
|
|
13306
13667
|
readonly message: "{object} is already created above, so this row acts on that one";
|
|
13307
13668
|
};
|
|
13669
|
+
readonly storyVideoControlAfterEnd: {
|
|
13670
|
+
readonly title: "Video already finished";
|
|
13671
|
+
readonly description: "A row pausing, resuming, seeking or stopping a video after a play that waits for its end";
|
|
13672
|
+
readonly message: "{object} has already finished playing at this line; to continue while it plays, turn off \u201CWait for the video\u201D on its play row";
|
|
13673
|
+
};
|
|
13308
13674
|
readonly storyCharacterMissing: {
|
|
13309
13675
|
readonly title: "Missing character";
|
|
13310
13676
|
readonly description: "A row naming a character the project does not have";
|
|
@@ -13413,6 +13779,16 @@ declare const en: {
|
|
|
13413
13779
|
readonly description: "A widget bound to an item field the list drawing it does not declare";
|
|
13414
13780
|
readonly message: "This is bound to an item field the list does not declare, so every row shows the same value";
|
|
13415
13781
|
};
|
|
13782
|
+
readonly uiListTextUntranslated: {
|
|
13783
|
+
readonly title: "Untranslated list content";
|
|
13784
|
+
readonly description: "Words written into a list's content in a project that has a second language";
|
|
13785
|
+
readonly message: "{text} and the rest of this list's content show as written in every language";
|
|
13786
|
+
};
|
|
13787
|
+
readonly uiLocalizationKeyMissing: {
|
|
13788
|
+
readonly title: "Missing localization key";
|
|
13789
|
+
readonly description: "A widget reading its words from a key the project does not have";
|
|
13790
|
+
readonly message: "Reads its words from {key}, which the project does not have";
|
|
13791
|
+
};
|
|
13416
13792
|
readonly uiGestureAnsweredTwice: {
|
|
13417
13793
|
readonly title: "Gesture answered twice";
|
|
13418
13794
|
readonly description: "A widget with a pointer handler of its own, on a page whose action answers the same gesture";
|
|
@@ -13481,13 +13857,15 @@ declare const en: {
|
|
|
13481
13857
|
};
|
|
13482
13858
|
readonly localizationMissing: {
|
|
13483
13859
|
readonly title: "Missing translation";
|
|
13484
|
-
readonly description: "A line with no translation in a target language";
|
|
13860
|
+
readonly description: "A line or interface text with no translation in a target language";
|
|
13485
13861
|
readonly message: "No {locale} translation";
|
|
13862
|
+
readonly messageInterface: "No {locale} translation of {text}";
|
|
13486
13863
|
};
|
|
13487
13864
|
readonly localizationStale: {
|
|
13488
13865
|
readonly title: "Stale translation";
|
|
13489
13866
|
readonly description: "The source line changed after it was translated";
|
|
13490
13867
|
readonly message: "{locale} translation is older than the line";
|
|
13868
|
+
readonly messageInterface: "{locale} translation of {text} is older than the text";
|
|
13491
13869
|
};
|
|
13492
13870
|
readonly localizationMarkup: {
|
|
13493
13871
|
readonly title: "Translation drops styling";
|
|
@@ -13793,6 +14171,7 @@ declare const en: {
|
|
|
13793
14171
|
};
|
|
13794
14172
|
readonly uiDocument: {
|
|
13795
14173
|
readonly renamed: "Interface renamed";
|
|
14174
|
+
readonly entryPage: "Entry page changed";
|
|
13796
14175
|
readonly surfaceAdded: "Surface added ({elementCount})";
|
|
13797
14176
|
readonly surfaceRemoved: "Surface removed ({elementCount})";
|
|
13798
14177
|
readonly surfaceChanged: "Surface changed";
|
|
@@ -13855,6 +14234,10 @@ declare const en: {
|
|
|
13855
14234
|
readonly content: "File contents replaced";
|
|
13856
14235
|
readonly field: "{field} changed";
|
|
13857
14236
|
readonly orphanContent: "File with no asset record";
|
|
14237
|
+
readonly fields: {
|
|
14238
|
+
readonly group: "Group";
|
|
14239
|
+
readonly missingGroup: "Missing group";
|
|
14240
|
+
};
|
|
13858
14241
|
};
|
|
13859
14242
|
readonly brand: {
|
|
13860
14243
|
readonly added: "Color added";
|
|
@@ -13880,7 +14263,7 @@ declare const en: {
|
|
|
13880
14263
|
readonly added: "Track added";
|
|
13881
14264
|
readonly removed: "Track removed";
|
|
13882
14265
|
readonly renamed: "Renamed";
|
|
13883
|
-
readonly rerouted: "Routes into a different
|
|
14266
|
+
readonly rerouted: "Routes into a different track";
|
|
13884
14267
|
readonly reroutedToMaster: "Routes into the master output";
|
|
13885
14268
|
readonly volume: "Volume changed";
|
|
13886
14269
|
readonly loopOn: "Loops by default";
|
|
@@ -13895,7 +14278,7 @@ declare const en: {
|
|
|
13895
14278
|
readonly defaultValue: "Default value changed";
|
|
13896
14279
|
readonly valueType: "Type changed";
|
|
13897
14280
|
readonly scopeSaved: "Now a saved variable";
|
|
13898
|
-
readonly scopeGlobal: "Now a
|
|
14281
|
+
readonly scopeGlobal: "Now a persistent variable";
|
|
13899
14282
|
readonly storageKey: "Values already saved are no longer found";
|
|
13900
14283
|
readonly description: "Note changed";
|
|
13901
14284
|
readonly changed: "Variable changed";
|
|
@@ -14493,7 +14876,7 @@ declare const en: {
|
|
|
14493
14876
|
readonly body: string;
|
|
14494
14877
|
};
|
|
14495
14878
|
readonly keyboard: {
|
|
14496
|
-
readonly title: "Keyboard";
|
|
14879
|
+
readonly title: "Keyboard and Mouse";
|
|
14497
14880
|
readonly body: string;
|
|
14498
14881
|
};
|
|
14499
14882
|
readonly search: {
|
|
@@ -14536,6 +14919,10 @@ declare const en: {
|
|
|
14536
14919
|
readonly title: "Editing outside Studio";
|
|
14537
14920
|
readonly body: string;
|
|
14538
14921
|
};
|
|
14922
|
+
readonly storyPaste: {
|
|
14923
|
+
readonly title: "Paste as Rows";
|
|
14924
|
+
readonly body: string;
|
|
14925
|
+
};
|
|
14539
14926
|
readonly sceneSnapshot: {
|
|
14540
14927
|
readonly title: "Playing from a row";
|
|
14541
14928
|
readonly body: string;
|
|
@@ -14549,7 +14936,7 @@ declare const en: {
|
|
|
14549
14936
|
readonly body: string;
|
|
14550
14937
|
};
|
|
14551
14938
|
readonly storyMotion: {
|
|
14552
|
-
readonly title: "Motion";
|
|
14939
|
+
readonly title: "Story Motion";
|
|
14553
14940
|
readonly body: string;
|
|
14554
14941
|
};
|
|
14555
14942
|
readonly assets: {
|
|
@@ -14904,6 +15291,8 @@ declare const en: {
|
|
|
14904
15291
|
readonly storyStarted: "Load Save: \"{id}\" was written in another of the project's stories, which was started to receive it.";
|
|
14905
15292
|
readonly relaunchedRow: "Load Save: \"{id}\" was written by another build. The story was started again on the line the save records.";
|
|
14906
15293
|
readonly relaunchedScene: "Load Save: \"{id}\" was written by another build and the line it records is no longer present. The story was started again at the start of that scene.";
|
|
15294
|
+
readonly rowLaunchRelaunchedRow: "Load Save: \"{id}\" was written in a run started with Play from this row. The story was started again on the line the save records.";
|
|
15295
|
+
readonly rowLaunchRelaunchedScene: "Load Save: \"{id}\" was written in a run started with Play from this row, and the line it records is no longer present. The story was started again at the start of that scene.";
|
|
14907
15296
|
readonly detail: {
|
|
14908
15297
|
readonly unreadable: "The save could not be read. {error}";
|
|
14909
15298
|
readonly missing: "No save is stored under that id.";
|
|
@@ -16357,6 +16746,11 @@ type LiveUIParts = {
|
|
|
16357
16746
|
actions?: Readonly<Record<string, UIInputActionDef | null>>;
|
|
16358
16747
|
/** The document's own name, when it changed. */
|
|
16359
16748
|
name?: string;
|
|
16749
|
+
/**
|
|
16750
|
+
* Which page the game starts on, when that changed. `null` is the document naming none - which
|
|
16751
|
+
* is a value of its own (the main page is the entry), not "unchanged".
|
|
16752
|
+
*/
|
|
16753
|
+
entrySurfaceId?: UISurfaceId | null;
|
|
16360
16754
|
};
|
|
16361
16755
|
type LiveUIElementRef = {
|
|
16362
16756
|
componentId: UIComponentId | null;
|
|
@@ -16625,6 +17019,17 @@ declare class UIDocumentService extends Service<UIDocumentService> implements IU
|
|
|
16625
17019
|
blueprintId: string;
|
|
16626
17020
|
};
|
|
16627
17021
|
clearElementBlueprintValueBinding(elementId: string, propPath: string): void;
|
|
17022
|
+
/**
|
|
17023
|
+
* Close the editor tabs showing a value blueprint that clearing its binding has just removed.
|
|
17024
|
+
*
|
|
17025
|
+
* The blueprint is the binding's own - minted for this element's prop and named for it - but the
|
|
17026
|
+
* author writes their logic into it, so its removal is one step on the page's undo history above,
|
|
17027
|
+
* blueprint included. A tab left open on it said only that the blueprint could not be found, and
|
|
17028
|
+
* while it stayed the active editor the inspector's Ctrl+Z went to its stack instead of the page's,
|
|
17029
|
+
* so the step that would bring the logic back was out of reach from where the author was. Closed,
|
|
17030
|
+
* the page the binding belongs to is the editor the inspector edits again.
|
|
17031
|
+
*/
|
|
17032
|
+
private closeTabsShowingBlueprint;
|
|
16628
17033
|
/**
|
|
16629
17034
|
* How this element arrives and leaves. `null` clears it.
|
|
16630
17035
|
*
|
|
@@ -16647,6 +17052,22 @@ declare class UIDocumentService extends Service<UIDocumentService> implements IU
|
|
|
16647
17052
|
* reparents an inner one that may be in the same batch.
|
|
16648
17053
|
*/
|
|
16649
17054
|
ungroupContainers(surfaceId: string, containerIds: string[]): string[];
|
|
17055
|
+
/**
|
|
17056
|
+
* Wrap elements in a new group - an invisible container that takes their place - and return the
|
|
17057
|
+
* group's id, or null when they cannot be wrapped (see `planGroupElements` for which can, and
|
|
17058
|
+
* for why nothing on screen moves).
|
|
17059
|
+
*
|
|
17060
|
+
* One mutation, so Undo puts the tree back as it was in one step.
|
|
17061
|
+
*/
|
|
17062
|
+
groupElements(surfaceId: string, elementIds: readonly string[]): string | null;
|
|
17063
|
+
/**
|
|
17064
|
+
* Rename one layer.
|
|
17065
|
+
*
|
|
17066
|
+
* A linked component instance renames like any other layer: its name is copied from the
|
|
17067
|
+
* definition once, when the instance is placed, and is the instance's own from then on - it is
|
|
17068
|
+
* how the outline tells "save slot 1" from "save slot 2". Props and shape are what the definition
|
|
17069
|
+
* owns, and their own setters still refuse them on an instance.
|
|
17070
|
+
*/
|
|
16650
17071
|
renameElement(elementId: string, name: string): void;
|
|
16651
17072
|
deleteElements(elementIds: string[]): void;
|
|
16652
17073
|
/**
|
|
@@ -16747,6 +17168,10 @@ declare class UIDocumentService extends Service<UIDocumentService> implements IU
|
|
|
16747
17168
|
private normalizeSpecialChildSlots;
|
|
16748
17169
|
private createEmptyDocument;
|
|
16749
17170
|
createSurface(input: CreateSurfaceInput): UISurface;
|
|
17171
|
+
/**
|
|
17172
|
+
* Remove a surface and its tree. The entry page is refused: a game has to start somewhere, and
|
|
17173
|
+
* the way to delete the page it starts on is to make another page the entry first.
|
|
17174
|
+
*/
|
|
16750
17175
|
deleteSurface(surfaceId: string): void;
|
|
16751
17176
|
/**
|
|
16752
17177
|
* Put the surfaces in the order given.
|
|
@@ -16769,6 +17194,21 @@ declare class UIDocumentService extends Service<UIDocumentService> implements IU
|
|
|
16769
17194
|
* the entry.
|
|
16770
17195
|
*/
|
|
16771
17196
|
reorderSurfaces(orderedSurfaceIds: readonly string[], movedSurfaceId?: string): void;
|
|
17197
|
+
/**
|
|
17198
|
+
* Make this page the one the game starts on.
|
|
17199
|
+
*
|
|
17200
|
+
* Only a page can be the entry - a Game UI has nothing to show before a story runs - and asking
|
|
17201
|
+
* for the page that already is changes nothing and records nothing. The pages keep their ids:
|
|
17202
|
+
* the document stores which one is the entry (`UIDocument.entrySurfaceId`), so every blueprint
|
|
17203
|
+
* and every `Go Page` that names either page still names the same page afterwards.
|
|
17204
|
+
*
|
|
17205
|
+
* On the project stack, for the reason {@link reorderSurfaces} gives: it is an edit to no one
|
|
17206
|
+
* surface, made from the panel. The entry restores to what the file stored rather than to the
|
|
17207
|
+
* page that was resolved, so taking this back leaves a document that never named an entry as
|
|
17208
|
+
* short as it was.
|
|
17209
|
+
*/
|
|
17210
|
+
setEntrySurface(surfaceId: string): void;
|
|
17211
|
+
private applyEntrySurface;
|
|
16772
17212
|
private applySurfaceOrder;
|
|
16773
17213
|
renameSurface(surfaceId: string, name: string): void;
|
|
16774
17214
|
/**
|
|
@@ -16864,6 +17304,16 @@ declare class UIDocumentService extends Service<UIDocumentService> implements IU
|
|
|
16864
17304
|
reorderComponentChildren(componentId: string, parentId: string, orderedChildIds: string[]): void;
|
|
16865
17305
|
deleteComponentElements(componentId: string, elementIds: string[]): void;
|
|
16866
17306
|
moveComponentElements(componentId: string, elementIds: string[], targetParentId: string, beforeChildId: string | null): MoveUiElementsResult;
|
|
17307
|
+
/**
|
|
17308
|
+
* `ungroupContainers` for a component definition's elements, over a document made of the
|
|
17309
|
+
* component alone. Returns the ids that were lifted out.
|
|
17310
|
+
*/
|
|
17311
|
+
ungroupComponentContainers(componentId: string, containerIds: readonly string[]): string[];
|
|
17312
|
+
/**
|
|
17313
|
+
* `groupElements` for a component definition's elements: the same plan, read and applied over a
|
|
17314
|
+
* document made of the component alone, as `moveComponentElements` does.
|
|
17315
|
+
*/
|
|
17316
|
+
groupComponentElements(componentId: string, elementIds: readonly string[]): string | null;
|
|
16867
17317
|
createComponentElement(componentId: string, parentId: string, type: string, layoutPatch?: Partial<UILayout>): UIElement | null;
|
|
16868
17318
|
pasteComponentClipboardPayload(componentId: string, targetParentId: string, beforeChildId: string | null, payload: UIEditorClipboardPayload): {
|
|
16869
17319
|
ok: true;
|
|
@@ -16921,7 +17371,25 @@ declare class UIDocumentService extends Service<UIDocumentService> implements IU
|
|
|
16921
17371
|
private configureDefaultNotificationBlueprints;
|
|
16922
17372
|
private configureDefaultChoiceBlueprints;
|
|
16923
17373
|
private configureDefaultNvlBlueprints;
|
|
16924
|
-
|
|
17374
|
+
/**
|
|
17375
|
+
* A page for the game to start on, whatever the file said. True when the document had to change.
|
|
17376
|
+
*
|
|
17377
|
+
* Three repairs, each for a document that arrived broken - by a merge, a hand edit, or an older
|
|
17378
|
+
* tool - and none of which a document Studio wrote ever needs:
|
|
17379
|
+
*
|
|
17380
|
+
* - **no page at all**: one is made, under the main id when nothing holds it, so a project
|
|
17381
|
+
* always has somewhere to start;
|
|
17382
|
+
* - **an entry page whose root element is missing**: it gets an empty one, so it can be opened;
|
|
17383
|
+
* - **a stored entry that names no page**: the pointer is dropped, and the entry is the page the
|
|
17384
|
+
* document would name without it (`resolveEntrySurface` already reads it that way - this only
|
|
17385
|
+
* stops the file from saying something it does not mean).
|
|
17386
|
+
*
|
|
17387
|
+
* ⚠ **It never changes a page's id.** This used to give the first page the main id when no page
|
|
17388
|
+
* had it, which was harmless only while the main page could not be deleted. Now that the entry is
|
|
17389
|
+
* a pointer and the old main page can be deleted like any other, doing that would quietly re-file
|
|
17390
|
+
* every blueprint and every `Go Page` that named the page by the id it had.
|
|
17391
|
+
*/
|
|
17392
|
+
private ensureEntrySurface;
|
|
16925
17393
|
private getDocumentPath;
|
|
16926
17394
|
private ensureDocumentDir;
|
|
16927
17395
|
}
|
|
@@ -16958,18 +17426,29 @@ type WidgetLogicWritablePropDef = {
|
|
|
16958
17426
|
export type WidgetLogicApi = {
|
|
16959
17427
|
supportsPrivateBlueprint: boolean;
|
|
16960
17428
|
blueprintLabel?: string;
|
|
17429
|
+
/**
|
|
17430
|
+
* The events a private blueprint on this widget can be started by. Every entry is load-bearing:
|
|
17431
|
+
* the node palette, graph validation, the dispatcher and `ui.js widget` all read this list, so an
|
|
17432
|
+
* event belongs here only once the runtime raises it and a head node for it is registered.
|
|
17433
|
+
*/
|
|
16961
17434
|
events: readonly WidgetLogicEventDef[];
|
|
17435
|
+
/**
|
|
17436
|
+
* `commands`, `readableState` and `writableProps` describe the widget to a reader - `ui.js
|
|
17437
|
+
* widget` prints them - and nothing executes them: no blueprint node looks a widget up in these
|
|
17438
|
+
* lists. What a graph can actually do to a widget is in the node catalogue.
|
|
17439
|
+
*/
|
|
16962
17440
|
commands: readonly WidgetLogicCommandDef[];
|
|
16963
17441
|
readableState: readonly WidgetLogicReadableStateDef[];
|
|
16964
17442
|
writableProps: readonly WidgetLogicWritablePropDef[];
|
|
16965
17443
|
/**
|
|
16966
17444
|
* Whether the player operates this widget directly - a Button, a Switch, a Slider, a Text Input,
|
|
16967
17445
|
* a list they pick a row from. Scenery (Container, Text, Image, Video, Model, the page host)
|
|
16968
|
-
* leaves it unset.
|
|
17446
|
+
* leaves it unset. A Video with its native controls showing is operable too, but that is a prop
|
|
17447
|
+
* on the instance, so `isOperableHitElement` in `surfaceInputActions.ts` answers it there.
|
|
16969
17448
|
*
|
|
16970
|
-
* Declared rather than derived, and the retreat is deliberate. A panel-wide gesture
|
|
16971
|
-
*
|
|
16972
|
-
* "is this a control", and the tempting derivation - "declares an interaction event beyond the
|
|
17449
|
+
* Declared rather than derived, and the retreat is deliberate. A panel-wide gesture stands down
|
|
17450
|
+
* over a control (`pointerInputClaimedByControl` in `surfaceInputActions.ts`), so something has
|
|
17451
|
+
* to answer "is this a control", and the tempting derivation - "declares an interaction event beyond the
|
|
16973
17452
|
* shared displayable set" - is wrong at both ends: `nl.button` declares exactly the displayable
|
|
16974
17453
|
* set, and `nl.frame` declares `pageEvent`. Nothing else in an entry separates a Button from a
|
|
16975
17454
|
* Container, because what makes a Button a control is how the runtime draws and handles it, not
|
|
@@ -16992,6 +17471,12 @@ export interface ContextMenuItemDef {
|
|
|
16992
17471
|
* than in the label keeps a disabled menu a menu instead of a paragraph.
|
|
16993
17472
|
*/
|
|
16994
17473
|
tooltip?: string;
|
|
17474
|
+
/**
|
|
17475
|
+
* The chord that runs the same command, already formatted for this platform (callers resolve it
|
|
17476
|
+
* through `useShortcutLabels`, so a rebound key shows rebound). Printed at the right of the row:
|
|
17477
|
+
* a menu that names a command without its key is the reason the key stays undiscovered.
|
|
17478
|
+
*/
|
|
17479
|
+
shortcut?: string;
|
|
16995
17480
|
onClick?: () => void;
|
|
16996
17481
|
submenu?: ContextMenuItemDef[];
|
|
16997
17482
|
/**
|
|
@@ -17186,6 +17671,8 @@ interface IconButtonGroupOption {
|
|
|
17186
17671
|
icon: React$1.ReactNode;
|
|
17187
17672
|
label?: string;
|
|
17188
17673
|
disabled?: boolean;
|
|
17674
|
+
/** Hover text when it should say more than the label - why an option is unavailable, say. */
|
|
17675
|
+
tip?: string;
|
|
17189
17676
|
}
|
|
17190
17677
|
type IconButtonSelection = string | string[] | null;
|
|
17191
17678
|
type IconButtonSegGroupDensity = "default" | "compact";
|
|
@@ -17672,6 +18159,20 @@ type BlueprintNodeDeclaration = {
|
|
|
17672
18159
|
};
|
|
17673
18160
|
inspectorParams?: BlueprintInspectorParamDef[];
|
|
17674
18161
|
role?: BlueprintNodeRole;
|
|
18162
|
+
/**
|
|
18163
|
+
* The node's own words in other languages, for a node the host did not define.
|
|
18164
|
+
*
|
|
18165
|
+
* Keyed by locale code, then by the English text exactly as this declaration writes it: the
|
|
18166
|
+
* title, the category, a pin label, an inspector label, an option label or an empty-option
|
|
18167
|
+
* label. That is how the host's own catalogue is keyed (see `blueprintNodeI18n`), because the
|
|
18168
|
+
* canvas, the palette and the issue list all hold a title or a label rather than the node that
|
|
18169
|
+
* declared it. A string the host already translates keeps the host's wording, so one English
|
|
18170
|
+
* word reads the same on every node; a string with no entry for the active locale is drawn in
|
|
18171
|
+
* English.
|
|
18172
|
+
*
|
|
18173
|
+
* Built-in nodes leave this unset: their words live in Studio's catalogue.
|
|
18174
|
+
*/
|
|
18175
|
+
translations?: Readonly<Record<string, Readonly<Record<string, string>>>>;
|
|
17675
18176
|
};
|
|
17676
18177
|
interface ProjectProps {
|
|
17677
18178
|
projectPath: string;
|
|
@@ -18234,6 +18735,12 @@ export type StoryPluginActionRegistration = {
|
|
|
18234
18735
|
detail?: string;
|
|
18235
18736
|
group?: string;
|
|
18236
18737
|
createBlock: (input: StoryPluginActionCreateInput) => StoryBlock;
|
|
18738
|
+
/**
|
|
18739
|
+
* The text a committed row of this action reads as, from the params the row carries; `label`
|
|
18740
|
+
* when absent, or when it returns nothing. A row's params are otherwise invisible in the scene
|
|
18741
|
+
* editor, so an action whose params change what the row does says what they are here.
|
|
18742
|
+
*/
|
|
18743
|
+
describe?: (params: Record<string, unknown>) => string | null | undefined;
|
|
18237
18744
|
};
|
|
18238
18745
|
declare const HELP_TOPIC_IDS: readonly [
|
|
18239
18746
|
"gettingHelp",
|
|
@@ -18250,6 +18757,7 @@ declare const HELP_TOPIC_IDS: readonly [
|
|
|
18250
18757
|
"storyExpressions",
|
|
18251
18758
|
"storyFlow",
|
|
18252
18759
|
"storyScript",
|
|
18760
|
+
"storyPaste",
|
|
18253
18761
|
"sceneSnapshot",
|
|
18254
18762
|
"storyMotion",
|
|
18255
18763
|
"dictionary",
|
|
@@ -18687,6 +19195,31 @@ export interface StoryCompilePass {
|
|
|
18687
19195
|
/** Called once per scene, before that scene's rows are compiled. */
|
|
18688
19196
|
scene(ctx: SceneCompileContext): void;
|
|
18689
19197
|
}
|
|
19198
|
+
/** What a plugin story action's `run` receives. */
|
|
19199
|
+
export type RuntimeStoryActionContext = {
|
|
19200
|
+
/** The params the row carries: whatever the studio entry's `createBlock` wrote. */
|
|
19201
|
+
params: Record<string, unknown>;
|
|
19202
|
+
/**
|
|
19203
|
+
* Aborted when the row is cancelled: the player rolls back past it, or loads a save, while it is
|
|
19204
|
+
* still running. Tear down whatever `run` put on screen and stop; nothing it does after this
|
|
19205
|
+
* reaches the story.
|
|
19206
|
+
*/
|
|
19207
|
+
signal: AbortSignal;
|
|
19208
|
+
/** The very same object `setup(app)` received as `app.game`. */
|
|
19209
|
+
game: RuntimePluginGame;
|
|
19210
|
+
};
|
|
19211
|
+
/**
|
|
19212
|
+
* The game-side half of a plugin story action.
|
|
19213
|
+
*
|
|
19214
|
+
* `run` may be async, and the story waits for it: the next row starts once the promise settles. A
|
|
19215
|
+
* save taken while it runs replays the row on load, so `run` must be able to start again from
|
|
19216
|
+
* nothing. A throw is logged and the story carries on.
|
|
19217
|
+
*/
|
|
19218
|
+
export type RuntimeStoryActionDef = {
|
|
19219
|
+
/** The same id the studio entry registered the action under, prefixed with the plugin id. */
|
|
19220
|
+
id: string;
|
|
19221
|
+
run(ctx: RuntimeStoryActionContext): void | Promise<void>;
|
|
19222
|
+
};
|
|
18690
19223
|
/**
|
|
18691
19224
|
* The detail on `nl.launch`: where this page sits on the launch's own timeline.
|
|
18692
19225
|
*
|
|
@@ -19101,6 +19634,12 @@ export type RuntimePluginSaveMetadata = {
|
|
|
19101
19634
|
* heavier capability.
|
|
19102
19635
|
*/
|
|
19103
19636
|
export type RuntimePluginSaves = {
|
|
19637
|
+
/**
|
|
19638
|
+
* Every slot in the store, reserved ones included: the autosave ring, and any slot a plugin
|
|
19639
|
+
* keeps for itself (`contributes.reservedSaveIds`). This is direct store access, not the
|
|
19640
|
+
* player's view - `List Saves` is the one that leaves bookkeeping out - so a plugin can find its
|
|
19641
|
+
* own reserved slot here.
|
|
19642
|
+
*/
|
|
19104
19643
|
listIds(): Promise<string[]>;
|
|
19105
19644
|
readMetadata(id: string): Promise<RuntimePluginSaveMetadata | null>;
|
|
19106
19645
|
/** Present only with `saves.write`. Overwrites the slot. */
|
|
@@ -19275,7 +19814,7 @@ export type RuntimePluginStory = {
|
|
|
19275
19814
|
/**
|
|
19276
19815
|
* The game-side plugin surface.
|
|
19277
19816
|
*
|
|
19278
|
-
* Everything below the always-present
|
|
19817
|
+
* Everything below the always-present six is **capability-gated**: a domain the
|
|
19279
19818
|
* manifest did not declare is *absent from this object*, not a method that
|
|
19280
19819
|
* throws. That is the whole contract — the install prompt lists exactly the
|
|
19281
19820
|
* domains present here, so what the user approved and what the plugin can do are
|
|
@@ -19290,6 +19829,18 @@ export type RuntimePluginGame = {
|
|
|
19290
19829
|
register(def: RuntimeWidgetRendererDef): void;
|
|
19291
19830
|
registerMany(defs: RuntimeWidgetRendererDef[]): void;
|
|
19292
19831
|
};
|
|
19832
|
+
/**
|
|
19833
|
+
* What runs when the story reaches a row one of this plugin's story actions inserted. The id is
|
|
19834
|
+
* the one the studio entry registered the action under; the story waits on the row until `run`
|
|
19835
|
+
* settles. See {@link RuntimeStoryActionDef}.
|
|
19836
|
+
*
|
|
19837
|
+
* Always present, like `blueprintNodes`: a runner only ever runs on a row the author placed, and
|
|
19838
|
+
* only on this plugin's own rows, so it grants nothing an install prompt would have to name.
|
|
19839
|
+
*/
|
|
19840
|
+
storyActions: {
|
|
19841
|
+
register(def: RuntimeStoryActionDef): void;
|
|
19842
|
+
registerMany(defs: RuntimeStoryActionDef[]): void;
|
|
19843
|
+
};
|
|
19293
19844
|
/**
|
|
19294
19845
|
* Read-only access to plugin storage published with the game, for the
|
|
19295
19846
|
* namespaces declared in `contributes.runtimeData`. Synchronous: the
|
|
@@ -19618,10 +20169,15 @@ type DropEdge = "before" | "after";
|
|
|
19618
20169
|
interface DropIndicatorProps {
|
|
19619
20170
|
/** Which edge of the positioned parent the line sits on. */
|
|
19620
20171
|
edge: DropEdge;
|
|
20172
|
+
/**
|
|
20173
|
+
* Which way the rows run. A list (the default) puts "before" on the top edge and draws the line
|
|
20174
|
+
* across; a grid that reads left to right puts it on the left edge and draws the line down.
|
|
20175
|
+
*/
|
|
20176
|
+
axis?: "vertical" | "horizontal";
|
|
19621
20177
|
/** Extra classes for the rare caller that has to nudge it; the line itself is not negotiable. */
|
|
19622
20178
|
className?: string;
|
|
19623
20179
|
}
|
|
19624
|
-
declare function DropIndicator({ edge, className }: DropIndicatorProps): React$1.ReactElement;
|
|
20180
|
+
declare function DropIndicator({ edge, axis, className }: DropIndicatorProps): React$1.ReactElement;
|
|
19625
20181
|
export interface AccordionProps {
|
|
19626
20182
|
children: React$1.ReactNode;
|
|
19627
20183
|
/** Default open item IDs */
|