mirror of
https://github.com/Heretek-AI/GDevelop.git
synced 2026-07-22 18:15:27 -04:00
5d2e0786ee
* This should make it easier to identify and find actions/conditions. Categories give more clarity and icons help to identify what's available without reading everything.
109 lines
3.6 KiB
JavaScript
109 lines
3.6 KiB
JavaScript
// @flow
|
||
/**
|
||
* This is a declaration of an extension for GDevelop 5.
|
||
*
|
||
* ℹ️ Changes in this file are watched and automatically imported if the editor
|
||
* is running. You can also manually run `node import-GDJS-Runtime.js` (in newIDE/app/scripts).
|
||
*
|
||
* The file must be named "JsExtension.js", otherwise GDevelop won't load it.
|
||
* ⚠️ If you make a change and the extension is not loaded, open the developer console
|
||
* and search for any errors.
|
||
*
|
||
* More information on https://github.com/4ian/GDevelop/blob/master/newIDE/README-extensions.md
|
||
*/
|
||
|
||
/*::
|
||
// Import types to allow Flow to do static type checking on this file.
|
||
// Extensions declaration are typed using Flow (like the editor), but the files
|
||
// for the game engine are checked with TypeScript annotations.
|
||
import { type ObjectsRenderingService, type ObjectsEditorService } from '../JsExtensionTypes.flow.js'
|
||
*/
|
||
|
||
module.exports = {
|
||
createExtension: function (
|
||
_ /*: (string) => string */,
|
||
gd /*: libGDevelop */
|
||
) {
|
||
const extension = new gd.PlatformExtension();
|
||
extension
|
||
.setExtensionInformation(
|
||
'DeviceVibration',
|
||
_('Device vibration'),
|
||
|
||
'This allows to trigger vibrations on mobile devices.',
|
||
'Matthias Meike',
|
||
'Open source (MIT License)'
|
||
)
|
||
.setExtensionHelpPath('/all-features/device-vibration')
|
||
.setCategory('Device');
|
||
extension.addInstructionOrExpressionGroupMetadata(_("Device vibration"))
|
||
.setIcon("JsPlatform/Extensions/vibration_start32.png");
|
||
|
||
extension
|
||
.addDependency()
|
||
.setName('Vibration Cordova Extension')
|
||
.setDependencyType('cordova')
|
||
.setExportName('cordova-plugin-vibration')
|
||
.setVersion('3.1.1');
|
||
|
||
extension
|
||
.addAction(
|
||
'StartVibration',
|
||
_('Vibrate'),
|
||
_('Vibrate (Duration in ms).'),
|
||
_('Start vibration for _PARAM0_ ms'),
|
||
'',
|
||
'JsPlatform/Extensions/vibration_start32.png',
|
||
'JsPlatform/Extensions/vibration_start32.png'
|
||
)
|
||
.addParameter('expression', _('Duration'), '', false)
|
||
.getCodeExtraInformation()
|
||
.setIncludeFile('Extensions/DeviceVibration/devicevibrationtools.js')
|
||
.setFunctionName('gdjs.deviceVibration.startVibration');
|
||
|
||
extension
|
||
.addAction(
|
||
'StartVibrationPattern',
|
||
_('Vibrate by pattern'),
|
||
_(
|
||
'Vibrate (Duration in ms). You can add multiple comma-separated values where every second value determines the period of silence between two vibrations. This is a string value so use quotes.'
|
||
),
|
||
_('Start vibration for _PARAM0_ ms'),
|
||
'',
|
||
'JsPlatform/Extensions/vibration_pattern_start32.png',
|
||
'JsPlatform/Extensions/vibration_pattern_start32.png'
|
||
)
|
||
.addParameter(
|
||
'string',
|
||
_('Intervals (for example "500,100,200"'),
|
||
'',
|
||
false
|
||
)
|
||
.getCodeExtraInformation()
|
||
.setIncludeFile('Extensions/DeviceVibration/devicevibrationtools.js')
|
||
.setFunctionName('gdjs.deviceVibration.startVibrationPattern');
|
||
|
||
extension
|
||
.addAction(
|
||
'StopVibration',
|
||
_('Stop vibration'),
|
||
_('Stop the vibration'),
|
||
_('Stop vibration'),
|
||
'',
|
||
'JsPlatform/Extensions/vibration_stop32.png',
|
||
'JsPlatform/Extensions/vibration_stop32.png'
|
||
)
|
||
.getCodeExtraInformation()
|
||
.setIncludeFile('Extensions/DeviceVibration/devicevibrationtools.js')
|
||
.setFunctionName('gdjs.deviceVibration.stopVibration');
|
||
|
||
return extension;
|
||
},
|
||
runExtensionSanityTests: function (
|
||
gd /*: libGDevelop */,
|
||
extension /*: gdPlatformExtension*/
|
||
) {
|
||
return [];
|
||
},
|
||
};
|