diff --git a/extensions/community/Carousel.json b/extensions/community/Carousel.json new file mode 100644 index 000000000..847559f07 --- /dev/null +++ b/extensions/community/Carousel.json @@ -0,0 +1,1111 @@ +{ + "author": "", + "category": "User interface", + "dimension": "", + "extensionNamespace": "", + "fullName": "Carousel", + "gdevelopVersion": "", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBvbHlsaW5lIGNsYXNzPSJzdDAiIHBvaW50cz0iMjUsMTEgMjcsMTMgMjUsMTUgIi8+DQo8cG9seWxpbmUgY2xhc3M9InN0MCIgcG9pbnRzPSI3LDExIDUsMTMgNywxNSAiLz4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yOSwyM0gzYy0xLjEsMC0yLTAuOS0yLTJWNWMwLTEuMSwwLjktMiwyLTJoMjZjMS4xLDAsMiwwLjksMiwydjE2QzMxLDIyLjEsMzAuMSwyMywyOSwyM3oiLz4NCjxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjE2IiBjeT0iMjgiIHI9IjEiLz4NCjxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjEwIiBjeT0iMjgiIHI9IjEiLz4NCjxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjIyIiBjeT0iMjgiIHI9IjEiLz4NCjwvc3ZnPg0K", + "name": "Carousel", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/Line Hero Pack/Master/SVG/Interface Elements/816e786d107ecc14bbacd5b2278792ff298b7b3bee59ea0ee94972b87263d0b0_Interface Elements_interface_ui_slideshow_slide_show_carousel.svg", + "shortDescription": "A sliding item carousel with looping and smooth tween transitions, driven by a single object.", + "version": "1.0.0", + "description": [ + "Turns 2D sprite into a looping, sliding item carousel. Call **Next** or **Previous** to move between items, with a smooth slide-out/slide-in animation handled automatically.", + "", + "The item shown always matches the current animation index: index 0 is the object's first animation, index 1 the second, and so on.", + "", + "Use cases:", + "- A level select screen, cycling through level previews", + "- A character or skin picker", + "- Any settings screen with a small set of choices to cycle through (difficulty, region, theme...)", + "", + "Setup:", + "1. The Tween behavior is required and gets added automatically when you add Carousel.", + "2. Set `MinIndex` and `MaxIndex` to match the number of animations on your object (0-based).", + "3. Call `Next` / `Previous` from your arrow buttons, and read `CurrentIndex` to update the rest of your UI." + ], + "tags": [ + "carousel", + "slider", + "selection", + "tween", + "UI", + "image" + ], + "authorIds": [ + "DBaDo3QWkIcsm9711Fe5Uit20CX2" + ], + "dependencies": [], + "globalVariables": [], + "sceneVariables": [], + "eventsFunctions": [], + "eventsFunctionsFolderStructure": { + "folderName": "__ROOT" + }, + "eventsBasedBehaviors": [ + { + "description": "Turns any object with animations into a sliding carousel item: call Next or Previous to smoothly cycle through a range of indexes, with optional looping.", + "fullName": "Carousel", + "helpPath": "", + "iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQo8L3N0eWxlPg0KPHBvbHlsaW5lIGNsYXNzPSJzdDAiIHBvaW50cz0iMjUsMTEgMjcsMTMgMjUsMTUgIi8+DQo8cG9seWxpbmUgY2xhc3M9InN0MCIgcG9pbnRzPSI3LDExIDUsMTMgNywxNSAiLz4NCjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yOSwyM0gzYy0xLjEsMC0yLTAuOS0yLTJWNWMwLTEuMSwwLjktMiwyLTJoMjZjMS4xLDAsMiwwLjksMiwydjE2QzMxLDIyLjEsMzAuMSwyMywyOSwyM3oiLz4NCjxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjE2IiBjeT0iMjgiIHI9IjEiLz4NCjxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjEwIiBjeT0iMjgiIHI9IjEiLz4NCjxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjIyIiBjeT0iMjgiIHI9IjEiLz4NCjwvc3ZnPg0K", + "name": "Carousel", + "objectType": "Sprite", + "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/Line Hero Pack/Master/SVG/Interface Elements/816e786d107ecc14bbacd5b2278792ff298b7b3bee59ea0ee94972b87263d0b0_Interface Elements_interface_ui_slideshow_slide_show_carousel.svg", + "eventsFunctions": [ + { + "fullName": "", + "functionType": "Action", + "name": "doStepPreEvents", + "sentence": "", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BooleanVariable" + }, + "parameters": [ + "IsInitialized", + "=", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "CurrentIndex", + "=", + "max(CurrentIndex, MinIndex)" + ] + }, + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + }, + "parameters": [ + "Object", + "Animation", + "=", + "CurrentIndex" + ] + }, + { + "type": { + "value": "SetBooleanVariable" + }, + "parameters": [ + "IsInitialized", + "True", + "MinIndex" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "Carousel::Carousel::IsBusy" + }, + "parameters": [ + "Object", + "Behavior", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "HomeX", + "=", + "Object.X()" + ] + }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "HomeY", + "=", + "Object.Y()" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "2a" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "Phase", + "=", + "\"Idle\"" + ] + }, + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "PendingDirection", + "=", + "\"Next\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Phase", + "=", + "\"Out\"" + ] + }, + { + "type": { + "value": "Tween::TweenBehavior::AddObjectPositionTween2" + }, + "parameters": [ + "Object", + "Tween", + "\"CarouselOut\"", + "HomeX - SlideDistance", + "HomeY", + "\"easeInCubic\"", + "Duration", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "2b" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "Phase", + "=", + "\"Idle\"" + ] + }, + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "PendingDirection", + "=", + "\"Previous\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Phase", + "=", + "\"Out\"" + ] + }, + { + "type": { + "value": "Tween::TweenBehavior::AddObjectPositionTween2" + }, + "parameters": [ + "Object", + "Tween", + "\"CarouselOut\"", + "HomeX + SlideDistance", + "HomeY", + "\"easeInCubic\"", + "Duration", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "3a" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "Phase", + "=", + "\"Out\"" + ] + }, + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "PendingDirection", + "=", + "\"Previous\"" + ] + }, + { + "type": { + "value": "Tween::HasFinished" + }, + "parameters": [ + "Object", + "Tween", + "\"CarouselOut\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "CurrentIndex", + "=", + "MinIndex + mod(CurrentIndex - MinIndex - 1 + (MaxIndex - MinIndex + 1), MaxIndex - MinIndex + 1)" + ] + }, + { + "type": { + "value": "SetXY" + }, + "parameters": [ + "Object", + "=", + "HomeX - SlideDistance", + "=", + "HomeY" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "3b" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "Phase", + "=", + "\"Out\"" + ] + }, + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "PendingDirection", + "=", + "\"Next\"" + ] + }, + { + "type": { + "value": "Tween::HasFinished" + }, + "parameters": [ + "Object", + "Tween", + "\"CarouselOut\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "CurrentIndex", + "=", + "MinIndex + mod(CurrentIndex - MinIndex + 1, MaxIndex - MinIndex + 1)" + ] + }, + { + "type": { + "value": "SetXY" + }, + "parameters": [ + "Object", + "=", + "HomeX + SlideDistance", + "=", + "HomeY" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "3c" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "Phase", + "=", + "\"Out\"" + ] + }, + { + "type": { + "value": "Tween::HasFinished" + }, + "parameters": [ + "Object", + "Tween", + "\"CarouselOut\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween::RemoveTween" + }, + "parameters": [ + "Object", + "Tween", + "\"CarouselOut\"" + ] + }, + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + }, + "parameters": [ + "Object", + "Animation", + "=", + "CurrentIndex" + ] + }, + { + "type": { + "value": "Tween::TweenBehavior::AddObjectPositionTween2" + }, + "parameters": [ + "Object", + "Tween", + "\"CarouselIn\"", + "HomeX", + "HomeY", + "\"easeOutCubic\"", + "Duration", + "" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Phase", + "=", + "\"In\"" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "PendingDirection", + "=", + "\"\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "4" + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "Phase", + "=", + "\"In\"" + ] + }, + { + "type": { + "value": "Tween::HasFinished" + }, + "parameters": [ + "Object", + "Tween", + "\"CarouselIn\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "Tween::RemoveTween" + }, + "parameters": [ + "Object", + "Tween", + "\"CarouselIn\"" + ] + }, + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "Phase", + "=", + "\"Idle\"" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Carousel::Carousel", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Slides the current item out and the next one in, looping back to the first item if enabled.", + "fullName": "Go to next item", + "functionType": "Action", + "name": "Next", + "sentence": "_PARAM0_ goes to the next carousel item", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "Phase", + "=", + "\"Idle\"" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BooleanVariable" + }, + "parameters": [ + "Loop", + "True", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "PendingDirection", + "=", + "\"Next\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BooleanVariable" + }, + "parameters": [ + "Loop", + "False", + "" + ] + }, + { + "type": { + "value": "NumberVariable" + }, + "parameters": [ + "CurrentIndex", + "<", + "MaxIndex" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "PendingDirection", + "=", + "\"Next\"" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Carousel::Carousel", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Slides the current item out and the previous one in, looping back to the last item if enabled.", + "fullName": "Go to previous item", + "functionType": "Action", + "name": "Previous", + "sentence": "_PARAM0_ goes to the previous carousel item", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "Phase", + "=", + "\"Idle\"" + ] + } + ], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BooleanVariable" + }, + "parameters": [ + "Loop", + "True", + "" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "PendingDirection", + "=", + "\"Previous\"" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "BooleanVariable" + }, + "parameters": [ + "Loop", + "False", + "" + ] + }, + { + "type": { + "value": "NumberVariable" + }, + "parameters": [ + "CurrentIndex", + ">", + "MinIndex" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetStringVariable" + }, + "parameters": [ + "PendingDirection", + "=", + "\"Previous\"" + ] + } + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Carousel::Carousel", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Instantly sets the carousel to a given index, without any slide animation. Useful to open the carousel on a specific item.", + "fullName": "Jump to index", + "functionType": "Action", + "name": "JumpToIndex", + "sentence": "Jump _PARAM0_ to index _PARAM2_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "CurrentIndex", + "=", + "NewIndex" + ] + }, + { + "type": { + "value": "AnimatableCapability::AnimatableBehavior::SetIndex" + }, + "parameters": [ + "Object", + "Animation", + "=", + "CurrentIndex" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Carousel::Carousel", + "type": "behavior" + }, + { + "description": "The index to jump to", + "name": "NewIndex", + "type": "expression" + } + ], + "objectGroups": [] + }, + { + "description": "the currentIndex of the object.", + "fullName": "CurrentIndex", + "functionType": "ExpressionAndCondition", + "group": "Carousel configuration", + "name": "CurrentIndex", + "sentence": "the currentIndex", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetReturnNumber" + }, + "parameters": [ + "CurrentIndex" + ] + } + ] + } + ], + "expressionType": { + "type": "expression" + }, + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Carousel::Carousel", + "type": "behavior" + } + ], + "objectGroups": [] + }, + { + "description": "Check if the carousel is currently mid-transition, sliding an item out or in.", + "fullName": "Carousel is busy", + "functionType": "Condition", + "name": "IsBusy", + "sentence": "_PARAM0_ is busy", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "value": "StringVariable" + }, + "parameters": [ + "Phase", + "!=", + "\"Idle\"" + ] + } + ], + "actions": [ + { + "type": { + "value": "SetReturnBoolean" + }, + "parameters": [ + "True" + ] + } + ] + } + ], + "parameters": [ + { + "description": "Object", + "name": "Object", + "supplementaryInformation": "Sprite", + "type": "object" + }, + { + "description": "Behavior", + "name": "Behavior", + "supplementaryInformation": "Carousel::Carousel", + "type": "behavior" + } + ], + "objectGroups": [] + } + ], + "eventsFunctionsFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "functionName": "doStepPreEvents" + }, + { + "functionName": "Next" + }, + { + "functionName": "Previous" + }, + { + "functionName": "JumpToIndex" + }, + { + "functionName": "IsBusy" + }, + { + "folderName": "Carousel configuration", + "children": [ + { + "functionName": "CurrentIndex" + } + ] + } + ] + }, + "propertyDescriptors": [ + { + "value": "", + "type": "Behavior", + "label": "Tween", + "description": "Required for sliding animations.", + "extraInformation": [ + "Tween::TweenBehavior" + ], + "choices": [], + "name": "Tween" + }, + { + "value": "", + "type": "Number", + "label": "", + "name": "Duration" + }, + { + "value": "1000", + "type": "Number", + "unit": "Pixel", + "label": "", + "name": "SlideDistance" + }, + { + "value": "true", + "type": "Boolean", + "label": "Loop around", + "description": "If enabled, going past the last item wraps to the first, and vice versa.", + "name": "Loop" + }, + { + "value": "0", + "type": "Number", + "label": "Maximum index", + "description": "The highest index the carousel can show.", + "name": "MaxIndex" + }, + { + "value": "0", + "type": "Number", + "label": "Minimum index", + "description": "The lowest index the carousel can show.", + "name": "MinIndex" + }, + { + "value": "", + "type": "Number", + "label": "", + "hidden": true, + "name": "CurrentIndex" + }, + { + "value": "", + "type": "String", + "label": "", + "hidden": true, + "name": "PendingDirection" + }, + { + "value": "", + "type": "Number", + "label": "", + "hidden": true, + "name": "HomeX" + }, + { + "value": "", + "type": "Number", + "label": "", + "hidden": true, + "name": "HomeY" + }, + { + "value": "Idle", + "type": "String", + "label": "", + "hidden": true, + "name": "Phase" + }, + { + "value": "", + "type": "Boolean", + "label": "", + "hidden": true, + "name": "IsInitialized" + } + ], + "propertiesFolderStructure": { + "folderName": "__ROOT", + "children": [ + { + "propertyName": "IsInitialized" + }, + { + "propertyName": "Phase" + }, + { + "propertyName": "HomeY" + }, + { + "propertyName": "HomeX" + }, + { + "propertyName": "PendingDirection" + }, + { + "propertyName": "CurrentIndex" + }, + { + "propertyName": "MinIndex" + }, + { + "propertyName": "MaxIndex" + }, + { + "propertyName": "Loop" + }, + { + "propertyName": "SlideDistance" + }, + { + "propertyName": "Duration" + }, + { + "propertyName": "Tween" + } + ] + } + } + ], + "eventsBasedObjects": [] +}