narraleaf-studio 1.1.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 +386 -81
- package/dist/runtime.d.ts +2 -0
- package/package.json +1 -1
package/dist/_api.d.ts
CHANGED
|
@@ -665,32 +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
|
-
* reveals it and runs it to the end. Without one, `play` runs a clip an earlier row put on
|
|
679
|
-
* stage and leaves its visibility alone. No document needs migrating for this: a `play` row
|
|
680
|
-
* could always hold an asset, and one that did now does what it says.
|
|
681
|
-
*
|
|
682
|
-
* Additive: the four transport operations and `timeMs` are new in A3, and no document
|
|
683
|
-
* 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.
|
|
684
680
|
*/
|
|
685
681
|
action: "video";
|
|
686
|
-
operation: "
|
|
682
|
+
operation: "hide" | "play" | "pause" | "resume" | "stop" | "seek";
|
|
687
683
|
objectName: string;
|
|
688
|
-
/**
|
|
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
|
+
*/
|
|
689
688
|
target?: StoryActionableTargetRef;
|
|
689
|
+
/** `play` — the clip it plays. Required: a play with no file plays nothing. */
|
|
690
690
|
assetId?: string;
|
|
691
|
+
/** `play` — whether the clip plays without sound. */
|
|
691
692
|
muted?: boolean;
|
|
692
693
|
/** `seek` — where to jump to, in milliseconds. The engine's `seek` takes seconds; the compiler converts. */
|
|
693
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;
|
|
694
722
|
} | {
|
|
695
723
|
/**
|
|
696
724
|
* The story's stage camera (`story.camera`) — a Displayable like any other in the engine, but
|
|
@@ -3842,6 +3870,11 @@ declare const en: {
|
|
|
3842
3870
|
readonly removeKey: "Remove key";
|
|
3843
3871
|
readonly removeKeyConfirm: "Remove {name}?";
|
|
3844
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.";
|
|
3845
3878
|
readonly sourceColumn: "Source";
|
|
3846
3879
|
readonly targetColumn: "Translation";
|
|
3847
3880
|
readonly targetPlaceholder: "Translate\u2026";
|
|
@@ -4357,7 +4390,7 @@ declare const en: {
|
|
|
4357
4390
|
readonly saveFailed: "Save failed";
|
|
4358
4391
|
readonly retrySave: "Retry saving now";
|
|
4359
4392
|
readonly resetZoom: "Reset zoom to 100%";
|
|
4360
|
-
readonly shortcuts: "
|
|
4393
|
+
readonly shortcuts: "Shortcuts and mouse actions";
|
|
4361
4394
|
readonly words: {
|
|
4362
4395
|
readonly one: "{count} word";
|
|
4363
4396
|
readonly other: "{count} words";
|
|
@@ -4376,7 +4409,7 @@ declare const en: {
|
|
|
4376
4409
|
readonly studioTasks: "Background work";
|
|
4377
4410
|
readonly unsavedChanges: "Unsaved changes";
|
|
4378
4411
|
readonly wordCount: "Story stats";
|
|
4379
|
-
readonly shortcuts: "
|
|
4412
|
+
readonly shortcuts: "Shortcuts and mouse actions";
|
|
4380
4413
|
readonly notifications: "Notifications";
|
|
4381
4414
|
readonly theme: "Theme switcher";
|
|
4382
4415
|
readonly zoom: "Zoom level";
|
|
@@ -4731,7 +4764,7 @@ declare const en: {
|
|
|
4731
4764
|
readonly conflict: "Also bound to {name}";
|
|
4732
4765
|
readonly empty: "No matching shortcuts";
|
|
4733
4766
|
readonly openSettings: "Customize Keyboard Shortcuts";
|
|
4734
|
-
readonly cheatSheetTitle: "
|
|
4767
|
+
readonly cheatSheetTitle: "Shortcuts and Mouse Actions";
|
|
4735
4768
|
readonly cheatSheetCustomize: "Customize\u2026";
|
|
4736
4769
|
readonly categories: {
|
|
4737
4770
|
readonly general: "General";
|
|
@@ -4750,7 +4783,7 @@ declare const en: {
|
|
|
4750
4783
|
readonly catalog: {
|
|
4751
4784
|
readonly commandPalette: "Show and Run Commands";
|
|
4752
4785
|
readonly quickOpen: "Quick Open";
|
|
4753
|
-
readonly cheatSheet: "Show
|
|
4786
|
+
readonly cheatSheet: "Show Shortcuts and Mouse Actions";
|
|
4754
4787
|
readonly contextHelp: "Help for What Is Focused";
|
|
4755
4788
|
readonly reopenClosedTab: "Reopen Closed Tab";
|
|
4756
4789
|
readonly localizationFind: "Find in Translations";
|
|
@@ -4805,6 +4838,104 @@ declare const en: {
|
|
|
4805
4838
|
readonly playheadEnd: "Move Playhead to End";
|
|
4806
4839
|
};
|
|
4807
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
|
+
};
|
|
4808
4939
|
};
|
|
4809
4940
|
readonly search: {
|
|
4810
4941
|
readonly placeholder: "Search project\u2026";
|
|
@@ -4908,7 +5039,7 @@ declare const en: {
|
|
|
4908
5039
|
readonly other: "Its {count} scenes are deleted with it.";
|
|
4909
5040
|
};
|
|
4910
5041
|
readonly deleteSceneConfirm: "Delete scene \"{name}\"?";
|
|
4911
|
-
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.";
|
|
4912
5043
|
};
|
|
4913
5044
|
readonly readFailed: {
|
|
4914
5045
|
readonly missing: "This story is no longer in this project.";
|
|
@@ -5003,9 +5134,9 @@ declare const en: {
|
|
|
5003
5134
|
readonly undoSceneRestored: "That scene is in the story again.";
|
|
5004
5135
|
readonly undoChapterGone: "That chapter is gone.";
|
|
5005
5136
|
readonly undoChapterRestored: "That chapter is in the story again.";
|
|
5006
|
-
readonly undoContainerGone: "The
|
|
5137
|
+
readonly undoContainerGone: "The row that line was inside is gone.";
|
|
5007
5138
|
readonly undoAnchorGone: "Where that line moved from is gone.";
|
|
5008
|
-
readonly undoContainerFilled: "That
|
|
5139
|
+
readonly undoContainerFilled: "That row has other lines inside it now.";
|
|
5009
5140
|
readonly undoSubtreeLost: "The lines that were inside it cannot be put back.";
|
|
5010
5141
|
readonly undoChaptersChanged: "The chapters are not the ones that step recorded.";
|
|
5011
5142
|
readonly undoCharacterGone: "That character is gone.";
|
|
@@ -5450,6 +5581,7 @@ declare const en: {
|
|
|
5450
5581
|
readonly mirrorState: "On / Off";
|
|
5451
5582
|
readonly waitFor: "Seconds or click";
|
|
5452
5583
|
readonly waitForEnd: "Wait for the clip";
|
|
5584
|
+
readonly hideOnEnd: "Hide when finished";
|
|
5453
5585
|
readonly fade: "Fade Seconds";
|
|
5454
5586
|
readonly loop: "Loop";
|
|
5455
5587
|
readonly returnable: "Return";
|
|
@@ -5894,7 +6026,7 @@ declare const en: {
|
|
|
5894
6026
|
readonly image: "Image \u201C{name}\u201D is not on stage; an earlier row has to create it.";
|
|
5895
6027
|
readonly text: "Text \u201C{name}\u201D is not on stage; an earlier row has to create it.";
|
|
5896
6028
|
readonly layer: "Layer \u201C{name}\u201D is not on stage; an earlier row has to create it.";
|
|
5897
|
-
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.";
|
|
5898
6030
|
readonly ambience: "Ambience effect \u201C{name}\u201D is not on stage; an earlier row has to create it.";
|
|
5899
6031
|
readonly character: "Character \u201C{name}\u201D is not on stage; an earlier row has to bring it on stage.";
|
|
5900
6032
|
readonly characterGone: "The character this row acts on is no longer in this project, so it is not on stage.";
|
|
@@ -6034,7 +6166,7 @@ declare const en: {
|
|
|
6034
6166
|
};
|
|
6035
6167
|
readonly show: {
|
|
6036
6168
|
readonly label: "Show";
|
|
6037
|
-
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";
|
|
6038
6170
|
};
|
|
6039
6171
|
readonly hide: {
|
|
6040
6172
|
readonly label: "Hide";
|
|
@@ -6072,10 +6204,6 @@ declare const en: {
|
|
|
6072
6204
|
readonly label: "Text";
|
|
6073
6205
|
readonly detail: "Declare text on stage; /show reveals it";
|
|
6074
6206
|
};
|
|
6075
|
-
readonly video: {
|
|
6076
|
-
readonly label: "Video";
|
|
6077
|
-
readonly detail: "Declare a video on stage; /show reveals it";
|
|
6078
|
-
};
|
|
6079
6207
|
readonly vfx: {
|
|
6080
6208
|
readonly label: "Ambience";
|
|
6081
6209
|
readonly detail: "Declare a looping full-screen overlay: petals, rain, dust, light";
|
|
@@ -6090,7 +6218,7 @@ declare const en: {
|
|
|
6090
6218
|
};
|
|
6091
6219
|
readonly play: {
|
|
6092
6220
|
readonly label: "Play";
|
|
6093
|
-
readonly detail: "Play a video
|
|
6221
|
+
readonly detail: "Play a video from the asset library, or play a video again";
|
|
6094
6222
|
};
|
|
6095
6223
|
readonly front: {
|
|
6096
6224
|
readonly label: "Bring to Front";
|
|
@@ -6233,10 +6361,10 @@ declare const en: {
|
|
|
6233
6361
|
readonly condition: "Condition";
|
|
6234
6362
|
readonly if: "If";
|
|
6235
6363
|
readonly elseIf: "Else if";
|
|
6236
|
-
readonly else: "
|
|
6364
|
+
readonly else: "Else";
|
|
6237
6365
|
readonly repeat: "Repeat";
|
|
6238
6366
|
readonly repeatUntil: "Repeat until";
|
|
6239
|
-
readonly parallel: "
|
|
6367
|
+
readonly parallel: "Parallel";
|
|
6240
6368
|
readonly race: "Race, first to finish";
|
|
6241
6369
|
readonly sequence: "In order";
|
|
6242
6370
|
readonly nvl: "NVL";
|
|
@@ -6247,7 +6375,7 @@ declare const en: {
|
|
|
6247
6375
|
readonly declare: {
|
|
6248
6376
|
readonly scene: "Local";
|
|
6249
6377
|
readonly saved: "Var";
|
|
6250
|
-
readonly persistent: "
|
|
6378
|
+
readonly persistent: "Persistent";
|
|
6251
6379
|
};
|
|
6252
6380
|
readonly narration: "Narration";
|
|
6253
6381
|
readonly dialogue: "Dialogue";
|
|
@@ -6877,7 +7005,7 @@ declare const en: {
|
|
|
6877
7005
|
readonly setZIndex: "Set z-index";
|
|
6878
7006
|
};
|
|
6879
7007
|
readonly videoOperation: {
|
|
6880
|
-
readonly play: "Play
|
|
7008
|
+
readonly play: "Play";
|
|
6881
7009
|
readonly pause: "Pause";
|
|
6882
7010
|
readonly resume: "Resume";
|
|
6883
7011
|
readonly stop: "Stop";
|
|
@@ -6957,6 +7085,10 @@ declare const en: {
|
|
|
6957
7085
|
readonly videoName: "Video name";
|
|
6958
7086
|
readonly videoAsset: "Video asset";
|
|
6959
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.";
|
|
6960
7092
|
};
|
|
6961
7093
|
readonly nvl: {
|
|
6962
7094
|
readonly hint: "Child rows run in NVL mode. The transform below animates the NVL layer as it enters.";
|
|
@@ -7022,8 +7154,8 @@ declare const en: {
|
|
|
7022
7154
|
readonly conditionContainer: "Condition container. Add condition branches as children.";
|
|
7023
7155
|
readonly control: "Control";
|
|
7024
7156
|
readonly sequence: "Sequence";
|
|
7025
|
-
readonly parallel: "Parallel
|
|
7026
|
-
readonly race: "Race
|
|
7157
|
+
readonly parallel: "Parallel";
|
|
7158
|
+
readonly race: "Race";
|
|
7027
7159
|
readonly repeat: "Repeat";
|
|
7028
7160
|
readonly mode: {
|
|
7029
7161
|
readonly do: "Do";
|
|
@@ -7187,6 +7319,7 @@ declare const en: {
|
|
|
7187
7319
|
readonly list: "List view";
|
|
7188
7320
|
readonly icons: "Icon view";
|
|
7189
7321
|
readonly overview: "Overview";
|
|
7322
|
+
readonly details: "Details view";
|
|
7190
7323
|
};
|
|
7191
7324
|
readonly filter: {
|
|
7192
7325
|
readonly label: "Filters";
|
|
@@ -7205,6 +7338,17 @@ declare const en: {
|
|
|
7205
7338
|
readonly list: {
|
|
7206
7339
|
readonly emptyFiltered: "No assets matched the current filters.";
|
|
7207
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
|
+
};
|
|
7208
7352
|
readonly iconView: {
|
|
7209
7353
|
readonly updating: "Updating\u2026";
|
|
7210
7354
|
readonly assetCount: {
|
|
@@ -7354,13 +7498,13 @@ declare const en: {
|
|
|
7354
7498
|
readonly locale: "Language";
|
|
7355
7499
|
readonly release: "Variant";
|
|
7356
7500
|
};
|
|
7357
|
-
readonly deletedVariant: "Deleted
|
|
7501
|
+
readonly deletedVariant: "Deleted value";
|
|
7358
7502
|
readonly variantCount: {
|
|
7359
|
-
readonly one: "{count}
|
|
7360
|
-
readonly other: "{count}
|
|
7503
|
+
readonly one: "{count} value";
|
|
7504
|
+
readonly other: "{count} values";
|
|
7361
7505
|
};
|
|
7362
|
-
readonly variantsResolved: "{resolved} of {total}
|
|
7363
|
-
readonly unfinished: "No
|
|
7506
|
+
readonly variantsResolved: "{resolved} of {total} values";
|
|
7507
|
+
readonly unfinished: "No values declared";
|
|
7364
7508
|
readonly inUseTitle: "{name} is still in use";
|
|
7365
7509
|
readonly inUseMessage: "The following places name it and will stop resolving:";
|
|
7366
7510
|
readonly deleteConfirmMessage: "The files inside this set are deleted too.";
|
|
@@ -7375,7 +7519,7 @@ declare const en: {
|
|
|
7375
7519
|
};
|
|
7376
7520
|
readonly create: {
|
|
7377
7521
|
readonly title: "New asset set";
|
|
7378
|
-
readonly subTitle: "New set under this
|
|
7522
|
+
readonly subTitle: "New set under this value";
|
|
7379
7523
|
readonly no: {
|
|
7380
7524
|
readonly locale: "This project declares one language.";
|
|
7381
7525
|
readonly release: "This project has no variants.";
|
|
@@ -7388,8 +7532,8 @@ declare const en: {
|
|
|
7388
7532
|
readonly filter: "Members carry";
|
|
7389
7533
|
readonly residencyBlocked: "A set that varies by variant cannot sit under one that varies by language.";
|
|
7390
7534
|
readonly fallback: "Falls back to";
|
|
7391
|
-
readonly fallbackMissing: "This
|
|
7392
|
-
readonly variants: "
|
|
7535
|
+
readonly fallbackMissing: "This value has no file, so nothing in this set resolves.";
|
|
7536
|
+
readonly variants: "Values";
|
|
7393
7537
|
readonly variantInherited: "fallback";
|
|
7394
7538
|
readonly variantMissing: "No file";
|
|
7395
7539
|
readonly variantAmbiguous: "{count} files";
|
|
@@ -7679,7 +7823,7 @@ declare const en: {
|
|
|
7679
7823
|
readonly tab: {
|
|
7680
7824
|
readonly title: "Blueprint";
|
|
7681
7825
|
readonly invalid: "Blueprint tab is invalid.";
|
|
7682
|
-
readonly notFound: "Blueprint not found
|
|
7826
|
+
readonly notFound: "Blueprint not found in this project";
|
|
7683
7827
|
};
|
|
7684
7828
|
readonly breakpoint: {
|
|
7685
7829
|
readonly add: "Add breakpoint";
|
|
@@ -7713,6 +7857,14 @@ declare const en: {
|
|
|
7713
7857
|
readonly other: "Deleted the unknown node and its {count} hidden connections. Undo to restore.";
|
|
7714
7858
|
};
|
|
7715
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
|
+
};
|
|
7716
7868
|
readonly crossProject: {
|
|
7717
7869
|
readonly pasted: {
|
|
7718
7870
|
readonly one: "{count} node pasted";
|
|
@@ -7975,6 +8127,7 @@ declare const en: {
|
|
|
7975
8127
|
readonly keys: "Keys";
|
|
7976
8128
|
readonly window: "Window";
|
|
7977
8129
|
readonly display: "Display";
|
|
8130
|
+
readonly conditions: "Conditions";
|
|
7978
8131
|
};
|
|
7979
8132
|
};
|
|
7980
8133
|
readonly owner: {
|
|
@@ -8894,6 +9047,7 @@ declare const en: {
|
|
|
8894
9047
|
readonly getVisible: "Get Visible";
|
|
8895
9048
|
readonly getWrapMode: "Get Wrap Mode";
|
|
8896
9049
|
readonly goPage: "Go Page";
|
|
9050
|
+
readonly replacePage: "Replace Page";
|
|
8897
9051
|
readonly goBack: "Go back";
|
|
8898
9052
|
readonly showLayer: "Show Layer";
|
|
8899
9053
|
readonly hideLayer: "Hide Layer";
|
|
@@ -9161,6 +9315,8 @@ declare const en: {
|
|
|
9161
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.";
|
|
9162
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.";
|
|
9163
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.";
|
|
9164
9320
|
};
|
|
9165
9321
|
readonly live: {
|
|
9166
9322
|
readonly nodeClaimed: "{name} is editing this node";
|
|
@@ -9265,7 +9421,7 @@ declare const en: {
|
|
|
9265
9421
|
readonly describeOk: "Filled from the model";
|
|
9266
9422
|
readonly describeNoModel: "No model to read";
|
|
9267
9423
|
readonly describeNoBackend: "No runtime chosen";
|
|
9268
|
-
readonly describeBackendMissing: "Runtime not installed
|
|
9424
|
+
readonly describeBackendMissing: "Runtime not installed in this project";
|
|
9269
9425
|
readonly describeDistrusted: "Project not trusted";
|
|
9270
9426
|
readonly describeNotSupported: "This runtime lists nothing";
|
|
9271
9427
|
readonly describeFailed: "The model could not be read";
|
|
@@ -9423,10 +9579,10 @@ declare const en: {
|
|
|
9423
9579
|
readonly editorTitle: "Character Properties";
|
|
9424
9580
|
readonly thumbnail: "Thumbnail";
|
|
9425
9581
|
readonly preview: "Preview";
|
|
9426
|
-
readonly defaultAvatar: "
|
|
9427
|
-
readonly voiceTrack: "Voice
|
|
9428
|
-
readonly voiceTrackMissing: "Missing
|
|
9429
|
-
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.";
|
|
9430
9586
|
readonly entrance: "Entrance defaults";
|
|
9431
9587
|
readonly entranceEmpty: "Entrance rows use the stage's own values until this is set.";
|
|
9432
9588
|
readonly entranceDrag: "Drag to place";
|
|
@@ -10028,7 +10184,7 @@ declare const en: {
|
|
|
10028
10184
|
readonly hint: "Defined in the project; the value lives in the save file.";
|
|
10029
10185
|
};
|
|
10030
10186
|
readonly persistent: {
|
|
10031
|
-
readonly title: "
|
|
10187
|
+
readonly title: "Persistent variables";
|
|
10032
10188
|
readonly hint: "Defined in the project; app-level, shared with blueprints.";
|
|
10033
10189
|
};
|
|
10034
10190
|
};
|
|
@@ -10057,8 +10213,8 @@ declare const en: {
|
|
|
10057
10213
|
readonly ownerLabel: {
|
|
10058
10214
|
readonly globalMain: "App logic";
|
|
10059
10215
|
readonly surfaceMain: "Page logic";
|
|
10060
|
-
readonly widgetMain: "
|
|
10061
|
-
readonly widgetValue: "
|
|
10216
|
+
readonly widgetMain: "Widget logic";
|
|
10217
|
+
readonly widgetValue: "Widget value";
|
|
10062
10218
|
readonly storyAction: "Story action";
|
|
10063
10219
|
};
|
|
10064
10220
|
readonly stageSlot: {
|
|
@@ -10097,6 +10253,10 @@ declare const en: {
|
|
|
10097
10253
|
readonly pageValidationHint: "Check the page name and size before creating it.";
|
|
10098
10254
|
readonly gameUiSlotHint: "Select an available Game UI slot before creating it.";
|
|
10099
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
|
+
};
|
|
10100
10260
|
};
|
|
10101
10261
|
readonly naming: {
|
|
10102
10262
|
readonly page: "Page {index}";
|
|
@@ -10206,6 +10366,8 @@ declare const en: {
|
|
|
10206
10366
|
readonly canvas: {
|
|
10207
10367
|
readonly unknownWidget: "Unknown widget";
|
|
10208
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.";
|
|
10209
10371
|
};
|
|
10210
10372
|
readonly editor: {
|
|
10211
10373
|
readonly componentNotFound: "Component not found";
|
|
@@ -10256,7 +10418,7 @@ declare const en: {
|
|
|
10256
10418
|
readonly showSelected: "Show selected";
|
|
10257
10419
|
readonly hideSelected: "Hide selected";
|
|
10258
10420
|
readonly addToComponentLibrary: "Add to Component Library";
|
|
10259
|
-
readonly
|
|
10421
|
+
readonly group: "Group";
|
|
10260
10422
|
readonly ungroup: "Ungroup";
|
|
10261
10423
|
readonly addState: "Add state";
|
|
10262
10424
|
readonly arrange: {
|
|
@@ -10373,7 +10535,7 @@ declare const en: {
|
|
|
10373
10535
|
readonly interaction: "Interaction";
|
|
10374
10536
|
};
|
|
10375
10537
|
readonly blueprint: {
|
|
10376
|
-
readonly controlLabel: "
|
|
10538
|
+
readonly controlLabel: "Widget logic";
|
|
10377
10539
|
};
|
|
10378
10540
|
readonly appearance: {
|
|
10379
10541
|
readonly title: "Appearance";
|
|
@@ -10431,7 +10593,14 @@ declare const en: {
|
|
|
10431
10593
|
readonly enableItalic: "Enable italic";
|
|
10432
10594
|
readonly disableItalic: "Disable italic";
|
|
10433
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
|
+
};
|
|
10434
10602
|
readonly localization: {
|
|
10603
|
+
readonly direct: "Direct";
|
|
10435
10604
|
readonly translationKey: "Translation key";
|
|
10436
10605
|
readonly noSourceLanguage: "The project has no source language";
|
|
10437
10606
|
readonly none: "None";
|
|
@@ -10450,7 +10619,7 @@ declare const en: {
|
|
|
10450
10619
|
readonly title: "List";
|
|
10451
10620
|
readonly sectionContent: "Content";
|
|
10452
10621
|
readonly runtimeItems: "Runtime items";
|
|
10453
|
-
readonly
|
|
10622
|
+
readonly runtimeListContent: "List content";
|
|
10454
10623
|
readonly runtimePageState: "Page state array";
|
|
10455
10624
|
readonly runtimeAppState: "App state array";
|
|
10456
10625
|
readonly runtimePageProps: "Page props array";
|
|
@@ -10528,8 +10697,6 @@ declare const en: {
|
|
|
10528
10697
|
readonly value: "Value";
|
|
10529
10698
|
readonly valueHint: "Starting text. What the player types is held by the running game, not by this document.";
|
|
10530
10699
|
readonly placeholder: "Placeholder";
|
|
10531
|
-
readonly placeholderKey: "Placeholder key";
|
|
10532
|
-
readonly placeholderKeyHint: "The placeholder is shown to the player: attach a key to translate it.";
|
|
10533
10700
|
readonly sectionBehavior: "Behavior";
|
|
10534
10701
|
readonly inputMode: "Input mode";
|
|
10535
10702
|
readonly inputModeText: "Text";
|
|
@@ -10588,7 +10755,6 @@ declare const en: {
|
|
|
10588
10755
|
readonly start: "Start";
|
|
10589
10756
|
readonly center: "Center";
|
|
10590
10757
|
readonly end: "End";
|
|
10591
|
-
readonly stretch: "Stretch";
|
|
10592
10758
|
readonly spaceBetween: "Space between";
|
|
10593
10759
|
readonly spaceAround: "Space around";
|
|
10594
10760
|
readonly gapHint: "Gap between children";
|
|
@@ -10737,6 +10903,9 @@ declare const en: {
|
|
|
10737
10903
|
readonly container: {
|
|
10738
10904
|
readonly name: "Container";
|
|
10739
10905
|
};
|
|
10906
|
+
readonly group: {
|
|
10907
|
+
readonly name: "Group";
|
|
10908
|
+
};
|
|
10740
10909
|
readonly dialog: {
|
|
10741
10910
|
readonly name: "Sentence";
|
|
10742
10911
|
readonly text: "The current line will appear here.";
|
|
@@ -11493,15 +11662,15 @@ declare const en: {
|
|
|
11493
11662
|
};
|
|
11494
11663
|
readonly bgmVolume: {
|
|
11495
11664
|
readonly title: "Music volume";
|
|
11496
|
-
readonly description: "The Music
|
|
11665
|
+
readonly description: "The Music track.";
|
|
11497
11666
|
};
|
|
11498
11667
|
readonly soundVolume: {
|
|
11499
11668
|
readonly title: "SFX volume";
|
|
11500
|
-
readonly description: "The SFX
|
|
11669
|
+
readonly description: "The SFX track.";
|
|
11501
11670
|
};
|
|
11502
11671
|
readonly voiceVolume: {
|
|
11503
11672
|
readonly title: "Voice volume";
|
|
11504
|
-
readonly description: "The Voice
|
|
11673
|
+
readonly description: "The Voice track.";
|
|
11505
11674
|
};
|
|
11506
11675
|
readonly voiceEndMode: {
|
|
11507
11676
|
readonly title: "When a voiced line ends";
|
|
@@ -11544,18 +11713,18 @@ declare const en: {
|
|
|
11544
11713
|
};
|
|
11545
11714
|
readonly deleteConfirm: "Delete \"{name}\"?";
|
|
11546
11715
|
readonly deleteDetail: {
|
|
11547
|
-
readonly one: "{count} reference falls back to its default
|
|
11548
|
-
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.";
|
|
11549
11718
|
};
|
|
11550
11719
|
readonly deleteChildren: {
|
|
11551
11720
|
readonly one: "{count} track under it moves to {parent}.";
|
|
11552
11721
|
readonly other: "{count} tracks under it move to {parent}.";
|
|
11553
11722
|
};
|
|
11554
11723
|
readonly slider: {
|
|
11555
|
-
readonly bgm: "
|
|
11556
|
-
readonly sound: "
|
|
11557
|
-
readonly voice: "Voice
|
|
11558
|
-
readonly global: "
|
|
11724
|
+
readonly bgm: "Music volume";
|
|
11725
|
+
readonly sound: "SFX volume";
|
|
11726
|
+
readonly voice: "Voice volume";
|
|
11727
|
+
readonly global: "Master volume";
|
|
11559
11728
|
};
|
|
11560
11729
|
};
|
|
11561
11730
|
readonly settings: {
|
|
@@ -11760,6 +11929,10 @@ declare const en: {
|
|
|
11760
11929
|
readonly label: "Help";
|
|
11761
11930
|
readonly description: "How the parts of Studio behave.";
|
|
11762
11931
|
};
|
|
11932
|
+
readonly titlePage: {
|
|
11933
|
+
readonly label: "New Title Page";
|
|
11934
|
+
readonly description: "Start and Continue buttons included.";
|
|
11935
|
+
};
|
|
11763
11936
|
};
|
|
11764
11937
|
readonly reopenHint: {
|
|
11765
11938
|
readonly menu: "Reopen this page from Help \u2192 Open Welcome.";
|
|
@@ -12287,6 +12460,7 @@ declare const en: {
|
|
|
12287
12460
|
readonly page: "Page";
|
|
12288
12461
|
readonly layer: "Layer";
|
|
12289
12462
|
readonly faded: "Faded out";
|
|
12463
|
+
readonly dialogHidden: "Hidden";
|
|
12290
12464
|
readonly hiddenForGame: "Hidden while the game runs";
|
|
12291
12465
|
readonly returnsOnBack: "Shown again on Go back";
|
|
12292
12466
|
readonly onScreenCount: "{onScreen} of {total} on screen";
|
|
@@ -12631,6 +12805,7 @@ declare const en: {
|
|
|
12631
12805
|
readonly createGroup: {
|
|
12632
12806
|
readonly title: "Create Group";
|
|
12633
12807
|
readonly prompt: "Please enter a name for the {type} group";
|
|
12808
|
+
readonly promptIn: "Please enter a name for the group in {parent}";
|
|
12634
12809
|
readonly placeholder: "Enter group name\u2026";
|
|
12635
12810
|
readonly empty: "Group name cannot be empty";
|
|
12636
12811
|
};
|
|
@@ -12790,12 +12965,20 @@ declare const en: {
|
|
|
12790
12965
|
};
|
|
12791
12966
|
readonly unavailable: {
|
|
12792
12967
|
readonly windows: "Cannot build Windows apps on this machine.";
|
|
12793
|
-
readonly macos: "macOS apps
|
|
12968
|
+
readonly macos: "Cannot build macOS apps on this machine.";
|
|
12794
12969
|
readonly linux: "Cannot build Linux apps on this machine.";
|
|
12795
12970
|
readonly web: "Web builds are available on every machine.";
|
|
12796
12971
|
readonly android: "Android builds are available on every machine.";
|
|
12797
12972
|
readonly ios: "iOS builds are available on every machine.";
|
|
12798
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
|
+
};
|
|
12799
12982
|
readonly format: {
|
|
12800
12983
|
readonly zip: "Portable ZIP";
|
|
12801
12984
|
readonly nsis: "Installer";
|
|
@@ -12847,15 +13030,15 @@ declare const en: {
|
|
|
12847
13030
|
readonly appId: "App ID";
|
|
12848
13031
|
readonly copyright: "Copyright";
|
|
12849
13032
|
readonly icons: "Icons";
|
|
12850
|
-
readonly iconsHint: "Click an icon to change it in
|
|
13033
|
+
readonly iconsHint: "Click an icon to change it in Project \u25B8 App";
|
|
12851
13034
|
readonly iconUnset: "Not set";
|
|
12852
13035
|
readonly notSet: "Not set";
|
|
12853
13036
|
readonly editInProject: "Edit in Project \u25B8 App";
|
|
12854
13037
|
};
|
|
12855
13038
|
readonly content: {
|
|
12856
13039
|
readonly protection: "Asset protection";
|
|
12857
|
-
readonly protectionOn: "Assets
|
|
12858
|
-
readonly protectionOff: "Assets
|
|
13040
|
+
readonly protectionOn: "Assets are encrypted in the packaged game.";
|
|
13041
|
+
readonly protectionOff: "Assets ship unencrypted.";
|
|
12859
13042
|
readonly plugins: "Bundled plugins";
|
|
12860
13043
|
readonly pluginsNone: "No plugins are bundled with this game.";
|
|
12861
13044
|
readonly pluginsRescanUnavailable: "The plugin list cannot be rescanned in this window.";
|
|
@@ -12903,6 +13086,7 @@ declare const en: {
|
|
|
12903
13086
|
readonly artifactReadVersioned: "{product} {version}, built {date}";
|
|
12904
13087
|
readonly artifactVariantStated: "Read from the build folder.";
|
|
12905
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.";
|
|
12906
13090
|
readonly artifactVariantMismatch: "This build is {build}. The DLC attaches to {variant}.";
|
|
12907
13091
|
readonly artifactWholeGame: "The patch includes the whole game.";
|
|
12908
13092
|
readonly contentLabel: "Variant the content comes from";
|
|
@@ -13014,6 +13198,7 @@ declare const en: {
|
|
|
13014
13198
|
readonly preflight: {
|
|
13015
13199
|
readonly "no-targets": "Select at least one platform and format.";
|
|
13016
13200
|
readonly "unbuildable-platform": "This machine cannot build for {platform}.";
|
|
13201
|
+
readonly "unbuildable-format": "This machine cannot build the {format} format for {platform}.";
|
|
13017
13202
|
readonly "version-invalid": "Version {version} is not a valid semantic version; the build will fail.";
|
|
13018
13203
|
readonly "version-missing": "No version set; the game builds as 0.0.0.";
|
|
13019
13204
|
readonly "identifier-missing": "No project identifier; using the app id {appId}.";
|
|
@@ -13033,6 +13218,7 @@ declare const en: {
|
|
|
13033
13218
|
readonly "sidecar-crossbuild-exec-bit": string;
|
|
13034
13219
|
readonly "web-unprotected": "Asset protection does not apply to the web export; its files ship unprotected.";
|
|
13035
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.";
|
|
13036
13222
|
readonly "progress-carry-unsupported": string;
|
|
13037
13223
|
readonly "lossy-images": "Images are re-encoded at quality {setting} and lose detail permanently.";
|
|
13038
13224
|
readonly "lossy-audio": "Audio is re-encoded at {setting} kbit/s and loses detail permanently.";
|
|
@@ -13480,6 +13666,11 @@ declare const en: {
|
|
|
13480
13666
|
readonly description: "Two rows creating one stage name; the second reuses the first";
|
|
13481
13667
|
readonly message: "{object} is already created above, so this row acts on that one";
|
|
13482
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
|
+
};
|
|
13483
13674
|
readonly storyCharacterMissing: {
|
|
13484
13675
|
readonly title: "Missing character";
|
|
13485
13676
|
readonly description: "A row naming a character the project does not have";
|
|
@@ -13588,6 +13779,16 @@ declare const en: {
|
|
|
13588
13779
|
readonly description: "A widget bound to an item field the list drawing it does not declare";
|
|
13589
13780
|
readonly message: "This is bound to an item field the list does not declare, so every row shows the same value";
|
|
13590
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
|
+
};
|
|
13591
13792
|
readonly uiGestureAnsweredTwice: {
|
|
13592
13793
|
readonly title: "Gesture answered twice";
|
|
13593
13794
|
readonly description: "A widget with a pointer handler of its own, on a page whose action answers the same gesture";
|
|
@@ -14062,7 +14263,7 @@ declare const en: {
|
|
|
14062
14263
|
readonly added: "Track added";
|
|
14063
14264
|
readonly removed: "Track removed";
|
|
14064
14265
|
readonly renamed: "Renamed";
|
|
14065
|
-
readonly rerouted: "Routes into a different
|
|
14266
|
+
readonly rerouted: "Routes into a different track";
|
|
14066
14267
|
readonly reroutedToMaster: "Routes into the master output";
|
|
14067
14268
|
readonly volume: "Volume changed";
|
|
14068
14269
|
readonly loopOn: "Loops by default";
|
|
@@ -14077,7 +14278,7 @@ declare const en: {
|
|
|
14077
14278
|
readonly defaultValue: "Default value changed";
|
|
14078
14279
|
readonly valueType: "Type changed";
|
|
14079
14280
|
readonly scopeSaved: "Now a saved variable";
|
|
14080
|
-
readonly scopeGlobal: "Now a
|
|
14281
|
+
readonly scopeGlobal: "Now a persistent variable";
|
|
14081
14282
|
readonly storageKey: "Values already saved are no longer found";
|
|
14082
14283
|
readonly description: "Note changed";
|
|
14083
14284
|
readonly changed: "Variable changed";
|
|
@@ -14675,7 +14876,7 @@ declare const en: {
|
|
|
14675
14876
|
readonly body: string;
|
|
14676
14877
|
};
|
|
14677
14878
|
readonly keyboard: {
|
|
14678
|
-
readonly title: "Keyboard";
|
|
14879
|
+
readonly title: "Keyboard and Mouse";
|
|
14679
14880
|
readonly body: string;
|
|
14680
14881
|
};
|
|
14681
14882
|
readonly search: {
|
|
@@ -14718,6 +14919,10 @@ declare const en: {
|
|
|
14718
14919
|
readonly title: "Editing outside Studio";
|
|
14719
14920
|
readonly body: string;
|
|
14720
14921
|
};
|
|
14922
|
+
readonly storyPaste: {
|
|
14923
|
+
readonly title: "Paste as Rows";
|
|
14924
|
+
readonly body: string;
|
|
14925
|
+
};
|
|
14721
14926
|
readonly sceneSnapshot: {
|
|
14722
14927
|
readonly title: "Playing from a row";
|
|
14723
14928
|
readonly body: string;
|
|
@@ -14731,7 +14936,7 @@ declare const en: {
|
|
|
14731
14936
|
readonly body: string;
|
|
14732
14937
|
};
|
|
14733
14938
|
readonly storyMotion: {
|
|
14734
|
-
readonly title: "Motion";
|
|
14939
|
+
readonly title: "Story Motion";
|
|
14735
14940
|
readonly body: string;
|
|
14736
14941
|
};
|
|
14737
14942
|
readonly assets: {
|
|
@@ -15086,6 +15291,8 @@ declare const en: {
|
|
|
15086
15291
|
readonly storyStarted: "Load Save: \"{id}\" was written in another of the project's stories, which was started to receive it.";
|
|
15087
15292
|
readonly relaunchedRow: "Load Save: \"{id}\" was written by another build. The story was started again on the line the save records.";
|
|
15088
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.";
|
|
15089
15296
|
readonly detail: {
|
|
15090
15297
|
readonly unreadable: "The save could not be read. {error}";
|
|
15091
15298
|
readonly missing: "No save is stored under that id.";
|
|
@@ -16812,6 +17019,17 @@ declare class UIDocumentService extends Service<UIDocumentService> implements IU
|
|
|
16812
17019
|
blueprintId: string;
|
|
16813
17020
|
};
|
|
16814
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;
|
|
16815
17033
|
/**
|
|
16816
17034
|
* How this element arrives and leaves. `null` clears it.
|
|
16817
17035
|
*
|
|
@@ -16834,6 +17052,22 @@ declare class UIDocumentService extends Service<UIDocumentService> implements IU
|
|
|
16834
17052
|
* reparents an inner one that may be in the same batch.
|
|
16835
17053
|
*/
|
|
16836
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
|
+
*/
|
|
16837
17071
|
renameElement(elementId: string, name: string): void;
|
|
16838
17072
|
deleteElements(elementIds: string[]): void;
|
|
16839
17073
|
/**
|
|
@@ -17070,6 +17304,16 @@ declare class UIDocumentService extends Service<UIDocumentService> implements IU
|
|
|
17070
17304
|
reorderComponentChildren(componentId: string, parentId: string, orderedChildIds: string[]): void;
|
|
17071
17305
|
deleteComponentElements(componentId: string, elementIds: string[]): void;
|
|
17072
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;
|
|
17073
17317
|
createComponentElement(componentId: string, parentId: string, type: string, layoutPatch?: Partial<UILayout>): UIElement | null;
|
|
17074
17318
|
pasteComponentClipboardPayload(componentId: string, targetParentId: string, beforeChildId: string | null, payload: UIEditorClipboardPayload): {
|
|
17075
17319
|
ok: true;
|
|
@@ -17182,18 +17426,29 @@ type WidgetLogicWritablePropDef = {
|
|
|
17182
17426
|
export type WidgetLogicApi = {
|
|
17183
17427
|
supportsPrivateBlueprint: boolean;
|
|
17184
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
|
+
*/
|
|
17185
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
|
+
*/
|
|
17186
17440
|
commands: readonly WidgetLogicCommandDef[];
|
|
17187
17441
|
readableState: readonly WidgetLogicReadableStateDef[];
|
|
17188
17442
|
writableProps: readonly WidgetLogicWritablePropDef[];
|
|
17189
17443
|
/**
|
|
17190
17444
|
* Whether the player operates this widget directly - a Button, a Switch, a Slider, a Text Input,
|
|
17191
17445
|
* a list they pick a row from. Scenery (Container, Text, Image, Video, Model, the page host)
|
|
17192
|
-
* 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.
|
|
17193
17448
|
*
|
|
17194
|
-
* Declared rather than derived, and the retreat is deliberate. A panel-wide gesture
|
|
17195
|
-
*
|
|
17196
|
-
* "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
|
|
17197
17452
|
* shared displayable set" - is wrong at both ends: `nl.button` declares exactly the displayable
|
|
17198
17453
|
* set, and `nl.frame` declares `pageEvent`. Nothing else in an entry separates a Button from a
|
|
17199
17454
|
* Container, because what makes a Button a control is how the runtime draws and handles it, not
|
|
@@ -17216,6 +17471,12 @@ export interface ContextMenuItemDef {
|
|
|
17216
17471
|
* than in the label keeps a disabled menu a menu instead of a paragraph.
|
|
17217
17472
|
*/
|
|
17218
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;
|
|
17219
17480
|
onClick?: () => void;
|
|
17220
17481
|
submenu?: ContextMenuItemDef[];
|
|
17221
17482
|
/**
|
|
@@ -18474,6 +18735,12 @@ export type StoryPluginActionRegistration = {
|
|
|
18474
18735
|
detail?: string;
|
|
18475
18736
|
group?: string;
|
|
18476
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;
|
|
18477
18744
|
};
|
|
18478
18745
|
declare const HELP_TOPIC_IDS: readonly [
|
|
18479
18746
|
"gettingHelp",
|
|
@@ -18490,6 +18757,7 @@ declare const HELP_TOPIC_IDS: readonly [
|
|
|
18490
18757
|
"storyExpressions",
|
|
18491
18758
|
"storyFlow",
|
|
18492
18759
|
"storyScript",
|
|
18760
|
+
"storyPaste",
|
|
18493
18761
|
"sceneSnapshot",
|
|
18494
18762
|
"storyMotion",
|
|
18495
18763
|
"dictionary",
|
|
@@ -18927,6 +19195,31 @@ export interface StoryCompilePass {
|
|
|
18927
19195
|
/** Called once per scene, before that scene's rows are compiled. */
|
|
18928
19196
|
scene(ctx: SceneCompileContext): void;
|
|
18929
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
|
+
};
|
|
18930
19223
|
/**
|
|
18931
19224
|
* The detail on `nl.launch`: where this page sits on the launch's own timeline.
|
|
18932
19225
|
*
|
|
@@ -19521,7 +19814,7 @@ export type RuntimePluginStory = {
|
|
|
19521
19814
|
/**
|
|
19522
19815
|
* The game-side plugin surface.
|
|
19523
19816
|
*
|
|
19524
|
-
* Everything below the always-present
|
|
19817
|
+
* Everything below the always-present six is **capability-gated**: a domain the
|
|
19525
19818
|
* manifest did not declare is *absent from this object*, not a method that
|
|
19526
19819
|
* throws. That is the whole contract — the install prompt lists exactly the
|
|
19527
19820
|
* domains present here, so what the user approved and what the plugin can do are
|
|
@@ -19536,6 +19829,18 @@ export type RuntimePluginGame = {
|
|
|
19536
19829
|
register(def: RuntimeWidgetRendererDef): void;
|
|
19537
19830
|
registerMany(defs: RuntimeWidgetRendererDef[]): void;
|
|
19538
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
|
+
};
|
|
19539
19844
|
/**
|
|
19540
19845
|
* Read-only access to plugin storage published with the game, for the
|
|
19541
19846
|
* namespaces declared in `contributes.runtimeData`. Synchronous: the
|
package/dist/runtime.d.ts
CHANGED
package/package.json
CHANGED