UNPKG

minecraft-bedrock-json-types

Version:

Typescript types for Minecraft Bedrock's add-on json configuration files.

1,291 lines (1,290 loc) 47.2 kB
/** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ type Namespace = string; type UIDefinition = (Element | Animation | ControlFactory); /** * The controls that are contained within this element. */ type Controls = ({ [k: string]: SubElement; }[] | C); type SubElement = (Element | Animation | ControlFactory); /** * The type of the animation. */ type AnimationType = (("wait" | "offset" | "alpha" | "flip_book" | "aseprite_flip_book" | "clip" | "color" | "size" | "uv") | C); type C = (ElementReference | ElementReference1 | VariableReference); /** * A reference to an element: using the following syntax: [element_name]@[namespace_reference].[element_name_reference] */ type ElementReference = string; /** * A reference to an element: using the following syntax: [namespace_reference].[element_name_reference] */ type ElementReference1 = string; /** * A variable is a reference to a value that can be used in the UI. */ type VariableReference = (VariableReference1 & VariableReference2); type VariableReference1 = { [k: string]: unknown; }; type VariableReference2 = string; /** * The name of the animation that will be reset. */ type AnimationResetName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); type VariableReference3 = (VariableReference1 & VariableReference2); /** * If true, the element will be destroyed at the end of the animation. */ type DestroyAtEnd = (("popup" | "details_bubble_control" | "bundle_mode_popup_control" | "selected_item_details") | Variable); /** * A variable is a reference to a value that can be used in the UI. */ type Variable = (Variable1 & Variable2); type Variable1 = string; type Variable2 = string; /** * If true, the animation will not be fast forwarded. */ type DisableAnimFastForward = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); type VariableReference4 = (VariableReference1 & VariableReference2); /** * The duration of the animation. */ type Duration = (number | ((ElementReference | ElementReference1 | VariableReference5) & string)); type VariableReference5 = (VariableReference1 & VariableReference2); /** * The easing of the animation. */ type Easing = (("linear" | "spring" | "in_quad" | "out_quad" | "in_out_quad" | "in_cubic" | "out_cubic" | "in_out_cubic" | "in_quart" | "out_quart" | "in_out_quart" | "in_quint" | "out_quint" | "in_out_quint" | "in_sine" | "out_sine" | "in_out_sine" | "in_expo" | "out_expo" | "in_out_expo" | "in_circ" | "out_circ" | "in_out_circ" | "in_bounce" | "out_bounce" | "in_out_bounce" | "in_back" | "out_back" | "in_out_back" | "in_elastic" | "out_elastic" | "in_out_elastic") | C); /** * The event that will be triggered when the animation ends. */ type EndEvent = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The FPS of the animation. */ type FPS = (number | ((ElementReference | ElementReference1 | VariableReference6) & string)); type VariableReference6 = (VariableReference1 & VariableReference2); /** * The number of frames in the animation. */ type FrameCount = (number | ((ElementReference | ElementReference1 | VariableReference6) & string)); /** * The step of the frame. */ type FrameStep = (number | ((ElementReference | ElementReference1 | VariableReference6) & string)); /** * The starting point of the animation. */ type From = (number | BI); type BI = (((ElementReference | ElementReference1 | VariableReference7) & string) | [] | [Width] | [Width, Height]); type VariableReference7 = (VariableReference1 & VariableReference2); /** * A variable */ type Width = (Width1 & Width2); type Width1 = (("default" | "fill") | string | number); type Width2 = string; /** * A variable */ type Height = (Height1 & Height2); type Height1 = (("default" | "fill") | string | number); type Height2 = string; /** * The initial UV of the animation. */ type InitialUV = (((ElementReference | ElementReference1 | VariableReference7) & string) | [] | [Width] | [Width, Height]); /** * The name of the next element. */ type Next = (ElementReference | ElementReference1 | VariableReference8); type VariableReference8 = (VariableReference1 & VariableReference2); /** * The event that will be played. */ type PlayEvent = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * If true, this element will apply the same alpha value to its controlled element(s). */ type PropagateAlpha = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the animation will be reversible. */ type Reversible = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the animation will scale from the starting alpha. */ type ScaleFromStartingAlpha = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The ending point of the animation. */ type To = (number | BI); /** * The UV of the animation. */ type UV = (((ElementReference | ElementReference1 | VariableReference7) & string) | [] | [Width] | [Width, Height]); /** * The size of the UV. */ type UVSize = (((ElementReference | ElementReference1 | VariableReference7) & string) | [] | [Width] | [Width, Height]); /** * The type of the element */ type Type = "factory"; /** * The IDs of the controls that will be created by the factory. */ type ControlIDs = (string | { [k: string]: ControlID; }); type ControlID = string; /** * The name of the control. */ type ControlName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); type ControlName1 = string; type ArrayName = ("bindings" | "controls"); type Operation = ("insert_back" | "insert_front" | "insert_after" | "insert_before" | "move_back" | "move_front" | "move_after" | "move_before" | "swap" | "remove" | "replace"); /** * The bindings that are contained within this element. */ type Bindings = (C | Bindings1[]); /** * The name of the collection that the binding is in. */ type BindingCollectionName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The prefix of the collection that the binding is in. */ type BindingCollectionPrefix = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The condition that must be met for the binding to be applied. */ type BindingCondition = (("once" | "always" | "always_when_visible" | "visible") | C); /** * The name of the binding. This is used to reference the binding in the element's properties. */ type BindingName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The name of the binding. This is used to reference the binding in the element's properties. */ type BindingNameOverride = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The type of the binding. */ type BindingType = (("collection" | "global" | "collection_details" | "none" | "view") | Variable3); type Variable3 = (Variable1 & Variable2); /** * If true, the binding will be ignored. */ type Ignored = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the binding will resolve sibling scope. */ type ResolveSiblingScope = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The name of the control that the binding is in. */ type SourceControlName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The name of the property that the binding is in. */ type SourcePropertyName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The name of the property that the binding is in. */ type TargetPropertyName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The controls to add. */ type Controls1 = ({ [k: string]: SubElement1; }[] | C); type SubElement1 = (Element | Animation | ControlFactory); /** * Modifications to the element. */ type Modifications = { control_name?: ControlName1; array_name?: ArrayName; operation?: Operation; where?: Bindings; target?: Bindings; target_control?: string; value?: (Bindings | Controls1); [k: string]: unknown; }[]; /** * If true, the element will allow clipping. */ type AllowClipping = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will show the black and purple placeholder texture if the referenced image is not found. */ type AllowDebugMissingTexture = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will allow scrolling even when the content fits. */ type AllowScrollEvenWhenContentFits = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The alpha of the element. */ type Alpha = (C | number); /** * If true, the element will always handle the pointer. */ type AlwaysHandlePointer = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will always handle scrolling. */ type AlwaysHandleScrolling = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will always listen to input. */ type AlwaysListenToInput = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will always rotate. */ type AlwaysRotate = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The anchor point of the element. This is the point that the element will be positioned relative to. */ type AnchorFrom = (Anchor | Variable4); /** * An anchor is a reference to an element in the UI. */ type Anchor = ("bottom" | "bottom_left" | "bottom_right" | "bottom_middle" | "center" | "left" | "left_middle" | "right" | "right_middle" | "top" | "top_left" | "top_right" | "top_middle"); type Variable4 = (Variable1 & Variable2); /** * The anchor point of the element. This is the point that the element will be positioned relative to. */ type AnchorTo = (Anchor | Variable5); type Variable5 = (Variable1 & Variable2); /** * The animations that are contained within this element. */ type Animations = (C | C[]); /** * The control that will be used for the background. */ type BackgroundControl = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The control that will be used for the background when hovered. */ type BackgroundHoverControl = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The type of the backup font. */ type BackupFontType = ("UIFont" | C); /** * If true, the element will use bilinear filtering. */ type Bilinear = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The button mappings that are contained within this element. */ type ButtonMappings = (C | ButtonMappings1[]); type ButtonMapping = (string | boolean); /** * If true, the screen will be cached. */ type CacheScreen = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The control that will be checked. */ type CheckedControl = ("checked" | C); /** * The control that will be checked when hovered. */ type CheckedHoverControl = ("checked" | C); /** * The control that will be checked when locked. */ type CheckedLockedControl = ("checked" | C); /** * The control that will be checked when locked and hovered. */ type CheckedLockedHoverControl = ("checked" | C); /** * The direction that the element will be clipped in. */ type ClipDirection = (("left" | "right" | "top" | "bottom") | C); /** * If true, the element will be clipped pixel perfect. */ type ClipPixelPerfect = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will clip its children. */ type ClipsChildren = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will close when the player is hurt. */ type CloseOnPlayerHurt = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The index of the collection that the element is in. */ type CollectionIndex = (number | ((ElementReference | ElementReference1 | VariableReference6) & string)); /** * The name of the collection that the element is in. */ type CollectionName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The color of the text. This can be a hex color code or a color keyword. */ type Color = (((ElementReference | ElementReference1 | VariableReference9) & string) | [] | [Red] | [Red, Green] | [Red, Green, Blue]); type VariableReference9 = (VariableReference1 & VariableReference2); /** * A variable */ type Red = string; /** * A variable */ type Green = string; /** * A variable */ type Blue = string; /** * If true, the element will consume hover events. */ type ConsumeHoverEvents = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will be contained. */ type Contained = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The default control that will be focused. */ type DefaultControl = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The default focus precedence of the element. */ type DefaultFocusPrecedence = (number | ((ElementReference | ElementReference1 | VariableReference6) & string)); /** * If true, the element will be draggable. */ type Draggable = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The area that the dropdown will be in. */ type DropdownArea = (((ElementReference | ElementReference1 | VariableReference10) & string) | [] | [X] | [X, Y] | [X, Y, Width3] | [X, Y, Width3, Height3]); type VariableReference10 = (VariableReference1 & VariableReference2); /** * A variable */ type X = (("default" | "fill") | string | number); /** * A variable */ type Y = (("default" | "fill") | string | number); /** * A variable */ type Width3 = (("default" | "fill") | string | number); /** * A variable */ type Height3 = (("default" | "fill") | string | number); /** * The control that will be used for the dropdown content. */ type DropdownContentControl = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The name of the dropdown. */ type DropdownName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * If true, the element will enable directional toggling. */ type EnableDirectionalToggling = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will enable the profanity filter. */ type EnableProfanityFilter = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will be enabled when a new line is created. */ type EnabledNewline = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will be enabled. */ type Enabled = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The factory that will be used to create the element. */ type Factory = ({ control_ids?: ControlIDs; control_name?: ControlName2; factory_variables?: FactoryVariables; name?: Name; [k: string]: VariableDefinition; } | C); /** * The name of the control that will be created by the factory. */ type ControlName2 = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The variables that will be used by the factory. */ type FactoryVariables = (FactoryVariable[] | string); type FactoryVariable = string; /** * The name of the factory. */ type Name = string; /** * If true, the element will fill the screen. */ type Fill = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); type FocusChangeDown = ("FOCUS_OVERRIDE_STOP" | C); type FocusChangeLeft = ("FOCUS_OVERRIDE_STOP" | C); type FocusChangeRight = ("FOCUS_OVERRIDE_STOP" | C); type FocusChangeUp = ("FOCUS_OVERRIDE_STOP" | C); /** * If true, the element will be a focus container. */ type FocusContainer = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will be focus enabled. */ type FocusEnabled = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The identifier of the element that will be focused. */ type FocusIdentifier = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * If true, the element will be focus magnet enabled. */ type FocusMagnetEnabled = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The focus navigation mode that will be used when navigating down. */ type FocusNavigationModeDown = (NavigationMode | C); /** * The navigation mode of the UI. */ type NavigationMode = ("contained" | "stop"); /** * The focus navigation mode that will be used when navigating left. */ type FocusNavigationModeLeft = (NavigationMode | C); /** * The focus navigation mode that will be used when navigating right. */ type FocusNavigationModeRight = (NavigationMode | C); /** * The focus navigation mode that will be used when navigating up. */ type FocusNavigationModeUp = (NavigationMode | C); /** * If true, the element will be focus wrap enabled. */ type FocusWrapEnabled = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The scale factor of the font. */ type FontScaleFactor = (number | ((ElementReference | ElementReference1 | VariableReference5) & string)); /** * The size of the font. */ type FontSize = ("normal" | C); /** * The type of the font. */ type FontType = (("smooth" | "MinecraftTen" | "MinecraftTenEmoticon") | Variable6); type Variable6 = (Variable1 & Variable2); /** * If true, the element will be rendered below the screen. */ type ForceRenderBelow = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the texture will be reloaded. */ type ForceTextureReload = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The binding that will be used for the grid dimension. */ type GridDimensionBinding = (GridDimensionBinding1 & GridDimensionBinding2); type GridDimensionBinding1 = string; type GridDimensionBinding2 = string; /** * The dimensions of the grid. */ type GridDimensions = (((ElementReference | ElementReference1 | VariableReference7) & string) | [] | [Width] | [Width, Height]); /** * The template that will be used for the grid item. */ type GridItemTemplate = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The position of the grid. */ type GridPosition = (((ElementReference | ElementReference1 | VariableReference7) & string) | [] | [Width] | [Width, Height]); /** * The type of the grid rescaling. */ type GridRescalingType = ("horizontal" | C); /** * If true, the element will handle deselect. */ type HandleDeselect = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will handle select. */ type HandleSelect = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will hide the hyphen. */ type HideHyphen = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The control that will be hovered. */ type HoverControl = ("hover" | C); /** * If true, the element will be hover enabled. */ type HoverEnabled = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will be ignored. */ type Ignored1 = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The images that are contained within this element. */ type Images = (C | C[]); /** * The control that will be indented. */ type IndentControl = ("indent" | C); /** * If true, the element will inherit the maximum height of its siblings. */ type InheritMaxSiblingHeight = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will inherit the maximum width of its siblings. */ type InheritMaxSiblingWidth = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will be modal. */ type IsModal = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will be showing the menu. */ type IsShowingMenu = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will jump to the bottom when updated. */ type JumpToBottomOnUpdate = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will keep its ratio. */ type KeepRatio = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The layer that the element will be rendered in. Higher layers are rendered on top of lower layers. */ type Layer = (number | ((ElementReference | ElementReference1 | VariableReference6) & string)); /** * If true, the element will be localized. */ type Localize = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The control that will be locked. */ type LockedControl = (("locked" | "") | C); /** * If true, the element will be rendered at a lower frequency. */ type LowFrequencyRendering = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The maximum length of the text. If the text is longer than this, it will be truncated. */ type MaxLength = (number | ((ElementReference | ElementReference1 | VariableReference6) & string)); /** * The maximum size of the element. */ type MaxSize = (((ElementReference | ElementReference1 | VariableReference11) & string) | [] | [Width4] | [Width4, Height4]); type VariableReference11 = (VariableReference1 & VariableReference2); /** * A variable */ type Width4 = (Width5 & Width6); type Width5 = (("default" | "fill") | string | number); type Width6 = string; /** * A variable */ type Height4 = (Height5 & Height6); type Height5 = (("default" | "fill") | string | number); type Height6 = string; /** * The maximum number of grid items. */ type MaximumGridItems = (number | ((ElementReference | ElementReference1 | VariableReference6) & string)); /** * The minimum size of the element. */ type MinSize = (((ElementReference | ElementReference1 | VariableReference11) & string) | [] | [Width4] | [Width4, Height4]); /** * If true, the element will be modal. */ type Modal = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The offset of the element from the anchor point. horizontal by vertical. */ type Offset = (((ElementReference | ElementReference1 | VariableReference7) & string) | [] | [Width] | [Width, Height]); /** * The orientation of the element. */ type Orientation = (("horizontal" | "vertical") | C); /** * The control that will be used for the place holder. */ type PlaceHolderControl = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The control that will be pressed. */ type PressedControl = (("hover" | "pressed") | C); /** * If true, touch input will be prevented from passing through this element. */ type PreventTouchInput = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The control that will be used for the progress. */ type ProgressControl = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The control that will be used for the progress when hovered. */ type ProgressHoverControl = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The property bag that will be used by the element. */ type PropertyBag = ({ [k: string]: PropertyBagProperty; } | String); /** * An any value. */ type PropertyBagProperty = (unknown[] | boolean | number | { [k: string]: unknown; } | string); /** * A string value. */ type String = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The radio toggle group that the element is in. */ type RadioToggleGroup = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * If true, the game will be rendered behind the element. */ type RenderGameBehind = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will only be rendered when it is the topmost element. */ type RenderOnlyWhenTopmost = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The renderer that will be used by the element. */ type Renderer = ("ui_holo_cursor" | C); /** * The event that will be reset. */ type ResetEvent = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * If true, the element will be reset when focus is lost. */ type ResetOnFocusLost = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The speed that the element will rotate at. */ type RotateSpeed = (number | ((ElementReference | ElementReference1 | VariableReference5) & string)); /** * If true, the screen will be drawn last. */ type ScreenDrawsLast = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the screen will not be flushed when the element is added. */ type ScreenNotFlushable = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The panel that will be used for the scroll box and track. */ type ScrollBoxAndTrackPanel = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The content that will be scrolled. */ type ScrollContent = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The speed that the element will scroll at. */ type ScrollSpeed = (number | ((ElementReference | ElementReference1 | VariableReference6) & string)); /** * The view port that the element will be scrolled in. */ type ScrollViewPort = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The box of the scrollbar. */ type ScrollbarBox = ("box" | C); /** * The button that will be used for the scrollbar touch. */ type ScrollbarTouchButton = (ElementReference | ElementReference1 | VariableReference12); type VariableReference12 = (VariableReference1 & VariableReference2); /** * The button that will be used for the scrollbar track. */ type ScrollbarTrackButton = (ElementReference | ElementReference1 | VariableReference13); type VariableReference13 = (VariableReference1 & VariableReference2); /** * The track of the scrollbar. */ type ScrollbarTrack = ("track" | C); /** * If true, the element will send telemetry. */ type SendTelemetry = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the text will have a shadow. */ type Shadow = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will steal the mouse. */ type ShouldStealMouse = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The size of the element. */ type Size = (((ElementReference | ElementReference1 | VariableReference11) & string) | [] | [Width4] | [Width4, Height4]); /** * The control that will be used for the slider box. */ type SliderBoxControl = ("slider_box" | C); /** * The name of the collection that the slider is in. */ type SliderCollectionName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The button that will be used for the slider deselected. */ type SliderDeselectedButton = (ElementReference | ElementReference1 | VariableReference14); type VariableReference14 = (VariableReference1 & VariableReference2); /** * The direction of the slider. */ type SliderDirection = (ElementReference | ElementReference1 | VariableReference15); type VariableReference15 = (VariableReference1 & VariableReference2); /** * The name of the slider. */ type SliderName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * If true, the slider will select on hover. */ type SliderSelectOnHover = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The button that will be used for the slider selected. */ type SliderSelectedButton = (ElementReference | ElementReference1 | VariableReference16); type VariableReference16 = (VariableReference1 & VariableReference2); /** * The button that will be used for the slider small decrease. */ type SliderSmallDecreaseButton = (ElementReference | ElementReference1 | VariableReference17); type VariableReference17 = (VariableReference1 & VariableReference2); /** * The button that will be used for the slider small decrease. */ type SliderSmallIncreaseButton = (ElementReference | ElementReference1 | VariableReference18); type VariableReference18 = (VariableReference1 & VariableReference2); /** * The steps of the slider. */ type SliderSteps = (number | ((ElementReference | ElementReference1 | VariableReference6) & string)); /** * The button that will be used for the slider track. */ type SliderTrackButton = (ElementReference | ElementReference1 | VariableReference19); type VariableReference19 = (VariableReference1 & VariableReference2); /** * The name of the sound. */ type SoundName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The pitch of the sound. */ type SoundPitch = (number | ((ElementReference | ElementReference1 | VariableReference5) & string)); /** * The volume of the sound. */ type SoundVolume = (number | C); /** * The alignment of the text. */ type TextAlignment = (("left" | "center" | "right") | Variable7); type Variable7 = (Variable1 & Variable2); /** * The name of the text box. */ type TextBoxName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The control that will be used for the text. */ type TextControl = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The name of the collection that the text edit box grid is in. */ type TextEditBoxGridCollectionName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The labels of the text. */ type TextLabels = (TextLabel[] | C); type TextLabel = string; /** * The type of the text. */ type TextType = ("ExtendedASCII" | Variable8); type Variable8 = (Variable1 & Variable2); /** * The text to display. */ type Text = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The file system that the texture is in. */ type TextureFileSystem = ("RawPath" | Variable9); type Variable9 = (Variable1 & Variable2); /** * The texture to display. */ type Texture = (string | C); /** * If true, the texture will be tiled. */ type Tiled = (boolean | ("x" | "y") | C); /** * The default state of the toggle. */ type ToggleDefaultState = (("checked" | "unchecked") | C); /** * The name of the collection that the toggle grid is in. */ type ToggleGridCollectionName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The default selected toggle of the toggle group. */ type ToggleGroupDefaultSelected = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The forced index of the toggle group. */ type ToggleGroupForcedIndex = (number | ((ElementReference | ElementReference1 | VariableReference6) & string)); /** * The name of the toggle. */ type ToggleName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The button that will toggle the element. */ type ToggleOffButton = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The button that will toggle the element. */ type ToggleOnButton = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The touch mode of the element. */ type TouchMode = (("touch" | "mouse") | C); /** * The header of the TTS control. */ type TTSControlHeader = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * The priority of the TTS control type order. */ type TTSControlTypeOrderPriority = (number | ((ElementReference | ElementReference1 | VariableReference6) & string)); /** * The number of TTS ignores. */ type TTSIgnoreCount = (number | ((ElementReference | ElementReference1 | VariableReference6) & string)); /** * If true, the element will ignore subsections. */ type TTSIgnoreSubsections = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The priority of the TTS index. */ type TTSIndexPriority = (number | ((ElementReference | ElementReference1 | VariableReference6) & string)); /** * If true, the element will inherit its siblings. */ type TTSInheritSiblings = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The name of the TTS. */ type TTSName = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * If true, the TTS will override the control value. */ type TTSOverrideControlValue = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The header of the TTS section. */ type TTSSectionHeader = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * If true, the TTS will toggle off. */ type TTSToggleOff = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the TTS will toggle on. */ type TTSToggleOn = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the TTS value will change. */ type TTSValueChanged = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The priority of the TTS value order. */ type TTSValueOrderPriority = (number | ((ElementReference | ElementReference1 | VariableReference6) & string)); /** * The TTS section container. */ type TTSSectionContainer = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The type of the element */ type Type1 = ("always_rotate" | "button" | "carousel_label" | "custom" | "dropdown" | "edit_box" | "grid" | "image_cycler" | "image" | "input_panel" | "label_cycler" | "label" | "panel" | "screen" | "scroll_track" | "scroll_view" | "scrollbar_box" | "slider_box" | "slider" | "stack_panel" | "toggle"); /** * The control that will be unchecked. */ type UncheckedControl = ("unchecked" | C); /** * The control that will be unchecked when hovered. */ type UncheckedHoverControl = ("unchecked" | C); /** * The control that will be unchecked when locked. */ type UncheckedLockedControl = ("unchecked" | C); /** * The control that will be unchecked when locked and hovered. */ type UncheckedLockedHoverControl = ("unchecked" | C); /** * If true, the element will use the anchored offset. */ type UseAnchoredOffset = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, this element will stack its controlled element in respect to their anchor values. */ type UseChildAnchors = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * If true, the element will use the last focus. */ type UseLastFocus = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The variables that are contained within this element. */ type Variables = (C | Variables1[] | Variables2); /** * The control that will be used for the virtual keyboard buffer. */ type VirtualKeyboardBufferControl = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); /** * If true, the element will be visible. */ type Visible = (boolean | ((ElementReference | ElementReference1 | VariableReference4) & string)); /** * The folder that the element will be zipped into. */ type ZipFolder = (string | ((ElementReference | ElementReference1 | VariableReference3) & string)); export interface UI { namespace?: Namespace; [k: string]: UIDefinition; } /** * An element is a control that can be added to a screen. It can be a button, a label, an image, etc. */ interface Element { controls?: Controls; modifications?: Modifications; allow_clipping?: AllowClipping; allow_debug_missing_texture?: AllowDebugMissingTexture; allow_scroll_even_when_content_fits?: AllowScrollEvenWhenContentFits; alpha?: Alpha; always_handle_pointer?: AlwaysHandlePointer; always_handle_scrolling?: AlwaysHandleScrolling; always_listen_to_input?: AlwaysListenToInput; always_rotate?: AlwaysRotate; anchor_from?: AnchorFrom; anchor_to?: AnchorTo; anims?: Animations; background_control?: BackgroundControl; background_hover_control?: BackgroundHoverControl; backup_font_type?: BackupFontType; bilinear?: Bilinear; bindings?: Bindings; button_mappings?: ButtonMappings; cache_screen?: CacheScreen; checked_control?: CheckedControl; checked_hover_control?: CheckedHoverControl; checked_locked_control?: CheckedLockedControl; checked_locked_hover_control?: CheckedLockedHoverControl; clip_direction?: ClipDirection; clip_pixelperfect?: ClipPixelPerfect; clips_children?: ClipsChildren; close_on_player_hurt?: CloseOnPlayerHurt; collection_index?: CollectionIndex; collection_name?: CollectionName; color?: Color; consume_hover_events?: ConsumeHoverEvents; contained?: Contained; control_name?: ControlName; default_control?: DefaultControl; default_focus_precedence?: DefaultFocusPrecedence; disable_anim_fast_forward?: DisableAnimFastForward; draggable?: Draggable; dropdown_area?: DropdownArea; dropdown_content_control?: DropdownContentControl; dropdown_name?: DropdownName; enable_directional_toggling?: EnableDirectionalToggling; enable_profanity_filter?: EnableProfanityFilter; enabled_newline?: EnabledNewline; enabled?: Enabled; factory?: Factory; fill?: Fill; focus_change_down?: FocusChangeDown; focus_change_left?: FocusChangeLeft; focus_change_right?: FocusChangeRight; focus_change_up?: FocusChangeUp; focus_container?: FocusContainer; focus_enabled?: FocusEnabled; focus_identifier?: FocusIdentifier; focus_magnet_enabled?: FocusMagnetEnabled; focus_navigation_mode_down?: FocusNavigationModeDown; focus_navigation_mode_left?: FocusNavigationModeLeft; focus_navigation_mode_right?: FocusNavigationModeRight; focus_navigation_mode_up?: FocusNavigationModeUp; focus_wrap_enabled?: FocusWrapEnabled; font_scale_factor?: FontScaleFactor; font_size?: FontSize; font_type?: FontType; force_render_below?: ForceRenderBelow; force_texture_reload?: ForceTextureReload; grid_dimension_binding?: GridDimensionBinding; grid_dimensions?: GridDimensions; grid_item_template?: GridItemTemplate; grid_position?: GridPosition; grid_rescaling_type?: GridRescalingType; handle_deselect?: HandleDeselect; handle_select?: HandleSelect; hide_hyphen?: HideHyphen; hover_alpha?: Alpha; hover_color?: Color; hover_control?: HoverControl; hover_enabled?: HoverEnabled; ignored?: Ignored1; images?: Images; indent_control?: IndentControl; inherit_max_sibling_height?: InheritMaxSiblingHeight; inherit_max_sibling_width?: InheritMaxSiblingWidth; is_modal?: IsModal; is_showing_menu?: IsShowingMenu; jump_to_bottom_on_update?: JumpToBottomOnUpdate; keep_ratio?: KeepRatio; layer?: Layer; localize?: Localize; locked_alpha?: Alpha; locked_color?: Color; locked_control?: LockedControl; low_frequency_rendering?: LowFrequencyRendering; max_length?: MaxLength; max_size?: MaxSize; maximum_grid_items?: MaximumGridItems; min_size?: MinSize; modal?: Modal; offset?: Offset; orientation?: Orientation; place_holder_control?: PlaceHolderControl; pressed_alpha?: Alpha; pressed_color?: Color; pressed_control?: PressedControl; prevent_touch_input?: PreventTouchInput; primary_color?: Color; progress_control?: ProgressControl; progress_hover_control?: ProgressHoverControl; propagate_alpha?: PropagateAlpha; property_bag?: PropertyBag; radio_toggle_group?: RadioToggleGroup; render_game_behind?: RenderGameBehind; render_only_when_topmost?: RenderOnlyWhenTopmost; renderer?: Renderer; reset_event?: ResetEvent; reset_on_focus_lost?: ResetOnFocusLost; rotate_speed?: RotateSpeed; screen_draws_last?: ScreenDrawsLast; screen_not_flushable?: ScreenNotFlushable; scroll_box_and_track_panel?: ScrollBoxAndTrackPanel; scroll_content?: ScrollContent; scroll_speed?: ScrollSpeed; scroll_view_port?: ScrollViewPort; scrollbar_box?: ScrollbarBox; scrollbar_touch_button?: ScrollbarTouchButton; scrollbar_track_button?: ScrollbarTrackButton; scrollbar_track?: ScrollbarTrack; send_telemetry?: SendTelemetry; shadow?: Shadow; should_steal_mouse?: ShouldStealMouse; size?: Size; slider_box_control?: SliderBoxControl; slider_collection_name?: SliderCollectionName; slider_deselected_button?: SliderDeselectedButton; slider_direction?: SliderDirection; slider_name?: SliderName; slider_select_on_hover?: SliderSelectOnHover; slider_selected_button?: SliderSelectedButton; slider_small_decrease_button?: SliderSmallDecreaseButton; slider_small_increase_button?: SliderSmallIncreaseButton; slider_steps?: SliderSteps; slider_track_button?: SliderTrackButton; sound_name?: SoundName; sound_pitch?: SoundPitch; sound_volume?: SoundVolume; text_alignment?: TextAlignment; text_box_name?: TextBoxName; text_control?: TextControl; text_edit_box_grid_collection_name?: TextEditBoxGridCollectionName; text_labels?: TextLabels; text_type?: TextType; text?: Text; texture_file_system?: TextureFileSystem; texture?: Texture; tiled?: Tiled; toggle_default_state?: ToggleDefaultState; toggle_grid_collection_name?: ToggleGridCollectionName; toggle_group_default_selected?: ToggleGroupDefaultSelected; toggle_group_forced_index?: ToggleGroupForcedIndex; toggle_name?: ToggleName; toggle_off_button?: ToggleOffButton; toggle_on_button?: ToggleOnButton; touch_mode?: TouchMode; tts_control_header?: TTSControlHeader; tts_control_type_order_priority?: TTSControlTypeOrderPriority; tts_ignore_count?: TTSIgnoreCount; tts_ignore_subsections?: TTSIgnoreSubsections; tts_index_priority?: TTSIndexPriority; tts_inherit_siblings?: TTSInheritSiblings; tts_name?: TTSName; tts_override_control_value?: TTSOverrideControlValue; tts_section_header?: TTSSectionHeader; tts_toggle_off?: TTSToggleOff; tts_toggle_on?: TTSToggleOn; tts_value_changed?: TTSValueChanged; tts_value_order_priority?: TTSValueOrderPriority; ttsSectionContainer?: TTSSectionContainer; type?: Type1; unchecked_control?: UncheckedControl; unchecked_hover_control?: UncheckedHoverControl; unchecked_locked_control?: UncheckedLockedControl; unchecked_locked_hover_control?: UncheckedLockedHoverControl; use_anchored_offset?: UseAnchoredOffset; use_child_anchors?: UseChildAnchors; use_last_focus?: UseLastFocus; uv_size?: UVSize; uv?: UV; variables?: Variables; virtual_keyboard_buffer_control?: VirtualKeyboardBufferControl; visible?: Visible; zip_folder?: ZipFolder; [k: string]: VariableDefinition; } /** * An animation is a set of keyframes that can be applied to an element. */ interface Animation { anim_type: AnimationType; animation_reset_name?: AnimationResetName; destroy_at_end?: DestroyAtEnd; disable_anim_fast_forward?: DisableAnimFastForward; duration?: Duration; easing?: Easing; end_event?: EndEvent; fps?: FPS; frame_count?: FrameCount; frame_step?: FrameStep; from?: From; initial_uv?: InitialUV; next?: Next; play_event?: PlayEvent; propagate_alpha?: PropagateAlpha; reversible?: Reversible; scale_from_starting_alpha?: ScaleFromStartingAlpha; to?: To; uv?: UV; uv_size?: UVSize; [k: string]: VariableDefinition; } /** * A variable is a reference to a value that can be used in the UI. * * This interface was referenced by `Animation`'s JSON-Schema definition * via the `patternProperty` "^\$.*". * * This interface was referenced by `ControlFactory`'s JSON-Schema definition * via the `patternProperty` "^\$.*". * * This interface was referenced by `undefined`'s JSON-Schema definition * via the `patternProperty` "^\$.*". * * This interface was referenced by `Element`'s JSON-Schema definition * via the `patternProperty` "^\$.*". */ interface VariableDefinition { [k: string]: unknown; } interface ControlFactory { type?: Type; control_ids?: ControlIDs; control_name?: ControlName; [k: string]: VariableDefinition; } interface Bindings1 { binding_collection_name?: BindingCollectionName; binding_collection_prefix?: BindingCollectionPrefix; binding_condition?: BindingCondition; binding_name?: BindingName; binding_name_override?: BindingNameOverride; binding_type?: BindingType; ignored?: Ignored; resolve_sibling_scope?: ResolveSiblingScope; source_control_name?: SourceControlName; source_property_name?: SourcePropertyName; target_property_name?: TargetPropertyName; } interface ButtonMappings1 { [k: string]: ButtonMapping; } interface Variables1 { [k: string]: VariableDefinition1; } /** * A variable is a reference to a value that can be used in the UI. */ interface VariableDefinition1 { [k: string]: unknown; } interface Variables2 { [k: string]: VariableDefinition1; } export {};