Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions extensions/community/Tween3D.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
"author": "",
"category": "Visual effect",
"extensionNamespace": "",
"gdevelopVersion": ">=5.5.222",
"fullName": "Advanced 3D tween",
"gdevelopVersion": ">=5.5.222",
"helpPath": "",
"iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXRlbm5pcy1iYWxsIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEyLDJDMTQuNSwyIDE2Ljc1LDIuOSAxOC41LDQuNEMxNi4zNiw2LjIzIDE1LDguOTYgMTUsMTJDMTUsMTUuMDQgMTYuMzYsMTcuNzcgMTguNSwxOS42QzE2Ljc1LDIxLjEgMTQuNSwyMiAxMiwyMkM5LjUsMjIgNy4yNSwyMS4xIDUuNSwxOS42QzcuNjQsMTcuNzcgOSwxNS4wNCA5LDEyQzksOC45NiA3LjY0LDYuMjMgNS41LDQuNEM3LjI1LDIuOSA5LjUsMiAxMiwyTTIyLDEyQzIyLDE0LjMyIDIxLjIxLDE2LjQ1IDE5Ljg4LDE4LjE1QzE4LjEyLDE2LjY4IDE3LDE0LjQ3IDE3LDEyQzE3LDkuNTMgMTguMTIsNy4zMiAxOS44OCw1Ljg1QzIxLjIxLDcuNTUgMjIsOS42OCAyMiwxMk0yLDEyQzIsOS42OCAyLjc5LDcuNTUgNC4xMiw1Ljg1QzUuODgsNy4zMiA3LDkuNTMgNywxMkM3LDE0LjQ3IDUuODgsMTYuNjggNC4xMiwxOC4xNUMyLjc5LDE2LjQ1IDIsMTQuMzIgMiwxMloiIC8+PC9zdmc+",
"name": "Tween3D",
"previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/30bc03f9cf5f2f42960246a605352a6937ae6b603f0177396a83193849a4724a_tennis-ball.svg",
"shortDescription": "Smoothly squash, strentch, tint and wobble 3D models.",
"version": "0.3.0",
"version": "0.3.1",
"description": [
"Change 3D models proportions over time to make smooth animations like wobbling.",
"",
Expand Down Expand Up @@ -793,6 +793,7 @@
"fullName": "Advanced 3D tween",
"name": "Tween3D",
"objectType": "",
"quickCustomizationVisibility": "hidden",
"eventsFunctions": [
{
"fullName": "",
Expand Down Expand Up @@ -3853,6 +3854,7 @@
"fullName": "3D wobble",
"name": "Wobble",
"objectType": "",
"quickCustomizationVisibility": "hidden",
"eventsFunctions": [
{
"fullName": "",
Expand Down
12 changes: 10 additions & 2 deletions extensions/reviewed/BoidsMovement.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
"author": "",
"category": "Movement",
"extensionNamespace": "",
"gdevelopVersion": ">=5.5.222",
"fullName": "Boids movement",
"gdevelopVersion": ">=5.5.222",
"helpPath": "/extensions/boids-movement/details/",
"iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjMsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iSWNvbnMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMzIgMzIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyIDMyOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBkPSJNMjkuMywxMC4xYy0wLjQtMC4xLTAuOCwwLTEuMSwwLjNsLTMuMiw0Yy0xLjctMi01LjktNi40LTExLTYuNGMtMC4yLDAtMC4zLDAtMC41LDBjMS40LDIuNCwyLjEsNS4xLDIuMSw4DQoJCWMwLDIuOC0wLjcsNS42LTIuMSw4YzAuMiwwLDAuMywwLDAuNSwwYzUuMSwwLDkuMy00LjMsMTEtNi40bDMuMiw0YzAuMiwwLjIsMC41LDAuNCwwLjgsMC40YzAuMSwwLDAuMiwwLDAuMy0wLjENCgkJYzAuNC0wLjEsMC43LTAuNSwwLjctMC45VjExQzMwLDEwLjYsMjkuNywxMC4yLDI5LjMsMTAuMXoiLz4NCgk8cGF0aCBkPSJNMTEuNCw4LjRjLTUuMiwxLjUtOSw2LjgtOS4yLDdjLTAuMiwwLjMtMC4yLDAuOCwwLDEuMmMwLjIsMC4zLDQsNS42LDkuMiw3YzEuNS0yLjMsMi4yLTQuOSwyLjItNy42DQoJCUMxMy42LDEzLjMsMTIuOCwxMC42LDExLjQsOC40eiBNMTAsMTZjMCwwLjYtMC40LDEtMSwxcy0xLTAuNC0xLTF2LTJjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMVYxNnoiLz4NCjwvZz4NCjwvc3ZnPg0K",
"name": "BoidsMovement",
"previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/Glyphster Pack/Master/SVG/Restaurant/Restaurant_restaurant_seafood_animal_fish.svg",
"shortDescription": "Simulates flocks movement.",
"version": "0.4.0",
"version": "0.4.1",
"description": [
"Simulates swarms or flocks movement following the separation, alignment, cohesion principles. The flock can be attracted to a location or avoid some obstacles.",
"",
Expand Down Expand Up @@ -2145,6 +2145,7 @@
"description": "",
"group": "Movement",
"extraInformation": [],
"quickCustomizationVisibility": "hidden",
"name": "ShouldRotate"
},
{
Expand All @@ -2155,6 +2156,7 @@
"description": "",
"group": "Sight",
"extraInformation": [],
"quickCustomizationVisibility": "hidden",
"name": "CohesionRadius"
},
{
Expand All @@ -2165,6 +2167,7 @@
"description": "",
"group": "Sight",
"extraInformation": [],
"quickCustomizationVisibility": "hidden",
"name": "AlignmentRadius"
},
{
Expand All @@ -2175,6 +2178,7 @@
"description": "",
"group": "Sight",
"extraInformation": [],
"quickCustomizationVisibility": "hidden",
"name": "SeparationRadius"
},
{
Expand All @@ -2185,6 +2189,7 @@
"description": "",
"group": "Decision",
"extraInformation": [],
"quickCustomizationVisibility": "hidden",
"name": "CohesionWeight"
},
{
Expand All @@ -2195,6 +2200,7 @@
"description": "",
"group": "Decision",
"extraInformation": [],
"quickCustomizationVisibility": "hidden",
"name": "AlignmentWeight"
},
{
Expand All @@ -2205,6 +2211,7 @@
"description": "",
"group": "Decision",
"extraInformation": [],
"quickCustomizationVisibility": "hidden",
"name": "SeparationWeight"
},
{
Expand All @@ -2216,6 +2223,7 @@
"group": "",
"extraInformation": [],
"advanced": true,
"quickCustomizationVisibility": "hidden",
"name": "CollisionLayer"
}
],
Expand Down
8 changes: 7 additions & 1 deletion extensions/reviewed/Gamepads.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"name": "Gamepads",
"previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/gamepad-variant-outline.svg",
"shortDescription": "Add support for gamepads (or other controllers) to your game, giving access to information such as button presses, axis positions, trigger pressure, etc...",
"version": "0.8.0",
"version": "0.8.1",
"description": [
"Add support for gamepads (or other controllers).",
"",
Expand Down Expand Up @@ -2540,6 +2540,7 @@
"fullName": "Platformer gamepad mapper",
"name": "PlatformerGamepadMapper",
"objectType": "",
"quickCustomizationVisibility": "hidden",
"eventsFunctions": [
{
"fullName": "",
Expand Down Expand Up @@ -3096,6 +3097,7 @@
"fullName": "3D platformer gamepad mapper",
"name": "Platformer3DGamepadMapper",
"objectType": "",
"quickCustomizationVisibility": "hidden",
"eventsFunctions": [
{
"fullName": "",
Expand Down Expand Up @@ -3266,6 +3268,7 @@
"fullName": "3D shooter gamepad mapper",
"name": "Shooter3DGamepadMapper",
"objectType": "",
"quickCustomizationVisibility": "hidden",
"eventsFunctions": [
{
"fullName": "",
Expand Down Expand Up @@ -3437,6 +3440,7 @@
"fullName": "First person camera gamepad mapper",
"name": "FirstPersonGamepadMapper",
"objectType": "",
"quickCustomizationVisibility": "hidden",
"eventsFunctions": [
{
"fullName": "",
Expand Down Expand Up @@ -4501,6 +4505,7 @@
"fullName": "3D car gamepad mapper",
"name": "PhysicsCar3DGamepadMapper",
"objectType": "",
"quickCustomizationVisibility": "hidden",
"eventsFunctions": [
{
"fullName": "",
Expand Down Expand Up @@ -4857,6 +4862,7 @@
"fullName": "Top-down gamepad mapper",
"name": "TopDownGamepadMapper",
"objectType": "",
"quickCustomizationVisibility": "hidden",
"eventsFunctions": [
{
"fullName": "",
Expand Down
81 changes: 59 additions & 22 deletions extensions/reviewed/IsOnScreen.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,24 @@
{
"author": "Silver-Streak, @Bouh, Tristan Rhodes",
"category": "Game mechanic",
"description": "This extension adds conditions to check if an object is located within the visible portion of its layer's camera. The condition also allows for specifying padding to the virtual screen border.\n\nNote that this does not take into account any object visibility, such as being hidden or 0 opacity, but can be combined with those existing conditions.",
"extensionNamespace": "",
"gdevelopVersion": ">=5.5.222",
"fullName": "Object \"Is On Screen\" Detection",
"gdevelopVersion": "",
"helpPath": "",
"iconUrl": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLW1vbml0b3Itc2NyZWVuc2hvdCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik05LDZINVYxMEg3VjhIOU0xOSwxMEgxN1YxMkgxNVYxNEgxOU0yMSwxNkgzVjRIMjFNMjEsMkgzQzEuODksMiAxLDIuODkgMSw0VjE2QTIsMiAwIDAsMCAzLDE4SDEwVjIwSDhWMjJIMTZWMjBIMTRWMThIMjFBMiwyIDAgMCwwIDIzLDE2VjRDMjMsMi44OSAyMi4xLDIgMjEsMiIgLz48L3N2Zz4=",
"name": "IsOnScreen",
"previewIconUrl": "https://resources.gdevelop-app.com/assets/Icons/monitor-screenshot.svg",
"shortDescription": "This adds a condition to detect if an object is on screen based off its current layer.",
"version": "1.2.1",
"version": "1.2.2",
"description": [
"This extension adds conditions to check if an object is located within the visible portion of its layer's camera. The condition also allows for specifying padding to the virtual screen border.",
"",
"Note that this does not take into account any object visibility, such as being hidden or 0 opacity, but can be combined with those existing conditions."
],
"origin": {
"identifier": "IsOnScreen",
"name": "gdevelop-extension-store"
},
"tags": [
"is on screen",
"condition",
Expand All @@ -24,61 +32,88 @@
"gqDaZjCfevOOxBYkK6zlhtZnXCg1"
],
"dependencies": [],
"globalVariables": [],
"sceneVariables": [],
"eventsFunctions": [],
"eventsBasedBehaviors": [
{
"description": "This behavior provides a condition to check if the object is located within the visible portion of its layer's camera. The condition also allows for specifying padding to the virtual screen border.\nNote that object visibility, such as being hidden or 0 opacity, is not considered (but you can use those existing conditions in addition to this behavior).",
"fullName": "Is on screen",
"name": "InOnScreen",
"objectType": "",
"quickCustomizationVisibility": "hidden",
"eventsFunctions": [
{
"description": "Checks if an object position is within the viewport of its layer.",
"fullName": "Is on screen",
"functionType": "Condition",
"name": "IsOnScreen",
"private": false,
"sentence": "_PARAM0_ is on screen (padded by _PARAM2_ pixels)",
"events": [
{
"disabled": false,
"folded": false,
"type": "BuiltinCommonInstructions::JsCode",
"inlineCode": "/*\nGet the object layer, convert the position from this layer to the screen coordinates.\nGet the point on each side on the object on screen, and compare with the screen area.\n\nThis way even if the camera has a rotation or custom scale the object is always compared to the screen area.\n*/\n\n\n// Get the layer of the object.\nconst object = objects[0];\nconst layer = runtimeScene.getLayer(object.getLayer());\n\n// Get the aabb of the object on his layer.\nconst aabb = object.getVisibilityAABB();\n\n// Get the layer to convert the coordinates of the AABB to the screen coordinates\nconst topLeft = layer.convertInverseCoords(aabb.min[0], aabb.min[1]);\nconst topRight = layer.convertInverseCoords(aabb.max[0], aabb.min[1]);\nconst bottomRight = layer.convertInverseCoords(aabb.max[0], aabb.max[1]);\nconst bottomLeft = layer.convertInverseCoords(aabb.min[0], aabb.max[1]);\n\n// Get the points on each side of the object on screen.\nconst posLeftObjectOnScreen = Math.min(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]);\nconst posRightObjectOnScreen = Math.max(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]);\nconst posUpObjectOnScreen = Math.min(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]);\nconst posDownObjectOnScreen = Math.max(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]);\n\nconst padding = eventsFunctionContext.getArgument(\"Padding\");\n\nif (\n !(posLeftObjectOnScreen - padding > runtimeScene.getGame().getGameResolutionWidth() ||\n posUpObjectOnScreen - padding > runtimeScene.getGame().getGameResolutionHeight() ||\n posRightObjectOnScreen + padding < 0 ||\n posDownObjectOnScreen + padding < 0\n )\n) {\n eventsFunctionContext.returnValue = true;\n}\n",
"inlineCode": [
"/*",
"Get the object layer, convert the position from this layer to the screen coordinates.",
"Get the point on each side on the object on screen, and compare with the screen area.",
"",
"This way even if the camera has a rotation or custom scale the object is always compared to the screen area.",
"*/",
"",
"",
"// Get the layer of the object.",
"const object = objects[0];",
"const layer = runtimeScene.getLayer(object.getLayer());",
"",
"// Get the aabb of the object on his layer.",
"const aabb = object.getVisibilityAABB();",
"",
"// Get the layer to convert the coordinates of the AABB to the screen coordinates",
"const topLeft = layer.convertInverseCoords(aabb.min[0], aabb.min[1]);",
"const topRight = layer.convertInverseCoords(aabb.max[0], aabb.min[1]);",
"const bottomRight = layer.convertInverseCoords(aabb.max[0], aabb.max[1]);",
"const bottomLeft = layer.convertInverseCoords(aabb.min[0], aabb.max[1]);",
"",
"// Get the points on each side of the object on screen.",
"const posLeftObjectOnScreen = Math.min(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]);",
"const posRightObjectOnScreen = Math.max(topLeft[0], topRight[0], bottomLeft[0], bottomRight[0]);",
"const posUpObjectOnScreen = Math.min(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]);",
"const posDownObjectOnScreen = Math.max(topLeft[1], topRight[1], bottomLeft[1], bottomRight[1]);",
"",
"const padding = eventsFunctionContext.getArgument(\"Padding\");",
"",
"if (",
" !(posLeftObjectOnScreen - padding > runtimeScene.getGame().getGameResolutionWidth() ||",
" posUpObjectOnScreen - padding > runtimeScene.getGame().getGameResolutionHeight() ||",
" posRightObjectOnScreen + padding < 0 ||",
" posDownObjectOnScreen + padding < 0",
" )",
") {",
" eventsFunctionContext.returnValue = true;",
"}",
""
],
"parameterObjects": "Object",
"useStrict": true,
"eventsSheetExpanded": true
}
],
"parameters": [
{
"codeOnly": false,
"defaultValue": "",
"description": "Object",
"longDescription": "",
"name": "Object",
"optional": false,
"supplementaryInformation": "",
"type": "object"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Behavior",
"longDescription": "",
"name": "Behavior",
"optional": false,
"supplementaryInformation": "IsOnScreen::InOnScreen",
"type": "behavior"
},
{
"codeOnly": false,
"defaultValue": "",
"description": "Padding (in pixels)",
"longDescription": "Number of pixels to pad the screen border. Zero by default. A negative value goes inside the screen, a positive value go outside.",
"name": "Padding",
"optional": false,
"supplementaryInformation": "",
"type": "expression"
}
],
Expand All @@ -90,7 +125,9 @@
]
}
],
"propertyDescriptors": []
"propertyDescriptors": [],
"sharedPropertyDescriptors": []
}
]
],
"eventsBasedObjects": []
}
3 changes: 2 additions & 1 deletion extensions/reviewed/PhysicsCar3DKeyMapper.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"name": "PhysicsCar3DKeyMapper",
"previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/Glyphster Pack/Master/SVG/Computers and Hardware/3e5871434a72821bf3ecb44a6857e62a438cf23dc8f95966f56ae97e95315468_Computers and Hardware_keyboard.svg",
"shortDescription": "3D car keyboard controls.",
"version": "1.0.0",
"version": "1.0.1",
"description": "3D physics car keyboard controls.",
"origin": {
"identifier": "PhysicsCharacter3DKeyMapper",
Expand All @@ -31,6 +31,7 @@
"fullName": "3D car keyboard mapper",
"name": "PhysicsCar3DKeyboardMapper",
"objectType": "",
"quickCustomizationVisibility": "hidden",
"eventsFunctions": [
{
"fullName": "",
Expand Down
Loading