diff --git a/extensions/community/IsometricGridFill.json b/extensions/community/IsometricGridFill.json new file mode 100644 index 00000000..b6b9936d --- /dev/null +++ b/extensions/community/IsometricGridFill.json @@ -0,0 +1,221 @@ +{ + "author": "", + "category": "Game mechanic", + "extensionNamespace": "", + "fullName": "Isometric Grid Fill", + "helpPath": "", + "iconUrl": "", + "name": "IsometricGridFill", + "previewIconUrl": "", + "shortDescription": "Isometric Grid For Tile Based Generation Based On The Position.", + "version": "1.0.0", + "description": [ + "\"This extension enables the creation and management of isometric grids in GDevelop. It provides functionality similar to rectangular grids but tailored for isometric layouts, making it ideal for creating isometric games such as strategy games, city builders, or tile-based RPGs.", + "", + "With this extension, you can:", + "", + "Automatically generate isometric grids based on a player's position or predefined settings.", + "Simplify movement and tile placement using isometric coordinates.", + "Customize the grid size and behavior for dynamic gameplay mechanics.", + "Perfect for developers looking to implement isometric worlds with ease, this extension offers seamless integration with GDevelop's event system, enabling both beginners and advanced users to enhance their projects.\"", + "", + "" + ], + "tags": [ + "\"isometric\"", + "\"grid\"", + "\"strategy\"", + "\"RPG\"", + "\"movement\"", + "\"layout\"", + "\"level-design\"" + ], + "authorIds": [ + "yZ9Y8HmUKPcXVddoDlFmRoOZ8dh1" + ], + "dependencies": [], + "globalVariables": [], + "sceneVariables": [], + "eventsFunctions": [ + { + "description": "Create The Object Around The Target Object.", + "fullName": "Create Object Around Target Object", + "functionType": "Action", + "name": "IsometricGridFill", + "sentence": "Create _PARAM1_ Around _PARAM2_ With Range Of _PARAM3_", + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [], + "events": [ + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Object", + "Around.X()", + "Around.Y()", + "" + ] + }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "XAxis", + "=", + "-Range" + ] + }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "YAxis", + "=", + "-Range" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "2 * Range+ 1", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "YAxis", + "=", + "-Range" + ] + } + ], + "events": [ + { + "type": "BuiltinCommonInstructions::Repeat", + "repeatExpression": "2 * Range+ 1", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "TileX", + "=", + "Around.X()+(XAxis-YAxis)*(Object.Width()/2)" + ] + }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "TileY", + "=", + "Around.Y()+(XAxis+YAxis)*(Object.Height()/2)" + ] + }, + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "YAxis", + "+", + "1" + ] + }, + { + "type": { + "value": "Create" + }, + "parameters": [ + "", + "Object", + "TileX", + "TileY", + "" + ] + } + ] + }, + { + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "value": "SetNumberVariable" + }, + "parameters": [ + "XAxis", + "+", + "1" + ] + } + ] + } + ] + } + ], + "variables": [ + { + "name": "XAxis", + "type": "number", + "value": 0 + }, + { + "name": "YAxis", + "type": "number", + "value": 0 + }, + { + "name": "TileX", + "type": "number", + "value": 0 + }, + { + "name": "TileY", + "type": "number", + "value": 0 + } + ] + } + ], + "parameters": [ + { + "description": "Object that will be created", + "name": "Object", + "type": "objectList" + }, + { + "description": "Around Which Object", + "name": "Around", + "type": "objectList" + }, + { + "description": "Value For Range", + "name": "Range", + "type": "expression" + } + ], + "objectGroups": [] + } + ], + "eventsBasedBehaviors": [], + "eventsBasedObjects": [] +} \ No newline at end of file