diff --git a/GDevelop.js/types/gdskeletonobject.js b/GDevelop.js/types/gdskeletonobject.js deleted file mode 100644 index d5cfe47f38..0000000000 --- a/GDevelop.js/types/gdskeletonobject.js +++ /dev/null @@ -1,27 +0,0 @@ -// Automatically generated by GDevelop.js/scripts/generate-types.js -// Automatically generated by GDevelop.js/scripts/generate-types.js -declare class gdSkeletonObject { - constructor(name: string): void; - setName(name: string): void; - getName(): string; - setType(type: string): void; - getType(): string; - setTags(tags: string): void; - getTags(): string; - getProperties(): gdMapStringPropertyDescriptor; - updateProperty(name: string, value: string): boolean; - getInitialInstanceProperties(instance: gdInitialInstance, project: gdProject, scene: gdLayout): gdMapStringPropertyDescriptor; - updateInitialInstanceProperty(instance: gdInitialInstance, name: string, value: string, project: gdProject, scene: gdLayout): boolean; - exposeResources(worker: gdArbitraryResourceWorker): void; - getVariables(): gdVariablesContainer; - getAllBehaviorNames(): gdVectorString; - hasBehaviorNamed(name: string): boolean; - addNewBehavior(project: gdProject, type: string, name: string): gdBehaviorContent; - getBehavior(name: string): gdBehaviorContent; - removeBehavior(name: string): void; - renameBehavior(oldBame: string, name: string): boolean; - serializeTo(element: gdSerializerElement): void; - unserializeFrom(project: gdProject, element: gdSerializerElement): void; - delete(): void; - ptr: number; -}; \ No newline at end of file diff --git a/newIDE/app/src/Hints/index.js b/newIDE/app/src/Hints/index.js index b79912f2fa..01d3de7296 100644 --- a/newIDE/app/src/Hints/index.js +++ b/newIDE/app/src/Hints/index.js @@ -30,7 +30,6 @@ export const getDeprecatedBehaviorsInformation = (): { export const getExperimentalObjects = (): { [string]: boolean, } => ({ - 'SkeletonObject::Skeleton': true, 'TileMap::TileMap': true, }); @@ -51,16 +50,6 @@ export const getExtraObjectsInformation = (): { message: t`Video format supported can vary according to devices and browsers. For maximum compatibility, use H.264/mp4 file format (and AAC for audio).`, }, ], - 'SkeletonObject::Skeleton': [ - { - kind: 'warning', - message: t`This object is experimental and not actively maintained. It might have bugs or incomplete support in GDevelop. A maintainer is searched to improve the object implementation and solve any issue. Your help is welcome!`, - }, - { - kind: 'info', - message: t`Only use this object if you can contribute back to the source code or are able to remove/replace it from your game in a future version.`, - }, - ], 'TileMap::TileMap': [ { kind: 'info', diff --git a/newIDE/app/src/ObjectEditor/ObjectsEditorService.js b/newIDE/app/src/ObjectEditor/ObjectsEditorService.js index cc1d7e318d..5cc5c6a7f6 100644 --- a/newIDE/app/src/ObjectEditor/ObjectsEditorService.js +++ b/newIDE/app/src/ObjectEditor/ObjectsEditorService.js @@ -108,11 +108,5 @@ export default { castToObjectType: object => gd.asParticleEmitterObject(object), helpPagePath: '/objects/particles_emitter', }, - 'SkeletonObject::Skeleton': { - component: ObjectPropertiesEditor, - createNewObject: () => new gd.SkeletonObject(''), - castToObjectType: object => gd.castObject(object, gd.SkeletonObject), - helpPagePath: '/objects/skeleton', - }, }, }; diff --git a/newIDE/app/src/ObjectsRendering/ObjectsRenderingService.js b/newIDE/app/src/ObjectsRendering/ObjectsRenderingService.js index 6d727d1414..d33013b5e2 100644 --- a/newIDE/app/src/ObjectsRendering/ObjectsRenderingService.js +++ b/newIDE/app/src/ObjectsRendering/ObjectsRenderingService.js @@ -7,7 +7,6 @@ import RenderedTextInstance from './Renderers/RenderedTextInstance'; import RenderedShapePainterInstance from './Renderers/RenderedShapePainterInstance'; import RenderedTextEntryInstance from './Renderers/RenderedTextEntryInstance'; import RenderedParticleEmitterInstance from './Renderers/RenderedParticleEmitterInstance'; -import RenderedSkeletonInstance from './Renderers/RenderedSkeletonInstance'; import PixiResourcesLoader from './PixiResourcesLoader'; import ResourcesLoader from '../ResourcesLoader'; import RenderedInstance from './Renderers/RenderedInstance'; @@ -41,7 +40,6 @@ export default { 'PrimitiveDrawing::Drawer': RenderedShapePainterInstance, 'TextEntryObject::TextEntry': RenderedTextEntryInstance, 'ParticleSystem::ParticleEmitter': RenderedParticleEmitterInstance, - 'SkeletonObject::Skeleton': RenderedSkeletonInstance, }, getThumbnail: function(project: gdProject, object: gdObject) { var objectType = object.getType(); diff --git a/newIDE/app/src/ObjectsRendering/Renderers/RenderedSkeletonInstance.js b/newIDE/app/src/ObjectsRendering/Renderers/RenderedSkeletonInstance.js deleted file mode 100644 index 4e0bfce7ee..0000000000 --- a/newIDE/app/src/ObjectsRendering/Renderers/RenderedSkeletonInstance.js +++ /dev/null @@ -1,2 +0,0 @@ -import makeRenderer from './RenderedIconInstance'; -export default makeRenderer('JsPlatform/Extensions/skeletonicon24.png'); diff --git a/newIDE/docs/Properties-schema-and-PropertiesEditor-explanations.md b/newIDE/docs/Properties-schema-and-PropertiesEditor-explanations.md index fa8ccbaf9c..bf3714e986 100644 --- a/newIDE/docs/Properties-schema-and-PropertiesEditor-explanations.md +++ b/newIDE/docs/Properties-schema-and-PropertiesEditor-explanations.md @@ -16,46 +16,58 @@ That's why object and behaviors can have "properties". A property is defined by * You can use them when declaring **an object or behavior** in JavaScript (in `JsExtension.js`). For example, in the case of a Video Object: ```js - videoObject.getProperties = function(objectContent) { - var objectProperties = new gd.MapStringPropertyDescriptor(); - objectProperties - .getOrCreate('opacity') - .setValue(objectContent.opacity.toString()) - .setType("number") - .setLabel(_("Video opacity (0-255)")); - objectProperties - .getOrCreate('looped') - .setValue(objectContent.loop ? "true" : "false") - .setType("boolean") - .setLabel(_("Loop the video")); - objectProperties - .getOrCreate('videoResource') - .setValue(objectContent.videoResource) - .setType("resource") - .addExtraInfo("video") - .setLabel(_("Video resource")); + videoObject.getProperties = function (objectContent) { + var objectProperties = new gd.MapStringPropertyDescriptor(); - return objectProperties; + objectProperties + .getOrCreate('Opacity') + .setValue(objectContent.opacity.toString()) + .setType('number') + .setLabel(_('Video opacity (0-255)')); + objectProperties + .getOrCreate('Looped') + .setValue(objectContent.loop ? 'true' : 'false') + .setType('boolean') + .setLabel(_('Loop the video')); + objectProperties + .getOrCreate('Volume') + .setValue(objectContent.volume.toString()) + .setType('number') + .setLabel(_('Video volume (0-100)')); + objectProperties + .getOrCreate('videoResource') + .setValue(objectContent.videoResource) + .setType('resource') + .addExtraInfo('video') + .setLabel(_('Video resource')); + + return objectProperties; }; ``` -* Their usage is mostly the same in C++. For example, in the case of a Skeleton Object: +* Their usage is mostly the same in C++. For example, in the case of a Video Object: ```c++ - std::map SkeletonObject::GetProperties() const { + std::map videoObject::GetProperties() const { std::map properties; - properties[_("Skeletal data filename")] - .SetValue(skeletalDataFilename) + properties[_("Opacity")] + .SetValue(opacity) + .SetType("number") + .setLabel(_("Video opacity (0-255)")); + std::map properties; + properties[_("Looped")] + .SetValue(looped ? 'true': 'false') + .SetType("boolean") + .setLabel(_("Loop the video")); + properties[_("Volume")] + .SetValue(volume) + .SetType("number") + .setLabel(_("Video volume (0-100)")); + properties[_("Video resource")] + .SetValue(videoDataFilename) .SetType("resource") - .AddExtraInfo("json"); - properties[_("Main armature name")].SetValue(rootArmatureName); - properties[_("Texture data filename")] - .SetValue(textureDataFilename) - .SetType("resource") - .AddExtraInfo("json"); - properties[_("Texture")].SetValue(textureName) - .SetType("resource") - .AddExtraInfo("image"); + .AddExtraInfo("video") + .SetLabel(_('Video resource')); return properties; } diff --git a/scripts/ExtractTranslations.sh b/scripts/ExtractTranslations.sh index 33b61c5d1f..37f7475bce 100755 --- a/scripts/ExtractTranslations.sh +++ b/scripts/ExtractTranslations.sh @@ -4,8 +4,8 @@ echo "ℹ️ Listing all GDCore, GDCpp, GDJS and Extensions sources files to tra find ../GDJS/GDJS/ -name '*.cpp' | grep -v '/Dialogs/' > /tmp/listfile.txt find ../GDJS/GDJS/ -name '*.h' -o -name "*.hpp" | grep -v '/Dialogs/' >> /tmp/listfile.txt -find ../Extensions/ -name '*.cpp' | grep -v '/Dialogs/' | grep -v '/AdvancedXML/' | grep -v '/Function/' | grep -v '/SkeletonObject/' | grep -v '/TimedEvent/' | grep -v '/PathBehavior/' | grep -v '/Light/' | grep -v '/TileMapObject/' | grep -v '/Box3DObject/' | grep -v '/AES/' | grep -v 'Editor.cpp' | grep -v 'Dialog.cpp' | grep -v 'EditorDlg.cpp' >> /tmp/listfile.txt -find ../Extensions/ -name '*.h' -o -name "*.hpp" | grep -v '/Dialogs/' | grep -v '/AdvancedXML/' | grep -v '/Function/' | grep -v '/SkeletonObject/' | grep -v '/TimedEvent/' | grep -v '/PathBehavior/' | grep -v '/Light/' | grep -v '/TileMapObject/' | grep -v '/Box3DObject/' | grep -v '/AES/' | grep -v 'Editor.cpp' | grep -v 'Dialog.cpp' | grep -v 'EditorDlg.cpp' >> /tmp/listfile.txt +find ../Extensions/ -name '*.cpp' | grep -v '/Dialogs/' | grep -v '/AdvancedXML/' | grep -v '/Function/' | grep -v '/TimedEvent/' | grep -v '/PathBehavior/' | grep -v '/Light/' | grep -v '/TileMapObject/' | grep -v '/Box3DObject/' | grep -v '/AES/' | grep -v 'Editor.cpp' | grep -v 'Dialog.cpp' | grep -v 'EditorDlg.cpp' >> /tmp/listfile.txt +find ../Extensions/ -name '*.h' -o -name "*.hpp" | grep -v '/Dialogs/' | grep -v '/AdvancedXML/' | grep -v '/Function/' | grep -v '/TimedEvent/' | grep -v '/PathBehavior/' | grep -v '/Light/' | grep -v '/TileMapObject/' | grep -v '/Box3DObject/' | grep -v '/AES/' | grep -v 'Editor.cpp' | grep -v 'Dialog.cpp' | grep -v 'EditorDlg.cpp' >> /tmp/listfile.txt find ../Extensions/ -name '*.js' | grep -v 'box2d.js' | grep -v '/bondage.js' >> /tmp/listfile.txt find ../Core/GDCore -name '*.cpp' | grep -v '/Dialogs/' >> /tmp/listfile.txt find ../Core/GDCore -name '*.h' -o -name "*.hpp" | grep -v '/Dialogs/' >> /tmp/listfile.txt diff --git a/tsconfig.json b/tsconfig.json index 6268c65cb1..0de48d426a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -43,7 +43,6 @@ "GDJS/Runtime/FacebookInstantGames", "GDJS/Runtime/libs/CocoonJS", "Extensions/**/JsExtension.js", - "Extensions/SkeletonObject", "Extensions/Effects/pixi-filters/filter-alpha.js" ] }