@keeveeg/godot-mcp 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +1 -1
- package/server/dist/config.js +1 -1
- package/server/dist/godot-bridge.d.ts.map +1 -1
- package/server/dist/godot-bridge.js +264 -261
- package/server/dist/godot-bridge.js.map +1 -1
- package/server/dist/index.js +46 -45
- package/server/dist/server.d.ts.map +1 -1
- package/server/dist/server.js +25 -23
- package/server/dist/server.js.map +1 -1
- package/server/dist/tools/addon_management.d.ts.map +1 -1
- package/server/dist/tools/addon_management.js +37 -57
- package/server/dist/tools/addon_management.js.map +1 -1
- package/server/dist/tools/analysis.d.ts.map +1 -1
- package/server/dist/tools/analysis.js +21 -37
- package/server/dist/tools/analysis.js.map +1 -1
- package/server/dist/tools/animation.d.ts.map +1 -1
- package/server/dist/tools/animation.js +95 -135
- package/server/dist/tools/animation.js.map +1 -1
- package/server/dist/tools/audio.d.ts.map +1 -1
- package/server/dist/tools/audio.js +81 -109
- package/server/dist/tools/audio.js.map +1 -1
- package/server/dist/tools/audio_config.d.ts.map +1 -1
- package/server/dist/tools/audio_config.js +50 -76
- package/server/dist/tools/audio_config.js.map +1 -1
- package/server/dist/tools/batch.d.ts.map +1 -1
- package/server/dist/tools/batch.js +57 -89
- package/server/dist/tools/batch.js.map +1 -1
- package/server/dist/tools/build_config.d.ts.map +1 -1
- package/server/dist/tools/build_config.js +59 -91
- package/server/dist/tools/build_config.js.map +1 -1
- package/server/dist/tools/debug_config.d.ts.map +1 -1
- package/server/dist/tools/debug_config.js +46 -70
- package/server/dist/tools/debug_config.js.map +1 -1
- package/server/dist/tools/debugging.d.ts.map +1 -1
- package/server/dist/tools/debugging.js +51 -83
- package/server/dist/tools/debugging.js.map +1 -1
- package/server/dist/tools/editor.d.ts.map +1 -1
- package/server/dist/tools/editor.js +54 -90
- package/server/dist/tools/editor.js.map +1 -1
- package/server/dist/tools/editor_config.d.ts.map +1 -1
- package/server/dist/tools/editor_config.js +53 -85
- package/server/dist/tools/editor_config.js.map +1 -1
- package/server/dist/tools/export.d.ts.map +1 -1
- package/server/dist/tools/export.js +46 -74
- package/server/dist/tools/export.js.map +1 -1
- package/server/dist/tools/gameplay_automation.d.ts.map +1 -1
- package/server/dist/tools/gameplay_automation.js +70 -102
- package/server/dist/tools/gameplay_automation.js.map +1 -1
- package/server/dist/tools/index.js +42 -42
- package/server/dist/tools/input.d.ts.map +1 -1
- package/server/dist/tools/input.js +68 -100
- package/server/dist/tools/input.js.map +1 -1
- package/server/dist/tools/memory_profiling.d.ts.map +1 -1
- package/server/dist/tools/memory_profiling.js +31 -51
- package/server/dist/tools/memory_profiling.js.map +1 -1
- package/server/dist/tools/navigation.d.ts.map +1 -1
- package/server/dist/tools/navigation.js +86 -126
- package/server/dist/tools/navigation.js.map +1 -1
- package/server/dist/tools/node.d.ts.map +1 -1
- package/server/dist/tools/node.js +134 -202
- package/server/dist/tools/node.js.map +1 -1
- package/server/dist/tools/node_config.d.ts.map +1 -1
- package/server/dist/tools/node_config.js +58 -90
- package/server/dist/tools/node_config.js.map +1 -1
- package/server/dist/tools/particles.d.ts.map +1 -1
- package/server/dist/tools/particles.js +75 -111
- package/server/dist/tools/particles.js.map +1 -1
- package/server/dist/tools/physics.d.ts.map +1 -1
- package/server/dist/tools/physics.js +67 -99
- package/server/dist/tools/physics.js.map +1 -1
- package/server/dist/tools/physics_config.d.ts.map +1 -1
- package/server/dist/tools/physics_config.js +56 -88
- package/server/dist/tools/physics_config.js.map +1 -1
- package/server/dist/tools/platform_export.d.ts.map +1 -1
- package/server/dist/tools/platform_export.js +45 -69
- package/server/dist/tools/platform_export.js.map +1 -1
- package/server/dist/tools/platform_specific.d.ts.map +1 -1
- package/server/dist/tools/platform_specific.js +61 -85
- package/server/dist/tools/platform_specific.js.map +1 -1
- package/server/dist/tools/profiling.d.ts.map +1 -1
- package/server/dist/tools/profiling.js +13 -21
- package/server/dist/tools/profiling.js.map +1 -1
- package/server/dist/tools/project.d.ts.map +1 -1
- package/server/dist/tools/project.js +51 -79
- package/server/dist/tools/project.js.map +1 -1
- package/server/dist/tools/project_config.d.ts.map +1 -1
- package/server/dist/tools/project_config.js +88 -136
- package/server/dist/tools/project_config.js.map +1 -1
- package/server/dist/tools/project_creation.d.ts.map +1 -1
- package/server/dist/tools/project_creation.js +96 -140
- package/server/dist/tools/project_creation.js.map +1 -1
- package/server/dist/tools/rendering_config.d.ts.map +1 -1
- package/server/dist/tools/rendering_config.js +67 -103
- package/server/dist/tools/rendering_config.js.map +1 -1
- package/server/dist/tools/resource.js +77 -117
- package/server/dist/tools/resource_config.d.ts.map +1 -1
- package/server/dist/tools/resource_config.js +45 -69
- package/server/dist/tools/resource_config.js.map +1 -1
- package/server/dist/tools/runtime.d.ts.map +1 -1
- package/server/dist/tools/runtime.js +148 -224
- package/server/dist/tools/runtime.js.map +1 -1
- package/server/dist/tools/save_load.d.ts.map +1 -1
- package/server/dist/tools/save_load.js +36 -56
- package/server/dist/tools/save_load.js.map +1 -1
- package/server/dist/tools/scene.d.ts.map +1 -1
- package/server/dist/tools/scene.js +78 -122
- package/server/dist/tools/scene.js.map +1 -1
- package/server/dist/tools/scene3d.d.ts.map +1 -1
- package/server/dist/tools/scene3d.js +51 -75
- package/server/dist/tools/scene3d.js.map +1 -1
- package/server/dist/tools/scene_config.d.ts.map +1 -1
- package/server/dist/tools/scene_config.js +48 -72
- package/server/dist/tools/scene_config.js.map +1 -1
- package/server/dist/tools/script.js +68 -104
- package/server/dist/tools/script.js.map +1 -1
- package/server/dist/tools/shader.d.ts.map +1 -1
- package/server/dist/tools/shader.js +75 -111
- package/server/dist/tools/shader.js.map +1 -1
- package/server/dist/tools/shared-types.d.ts +2 -2
- package/server/dist/tools/shared-types.d.ts.map +1 -1
- package/server/dist/tools/shared-types.js +38 -36
- package/server/dist/tools/shared-types.js.map +1 -1
- package/server/dist/tools/testing.d.ts.map +1 -1
- package/server/dist/tools/testing.js +47 -69
- package/server/dist/tools/testing.js.map +1 -1
- package/server/dist/tools/theme.js +62 -90
- package/server/dist/tools/tilemap.js +58 -82
- package/server/dist/tools/visual_testing.d.ts.map +1 -1
- package/server/dist/tools/visual_testing.js +50 -74
- package/server/dist/tools/visual_testing.js.map +1 -1
- package/server/dist/types.js +15 -15
- package/server/dist/tools/accessibility.d.ts +0 -7
- package/server/dist/tools/accessibility.d.ts.map +0 -1
- package/server/dist/tools/accessibility.js +0 -71
- package/server/dist/tools/accessibility.js.map +0 -1
- package/server/dist/tools/analytics.d.ts +0 -7
- package/server/dist/tools/analytics.d.ts.map +0 -1
- package/server/dist/tools/analytics.js +0 -76
- package/server/dist/tools/analytics.js.map +0 -1
- package/server/dist/tools/asset_pipeline.d.ts +0 -7
- package/server/dist/tools/asset_pipeline.d.ts.map +0 -1
- package/server/dist/tools/asset_pipeline.js +0 -102
- package/server/dist/tools/asset_pipeline.js.map +0 -1
- package/server/dist/tools/asset_scaffolding.d.ts +0 -7
- package/server/dist/tools/asset_scaffolding.d.ts.map +0 -1
- package/server/dist/tools/asset_scaffolding.js +0 -113
- package/server/dist/tools/asset_scaffolding.js.map +0 -1
- package/server/dist/tools/cicd_pipeline.d.ts +0 -7
- package/server/dist/tools/cicd_pipeline.d.ts.map +0 -1
- package/server/dist/tools/cicd_pipeline.js +0 -125
- package/server/dist/tools/cicd_pipeline.js.map +0 -1
- package/server/dist/tools/cloud_services.d.ts +0 -7
- package/server/dist/tools/cloud_services.d.ts.map +0 -1
- package/server/dist/tools/cloud_services.js +0 -97
- package/server/dist/tools/cloud_services.js.map +0 -1
- package/server/dist/tools/code_generation.d.ts +0 -7
- package/server/dist/tools/code_generation.d.ts.map +0 -1
- package/server/dist/tools/code_generation.js +0 -79
- package/server/dist/tools/code_generation.js.map +0 -1
- package/server/dist/tools/code_quality.d.ts +0 -7
- package/server/dist/tools/code_quality.d.ts.map +0 -1
- package/server/dist/tools/code_quality.js +0 -98
- package/server/dist/tools/code_quality.js.map +0 -1
- package/server/dist/tools/collaboration.d.ts +0 -7
- package/server/dist/tools/collaboration.d.ts.map +0 -1
- package/server/dist/tools/collaboration.js +0 -73
- package/server/dist/tools/collaboration.js.map +0 -1
- package/server/dist/tools/documentation_tools.d.ts +0 -7
- package/server/dist/tools/documentation_tools.d.ts.map +0 -1
- package/server/dist/tools/documentation_tools.js +0 -89
- package/server/dist/tools/documentation_tools.js.map +0 -1
- package/server/dist/tools/game_template.d.ts +0 -7
- package/server/dist/tools/game_template.d.ts.map +0 -1
- package/server/dist/tools/game_template.js +0 -112
- package/server/dist/tools/game_template.js.map +0 -1
- package/server/dist/tools/git_integration.d.ts +0 -7
- package/server/dist/tools/git_integration.d.ts.map +0 -1
- package/server/dist/tools/git_integration.js +0 -75
- package/server/dist/tools/git_integration.js.map +0 -1
- package/server/dist/tools/headless_testing.d.ts +0 -7
- package/server/dist/tools/headless_testing.d.ts.map +0 -1
- package/server/dist/tools/headless_testing.js +0 -65
- package/server/dist/tools/headless_testing.js.map +0 -1
- package/server/dist/tools/iap_monetization.d.ts +0 -7
- package/server/dist/tools/iap_monetization.d.ts.map +0 -1
- package/server/dist/tools/iap_monetization.js +0 -70
- package/server/dist/tools/iap_monetization.js.map +0 -1
- package/server/dist/tools/localization.d.ts +0 -7
- package/server/dist/tools/localization.d.ts.map +0 -1
- package/server/dist/tools/localization.js +0 -97
- package/server/dist/tools/localization.js.map +0 -1
- package/server/dist/tools/marketing.d.ts +0 -7
- package/server/dist/tools/marketing.d.ts.map +0 -1
- package/server/dist/tools/marketing.js +0 -87
- package/server/dist/tools/marketing.js.map +0 -1
- package/server/dist/tools/mod_support.d.ts +0 -7
- package/server/dist/tools/mod_support.d.ts.map +0 -1
- package/server/dist/tools/mod_support.js +0 -93
- package/server/dist/tools/mod_support.js.map +0 -1
- package/server/dist/tools/networking.d.ts +0 -7
- package/server/dist/tools/networking.d.ts.map +0 -1
- package/server/dist/tools/networking.js +0 -94
- package/server/dist/tools/networking.js.map +0 -1
- package/server/dist/tools/performance_optimization.d.ts +0 -7
- package/server/dist/tools/performance_optimization.d.ts.map +0 -1
- package/server/dist/tools/performance_optimization.js +0 -75
- package/server/dist/tools/performance_optimization.js.map +0 -1
- package/server/dist/tools/scene_scaffolding.d.ts +0 -7
- package/server/dist/tools/scene_scaffolding.d.ts.map +0 -1
- package/server/dist/tools/scene_scaffolding.js +0 -110
- package/server/dist/tools/scene_scaffolding.js.map +0 -1
- package/server/dist/tools/script_scaffolding.d.ts +0 -7
- package/server/dist/tools/script_scaffolding.d.ts.map +0 -1
- package/server/dist/tools/script_scaffolding.js +0 -115
- package/server/dist/tools/script_scaffolding.js.map +0 -1
- package/server/dist/tools/security.d.ts +0 -7
- package/server/dist/tools/security.d.ts.map +0 -1
- package/server/dist/tools/security.js +0 -73
- package/server/dist/tools/security.js.map +0 -1
- package/server/dist/tools/version_control_advanced.d.ts +0 -7
- package/server/dist/tools/version_control_advanced.d.ts.map +0 -1
- package/server/dist/tools/version_control_advanced.js +0 -100
- package/server/dist/tools/version_control_advanced.js.map +0 -1
|
@@ -4,78 +4,50 @@
|
|
|
4
4
|
import { callGodot } from '../server.js';
|
|
5
5
|
import { z, Name } from './shared-types.js';
|
|
6
6
|
export function registerExportTools(server, bridge) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
{
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
},
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
description: 'Get available export templates for the current Godot version',
|
|
53
|
-
inputSchema: {},
|
|
54
|
-
},
|
|
55
|
-
async () => callGodot(bridge, 'export/get_templates'),
|
|
56
|
-
);
|
|
57
|
-
// 6. create_export_preset
|
|
58
|
-
server.registerTool(
|
|
59
|
-
'create_export_preset',
|
|
60
|
-
{
|
|
61
|
-
description: 'Create a new export preset',
|
|
62
|
-
inputSchema: {
|
|
63
|
-
name: Name.describe('Preset name'),
|
|
64
|
-
platform: z.string().describe("Target platform (e.g. 'Windows Desktop', 'Linux', 'Android')"),
|
|
65
|
-
},
|
|
66
|
-
},
|
|
67
|
-
async (args) => callGodot(bridge, 'export/create_preset', args),
|
|
68
|
-
);
|
|
69
|
-
// 7. delete_export_preset
|
|
70
|
-
server.registerTool(
|
|
71
|
-
'delete_export_preset',
|
|
72
|
-
{
|
|
73
|
-
description: 'Delete an export preset from the project',
|
|
74
|
-
inputSchema: {
|
|
75
|
-
name: z.string().describe('Name of the export preset to delete'),
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
async (args) => callGodot(bridge, 'export/delete_preset', args),
|
|
79
|
-
);
|
|
7
|
+
// 1. list_export_presets
|
|
8
|
+
server.registerTool('list_export_presets', {
|
|
9
|
+
description: 'List all configured export presets',
|
|
10
|
+
inputSchema: {},
|
|
11
|
+
}, async () => callGodot(bridge, 'export/list_presets'));
|
|
12
|
+
// 2. export_project
|
|
13
|
+
server.registerTool('export_project', {
|
|
14
|
+
description: 'Export the project using a specific preset',
|
|
15
|
+
inputSchema: {
|
|
16
|
+
preset: Name.describe('Export preset name'),
|
|
17
|
+
output_path: z.string().optional().describe('Output path for the export'),
|
|
18
|
+
debug: z.boolean().optional().default(false).describe('Export as debug build (default: false = release)'),
|
|
19
|
+
pack_only: z.boolean().optional().default(false).describe('Export as pack file only (default: false)'),
|
|
20
|
+
},
|
|
21
|
+
}, async (args) => callGodot(bridge, 'export/project', args));
|
|
22
|
+
// 3. get_export_info
|
|
23
|
+
server.registerTool('get_export_info', {
|
|
24
|
+
description: 'Get export project information (platform, features, resources)',
|
|
25
|
+
inputSchema: {},
|
|
26
|
+
}, async () => callGodot(bridge, 'export/get_info'));
|
|
27
|
+
// 4. validate_export
|
|
28
|
+
server.registerTool('validate_export', {
|
|
29
|
+
description: 'Validate the project for export (check for missing resources, errors)',
|
|
30
|
+
inputSchema: {},
|
|
31
|
+
}, async (args) => callGodot(bridge, 'export/validate', args));
|
|
32
|
+
// 5. get_export_templates
|
|
33
|
+
server.registerTool('get_export_templates', {
|
|
34
|
+
description: 'Get available export templates for the current Godot version',
|
|
35
|
+
inputSchema: {},
|
|
36
|
+
}, async () => callGodot(bridge, 'export/get_templates'));
|
|
37
|
+
// 6. create_export_preset
|
|
38
|
+
server.registerTool('create_export_preset', {
|
|
39
|
+
description: 'Create a new export preset',
|
|
40
|
+
inputSchema: {
|
|
41
|
+
name: Name.describe('Preset name'),
|
|
42
|
+
platform: z.string().describe("Target platform (e.g. 'Windows Desktop', 'Linux', 'Android')"),
|
|
43
|
+
},
|
|
44
|
+
}, async (args) => callGodot(bridge, 'export/create_preset', args));
|
|
45
|
+
// 7. delete_export_preset
|
|
46
|
+
server.registerTool('delete_export_preset', {
|
|
47
|
+
description: 'Delete an export preset from the project',
|
|
48
|
+
inputSchema: {
|
|
49
|
+
name: z.string().describe('Name of the export preset to delete'),
|
|
50
|
+
},
|
|
51
|
+
}, async (args) => callGodot(bridge, 'export/delete_preset', args));
|
|
80
52
|
}
|
|
81
|
-
//# sourceMappingURL=export.js.map
|
|
53
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/tools/export.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAmB;IACxE,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC,CACrD,CAAC;IAEF,oBAAoB;IACpB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YACzE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YACzG,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;SACvG;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAA+B,CAAC,CACrF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,CAAC,CACjD,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAA+B,CAAC,CACtF,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,8DAA8D;QAC3E,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,CAAC,CACtD,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAClC,QAAQ,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/tools/export.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAmB;IACxE,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC,CACrD,CAAC;IAEF,oBAAoB;IACpB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YACzE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YACzG,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;SACvG;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAA+B,CAAC,CACrF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,CAAC,CACjD,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAA+B,CAAC,CACtF,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,8DAA8D;QAC3E,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,CAAC,CACtD,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;SAC9F;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,0CAA0C;QACvD,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;SACjE;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gameplay_automation.d.ts","sourceRoot":"","sources":["../../src/tools/gameplay_automation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"gameplay_automation.d.ts","sourceRoot":"","sources":["../../src/tools/gameplay_automation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA4G5F"}
|
|
@@ -4,106 +4,74 @@
|
|
|
4
4
|
import { callGodot } from '../server.js';
|
|
5
5
|
import { z, ScenePath, NodePath, Position3D, Properties } from './shared-types.js';
|
|
6
6
|
export function registerGameplayAutomationTools(server, bridge) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
'record_gameplay',
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
},
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
'
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
// 6. assert_game_state
|
|
77
|
-
server.registerTool(
|
|
78
|
-
'assert_game_state',
|
|
79
|
-
{
|
|
80
|
-
description: 'Assert multiple game state conditions simultaneously',
|
|
81
|
-
inputSchema: {
|
|
82
|
-
conditions: z
|
|
83
|
-
.array(
|
|
84
|
-
z.object({
|
|
85
|
-
path: z.string().describe('Node path'),
|
|
86
|
-
property: z.string().describe('Property name to check'),
|
|
87
|
-
expected: z.unknown().describe('Expected value'),
|
|
88
|
-
operator: z.string().optional().describe('Comparison operator: ==, !=, >, <, >=, <=, contains'),
|
|
89
|
-
}),
|
|
90
|
-
)
|
|
91
|
-
.describe('List of conditions that must all pass'),
|
|
92
|
-
},
|
|
93
|
-
},
|
|
94
|
-
async (args) => callGodot(bridge, 'assert_game_state', args),
|
|
95
|
-
);
|
|
96
|
-
// 7. wait_for_game_event
|
|
97
|
-
server.registerTool(
|
|
98
|
-
'wait_for_game_event',
|
|
99
|
-
{
|
|
100
|
-
description: 'Wait for a specific game event (signal, node creation, property change) with timeout',
|
|
101
|
-
inputSchema: {
|
|
102
|
-
event: z.string().describe("Event to wait for. Use prefix format: 'signal:NodePath:SignalName', 'node:NodePath', or 'property:NodePath:PropName:ExpectedValue'"),
|
|
103
|
-
timeout: z.number().int().min(1).max(30000).optional().default(5000).describe('Timeout in milliseconds (default: 5000)'),
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
async (args) => callGodot(bridge, 'wait_for_game_event', args),
|
|
107
|
-
);
|
|
7
|
+
// 1. simulate_gameplay_scenario
|
|
8
|
+
server.registerTool('simulate_gameplay_scenario', {
|
|
9
|
+
description: 'Run a sequence of gameplay actions (input, wait, check) as an automated scenario',
|
|
10
|
+
inputSchema: {
|
|
11
|
+
scenario: z
|
|
12
|
+
.array(z.object({
|
|
13
|
+
action: z.string().describe("Action type: 'input', 'wait', 'move', 'click', 'assert'"),
|
|
14
|
+
params: Properties.describe('Parameters for the action'),
|
|
15
|
+
wait: z.number().optional().describe('Wait time in ms after this step'),
|
|
16
|
+
}))
|
|
17
|
+
.describe('Ordered list of gameplay actions to execute'),
|
|
18
|
+
},
|
|
19
|
+
}, async (args) => callGodot(bridge, 'simulate_gameplay_scenario', args));
|
|
20
|
+
// 2. record_gameplay
|
|
21
|
+
server.registerTool('record_gameplay', {
|
|
22
|
+
description: 'Record gameplay for a duration, capturing input events and/or game state',
|
|
23
|
+
inputSchema: {
|
|
24
|
+
duration: z.number().min(1).max(300).optional().default(10).describe('Recording duration in seconds (default: 10)'),
|
|
25
|
+
include_input: z.boolean().optional().default(true).describe('Record input events (default: true)'),
|
|
26
|
+
include_state: z.boolean().optional().default(false).describe('Record game state snapshots (default: false)'),
|
|
27
|
+
},
|
|
28
|
+
}, async (args) => callGodot(bridge, 'record_gameplay', args));
|
|
29
|
+
// 3. replay_gameplay
|
|
30
|
+
server.registerTool('replay_gameplay', {
|
|
31
|
+
description: 'Replay a previously recorded gameplay session',
|
|
32
|
+
inputSchema: {
|
|
33
|
+
recording_path: z.string().describe('Path to the recording file'),
|
|
34
|
+
speed: z.number().min(0.1).max(10).optional().default(1.0).describe('Playback speed multiplier (default: 1.0)'),
|
|
35
|
+
},
|
|
36
|
+
}, async (args) => callGodot(bridge, 'replay_gameplay', args));
|
|
37
|
+
// 4. create_test_character
|
|
38
|
+
server.registerTool('create_test_character', {
|
|
39
|
+
description: 'Create a test character in the scene at a specified position',
|
|
40
|
+
inputSchema: {
|
|
41
|
+
scene_path: ScenePath.describe('Path to the character scene to instantiate'),
|
|
42
|
+
position: Position3D.optional().describe('World position [x, y, z]'),
|
|
43
|
+
},
|
|
44
|
+
}, async (args) => callGodot(bridge, 'create_test_character', args));
|
|
45
|
+
// 5. navigate_character
|
|
46
|
+
server.registerTool('navigate_character', {
|
|
47
|
+
description: 'Move a character to a target position using direct movement or pathfinding',
|
|
48
|
+
inputSchema: {
|
|
49
|
+
character_path: NodePath,
|
|
50
|
+
target: Position3D.describe('Target position [x, y, z]'),
|
|
51
|
+
method: z.enum(['direct', 'pathfind']).optional().default('direct').describe('Navigation method (default: direct)'),
|
|
52
|
+
},
|
|
53
|
+
}, async (args) => callGodot(bridge, 'navigate_character', args));
|
|
54
|
+
// 6. assert_game_state
|
|
55
|
+
server.registerTool('assert_game_state', {
|
|
56
|
+
description: 'Assert multiple game state conditions simultaneously',
|
|
57
|
+
inputSchema: {
|
|
58
|
+
conditions: z
|
|
59
|
+
.array(z.object({
|
|
60
|
+
path: z.string().describe('Node path'),
|
|
61
|
+
property: z.string().describe('Property name to check'),
|
|
62
|
+
expected: z.unknown().describe('Expected value'),
|
|
63
|
+
operator: z.string().optional().describe('Comparison operator: ==, !=, >, <, >=, <=, contains'),
|
|
64
|
+
}))
|
|
65
|
+
.describe('List of conditions that must all pass'),
|
|
66
|
+
},
|
|
67
|
+
}, async (args) => callGodot(bridge, 'assert_game_state', args));
|
|
68
|
+
// 7. wait_for_game_event
|
|
69
|
+
server.registerTool('wait_for_game_event', {
|
|
70
|
+
description: 'Wait for a specific game event (signal, node creation, property change) with timeout',
|
|
71
|
+
inputSchema: {
|
|
72
|
+
event: z.string().describe("Event to wait for. Use prefix format: 'signal:NodePath:SignalName', 'node:NodePath', or 'property:NodePath:PropName:ExpectedValue'"),
|
|
73
|
+
timeout: z.number().int().min(1).max(30000).optional().default(5000).describe('Timeout in milliseconds (default: 5000)'),
|
|
74
|
+
},
|
|
75
|
+
}, async (args) => callGodot(bridge, 'wait_for_game_event', args));
|
|
108
76
|
}
|
|
109
|
-
//# sourceMappingURL=gameplay_automation.js.map
|
|
77
|
+
//# sourceMappingURL=gameplay_automation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gameplay_automation.js","sourceRoot":"","sources":["../../src/tools/gameplay_automation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEnF,MAAM,UAAU,+BAA+B,CAAC,MAAiB,EAAE,MAAmB;IACpF,gCAAgC;IAChC,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,WAAW,
|
|
1
|
+
{"version":3,"file":"gameplay_automation.js","sourceRoot":"","sources":["../../src/tools/gameplay_automation.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,46 +48,46 @@ import { registerVisualTestingTools } from './visual_testing.js';
|
|
|
48
48
|
* Register all tool modules with the MCP server.
|
|
49
49
|
*/
|
|
50
50
|
export function registerAllTools(server, bridge) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
51
|
+
registerProjectTools(server, bridge);
|
|
52
|
+
registerSceneTools(server, bridge);
|
|
53
|
+
registerNodeTools(server, bridge);
|
|
54
|
+
registerScriptTools(server, bridge);
|
|
55
|
+
registerEditorTools(server, bridge);
|
|
56
|
+
registerInputTools(server, bridge);
|
|
57
|
+
registerRuntimeTools(server, bridge);
|
|
58
|
+
registerAnimationTools(server, bridge);
|
|
59
|
+
registerTilemapTools(server, bridge);
|
|
60
|
+
registerThemeTools(server, bridge);
|
|
61
|
+
registerShaderTools(server, bridge);
|
|
62
|
+
registerResourceTools(server, bridge);
|
|
63
|
+
registerPhysicsTools(server, bridge);
|
|
64
|
+
registerScene3dTools(server, bridge);
|
|
65
|
+
registerParticlesTools(server, bridge);
|
|
66
|
+
registerNavigationTools(server, bridge);
|
|
67
|
+
registerAudioTools(server, bridge);
|
|
68
|
+
registerBatchTools(server, bridge);
|
|
69
|
+
registerAnalysisTools(server, bridge);
|
|
70
|
+
registerTestingTools(server, bridge);
|
|
71
|
+
registerProfilingTools(server, bridge);
|
|
72
|
+
registerExportTools(server, bridge);
|
|
73
|
+
registerAddonManagementTools(server, bridge);
|
|
74
|
+
registerAudioConfigTools(server, bridge);
|
|
75
|
+
registerBuildConfigTools(server, bridge);
|
|
76
|
+
registerDebugConfigTools(server, bridge);
|
|
77
|
+
registerDebuggingTools(server, bridge);
|
|
78
|
+
registerEditorConfigTools(server, bridge);
|
|
79
|
+
registerGameplayAutomationTools(server, bridge);
|
|
80
|
+
registerMemoryProfilingTools(server, bridge);
|
|
81
|
+
registerNodeConfigTools(server, bridge);
|
|
82
|
+
registerPhysicsConfigTools(server, bridge);
|
|
83
|
+
registerPlatformExportTools(server, bridge);
|
|
84
|
+
registerPlatformSpecificTools(server, bridge);
|
|
85
|
+
registerProjectConfigTools(server, bridge);
|
|
86
|
+
registerProjectCreationTools(server, bridge);
|
|
87
|
+
registerRenderingConfigTools(server, bridge);
|
|
88
|
+
registerResourceConfigTools(server, bridge);
|
|
89
|
+
registerSaveLoadTools(server, bridge);
|
|
90
|
+
registerSceneConfigTools(server, bridge);
|
|
91
|
+
registerVisualTestingTools(server, bridge);
|
|
92
92
|
}
|
|
93
|
-
//# sourceMappingURL=index.js.map
|
|
93
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/tools/input.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/tools/input.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA6G/E"}
|
|
@@ -4,107 +4,75 @@
|
|
|
4
4
|
import { callGodot } from '../server.js';
|
|
5
5
|
import { z, Position2D, Pressed } from './shared-types.js';
|
|
6
6
|
export function registerInputTools(server, bridge) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
{
|
|
49
|
-
description: 'Simulate an input action (from InputMap) being pressed/released',
|
|
50
|
-
inputSchema: {
|
|
51
|
-
action: z.string().describe("Input action name (e.g. 'ui_accept', 'move_left')"),
|
|
52
|
-
pressed: Pressed,
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
async (args) => callGodot(bridge, 'input/simulate_action', args),
|
|
56
|
-
);
|
|
57
|
-
// 5. simulate_sequence — {events: Array<{type: string, delay?: number, [key: string]: any}>} -> success
|
|
58
|
-
server.registerTool(
|
|
59
|
-
'simulate_sequence',
|
|
60
|
-
{
|
|
61
|
-
description: 'Simulate a sequence of input events with timing',
|
|
62
|
-
inputSchema: {
|
|
63
|
-
events: z
|
|
64
|
-
.array(
|
|
65
|
-
z
|
|
66
|
-
.object({
|
|
7
|
+
// 1. simulate_key — {keycode: string, pressed?: boolean, echo?: boolean} -> success
|
|
8
|
+
server.registerTool('simulate_key', {
|
|
9
|
+
description: 'Simulate a keyboard key press/release in the running game',
|
|
10
|
+
inputSchema: {
|
|
11
|
+
keycode: z.string().describe("Key code name (e.g. 'KEY_ENTER', 'KEY_SPACE', 'KEY_A')"),
|
|
12
|
+
pressed: Pressed,
|
|
13
|
+
echo: z.boolean().optional().describe('Whether this is an echo/repeat event'),
|
|
14
|
+
},
|
|
15
|
+
}, async (args) => callGodot(bridge, 'input/simulate_key', args));
|
|
16
|
+
// 2. simulate_mouse_click — {position: [number,number], button?: "left"|"right"|"middle", pressed?: boolean} -> success
|
|
17
|
+
server.registerTool('simulate_mouse_click', {
|
|
18
|
+
description: 'Simulate a mouse click at a screen position',
|
|
19
|
+
inputSchema: {
|
|
20
|
+
position: Position2D.describe('Screen position [x, y]'),
|
|
21
|
+
button: z.enum(['left', 'right', 'middle']).optional().default('left').describe('Mouse button (default: left)'),
|
|
22
|
+
pressed: Pressed,
|
|
23
|
+
},
|
|
24
|
+
}, async (args) => callGodot(bridge, 'input/simulate_mouse_click', args));
|
|
25
|
+
// 3. simulate_mouse_move — {position: [number,number], relative?: boolean} -> success
|
|
26
|
+
server.registerTool('simulate_mouse_move', {
|
|
27
|
+
description: 'Simulate mouse movement to a screen position',
|
|
28
|
+
inputSchema: {
|
|
29
|
+
position: Position2D.describe('Target screen position [x, y]'),
|
|
30
|
+
relative: z.boolean().optional().describe('If true, position is relative to current mouse position'),
|
|
31
|
+
},
|
|
32
|
+
}, async (args) => callGodot(bridge, 'input/simulate_mouse_move', args));
|
|
33
|
+
// 4. simulate_action — {action: string, pressed?: boolean} -> success
|
|
34
|
+
server.registerTool('simulate_action', {
|
|
35
|
+
description: 'Simulate an input action (from InputMap) being pressed/released',
|
|
36
|
+
inputSchema: {
|
|
37
|
+
action: z.string().describe("Input action name (e.g. 'ui_accept', 'move_left')"),
|
|
38
|
+
pressed: Pressed,
|
|
39
|
+
},
|
|
40
|
+
}, async (args) => callGodot(bridge, 'input/simulate_action', args));
|
|
41
|
+
// 5. simulate_sequence — {events: Array<{type: string, delay?: number, [key: string]: any}>} -> success
|
|
42
|
+
server.registerTool('simulate_sequence', {
|
|
43
|
+
description: 'Simulate a sequence of input events with timing',
|
|
44
|
+
inputSchema: {
|
|
45
|
+
events: z
|
|
46
|
+
.array(z
|
|
47
|
+
.object({
|
|
67
48
|
type: z.string().describe("Event type (e.g. 'key', 'mouse_click', 'mouse_move', 'action')"),
|
|
68
49
|
delay: z.number().optional().describe('Delay before this event in milliseconds'),
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
{
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
'set_input_action',
|
|
90
|
-
{
|
|
91
|
-
description: 'Add or modify an input action and its event mappings',
|
|
92
|
-
inputSchema: {
|
|
93
|
-
action: z.string().describe('Action name'),
|
|
94
|
-
deadzone: z.number().min(0).max(1).optional().default(0.5).describe('Input deadzone value (0-1, default: 0.5)'),
|
|
95
|
-
events: z
|
|
96
|
-
.array(
|
|
97
|
-
z
|
|
98
|
-
.object({
|
|
50
|
+
})
|
|
51
|
+
.passthrough()
|
|
52
|
+
.describe('Additional event-specific properties are passed through'))
|
|
53
|
+
.describe('Sequence of input events to simulate'),
|
|
54
|
+
},
|
|
55
|
+
}, async (args) => callGodot(bridge, 'input/simulate_sequence', args));
|
|
56
|
+
// 6. get_input_actions — {} -> action list
|
|
57
|
+
server.registerTool('get_input_actions', {
|
|
58
|
+
description: 'Get all input actions defined in the InputMap',
|
|
59
|
+
inputSchema: {},
|
|
60
|
+
}, async () => callGodot(bridge, 'input/get_actions'));
|
|
61
|
+
// 7. set_input_action — {action: string, events: Array<{type: string, [key: string]: any}>} -> success
|
|
62
|
+
server.registerTool('set_input_action', {
|
|
63
|
+
description: 'Add or modify an input action and its event mappings',
|
|
64
|
+
inputSchema: {
|
|
65
|
+
action: z.string().describe('Action name'),
|
|
66
|
+
deadzone: z.number().min(0).max(1).optional().default(0.5).describe('Input deadzone value (0-1, default: 0.5)'),
|
|
67
|
+
events: z
|
|
68
|
+
.array(z
|
|
69
|
+
.object({
|
|
99
70
|
type: z.string().describe("Event type (e.g. 'key', 'mouse_button', 'joypad_button')"),
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
},
|
|
107
|
-
async (args) => callGodot(bridge, 'input/set_action', args),
|
|
108
|
-
);
|
|
71
|
+
})
|
|
72
|
+
.passthrough()
|
|
73
|
+
.describe('Additional event-specific properties are passed through'))
|
|
74
|
+
.describe('List of input events to map to this action'),
|
|
75
|
+
},
|
|
76
|
+
}, async (args) => callGodot(bridge, 'input/set_action', args));
|
|
109
77
|
}
|
|
110
|
-
//# sourceMappingURL=input.js.map
|
|
78
|
+
//# sourceMappingURL=input.js.map
|