mirror of
https://github.com/Heretek-AI/GDevelop-Heretek.git
synced 2026-10-12 02:02:42 +00:00
Add a short description for all extensions and dimension field (2D, 3D, 2D/3D or n/a) (#8303)
Only show in developer changelog
This commit is contained in:
@@ -18,6 +18,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsAdvancedExtension(
|
||||
_("Advanced control features for functions made with events."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Copy object parameters between functions. Advanced event function control flow.")
|
||||
.SetCategory("Advanced");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Event functions"))
|
||||
.SetIcon("res/function32.png");
|
||||
|
||||
@@ -19,6 +19,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsAsyncExtension(
|
||||
_("Functions that defer the execution of the events after it."),
|
||||
"Arthur Pacaud (arthuro555)",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Asynchronous tasks that pause sub-event execution until resolved.")
|
||||
.SetCategory("Advanced");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Asynchronous functions"))
|
||||
.SetIcon("res/function32.png");
|
||||
|
||||
@@ -19,6 +19,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsAudioExtension(
|
||||
"files. They can be either long music or short sound effects."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Play/stop/pause sounds and music. Volume/pitch/loop/fades/offset, spatial audio on channels, preload/unload audio.")
|
||||
.SetExtensionHelpPath("/all-features/audio")
|
||||
.SetCategory("Audio");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Sounds and music"))
|
||||
|
||||
@@ -20,6 +20,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsBaseObjectExtension(
|
||||
_("Common features that can be used for all objects in GDevelop."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Base object: position, angle, size, visibility, layer, z-order, distance, collision, variables, timers, effects.")
|
||||
.SetExtensionHelpPath("/objects/base_object/events");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Collision"))
|
||||
.SetIcon("res/conditions/collision24.png");
|
||||
|
||||
@@ -32,6 +32,8 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsCameraExtension(
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetCategory("Camera")
|
||||
.SetShortDescription("Layers, 2D/3D camera position/zoom/rotation, show/hide layers, layer effects, layer time scale.")
|
||||
.SetDimension("2D/3D")
|
||||
.SetExtensionHelpPath("/interface/scene-editor/layers-and-cameras");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Layers and cameras"))
|
||||
.SetIcon("res/conditions/camera24.png");
|
||||
|
||||
@@ -22,6 +22,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsAnimatableExtension(
|
||||
_("Actions and conditions for objects having animations (sprite, 3D models...)."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Play/pause/set animations by name or index. Speed, frame, loop, finished checks.")
|
||||
.SetExtensionHelpPath("/objects");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Objects with animations"))
|
||||
.SetIcon("res/actions/animation24.png");
|
||||
|
||||
@@ -22,6 +22,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsEffectExtension(
|
||||
_("Actions/conditions to enable/disable and change parameters of visual effects applied on objects."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Enable/disable visual effects on objects. Change effect parameters at runtime.")
|
||||
.SetExtensionHelpPath("/objects");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Effects"))
|
||||
.SetIcon("res/actions/effect_black.svg");
|
||||
|
||||
@@ -22,6 +22,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsFlippableExtension(
|
||||
_("Actions/conditions for objects which can be flipped horizontally or vertically."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Flip objects horizontally or vertically. Check flip state.")
|
||||
.SetExtensionHelpPath("/objects");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Effects"))
|
||||
.SetIcon("res/actions/effect_black.svg");
|
||||
|
||||
@@ -23,6 +23,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsOpacityExtension(
|
||||
"check the opacity of an object (0-255)."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Get/set object opacity (0=transparent, 255=opaque).")
|
||||
.SetExtensionHelpPath("/objects");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Objects with opacity"))
|
||||
.SetIcon("res/actions/opacity24.png");
|
||||
|
||||
@@ -23,6 +23,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsResizableExtension(
|
||||
"be resized (i.e: most objects)."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Read/change width and height of resizable objects.")
|
||||
.SetExtensionHelpPath("/objects");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Size")).SetIcon(
|
||||
"res/actions/scale24_black.png");
|
||||
|
||||
@@ -23,6 +23,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsScalableExtension(
|
||||
"check the scale of an object (default: 1)."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Get/set scale (X, Y, overall) of scalable objects. Default 1.")
|
||||
.SetExtensionHelpPath("/objects");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Scalable objects"))
|
||||
.SetIcon("res/actions/scale24_black.png");
|
||||
|
||||
@@ -22,6 +22,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsTextContainerExtension(
|
||||
_("Allows an object to contain a text, usually shown on screen, that can be modified."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Get/set the text content of objects that display text (Text, BBText, etc.).")
|
||||
.SetExtensionHelpPath("/objects");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Objects containing a text"))
|
||||
.SetIcon("res/conditions/text24_black.png");
|
||||
|
||||
@@ -21,6 +21,7 @@ BuiltinExtensionsImplementer::ImplementsCommonConversionsExtension(
|
||||
"JSON string.",
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Convert number<->string, degrees<->radians, variable<->JSON.")
|
||||
.SetExtensionHelpPath("/all-features/common-conversions");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Conversion"))
|
||||
.SetIcon("res/conditions/toujours24_black.png");
|
||||
|
||||
@@ -30,6 +30,7 @@ BuiltinExtensionsImplementer::ImplementsCommonInstructionsExtension(
|
||||
"express the game logic and rules.",
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Standard events, sub-events, for-each, repeat, while, event groups, links to external events.")
|
||||
.SetCategory("Advanced")
|
||||
.SetExtensionHelpPath("/all-features/advanced-conditions");
|
||||
extension
|
||||
|
||||
@@ -19,6 +19,7 @@ BuiltinExtensionsImplementer::ImplementsExternalLayoutsExtension(
|
||||
"external layouts.",
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Create objects from an external layout to reuse level sections or UI templates.")
|
||||
.SetExtensionHelpPath("/interface/scene-editor/external-layouts")
|
||||
.SetCategory("Advanced");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("External layouts"))
|
||||
|
||||
@@ -20,6 +20,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsFileExtension(
|
||||
"stored on the device and erased when the game is uninstalled.",
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Persistent key-value storage on device. Write/read data across game sessions.")
|
||||
.SetExtensionHelpPath("/all-features/storage")
|
||||
.SetCategory("Advanced");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Storage"))
|
||||
|
||||
@@ -22,6 +22,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsKeyboardExtension(
|
||||
"scratch."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Check if a key is pressed or released. Last pressed key expression.")
|
||||
.SetExtensionHelpPath("/all-features/keyboard")
|
||||
.SetCategory("Input");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Keyboard"))
|
||||
|
||||
@@ -17,7 +17,8 @@ BuiltinExtensionsImplementer::ImplementsMathematicalToolsExtension(
|
||||
_("Mathematical tools"),
|
||||
"A set of mathematical functions that can be used in expressions.",
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Random, trigonometry (sin/cos/tan/atan2), min/max, abs, ceil/floor/round, clamp, sign, log, pow, sqrt, lerp.");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Mathematical tools"))
|
||||
.SetIcon("res/mathfunction.png");
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsMouseExtension(
|
||||
"separately in different events.",
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Mouse buttons, wheel, cursor position. Touch positions, started/ended touches. Multi-touch support.")
|
||||
.SetExtensionHelpPath("/all-features/mouse-touch")
|
||||
.SetCategory("Input");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Mouse and touch"))
|
||||
|
||||
@@ -20,6 +20,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsNetworkExtension(
|
||||
"a URL on the device browser."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Send HTTP requests, JSON parsing, open URL in browser, enable analytics metrics.")
|
||||
.SetExtensionHelpPath("/all-features/network")
|
||||
.SetCategory("Network");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Network"))
|
||||
|
||||
@@ -23,6 +23,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsSceneExtension(
|
||||
"game, set background color, or disable input when focus is lost."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Change/pause/stop scenes, check scene start, preload assets, get scene name, quit game.")
|
||||
.SetExtensionHelpPath("" /*TODO: Add a documentation page for this */);
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Scene"))
|
||||
.SetIcon("res/conditions/depart24.png");
|
||||
|
||||
@@ -22,6 +22,8 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsSpriteExtension(
|
||||
"for most elements of a 2D game."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Animated 2D object with multiple directions, frames, collision masks, and points.")
|
||||
.SetDimension("2D")
|
||||
.SetExtensionHelpPath("/objects/sprite");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Sprite"))
|
||||
.SetIcon("CppPlatform/Extensions/spriteicon.png");
|
||||
|
||||
@@ -20,6 +20,7 @@ BuiltinExtensionsImplementer::ImplementsStringInstructionsExtension(
|
||||
"line, upper/lowercase, substring, find, replace, etc...",
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("String expressions: newline, upper/lowercase, substring, find, replace one/all, length, repeat.")
|
||||
.SetExtensionHelpPath("" /*TODO: Add a documentation page for this */);
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Text manipulation"))
|
||||
.SetIcon("res/actions/text24_black.png");
|
||||
|
||||
@@ -23,6 +23,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsTimeExtension(
|
||||
"the last frame or timer elapsed time.",
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Scene timers (start/pause/reset), time scale (slow motion), wait action, delta time, timestamp.")
|
||||
.SetExtensionHelpPath("/all-features/timers-and-time");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Timers and time"))
|
||||
.SetIcon("res/conditions/timer24.png");
|
||||
|
||||
@@ -21,6 +21,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsVariablesExtension(
|
||||
"inventory or the result of a web request.",
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Scene/global/object variables: read, set, compare, arrays, structures, JSON conversion.")
|
||||
.SetExtensionHelpPath("/all-features/variables");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Variables"))
|
||||
.SetIcon("res/conditions/var24.png");
|
||||
|
||||
@@ -23,6 +23,7 @@ void GD_CORE_API BuiltinExtensionsImplementer::ImplementsWindowExtension(
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetCategory("User interface")
|
||||
.SetShortDescription("Game window title, size, fullscreen, resolution, adaptive scaling, screen dimensions.")
|
||||
.SetExtensionHelpPath("/all-features/window");
|
||||
extension
|
||||
.AddInstructionOrExpressionGroupMetadata(_("Game window and resolution"))
|
||||
|
||||
@@ -110,6 +110,22 @@ class GD_CORE_API PlatformExtension {
|
||||
return *this;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Set a short description for the extension, used by AI/LLM agents.
|
||||
*/
|
||||
PlatformExtension& SetShortDescription(const gd::String& shortDescription_) {
|
||||
shortDescription = shortDescription_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Set the dimension of the extension ("2D", "3D", "2D/3D" or empty).
|
||||
*/
|
||||
PlatformExtension& SetDimension(const gd::String& dimension_) {
|
||||
dimension = dimension_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Set the category of the extension.
|
||||
*/
|
||||
@@ -398,6 +414,16 @@ class GD_CORE_API PlatformExtension {
|
||||
*/
|
||||
const gd::String& GetDescription() const { return informations; }
|
||||
|
||||
/**
|
||||
* \brief Return a short description of the extension, used by AI/LLM agents.
|
||||
*/
|
||||
const gd::String& GetShortDescription() const { return shortDescription; }
|
||||
|
||||
/**
|
||||
* \brief Return the dimension of the extension ("2D", "3D", "2D/3D" or empty).
|
||||
*/
|
||||
const gd::String& GetDimension() const { return dimension; }
|
||||
|
||||
/**
|
||||
* \brief Return the name of the extension developer
|
||||
*/
|
||||
@@ -699,6 +725,8 @@ static gd::String GetVariantFullType(const gd::String& extensionName,
|
||||
///< actions/conditions/expressions/objects/behavior/event.
|
||||
gd::String fullname; ///< Name displayed to users in the editor.
|
||||
gd::String informations; ///< Description displayed to users in the editor.
|
||||
gd::String shortDescription; ///< Short description for AI/LLM agents.
|
||||
gd::String dimension; ///< "2D", "3D", "2D/3D" or empty.
|
||||
gd::String category;
|
||||
gd::String author; ///< Author displayed to users in the editor.
|
||||
gd::String license; ///< License name displayed to users in the editor.
|
||||
|
||||
@@ -38,6 +38,7 @@ void EventsFunctionsExtension::Init(const gd::EventsFunctionsExtension& other) {
|
||||
extensionNamespace = other.extensionNamespace;
|
||||
shortDescription = other.shortDescription;
|
||||
description = other.description;
|
||||
dimension = other.dimension;
|
||||
name = other.name;
|
||||
fullName = other.fullName;
|
||||
category = other.category;
|
||||
@@ -59,6 +60,7 @@ void EventsFunctionsExtension::SerializeTo(SerializerElement& element, bool isEx
|
||||
element.SetAttribute("version", version);
|
||||
element.SetAttribute("extensionNamespace", extensionNamespace);
|
||||
element.SetAttribute("shortDescription", shortDescription);
|
||||
element.SetAttribute("dimension", dimension);
|
||||
element.AddChild("description").SetMultilineStringValue(description);
|
||||
element.SetAttribute("name", name);
|
||||
element.SetAttribute("fullName", fullName);
|
||||
@@ -133,6 +135,7 @@ void EventsFunctionsExtension::UnserializeExtensionDeclarationFrom(
|
||||
version = element.GetStringAttribute("version");
|
||||
extensionNamespace = element.GetStringAttribute("extensionNamespace");
|
||||
shortDescription = element.GetStringAttribute("shortDescription");
|
||||
dimension = element.GetStringAttribute("dimension");
|
||||
description = element.GetChild("description").GetMultilineStringValue();
|
||||
name = element.GetStringAttribute("name");
|
||||
fullName = element.GetStringAttribute("fullName");
|
||||
|
||||
@@ -78,6 +78,12 @@ class GD_CORE_API EventsFunctionsExtension {
|
||||
return *this;
|
||||
}
|
||||
|
||||
const gd::String& GetDimension() const { return dimension; };
|
||||
EventsFunctionsExtension& SetDimension(const gd::String& dimension_) {
|
||||
dimension = dimension_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
const gd::String& GetName() const { return name; };
|
||||
EventsFunctionsExtension& SetName(const gd::String& name_) {
|
||||
name = name_;
|
||||
@@ -395,6 +401,7 @@ class GD_CORE_API EventsFunctionsExtension {
|
||||
gd::String extensionNamespace;
|
||||
gd::String shortDescription;
|
||||
gd::String description;
|
||||
gd::String dimension;
|
||||
gd::String name;
|
||||
gd::String fullName;
|
||||
gd::String category;
|
||||
|
||||
@@ -27,6 +27,10 @@ module.exports = {
|
||||
'Florian Rival',
|
||||
'MIT'
|
||||
)
|
||||
.setShortDescription(
|
||||
'3D objects (box, model), 3D camera, Z position/rotation/size. Base 3D capability for all objects.'
|
||||
)
|
||||
.setDimension('3D')
|
||||
.setCategory('General');
|
||||
extension
|
||||
.addInstructionOrExpressionGroupMetadata(_('3D'))
|
||||
|
||||
@@ -27,6 +27,9 @@ module.exports = {
|
||||
'Florian Rival',
|
||||
'MIT'
|
||||
)
|
||||
.setShortDescription(
|
||||
'AdMob ads: banners, interstitials, rewarded video, app open. Configure test/production ad units.'
|
||||
)
|
||||
.setExtensionHelpPath('/all-features/admob')
|
||||
.setCategory('Ads');
|
||||
extension
|
||||
|
||||
@@ -27,6 +27,9 @@ module.exports = {
|
||||
'Arthur Pacaud (arthuro555)',
|
||||
'MIT'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Window focus, position, size, always-on-top, minimize/maximize, content protection. Desktop only.'
|
||||
)
|
||||
.setCategory('User interface');
|
||||
extension
|
||||
.addInstructionOrExpressionGroupMetadata(_('Advanced window management'))
|
||||
|
||||
@@ -17,6 +17,8 @@ void DeclareAnchorBehaviorExtension(gd::PlatformExtension& extension) {
|
||||
_("Anchor objects to the window's bounds."),
|
||||
"Victor Levasseur",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Pin object edges/center to window bounds. Useful for HUD/UI elements that adapt to screen size.")
|
||||
.SetDimension("2D")
|
||||
.SetCategory("User interface")
|
||||
.SetTags("anchor, ui, layout")
|
||||
.SetExtensionHelpPath("/behaviors/anchor");
|
||||
|
||||
@@ -27,6 +27,10 @@ module.exports = {
|
||||
'Todor Imreorov',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Rich text with BBCode markup: bold, italic, colors, sizes, shadows in a single object.'
|
||||
)
|
||||
.setDimension('2D')
|
||||
.setExtensionHelpPath('/objects/bbtext')
|
||||
.setCategory('Text');
|
||||
extension
|
||||
|
||||
@@ -27,6 +27,10 @@ module.exports = {
|
||||
'Aurélien Vivet',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Text rendered from bitmap font images. High performance, full character aesthetic control.'
|
||||
)
|
||||
.setDimension('2D')
|
||||
.setExtensionHelpPath('/objects/bitmap_text')
|
||||
.setCategory('Text');
|
||||
extension
|
||||
|
||||
@@ -27,6 +27,9 @@ module.exports = {
|
||||
'Arthur Pacaud (arthuro555), Aurélien Vivet (Bouh)',
|
||||
'MIT'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Enable 2D debug draw, log messages to debugger console, pause execution.'
|
||||
)
|
||||
.setCategory('Advanced');
|
||||
extension
|
||||
.addInstructionOrExpressionGroupMetadata(_('Debugger Tools'))
|
||||
|
||||
@@ -26,6 +26,8 @@ void DeclareDestroyOutsideBehaviorExtension(gd::PlatformExtension& extension) {
|
||||
"removed unless it goes beyond the unseen object grace distance."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Auto-destroy 2D objects when outside camera bounds. Configurable extra margin distance.")
|
||||
.SetDimension("2D")
|
||||
.SetCategory("Game mechanic")
|
||||
.SetTags("screen")
|
||||
.SetExtensionHelpPath("/behaviors/destroyoutside");
|
||||
|
||||
@@ -25,6 +25,9 @@ module.exports = {
|
||||
'Matthias Meike',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Access mobile device orientation (alpha/beta/gamma) and motion sensors (acceleration, rotation rate).'
|
||||
)
|
||||
.setExtensionHelpPath('/all-features/device-sensors')
|
||||
.setCategory('Input');
|
||||
extension
|
||||
|
||||
@@ -26,6 +26,9 @@ module.exports = {
|
||||
'Matthias Meike',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Trigger vibrations on mobile devices with configurable duration and patterns.'
|
||||
)
|
||||
.setExtensionHelpPath('/all-features/device-vibration')
|
||||
.setCategory('User interface');
|
||||
extension
|
||||
|
||||
@@ -25,6 +25,9 @@ module.exports = {
|
||||
'Todor Imreorov',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Yarn Spinner dialogue trees: branching dialogues, choices, commands, variables. Built-in editor.'
|
||||
)
|
||||
.setExtensionHelpPath('/all-features/dialogue-tree')
|
||||
.setCategory('Game mechanic');
|
||||
extension
|
||||
|
||||
@@ -20,6 +20,7 @@ void DeclareDraggableBehaviorExtension(gd::PlatformExtension& extension) {
|
||||
"or disable the behavior when needed."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Drag objects with mouse/touch. Enable/disable at runtime. Multi-touch aware.")
|
||||
.SetCategory("User interface")
|
||||
.SetTags("drag")
|
||||
.SetExtensionHelpPath("/behaviors/draggable");
|
||||
|
||||
@@ -25,6 +25,10 @@ module.exports = {
|
||||
'Various contributors from PixiJS, PixiJS filters and GDevelop',
|
||||
'MIT'
|
||||
)
|
||||
.setDimension('2D')
|
||||
.setShortDescription(
|
||||
'Visual effects: blur, glow, color adjust, outline, shadow, pixelate, CRT, reflection, displacement, and more.'
|
||||
)
|
||||
.setCategory('Visual effect')
|
||||
.setExtensionHelpPath('/interface/scene-editor/layer-effects');
|
||||
|
||||
|
||||
@@ -17,13 +17,17 @@
|
||||
module.exports = {
|
||||
createExtension: function (_, gd) {
|
||||
const extension = new gd.PlatformExtension();
|
||||
extension.setExtensionInformation(
|
||||
'MyDummyExtension',
|
||||
_('My Dummy Extension'),
|
||||
_('An example of a declaration of an extension'),
|
||||
'Florian Rival',
|
||||
'MIT'
|
||||
);
|
||||
extension
|
||||
.setExtensionInformation(
|
||||
'MyDummyExtension',
|
||||
_('My Dummy Extension'),
|
||||
_('An example of a declaration of an extension'),
|
||||
'Florian Rival',
|
||||
'MIT'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Example/dummy extension for testing extension declaration patterns.'
|
||||
);
|
||||
extension
|
||||
.addInstructionOrExpressionGroupMetadata(_('My Dummy Extension'))
|
||||
.setIcon('CppPlatform/Extensions/topdownmovementicon.png');
|
||||
|
||||
@@ -27,6 +27,9 @@ module.exports = {
|
||||
'Florian Rival',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Facebook Instant Games: scores, leaderboards, player data, share, ads, in-app purchases.'
|
||||
)
|
||||
.setExtensionHelpPath('/publishing/publishing-to-facebook-instant-games')
|
||||
.setCategory('Third-party');
|
||||
extension
|
||||
|
||||
@@ -27,6 +27,9 @@ module.exports = {
|
||||
'Matthias Meike',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Read/write/delete files and directories. Desktop only (Windows, Linux, macOS).'
|
||||
)
|
||||
.setExtensionHelpPath('/all-features/filesystem')
|
||||
.setCategory('Advanced');
|
||||
extension
|
||||
|
||||
@@ -28,6 +28,9 @@ module.exports = {
|
||||
'Arthur Pacaud (arthuro555)',
|
||||
'MIT'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Google Firebase: realtime database, cloud functions, storage, authentication, analytics, performance.'
|
||||
)
|
||||
.setExtensionHelpPath('/all-features/firebase')
|
||||
.setCategory('Network');
|
||||
extension
|
||||
|
||||
@@ -21,6 +21,7 @@ void DeclareInventoryExtension(gd::PlatformExtension& extension) {
|
||||
"from/to a GDevelop variable."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Named inventories with items, counts, max limits, equip state. Save/load to variable.")
|
||||
.SetExtensionHelpPath("/all-features/inventory")
|
||||
.SetCategory("Game mechanic");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Inventories"))
|
||||
|
||||
@@ -27,6 +27,9 @@ module.exports = {
|
||||
'Florian Rival',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Submit scores to leaderboards, display rankings. Anonymous or authenticated player entries.'
|
||||
)
|
||||
.setExtensionHelpPath('/all-features/leaderboards')
|
||||
.setCategory('Players')
|
||||
.addInstructionOrExpressionGroupMetadata(_('Leaderboards'))
|
||||
|
||||
@@ -26,6 +26,10 @@ module.exports = {
|
||||
'Harsimran Virk',
|
||||
'MIT'
|
||||
)
|
||||
.setShortDescription(
|
||||
'2D light objects with configurable radius, color, and optional texture. Obstacle behavior blocks light.'
|
||||
)
|
||||
.setDimension('2D')
|
||||
.setCategory('Visual effect')
|
||||
.setTags('light');
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ void DeclareLinkedObjectsExtension(gd::PlatformExtension& extension) {
|
||||
"that is more efficient than using variables.",
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Link objects together to retrieve associated objects efficiently. Useful for equipment, connections.")
|
||||
.SetExtensionHelpPath("/all-features/linked-objects")
|
||||
.SetCategory("Advanced");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Linked objects"))
|
||||
|
||||
@@ -27,6 +27,9 @@ module.exports = {
|
||||
'Florian Rival',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Online multiplayer lobbies, object sync, variable sync, player ownership. Up to 8 players.'
|
||||
)
|
||||
.setExtensionHelpPath('/all-features/multiplayer')
|
||||
.setCategory('Players');
|
||||
extension
|
||||
|
||||
@@ -25,6 +25,9 @@ module.exports = {
|
||||
'Arthur Pacaud (arthuro555)',
|
||||
'MIT'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Peer-to-peer communication via WebRTC. Send/receive events and variables between game instances.'
|
||||
)
|
||||
.setExtensionHelpPath('/all-features/p2p')
|
||||
.setCategory('Network');
|
||||
extension
|
||||
|
||||
@@ -23,6 +23,8 @@ void DeclarePanelSpriteObjectExtension(gd::PlatformExtension& extension) {
|
||||
"corners as well as the filling.",
|
||||
"Victor Levasseur and Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("9-patch/panel sprite: image with stretched/tiled edges and corners for resizable UI elements.")
|
||||
.SetDimension("2D")
|
||||
.SetExtensionHelpPath("/objects/panel_sprite");
|
||||
extension
|
||||
.AddInstructionOrExpressionGroupMetadata(
|
||||
|
||||
@@ -26,6 +26,8 @@ void DeclareParticleSystemExtension(gd::PlatformExtension& extension) {
|
||||
"the 3D particle emitter instead.",
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("2D particle emitter for fire, smoke, explosions, magic effects. Configurable color, size, speed, lifetime.")
|
||||
.SetDimension("2D")
|
||||
.SetCategory("Visual effect")
|
||||
.SetExtensionHelpPath("/objects/particles_emitter");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Particle system"))
|
||||
|
||||
@@ -21,6 +21,8 @@ void DeclarePathfindingBehaviorExtension(gd::PlatformExtension& extension) {
|
||||
"avoiding obstacles on the way.",
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("A* pathfinding: compute paths avoiding obstacles. Configurable speed, grid, diagonals.")
|
||||
.SetDimension("2D")
|
||||
.SetCategory("Movement")
|
||||
.SetTags("pathfinding, obstacle, collision")
|
||||
.SetExtensionHelpPath("/behaviors/pathfinding");
|
||||
|
||||
@@ -29,6 +29,10 @@ module.exports = {
|
||||
'Florian Rival, Franco Maciel',
|
||||
'MIT'
|
||||
)
|
||||
.setShortDescription(
|
||||
'2D rigid-body physics behavior: gravity, forces, collisions, joints. Static/dynamic/kinematic bodies. Mass, damping.'
|
||||
)
|
||||
.setDimension('2D')
|
||||
.setExtensionHelpPath('/behaviors/physics2')
|
||||
.setCategory('Movement')
|
||||
.setTags('physics, gravity, obstacle, collision');
|
||||
|
||||
@@ -29,6 +29,10 @@ module.exports = {
|
||||
'Florian Rival',
|
||||
'MIT'
|
||||
)
|
||||
.setShortDescription(
|
||||
'3D rigid-body physics behavior: gravity, forces, collisions, joints. Static/dynamic/kinematic bodies. Mass, damping.'
|
||||
)
|
||||
.setDimension('3D')
|
||||
.setExtensionHelpPath('/behaviors/physics3d')
|
||||
.setCategory('Movement')
|
||||
.setTags('physics, gravity, obstacle, collision');
|
||||
|
||||
@@ -21,6 +21,8 @@ void DeclarePhysicsBehaviorExtension(gd::PlatformExtension& extension) {
|
||||
"This is the old, deprecated physics engine. Prefer to use the Physics Engine 2.0.",
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Deprecated physics engine. Use Physics Engine 2.0 instead.")
|
||||
.SetDimension("2D")
|
||||
.SetCategory("Movement")
|
||||
.SetExtensionHelpPath("/behaviors/physics");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(("Physics Engine (deprecated)"))
|
||||
|
||||
@@ -28,6 +28,8 @@ void DeclarePlatformBehaviorExtension(gd::PlatformExtension& extension) {
|
||||
"associated \"mapper\" behaviors.",
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Platformer engine: jump, run on platforms, grab edges, custom gravity. Platform/jumpthru/ladder objects.")
|
||||
.SetDimension("2D")
|
||||
.SetCategory("Movement")
|
||||
.SetTags("platformer, platform, character, jump, obstacle, collision")
|
||||
.SetExtensionHelpPath("/behaviors/platformer");
|
||||
|
||||
@@ -25,6 +25,9 @@ module.exports = {
|
||||
'Florian Rival',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Authenticate players. Login/logout, get username/user ID, check authentication status.'
|
||||
)
|
||||
.setExtensionHelpPath('/all-features/player-authentication')
|
||||
.setCategory('Players');
|
||||
extension
|
||||
|
||||
@@ -19,6 +19,8 @@ void DeclarePrimitiveDrawingExtension(gd::PlatformExtension& extension) {
|
||||
"on the screen using events."),
|
||||
"Florian Rival and Aurélien Vivet",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Draw 2D shapes (rectangles, circles, lines, bezier, polygons) with fill/outline via events.")
|
||||
.SetDimension("2D")
|
||||
.SetExtensionHelpPath("/objects/shape_painter")
|
||||
.SetCategory("Advanced");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Shape painter"))
|
||||
|
||||
@@ -27,6 +27,9 @@ module.exports = {
|
||||
'Neyl Mahfouf',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Save/load full game state (objects, variables, sounds, effects). Profile-based filtering.'
|
||||
)
|
||||
.setExtensionHelpPath('/all-features/save-state')
|
||||
.setCategory('Game mechanic')
|
||||
.addInstructionOrExpressionGroupMetadata(_('Save State (experimental)'))
|
||||
|
||||
@@ -25,6 +25,9 @@ module.exports = {
|
||||
'Matthias Meike',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Capture screenshots of the running game as PNG images.'
|
||||
)
|
||||
.setExtensionHelpPath('/all-features/screenshot')
|
||||
.setCategory('Advanced');
|
||||
extension
|
||||
|
||||
@@ -16,6 +16,7 @@ void DeclareShopifyExtension(gd::PlatformExtension& extension) {
|
||||
"Shopify shop."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Initialize Shopify shop, fetch products, generate checkout URLs.")
|
||||
.SetExtensionHelpPath("/all-features/shopify")
|
||||
.SetCategory("Third-party");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Shopify"))
|
||||
|
||||
@@ -27,6 +27,10 @@ module.exports = {
|
||||
'Arthur Pacaud (arthuro555)',
|
||||
'MIT'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Position sounds in 3D space. Stereo panning simulates spatial audio around the listener.'
|
||||
)
|
||||
.setDimension('3D')
|
||||
.setCategory('Audio');
|
||||
extension
|
||||
.addInstructionOrExpressionGroupMetadata(_('Spatial sound'))
|
||||
|
||||
@@ -26,6 +26,10 @@ module.exports = {
|
||||
'Vladyslav Pohorielov',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Spine skeletal animation object. Play animations, mix, set skins, track events.'
|
||||
)
|
||||
.setDimension('2D')
|
||||
.setExtensionHelpPath('/objects/spine')
|
||||
.setCategory('Advanced');
|
||||
|
||||
|
||||
@@ -25,6 +25,9 @@ module.exports = {
|
||||
'Arthur Pacaud (arthuro555)',
|
||||
'MIT'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Steam integration: achievements, leaderboards, lobby, workshop, overlay, app ownership.'
|
||||
)
|
||||
.setCategory('Third-party');
|
||||
|
||||
extension
|
||||
|
||||
@@ -17,6 +17,7 @@ void DeclareSystemInfoExtension(gd::PlatformExtension& extension) {
|
||||
"or if the game runs as a preview."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Check touchscreen, mobile device, preview mode, native mobile app, web environment.")
|
||||
.SetCategory("Advanced");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("System information"))
|
||||
.SetIcon("CppPlatform/Extensions/systeminfoicon.png");
|
||||
|
||||
@@ -19,6 +19,7 @@ void DeclareTextEntryObjectExtension(gd::PlatformExtension& extension) {
|
||||
"entered with a keyboard by a player.",
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Deprecated. Invisible object capturing keyboard text input into a string.")
|
||||
.SetCategory("User interface")
|
||||
.SetExtensionHelpPath("/objects/text_entry");
|
||||
|
||||
|
||||
@@ -25,6 +25,9 @@ module.exports = {
|
||||
'Florian Rival',
|
||||
'MIT'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Text input field for players. Placeholder, font, color, disabled state, read-only, focus control.'
|
||||
)
|
||||
.setCategory('User interface');
|
||||
extension
|
||||
.addInstructionOrExpressionGroupMetadata(_('Text Input'))
|
||||
|
||||
@@ -23,6 +23,8 @@ void DeclareTextObjectExtension(gd::PlatformExtension& extension) {
|
||||
"some indicators, menu buttons, dialogues..."),
|
||||
"Florian Rival and Victor Levasseur",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("2D text object: font, size, color, bold/italic, gradient, shadow, outline, alignment, wrapping.")
|
||||
.SetDimension("2D")
|
||||
.SetCategory("Text")
|
||||
.SetExtensionHelpPath("/objects/text");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Text object"))
|
||||
|
||||
@@ -1531,6 +1531,10 @@ module.exports = {
|
||||
'Todor Imreorov',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Tile-based map object for RPG, platformers, strategy. Built-in editor. External Tiled/LDtk support.'
|
||||
)
|
||||
.setDimension('2D')
|
||||
.setCategory('Advanced')
|
||||
.setExtensionHelpPath('/objects/tilemap');
|
||||
|
||||
|
||||
@@ -23,6 +23,8 @@ void DeclareTiledSpriteObjectExtension(gd::PlatformExtension& extension) {
|
||||
"Sprite objects.",
|
||||
"Victor Levasseur and Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Repeating 2D image over an area. Useful for scrolling backgrounds. Adjustable offset.")
|
||||
.SetDimension("2D")
|
||||
.SetExtensionHelpPath("/objects/tiled_sprite");
|
||||
extension.AddInstructionOrExpressionGroupMetadata(_("Tiled Sprite Object"))
|
||||
.SetIcon("CppPlatform/Extensions/TiledSpriteIcon.png");
|
||||
|
||||
@@ -23,6 +23,8 @@ void DeclareTopDownMovementBehaviorExtension(gd::PlatformExtension& extension) {
|
||||
"events."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)")
|
||||
.SetShortDescription("Move objects in 4/8 directions via keyboard, joystick, or gamepad. Speed, acceleration, rotation.")
|
||||
.SetDimension("2D")
|
||||
.SetCategory("Movement")
|
||||
.SetTags("top-down")
|
||||
.SetExtensionHelpPath("/behaviors/topdown");
|
||||
|
||||
@@ -65,6 +65,9 @@ module.exports = {
|
||||
'Matthias Meike, Florian Rival',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Smoothly animate position, scale, rotation, opacity, color, variables over time. Easing functions.'
|
||||
)
|
||||
.setCategory('Visual effect')
|
||||
.setTags('tween, interpolation, smooth')
|
||||
.setExtensionHelpPath('/behaviors/tween');
|
||||
|
||||
@@ -28,6 +28,9 @@ module.exports = {
|
||||
'Aurélien Vivet',
|
||||
'Open source (MIT License)'
|
||||
)
|
||||
.setShortDescription(
|
||||
'Video object: play/pause/loop MPEG4 videos on screen. Volume, playback speed, opacity control.'
|
||||
)
|
||||
.setCategory('User interface')
|
||||
.setExtensionHelpPath('/objects/video');
|
||||
extension
|
||||
|
||||
@@ -40,6 +40,11 @@ void MetadataDeclarationHelper::DeclareExtension(
|
||||
.SetExtensionHelpPath(eventsFunctionsExtension.GetHelpPath())
|
||||
.SetIconUrl(eventsFunctionsExtension.GetIconUrl());
|
||||
|
||||
if (!eventsFunctionsExtension.GetShortDescription().empty())
|
||||
extension.SetShortDescription(eventsFunctionsExtension.GetShortDescription());
|
||||
if (!eventsFunctionsExtension.GetDimension().empty())
|
||||
extension.SetDimension(eventsFunctionsExtension.GetDimension());
|
||||
|
||||
for(auto tag : eventsFunctionsExtension.GetTags()) {
|
||||
extension.AddTag(tag);
|
||||
}
|
||||
|
||||
@@ -2286,6 +2286,10 @@ interface PlatformExtension {
|
||||
[Ref] PlatformExtension SetExtensionHelpPath([Const] DOMString helpPath);
|
||||
[Ref] PlatformExtension SetIconUrl([Const] DOMString iconUrl);
|
||||
[Ref] PlatformExtension SetCategory([Const] DOMString category);
|
||||
[Ref] PlatformExtension SetShortDescription([Const] DOMString shortDescription);
|
||||
[Const, Ref] DOMString GetShortDescription();
|
||||
[Ref] PlatformExtension SetDimension([Const] DOMString dimension);
|
||||
[Const, Ref] DOMString GetDimension();
|
||||
[Ref] InstructionOrExpressionGroupMetadata AddInstructionOrExpressionGroupMetadata([Const] DOMString name);
|
||||
void MarkAsDeprecated();
|
||||
|
||||
@@ -3517,6 +3521,8 @@ interface EventsFunctionsExtension {
|
||||
[Const, Ref] DOMString GetShortDescription();
|
||||
[Ref] EventsFunctionsExtension SetDescription([Const] DOMString description);
|
||||
[Const, Ref] DOMString GetDescription();
|
||||
[Ref] EventsFunctionsExtension SetDimension([Const] DOMString dimension);
|
||||
[Const, Ref] DOMString GetDimension();
|
||||
[Ref] EventsFunctionsExtension SetName([Const] DOMString name);
|
||||
[Const, Ref] DOMString GetName();
|
||||
[Ref] EventsFunctionsExtension SetFullName([Const] DOMString fullName);
|
||||
|
||||
Vendored
+6
@@ -1799,6 +1799,10 @@ export class PlatformExtension extends EmscriptenObject {
|
||||
setExtensionHelpPath(helpPath: string): PlatformExtension;
|
||||
setIconUrl(iconUrl: string): PlatformExtension;
|
||||
setCategory(category: string): PlatformExtension;
|
||||
setShortDescription(shortDescription: string): PlatformExtension;
|
||||
getShortDescription(): string;
|
||||
setDimension(dimension: string): PlatformExtension;
|
||||
getDimension(): string;
|
||||
addInstructionOrExpressionGroupMetadata(name: string): InstructionOrExpressionGroupMetadata;
|
||||
markAsDeprecated(): void;
|
||||
getTags(): VectorString;
|
||||
@@ -2570,6 +2574,8 @@ export class EventsFunctionsExtension extends EmscriptenObject {
|
||||
getShortDescription(): string;
|
||||
setDescription(description: string): EventsFunctionsExtension;
|
||||
getDescription(): string;
|
||||
setDimension(dimension: string): EventsFunctionsExtension;
|
||||
getDimension(): string;
|
||||
setName(name: string): EventsFunctionsExtension;
|
||||
getName(): string;
|
||||
setFullName(fullName: string): EventsFunctionsExtension;
|
||||
|
||||
@@ -9,6 +9,8 @@ declare class gdEventsFunctionsExtension {
|
||||
getShortDescription(): string;
|
||||
setDescription(description: string): gdEventsFunctionsExtension;
|
||||
getDescription(): string;
|
||||
setDimension(dimension: string): gdEventsFunctionsExtension;
|
||||
getDimension(): string;
|
||||
setName(name: string): gdEventsFunctionsExtension;
|
||||
getName(): string;
|
||||
setFullName(fullName: string): gdEventsFunctionsExtension;
|
||||
|
||||
@@ -5,6 +5,10 @@ declare class gdPlatformExtension {
|
||||
setExtensionHelpPath(helpPath: string): gdPlatformExtension;
|
||||
setIconUrl(iconUrl: string): gdPlatformExtension;
|
||||
setCategory(category: string): gdPlatformExtension;
|
||||
setShortDescription(shortDescription: string): gdPlatformExtension;
|
||||
getShortDescription(): string;
|
||||
setDimension(dimension: string): gdPlatformExtension;
|
||||
getDimension(): string;
|
||||
addInstructionOrExpressionGroupMetadata(name: string): gdInstructionOrExpressionGroupMetadata;
|
||||
markAsDeprecated(): void;
|
||||
getTags(): gdVectorString;
|
||||
|
||||
+16
@@ -23,6 +23,8 @@ import {
|
||||
import { useIsMounted } from '../../Utils/UseIsMounted';
|
||||
import { showErrorBox } from '../../UI/Messages/MessageBox';
|
||||
import { UsersAutocomplete } from '../../Profile/UsersAutocomplete';
|
||||
import SelectField from '../../UI/SelectField';
|
||||
import SelectOption from '../../UI/SelectOption';
|
||||
import SemiControlledAutoComplete from '../../UI/SemiControlledAutoComplete';
|
||||
import { ResourceStoreContext } from '../../AssetStore/ResourceStore/ResourceStoreContext';
|
||||
|
||||
@@ -317,6 +319,20 @@ export const ExtensionOptionsEditor = ({
|
||||
},
|
||||
]}
|
||||
/>
|
||||
<SelectField
|
||||
floatingLabelText={<Trans>Dimension</Trans>}
|
||||
value={eventsFunctionsExtension.getDimension()}
|
||||
onChange={(e, i, value) => {
|
||||
eventsFunctionsExtension.setDimension(value);
|
||||
forceUpdate();
|
||||
}}
|
||||
fullWidth
|
||||
>
|
||||
<SelectOption value="" label={t`Not applicable`} />
|
||||
<SelectOption value="2D" label="2D" />
|
||||
<SelectOption value="3D" label="3D" />
|
||||
<SelectOption value="2D/3D" label="2D/3D" />
|
||||
</SelectField>
|
||||
<SemiControlledTextField
|
||||
floatingLabelText={<Trans>Tags (comma separated)</Trans>}
|
||||
value={eventsFunctionsExtension
|
||||
|
||||
@@ -44,7 +44,8 @@ const config = {
|
||||
arch: ['universal'],
|
||||
},
|
||||
mergeASARs: false,
|
||||
x64ArchFiles: 'Contents/Resources/app.asar.unpacked/node_modules/steamworks.js/dist/osx/steamworksjs.darwin-*.node',
|
||||
x64ArchFiles:
|
||||
'Contents/Resources/app.asar.unpacked/node_modules/steamworks.js/dist/osx/steamworksjs.darwin-*.node',
|
||||
},
|
||||
win: {
|
||||
executableName: 'GDevelop',
|
||||
|
||||
Reference in New Issue
Block a user