ue-mcp 0.4.0-alpha
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/LICENSE +21 -0
- package/README.md +89 -0
- package/dist/bridge.d.ts +25 -0
- package/dist/bridge.js +124 -0
- package/dist/bridge.js.map +1 -0
- package/dist/deployer.d.ts +18 -0
- package/dist/deployer.js +175 -0
- package/dist/deployer.js.map +1 -0
- package/dist/editor-control.d.ts +15 -0
- package/dist/editor-control.js +181 -0
- package/dist/editor-control.js.map +1 -0
- package/dist/github-app.d.ts +4 -0
- package/dist/github-app.js +94 -0
- package/dist/github-app.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +125 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +2 -0
- package/dist/init.js +290 -0
- package/dist/init.js.map +1 -0
- package/dist/instructions.d.ts +1 -0
- package/dist/instructions.js +150 -0
- package/dist/instructions.js.map +1 -0
- package/dist/project.d.ts +32 -0
- package/dist/project.js +175 -0
- package/dist/project.js.map +1 -0
- package/dist/tools/animation.d.ts +2 -0
- package/dist/tools/animation.js +62 -0
- package/dist/tools/animation.js.map +1 -0
- package/dist/tools/asset.d.ts +2 -0
- package/dist/tools/asset.js +128 -0
- package/dist/tools/asset.js.map +1 -0
- package/dist/tools/audio.d.ts +2 -0
- package/dist/tools/audio.js +24 -0
- package/dist/tools/audio.js.map +1 -0
- package/dist/tools/blueprint.d.ts +2 -0
- package/dist/tools/blueprint.js +64 -0
- package/dist/tools/blueprint.js.map +1 -0
- package/dist/tools/demo.d.ts +2 -0
- package/dist/tools/demo.js +10 -0
- package/dist/tools/demo.js.map +1 -0
- package/dist/tools/editor.d.ts +2 -0
- package/dist/tools/editor.js +133 -0
- package/dist/tools/editor.js.map +1 -0
- package/dist/tools/feedback.d.ts +2 -0
- package/dist/tools/feedback.js +44 -0
- package/dist/tools/feedback.js.map +1 -0
- package/dist/tools/foliage.d.ts +2 -0
- package/dist/tools/foliage.js +29 -0
- package/dist/tools/foliage.js.map +1 -0
- package/dist/tools/gameplay.d.ts +2 -0
- package/dist/tools/gameplay.js +101 -0
- package/dist/tools/gameplay.js.map +1 -0
- package/dist/tools/gas.d.ts +2 -0
- package/dist/tools/gas.js +43 -0
- package/dist/tools/gas.js.map +1 -0
- package/dist/tools/landscape.d.ts +2 -0
- package/dist/tools/landscape.js +32 -0
- package/dist/tools/landscape.js.map +1 -0
- package/dist/tools/level.d.ts +2 -0
- package/dist/tools/level.js +66 -0
- package/dist/tools/level.js.map +1 -0
- package/dist/tools/material.d.ts +2 -0
- package/dist/tools/material.js +59 -0
- package/dist/tools/material.js.map +1 -0
- package/dist/tools/networking.d.ts +2 -0
- package/dist/tools/networking.js +42 -0
- package/dist/tools/networking.js.map +1 -0
- package/dist/tools/niagara.d.ts +2 -0
- package/dist/tools/niagara.js +42 -0
- package/dist/tools/niagara.js.map +1 -0
- package/dist/tools/pcg.d.ts +2 -0
- package/dist/tools/pcg.js +39 -0
- package/dist/tools/pcg.js.map +1 -0
- package/dist/tools/project.d.ts +2 -0
- package/dist/tools/project.js +282 -0
- package/dist/tools/project.js.map +1 -0
- package/dist/tools/reflection.d.ts +2 -0
- package/dist/tools/reflection.js +26 -0
- package/dist/tools/reflection.js.map +1 -0
- package/dist/tools/widget.d.ts +2 -0
- package/dist/tools/widget.js +34 -0
- package/dist/tools/widget.js.map +1 -0
- package/dist/types.d.ts +21 -0
- package/dist/types.js +38 -0
- package/dist/types.js.map +1 -0
- package/package.json +76 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/BridgeServer.cpp +746 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/BridgeServer.h +81 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/GameThreadExecutor.cpp +49 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/GameThreadExecutor.h +37 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/HandlerRegistry.cpp +75 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/HandlerRegistry.h +50 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AnimationHandlers.cpp +1418 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AnimationHandlers.h +43 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AssetHandlers.cpp +1773 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AssetHandlers.h +48 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AudioHandlers.cpp +289 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AudioHandlers.h +18 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/BlueprintHandlers.cpp +1982 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/BlueprintHandlers.h +44 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/DemoHandlers.cpp +1217 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/DemoHandlers.h +71 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/DialogHandlers.cpp +465 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/DialogHandlers.h +49 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/EditorHandlers.cpp +1676 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/EditorHandlers.h +53 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/FoliageHandlers.cpp +876 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/FoliageHandlers.h +22 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/GameplayHandlers.cpp +2222 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/GameplayHandlers.h +54 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/GasHandlers.cpp +783 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/GasHandlers.h +24 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/LandscapeHandlers.cpp +898 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/LandscapeHandlers.h +24 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/LevelHandlers.cpp +1270 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/LevelHandlers.h +34 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/MaterialHandlers.cpp +2190 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/MaterialHandlers.h +53 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/NetworkingHandlers.cpp +554 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/NetworkingHandlers.h +29 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/NiagaraHandlers.cpp +601 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/NiagaraHandlers.h +25 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/PCGHandlers.cpp +1024 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/PCGHandlers.h +25 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/PhysicsHandlers.cpp +370 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/PhysicsHandlers.h +19 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/ReflectionHandlers.cpp +499 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/ReflectionHandlers.h +27 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/SequencerHandlers.cpp +426 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/SequencerHandlers.h +19 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/SplineHandlers.cpp +303 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/SplineHandlers.h +18 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/WidgetHandlers.cpp +985 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/WidgetHandlers.h +27 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/JsonSerializer.cpp +181 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/JsonSerializer.h +42 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/UE_MCP_Bridge.cpp +39 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Public/UE_MCP_BridgeModule.h +14 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/UE_MCP_Bridge.Build.cs +87 -0
- package/plugin/ue_mcp_bridge/UE_MCP_Bridge.uplugin +55 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { categoryTool, bp } from "../types.js";
|
|
3
|
+
export const blueprintTool = categoryTool("blueprint", "Blueprint reading, authoring, and compilation. Covers variables, functions, graphs, nodes, components, interfaces, and event dispatchers.", {
|
|
4
|
+
read: bp("read_blueprint", (p) => ({ path: p.assetPath })),
|
|
5
|
+
list_variables: bp("list_blueprint_variables", (p) => ({ path: p.assetPath })),
|
|
6
|
+
list_functions: bp("list_blueprint_functions", (p) => ({ path: p.assetPath })),
|
|
7
|
+
read_graph: bp("read_blueprint_graph", (p) => ({ path: p.assetPath, graphName: p.graphName })),
|
|
8
|
+
create: bp("create_blueprint", (p) => ({ path: p.assetPath, parentClass: p.parentClass })),
|
|
9
|
+
add_variable: bp("add_variable", (p) => ({ path: p.assetPath, name: p.name, type: p.varType })),
|
|
10
|
+
set_variable_properties: bp("set_variable_properties", (p) => ({ path: p.assetPath, name: p.name, instanceEditable: p.instanceEditable, blueprintReadOnly: p.blueprintReadOnly, category: p.category, tooltip: p.tooltip, replicationType: p.replicationType })),
|
|
11
|
+
create_function: bp("create_function", (p) => ({ path: p.assetPath, functionName: p.functionName })),
|
|
12
|
+
delete_function: bp("delete_function", (p) => ({ path: p.assetPath, functionName: p.functionName })),
|
|
13
|
+
rename_function: bp("rename_function", (p) => ({ path: p.assetPath, oldName: p.oldName, newName: p.newName })),
|
|
14
|
+
add_node: bp("add_node", (p) => ({ path: p.assetPath, graphName: p.graphName ?? "EventGraph", nodeClass: p.nodeClass, nodeParams: p.nodeParams })),
|
|
15
|
+
delete_node: bp("delete_node", (p) => ({ path: p.assetPath, graphName: p.graphName, nodeName: p.nodeName })),
|
|
16
|
+
set_node_property: bp("set_node_property", (p) => ({ path: p.assetPath, graphName: p.graphName, nodeName: p.nodeName, propertyName: p.propertyName, value: p.value })),
|
|
17
|
+
connect_pins: bp("connect_pins"),
|
|
18
|
+
add_component: bp("add_component", (p) => ({ path: p.assetPath, componentClass: p.componentClass, componentName: p.componentName ?? p.componentClass })),
|
|
19
|
+
compile: bp("compile_blueprint", (p) => ({ path: p.assetPath })),
|
|
20
|
+
list_node_types: bp("list_node_types"),
|
|
21
|
+
search_node_types: bp("search_node_types"),
|
|
22
|
+
create_interface: bp("create_blueprint_interface", (p) => ({ path: p.assetPath })),
|
|
23
|
+
add_interface: bp("add_blueprint_interface"),
|
|
24
|
+
add_event_dispatcher: bp("add_event_dispatcher"),
|
|
25
|
+
}, `- read: Read full BP structure. Params: assetPath
|
|
26
|
+
- list_variables: List variables. Params: assetPath
|
|
27
|
+
- list_functions: List functions/graphs. Params: assetPath
|
|
28
|
+
- read_graph: Read graph nodes. Params: assetPath, graphName
|
|
29
|
+
- create: Create Blueprint. Params: assetPath, parentClass?
|
|
30
|
+
- add_variable: Add variable. Params: assetPath, name, varType
|
|
31
|
+
- set_variable_properties: Edit variable. Params: assetPath, name, instanceEditable?, blueprintReadOnly?, category?, tooltip?, replicationType?
|
|
32
|
+
- create_function: Create function. Params: assetPath, functionName
|
|
33
|
+
- delete_function: Delete function. Params: assetPath, functionName
|
|
34
|
+
- rename_function: Rename function. Params: assetPath, oldName, newName
|
|
35
|
+
- add_node: Add graph node. Params: assetPath, graphName?, nodeClass, nodeParams?
|
|
36
|
+
- delete_node: Delete node. Params: assetPath, graphName, nodeName
|
|
37
|
+
- set_node_property: Set node property. Params: assetPath, graphName, nodeName, propertyName, value
|
|
38
|
+
- connect_pins: Wire nodes. Params: sourceNode, sourcePin, targetNode, targetPin, assetPath, graphName?
|
|
39
|
+
- add_component: Add BP component. Params: assetPath, componentClass, componentName?
|
|
40
|
+
- compile: Compile Blueprint. Params: assetPath
|
|
41
|
+
- list_node_types: List node types. Params: category?, includeFunctions?
|
|
42
|
+
- search_node_types: Search nodes. Params: query
|
|
43
|
+
- create_interface: Create BP Interface. Params: assetPath
|
|
44
|
+
- add_interface: Implement interface. Params: blueprintPath, interfacePath
|
|
45
|
+
- add_event_dispatcher: Add dispatcher. Params: blueprintPath, name`, {
|
|
46
|
+
assetPath: z.string().optional().describe("Blueprint asset path"),
|
|
47
|
+
graphName: z.string().optional(), functionName: z.string().optional(),
|
|
48
|
+
name: z.string().optional(), varType: z.string().optional().describe("Variable type"),
|
|
49
|
+
parentClass: z.string().optional(),
|
|
50
|
+
instanceEditable: z.boolean().optional(), blueprintReadOnly: z.boolean().optional(),
|
|
51
|
+
category: z.string().optional(), tooltip: z.string().optional(),
|
|
52
|
+
replicationType: z.string().optional(),
|
|
53
|
+
oldName: z.string().optional(), newName: z.string().optional(),
|
|
54
|
+
nodeClass: z.string().optional(), nodeParams: z.record(z.unknown()).optional(),
|
|
55
|
+
nodeName: z.string().optional(), propertyName: z.string().optional(),
|
|
56
|
+
value: z.unknown().optional(),
|
|
57
|
+
sourceNode: z.string().optional(), sourcePin: z.string().optional(),
|
|
58
|
+
targetNode: z.string().optional(), targetPin: z.string().optional(),
|
|
59
|
+
componentClass: z.string().optional(), componentName: z.string().optional(),
|
|
60
|
+
query: z.string().optional(),
|
|
61
|
+
includeFunctions: z.boolean().optional(),
|
|
62
|
+
blueprintPath: z.string().optional(), interfacePath: z.string().optional(),
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=blueprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blueprint.js","sourceRoot":"","sources":["../../src/tools/blueprint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { categoryTool, bp } from "../types.js";
|
|
3
|
+
export const demoTool = categoryTool("demo", "Neon Shrine demo scene builder and cleanup.", {
|
|
4
|
+
step: bp("demo_step", (p) => p.stepIndex !== undefined ? { step: p.stepIndex } : {}),
|
|
5
|
+
cleanup: bp("demo_cleanup"),
|
|
6
|
+
}, `- step: Execute demo step. Params: stepIndex? (omit for step list)
|
|
7
|
+
- cleanup: Remove demo assets and actors`, {
|
|
8
|
+
stepIndex: z.number().optional().describe("Step index to execute. Omit for step list."),
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=demo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo.js","sourceRoot":"","sources":["../../src/tools/demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,EAAE,EAAgB,MAAM,aAAa,CAAC;AAE7D,MAAM,CAAC,MAAM,QAAQ,GAAY,YAAY,CAC3C,MAAM,EACN,6CAA6C,EAC7C;IACE,IAAI,EAAK,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC;CAC5B,EACD;yCACuC,EACvC;IACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;CACxF,CACF,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { categoryTool, bp } from "../types.js";
|
|
3
|
+
import { startEditor, stopEditor, restartEditor } from "../editor-control.js";
|
|
4
|
+
export const editorTool = categoryTool("editor", "Editor commands, Python execution, PIE, undo/redo, hot reload, viewport, performance, sequencer, build pipeline, logs, editor control.", {
|
|
5
|
+
// Editor Control
|
|
6
|
+
start_editor: {
|
|
7
|
+
handler: async (ctx) => {
|
|
8
|
+
return startEditor(ctx.project);
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
stop_editor: {
|
|
12
|
+
handler: async () => {
|
|
13
|
+
return stopEditor();
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
restart_editor: {
|
|
17
|
+
handler: async (ctx) => {
|
|
18
|
+
return restartEditor(ctx.project, ctx.bridge);
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
// Editor Commands
|
|
22
|
+
execute_command: bp("execute_command"),
|
|
23
|
+
execute_python: bp("execute_python"),
|
|
24
|
+
set_property: bp("set_property"),
|
|
25
|
+
play_in_editor: bp("pie_control", (p) => ({ action: p.pieAction ?? "status" })),
|
|
26
|
+
get_runtime_value: bp("get_runtime_value"),
|
|
27
|
+
hot_reload: bp("hot_reload"),
|
|
28
|
+
undo: bp("undo"),
|
|
29
|
+
redo: bp("redo"),
|
|
30
|
+
get_perf_stats: bp("get_editor_performance_stats"),
|
|
31
|
+
run_stat: bp("run_stat_command"),
|
|
32
|
+
set_scalability: bp("set_scalability"),
|
|
33
|
+
capture_screenshot: bp("capture_screenshot"),
|
|
34
|
+
get_viewport: bp("get_viewport_info"),
|
|
35
|
+
set_viewport: bp("set_viewport_camera"),
|
|
36
|
+
focus_on_actor: bp("focus_viewport_on_actor"),
|
|
37
|
+
create_sequence: bp("create_level_sequence"),
|
|
38
|
+
get_sequence_info: bp("get_sequence_info"),
|
|
39
|
+
add_sequence_track: bp("add_sequence_track"),
|
|
40
|
+
play_sequence: bp("play_sequence", (p) => ({ assetPath: p.assetPath, action: p.sequenceAction ?? "play" })),
|
|
41
|
+
// Build Pipeline
|
|
42
|
+
build_all: bp("build_all"),
|
|
43
|
+
build_geometry: bp("build_geometry"),
|
|
44
|
+
build_hlod: bp("build_hlod"),
|
|
45
|
+
validate_assets: bp("validate_assets"),
|
|
46
|
+
get_build_status: bp("get_build_status"),
|
|
47
|
+
cook_content: bp("cook_content"),
|
|
48
|
+
// Logs
|
|
49
|
+
get_log: bp("get_output_log"),
|
|
50
|
+
search_log: bp("search_log"),
|
|
51
|
+
get_message_log: bp("get_message_log"),
|
|
52
|
+
// Crash Handling
|
|
53
|
+
list_crashes: bp("list_crashes"),
|
|
54
|
+
get_crash_info: bp("get_crash_info"),
|
|
55
|
+
check_for_crashes: bp("check_for_crashes"),
|
|
56
|
+
// Dialogs
|
|
57
|
+
set_dialog_policy: bp("set_dialog_policy"),
|
|
58
|
+
clear_dialog_policy: bp("clear_dialog_policy"),
|
|
59
|
+
get_dialog_policy: bp("get_dialog_policy"),
|
|
60
|
+
list_dialogs: bp("list_dialogs"),
|
|
61
|
+
respond_to_dialog: bp("respond_to_dialog"),
|
|
62
|
+
// Asset Editor
|
|
63
|
+
open_asset: bp("open_asset"),
|
|
64
|
+
// Dev
|
|
65
|
+
reload_bridge: bp("reload_handlers"),
|
|
66
|
+
}, `- start_editor: Launch Unreal Editor with the current project. No params.
|
|
67
|
+
- stop_editor: Close Unreal Editor gracefully (allows save dialogs). No params.
|
|
68
|
+
- restart_editor: Stop then start the editor. No params.
|
|
69
|
+
- execute_command: Run console command. Params: command
|
|
70
|
+
- execute_python: Run Python in editor. Params: code
|
|
71
|
+
- set_property: Set UObject property. Params: objectPath, propertyName, value
|
|
72
|
+
- play_in_editor: PIE control. Params: pieAction ('start'|'stop'|'status')
|
|
73
|
+
- get_runtime_value: Read PIE actor value. Params: actorLabel, propertyName
|
|
74
|
+
- hot_reload: Hot reload C++
|
|
75
|
+
- undo/redo: Undo/redo last transaction
|
|
76
|
+
- get_perf_stats: Editor performance stats
|
|
77
|
+
- run_stat: Run stat command. Params: command
|
|
78
|
+
- set_scalability: Set quality. Params: level
|
|
79
|
+
- capture_screenshot: Screenshot. Params: filename?, resolution?
|
|
80
|
+
- get_viewport: Get viewport camera
|
|
81
|
+
- set_viewport: Set viewport camera. Params: location?, rotation?
|
|
82
|
+
- focus_on_actor: Focus on actor. Params: actorLabel
|
|
83
|
+
- create_sequence: Create Level Sequence. Params: name, packagePath?
|
|
84
|
+
- get_sequence_info: Read sequence. Params: assetPath
|
|
85
|
+
- add_sequence_track: Add track. Params: assetPath, trackType, actorLabel?
|
|
86
|
+
- play_sequence: Play/stop/pause. Params: assetPath, sequenceAction
|
|
87
|
+
- build_all: Build all (geometry, lighting, paths, HLOD)
|
|
88
|
+
- build_geometry: Rebuild BSP geometry
|
|
89
|
+
- build_hlod: Build HLODs
|
|
90
|
+
- validate_assets: Run data validation. Params: directory?
|
|
91
|
+
- get_build_status: Get build/map status
|
|
92
|
+
- cook_content: Cook content. Params: platform?
|
|
93
|
+
- get_log: Read output log. Params: maxLines?, filter?, category?
|
|
94
|
+
- search_log: Search log. Params: query
|
|
95
|
+
- get_message_log: Read message log. Params: logName?
|
|
96
|
+
- set_dialog_policy: Auto-respond to dialogs matching a pattern. Params: pattern, response ('yes'|'no'|'ok'|'cancel'|'retry'|'continue'|'yesall'|'noall')
|
|
97
|
+
- clear_dialog_policy: Clear dialog policies. Params: pattern? (omit to clear all)
|
|
98
|
+
- get_dialog_policy: Get current dialog policies
|
|
99
|
+
- list_dialogs: List active modal dialogs with title, message, and button labels
|
|
100
|
+
- respond_to_dialog: Click a button on the active modal dialog. Params: buttonIndex? or buttonLabel?, action? ('escape')
|
|
101
|
+
- open_asset: Open asset in its editor (e.g. Material Editor, Animation Editor). Params: assetPath
|
|
102
|
+
- reload_bridge: Hot-reload all Python bridge handlers from disk (no editor restart needed)`, {
|
|
103
|
+
command: z.string().optional(),
|
|
104
|
+
code: z.string().optional(),
|
|
105
|
+
objectPath: z.string().optional(),
|
|
106
|
+
propertyName: z.string().optional(),
|
|
107
|
+
value: z.unknown().optional(),
|
|
108
|
+
pieAction: z.enum(["start", "stop", "status"]).optional(),
|
|
109
|
+
actorLabel: z.string().optional(),
|
|
110
|
+
level: z.string().optional(),
|
|
111
|
+
filename: z.string().optional(),
|
|
112
|
+
resolution: z.number().optional(),
|
|
113
|
+
location: z.object({ x: z.number(), y: z.number(), z: z.number() }).optional(),
|
|
114
|
+
rotation: z.object({ pitch: z.number(), yaw: z.number(), roll: z.number() }).optional(),
|
|
115
|
+
name: z.string().optional(),
|
|
116
|
+
packagePath: z.string().optional(),
|
|
117
|
+
assetPath: z.string().optional(),
|
|
118
|
+
trackType: z.string().optional(),
|
|
119
|
+
sequenceAction: z.enum(["play", "stop", "pause"]).optional(),
|
|
120
|
+
directory: z.string().optional(),
|
|
121
|
+
platform: z.string().optional(),
|
|
122
|
+
maxLines: z.number().optional(),
|
|
123
|
+
filter: z.string().optional(),
|
|
124
|
+
category: z.string().optional(),
|
|
125
|
+
query: z.string().optional(),
|
|
126
|
+
logName: z.string().optional(),
|
|
127
|
+
crashFolder: z.string().optional(),
|
|
128
|
+
pattern: z.string().optional().describe("Substring to match in dialog title or message"),
|
|
129
|
+
response: z.enum(["yes", "no", "ok", "cancel", "retry", "continue", "yesall", "noall"]).optional().describe("Auto-response for matched dialogs"),
|
|
130
|
+
buttonIndex: z.number().optional().describe("Index of button to click in active dialog"),
|
|
131
|
+
buttonLabel: z.string().optional().describe("Label of button to click in active dialog"),
|
|
132
|
+
});
|
|
133
|
+
//# sourceMappingURL=editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/tools/editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { categoryTool } from "../types.js";
|
|
3
|
+
import { submitFeedback } from "../github-app.js";
|
|
4
|
+
export const feedbackTool = categoryTool("feedback", "Submit feedback to improve ue-mcp when native tools fall short and execute_python was used as a workaround.", {
|
|
5
|
+
submit: {
|
|
6
|
+
handler: async (_ctx, params) => {
|
|
7
|
+
const title = params.title;
|
|
8
|
+
const summary = params.summary;
|
|
9
|
+
const pythonWorkaround = params.pythonWorkaround;
|
|
10
|
+
const idealTool = params.idealTool;
|
|
11
|
+
const sections = ["## Summary", summary];
|
|
12
|
+
if (idealTool) {
|
|
13
|
+
sections.push("", "## Ideal Tool/Action", idealTool);
|
|
14
|
+
}
|
|
15
|
+
if (pythonWorkaround) {
|
|
16
|
+
sections.push("", "## Python Workaround Used", "```python", pythonWorkaround, "```");
|
|
17
|
+
}
|
|
18
|
+
sections.push("", "---", "*Submitted via ue-mcp agent feedback*");
|
|
19
|
+
const body = sections.join("\n");
|
|
20
|
+
const result = await submitFeedback(title, body);
|
|
21
|
+
return {
|
|
22
|
+
message: "Feedback submitted successfully!",
|
|
23
|
+
issue_url: result.url,
|
|
24
|
+
issue_number: result.number,
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
}, `- submit: Submit feedback about a tool gap. Params: title, summary, pythonWorkaround?, idealTool?`, {
|
|
29
|
+
title: z
|
|
30
|
+
.string()
|
|
31
|
+
.describe("Short title describing the tool gap (do not include project-specific details)"),
|
|
32
|
+
summary: z
|
|
33
|
+
.string()
|
|
34
|
+
.describe("What the user was trying to accomplish and why the native tool couldn't handle it"),
|
|
35
|
+
pythonWorkaround: z
|
|
36
|
+
.string()
|
|
37
|
+
.optional()
|
|
38
|
+
.describe("The execute_python code that was used as a workaround"),
|
|
39
|
+
idealTool: z
|
|
40
|
+
.string()
|
|
41
|
+
.optional()
|
|
42
|
+
.describe("What tool/action should have handled this natively (e.g. 'blueprint(action=set_variable_default)')"),
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAkC,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAY,YAAY,CAC/C,UAAU,EACV,6GAA6G,EAC7G;IACE,MAAM,EAAE;QACN,OAAO,EAAE,KAAK,EAAE,IAAiB,EAAE,MAA+B,EAAE,EAAE;YACpE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAe,CAAC;YACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAiB,CAAC;YACzC,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAsC,CAAC;YACvE,MAAM,SAAS,GAAG,MAAM,CAAC,SAA+B,CAAC;YAEzD,MAAM,QAAQ,GAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAEnD,IAAI,SAAS,EAAE,CAAC;gBACd,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,gBAAgB,EAAE,CAAC;gBACrB,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,2BAA2B,EAC3B,WAAW,EACX,gBAAgB,EAChB,KAAK,CACN,CAAC;YACJ,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,uCAAuC,CAAC,CAAC;YAElE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAEjD,OAAO;gBACL,OAAO,EAAE,kCAAkC;gBAC3C,SAAS,EAAE,MAAM,CAAC,GAAG;gBACrB,YAAY,EAAE,MAAM,CAAC,MAAM;aAC5B,CAAC;QACJ,CAAC;KACF;CACF,EACD,mGAAmG,EACnG;IACE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,CAAC,+EAA+E,CAAC;IAC5F,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,mFAAmF,CAAC;IAChG,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uDAAuD,CAAC;IACpE,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oGAAoG,CAAC;CAClH,CACF,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { categoryTool, bp } from "../types.js";
|
|
3
|
+
export const foliageTool = categoryTool("foliage", "Foliage painting, types, sampling, and settings.", {
|
|
4
|
+
list_types: bp("list_foliage_types"),
|
|
5
|
+
get_settings: bp("get_foliage_type_settings"),
|
|
6
|
+
sample: bp("sample_foliage"),
|
|
7
|
+
paint: bp("paint_foliage"),
|
|
8
|
+
erase: bp("erase_foliage"),
|
|
9
|
+
create_type: bp("create_foliage_type"),
|
|
10
|
+
set_settings: bp("set_foliage_type_settings"),
|
|
11
|
+
}, `- list_types: List foliage types in level
|
|
12
|
+
- get_settings: Read foliage type settings. Params: foliageTypeName
|
|
13
|
+
- sample: Query instances in region. Params: center {x,y,z}, radius, foliageType?
|
|
14
|
+
- paint: Add foliage. Params: foliageType, center {x,y,z}, radius, count?, density?
|
|
15
|
+
- erase: Remove foliage. Params: center {x,y,z}, radius, foliageType?
|
|
16
|
+
- create_type: Create from mesh. Params: meshPath, name?, packagePath?
|
|
17
|
+
- set_settings: Modify type settings. Params: foliageTypeName, settings`, {
|
|
18
|
+
foliageTypeName: z.string().optional(),
|
|
19
|
+
foliageType: z.string().optional(),
|
|
20
|
+
center: z.object({ x: z.number(), y: z.number(), z: z.number() }).optional(),
|
|
21
|
+
radius: z.number().optional(),
|
|
22
|
+
count: z.number().optional(),
|
|
23
|
+
density: z.number().optional(),
|
|
24
|
+
meshPath: z.string().optional(),
|
|
25
|
+
name: z.string().optional(),
|
|
26
|
+
packagePath: z.string().optional(),
|
|
27
|
+
settings: z.record(z.unknown()).optional(),
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=foliage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foliage.js","sourceRoot":"","sources":["../../src/tools/foliage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,EAAE,EAAgB,MAAM,aAAa,CAAC;AAE7D,MAAM,CAAC,MAAM,WAAW,GAAY,YAAY,CAC9C,SAAS,EACT,kDAAkD,EAClD;IACE,UAAU,EAAK,EAAE,CAAC,oBAAoB,CAAC;IACvC,YAAY,EAAG,EAAE,CAAC,2BAA2B,CAAC;IAC9C,MAAM,EAAS,EAAE,CAAC,gBAAgB,CAAC;IACnC,KAAK,EAAU,EAAE,CAAC,eAAe,CAAC;IAClC,KAAK,EAAU,EAAE,CAAC,eAAe,CAAC;IAClC,WAAW,EAAI,EAAE,CAAC,qBAAqB,CAAC;IACxC,YAAY,EAAG,EAAE,CAAC,2BAA2B,CAAC;CAC/C,EACD;;;;;;wEAMsE,EACtE;IACE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CACF,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { categoryTool, bp } from "../types.js";
|
|
3
|
+
export const gameplayTool = categoryTool("gameplay", "Gameplay systems: physics, collision, navigation, input, behavior trees, AI (EQS, perception, State Trees, Smart Objects), game framework.", {
|
|
4
|
+
// Physics & Collision
|
|
5
|
+
set_collision_profile: bp("set_collision_profile"),
|
|
6
|
+
set_simulate_physics: bp("set_simulate_physics"),
|
|
7
|
+
set_collision_enabled: bp("set_collision_enabled"),
|
|
8
|
+
set_physics_properties: bp("set_physics_properties"),
|
|
9
|
+
// Navigation
|
|
10
|
+
rebuild_navigation: bp("rebuild_navigation"),
|
|
11
|
+
get_navmesh_info: bp("get_navmesh_info"),
|
|
12
|
+
project_to_nav: bp("project_point_to_navigation"),
|
|
13
|
+
spawn_nav_modifier: bp("spawn_nav_modifier_volume"),
|
|
14
|
+
// Input
|
|
15
|
+
create_input_action: bp("create_input_action"),
|
|
16
|
+
create_input_mapping: bp("create_input_mapping_context"),
|
|
17
|
+
list_input_assets: bp("list_input_assets"),
|
|
18
|
+
// Behavior Trees
|
|
19
|
+
list_behavior_trees: bp("list_behavior_trees"),
|
|
20
|
+
get_behavior_tree_info: bp("get_behavior_tree_info"),
|
|
21
|
+
create_blackboard: bp("create_blackboard"),
|
|
22
|
+
create_behavior_tree: bp("create_behavior_tree"),
|
|
23
|
+
// EQS
|
|
24
|
+
create_eqs_query: bp("create_eqs_query"),
|
|
25
|
+
list_eqs_queries: bp("list_eqs_queries"),
|
|
26
|
+
// AI Perception
|
|
27
|
+
add_perception: bp("add_perception_component"),
|
|
28
|
+
configure_sense: bp("configure_ai_perception_sense"),
|
|
29
|
+
// State Trees
|
|
30
|
+
create_state_tree: bp("create_state_tree"),
|
|
31
|
+
list_state_trees: bp("list_state_trees"),
|
|
32
|
+
add_state_tree_component: bp("add_state_tree_component"),
|
|
33
|
+
// Smart Objects
|
|
34
|
+
create_smart_object_def: bp("create_smart_object_definition"),
|
|
35
|
+
add_smart_object_component: bp("add_smart_object_component"),
|
|
36
|
+
// Game Framework
|
|
37
|
+
create_game_mode: bp("create_game_mode"),
|
|
38
|
+
create_game_state: bp("create_game_state"),
|
|
39
|
+
create_player_controller: bp("create_player_controller"),
|
|
40
|
+
create_player_state: bp("create_player_state"),
|
|
41
|
+
create_hud: bp("create_hud"),
|
|
42
|
+
set_world_game_mode: bp("set_world_game_mode"),
|
|
43
|
+
get_framework_info: bp("get_game_framework_info"),
|
|
44
|
+
}, `- set_collision_profile: Set collision preset. Params: actorLabel, profileName
|
|
45
|
+
- set_simulate_physics: Toggle physics. Params: actorLabel, simulate
|
|
46
|
+
- set_collision_enabled: Set collision mode. Params: actorLabel, collisionEnabled
|
|
47
|
+
- set_physics_properties: Set mass/damping/gravity. Params: actorLabel, mass?, linearDamping?, angularDamping?, enableGravity?
|
|
48
|
+
- rebuild_navigation: Rebuild navmesh
|
|
49
|
+
- get_navmesh_info: Query nav system
|
|
50
|
+
- project_to_nav: Project point to navmesh. Params: location, extent?
|
|
51
|
+
- spawn_nav_modifier: Place nav modifier. Params: location, extent?, areaClass?
|
|
52
|
+
- create_input_action: Create InputAction. Params: name, packagePath?, valueType?
|
|
53
|
+
- create_input_mapping: Create InputMappingContext. Params: name, packagePath?
|
|
54
|
+
- list_input_assets: List input assets. Params: directory?, recursive?
|
|
55
|
+
- list_behavior_trees: List BTs. Params: directory?, recursive?
|
|
56
|
+
- get_behavior_tree_info: Inspect BT. Params: assetPath
|
|
57
|
+
- create_blackboard: Create Blackboard. Params: name, packagePath?
|
|
58
|
+
- create_behavior_tree: Create BT. Params: name, packagePath?, blackboardPath?
|
|
59
|
+
- create_eqs_query: Create EQS query. Params: name, packagePath?
|
|
60
|
+
- list_eqs_queries: List EQS queries. Params: directory?
|
|
61
|
+
- add_perception: Add AIPerceptionComponent. Params: blueprintPath, senses?
|
|
62
|
+
- configure_sense: Configure perception sense. Params: blueprintPath, senseType (Sight|Hearing|Damage|Touch|Team), settings?
|
|
63
|
+
- create_state_tree: Create StateTree. Params: name, packagePath?
|
|
64
|
+
- list_state_trees: List StateTrees. Params: directory?
|
|
65
|
+
- add_state_tree_component: Add StateTreeComponent. Params: blueprintPath
|
|
66
|
+
- create_smart_object_def: Create SmartObjectDefinition. Params: name, packagePath?
|
|
67
|
+
- add_smart_object_component: Add SmartObjectComponent. Params: blueprintPath
|
|
68
|
+
- create_game_mode: Create GameMode BP. Params: name, packagePath?, parentClass?, defaults? (defaultPawnClass, hudClass, playerControllerClass, gameStateClass)
|
|
69
|
+
- create_game_state: Create GameState BP. Params: name, packagePath?, parentClass?
|
|
70
|
+
- create_player_controller: Create PlayerController BP. Params: name, packagePath?, parentClass?
|
|
71
|
+
- create_player_state: Create PlayerState BP. Params: name, packagePath?
|
|
72
|
+
- create_hud: Create HUD BP. Params: name, packagePath?
|
|
73
|
+
- set_world_game_mode: Set level GameMode override. Params: gameModePath
|
|
74
|
+
- get_framework_info: Get level framework classes`, {
|
|
75
|
+
actorLabel: z.string().optional(),
|
|
76
|
+
profileName: z.string().optional(),
|
|
77
|
+
simulate: z.boolean().optional(),
|
|
78
|
+
collisionEnabled: z.string().optional(),
|
|
79
|
+
mass: z.number().optional(),
|
|
80
|
+
linearDamping: z.number().optional(),
|
|
81
|
+
angularDamping: z.number().optional(),
|
|
82
|
+
enableGravity: z.boolean().optional(),
|
|
83
|
+
location: z.object({ x: z.number(), y: z.number(), z: z.number() }).optional(),
|
|
84
|
+
extent: z.object({ x: z.number(), y: z.number(), z: z.number() }).optional(),
|
|
85
|
+
areaClass: z.string().optional(),
|
|
86
|
+
name: z.string().optional(),
|
|
87
|
+
packagePath: z.string().optional(),
|
|
88
|
+
valueType: z.string().optional(),
|
|
89
|
+
directory: z.string().optional(),
|
|
90
|
+
recursive: z.boolean().optional(),
|
|
91
|
+
assetPath: z.string().optional(),
|
|
92
|
+
blackboardPath: z.string().optional(),
|
|
93
|
+
blueprintPath: z.string().optional(),
|
|
94
|
+
senses: z.array(z.string()).optional(),
|
|
95
|
+
senseType: z.string().optional(),
|
|
96
|
+
settings: z.record(z.unknown()).optional(),
|
|
97
|
+
parentClass: z.string().optional(),
|
|
98
|
+
defaults: z.record(z.string()).optional(),
|
|
99
|
+
gameModePath: z.string().optional(),
|
|
100
|
+
});
|
|
101
|
+
//# sourceMappingURL=gameplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gameplay.js","sourceRoot":"","sources":["../../src/tools/gameplay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { categoryTool, bp } from "../types.js";
|
|
3
|
+
export const gasTool = categoryTool("gas", "Gameplay Ability System: abilities, effects, attribute sets, cues.", {
|
|
4
|
+
add_asc: bp("add_ability_system_component"),
|
|
5
|
+
create_attribute_set: bp("create_attribute_set"),
|
|
6
|
+
add_attribute: bp("add_attribute"),
|
|
7
|
+
create_ability: bp("create_gameplay_ability"),
|
|
8
|
+
set_ability_tags: bp("set_ability_tags"),
|
|
9
|
+
create_effect: bp("create_gameplay_effect"),
|
|
10
|
+
set_effect_modifier: bp("set_effect_modifier"),
|
|
11
|
+
create_cue: bp("create_gameplay_cue"),
|
|
12
|
+
get_info: bp("get_gas_info"),
|
|
13
|
+
}, `- add_asc: Add AbilitySystemComponent. Params: blueprintPath, componentName?
|
|
14
|
+
- create_attribute_set: Create AttributeSet BP. Params: name, packagePath?
|
|
15
|
+
- add_attribute: Add attribute to set. Params: attributeSetPath, attributeName, defaultValue?
|
|
16
|
+
- create_ability: Create GameplayAbility BP. Params: name, packagePath?, parentClass?
|
|
17
|
+
- set_ability_tags: Set tags on ability. Params: abilityPath, ability_tags?, cancel_abilities_with_tag?, activation_required_tags?, activation_blocked_tags?
|
|
18
|
+
- create_effect: Create GameplayEffect BP. Params: name, packagePath?, durationPolicy? (Instant|HasDuration|Infinite)
|
|
19
|
+
- set_effect_modifier: Add modifier. Params: effectPath, attribute, operation?, magnitude?
|
|
20
|
+
- create_cue: Create GameplayCue. Params: name, packagePath?, cueType? (Static|Actor)
|
|
21
|
+
- get_info: Inspect GAS setup. Params: blueprintPath`, {
|
|
22
|
+
blueprintPath: z.string().optional(),
|
|
23
|
+
name: z.string().optional(),
|
|
24
|
+
packagePath: z.string().optional(),
|
|
25
|
+
componentName: z.string().optional(),
|
|
26
|
+
attributeSetPath: z.string().optional(),
|
|
27
|
+
attributeName: z.string().optional(),
|
|
28
|
+
defaultValue: z.number().optional(),
|
|
29
|
+
parentClass: z.string().optional(),
|
|
30
|
+
abilityPath: z.string().optional(),
|
|
31
|
+
ability_tags: z.array(z.string()).optional(),
|
|
32
|
+
cancel_abilities_with_tag: z.array(z.string()).optional(),
|
|
33
|
+
block_abilities_with_tag: z.array(z.string()).optional(),
|
|
34
|
+
activation_required_tags: z.array(z.string()).optional(),
|
|
35
|
+
activation_blocked_tags: z.array(z.string()).optional(),
|
|
36
|
+
effectPath: z.string().optional(),
|
|
37
|
+
attribute: z.string().optional(),
|
|
38
|
+
operation: z.string().optional(),
|
|
39
|
+
magnitude: z.number().optional(),
|
|
40
|
+
durationPolicy: z.string().optional(),
|
|
41
|
+
cueType: z.string().optional(),
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=gas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gas.js","sourceRoot":"","sources":["../../src/tools/gas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,EAAE,EAAgB,MAAM,aAAa,CAAC;AAE7D,MAAM,CAAC,MAAM,OAAO,GAAY,YAAY,CAC1C,KAAK,EACL,oEAAoE,EACpE;IACE,OAAO,EAAc,EAAE,CAAC,8BAA8B,CAAC;IACvD,oBAAoB,EAAE,EAAE,CAAC,sBAAsB,CAAC;IAChD,aAAa,EAAQ,EAAE,CAAC,eAAe,CAAC;IACxC,cAAc,EAAO,EAAE,CAAC,yBAAyB,CAAC;IAClD,gBAAgB,EAAK,EAAE,CAAC,kBAAkB,CAAC;IAC3C,aAAa,EAAQ,EAAE,CAAC,wBAAwB,CAAC;IACjD,mBAAmB,EAAE,EAAE,CAAC,qBAAqB,CAAC;IAC9C,UAAU,EAAW,EAAE,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,EAAa,EAAE,CAAC,cAAc,CAAC;CACxC,EACD;;;;;;;;qDAQmD,EACnD;IACE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,yBAAyB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzD,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxD,uBAAuB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CACF,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { categoryTool, bp } from "../types.js";
|
|
3
|
+
export const landscapeTool = categoryTool("landscape", "Landscape terrain: info, layers, sculpting, painting, materials, heightmap import.", {
|
|
4
|
+
get_info: bp("get_landscape_info"),
|
|
5
|
+
list_layers: bp("list_landscape_layers"),
|
|
6
|
+
sample: bp("sample_landscape"),
|
|
7
|
+
list_splines: bp("list_landscape_splines"),
|
|
8
|
+
get_component: bp("get_landscape_component"),
|
|
9
|
+
sculpt: bp("sculpt_landscape"),
|
|
10
|
+
paint_layer: bp("paint_landscape_layer"),
|
|
11
|
+
set_material: bp("set_landscape_material"),
|
|
12
|
+
add_layer_info: bp("add_landscape_layer_info"),
|
|
13
|
+
import_heightmap: bp("import_landscape_heightmap"),
|
|
14
|
+
}, `- get_info: Get landscape setup
|
|
15
|
+
- list_layers: List paint layers
|
|
16
|
+
- sample: Sample height/layers. Params: x, y
|
|
17
|
+
- list_splines: Read landscape splines
|
|
18
|
+
- get_component: Inspect component. Params: componentIndex
|
|
19
|
+
- sculpt: Sculpt heightmap. Params: x, y, radius, strength, falloff?
|
|
20
|
+
- paint_layer: Paint weight layer. Params: layerName, x, y, radius, strength?
|
|
21
|
+
- set_material: Set landscape material. Params: materialPath
|
|
22
|
+
- add_layer_info: Register paint layer. Params: layerName
|
|
23
|
+
- import_heightmap: Import heightmap file. Params: filePath`, {
|
|
24
|
+
x: z.number().optional(), y: z.number().optional(),
|
|
25
|
+
radius: z.number().optional(), strength: z.number().optional(),
|
|
26
|
+
falloff: z.number().optional(),
|
|
27
|
+
layerName: z.string().optional(),
|
|
28
|
+
materialPath: z.string().optional(),
|
|
29
|
+
filePath: z.string().optional(),
|
|
30
|
+
componentIndex: z.number().optional(),
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=landscape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"landscape.js","sourceRoot":"","sources":["../../src/tools/landscape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,EAAE,EAAgB,MAAM,aAAa,CAAC;AAE7D,MAAM,CAAC,MAAM,aAAa,GAAY,YAAY,CAChD,WAAW,EACX,oFAAoF,EACpF;IACE,QAAQ,EAAW,EAAE,CAAC,oBAAoB,CAAC;IAC3C,WAAW,EAAQ,EAAE,CAAC,uBAAuB,CAAC;IAC9C,MAAM,EAAa,EAAE,CAAC,kBAAkB,CAAC;IACzC,YAAY,EAAO,EAAE,CAAC,wBAAwB,CAAC;IAC/C,aAAa,EAAM,EAAE,CAAC,yBAAyB,CAAC;IAChD,MAAM,EAAa,EAAE,CAAC,kBAAkB,CAAC;IACzC,WAAW,EAAQ,EAAE,CAAC,uBAAuB,CAAC;IAC9C,YAAY,EAAO,EAAE,CAAC,wBAAwB,CAAC;IAC/C,cAAc,EAAK,EAAE,CAAC,0BAA0B,CAAC;IACjD,gBAAgB,EAAG,EAAE,CAAC,4BAA4B,CAAC;CACpD,EACD;;;;;;;;;4DAS0D,EAC1D;IACE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CACF,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { categoryTool, bp } from "../types.js";
|
|
3
|
+
export const levelTool = categoryTool("level", "Level actors, selection, components, level management, volumes, lights, and splines.", {
|
|
4
|
+
get_outliner: bp("get_world_outliner"),
|
|
5
|
+
place_actor: bp("place_actor"),
|
|
6
|
+
delete_actor: bp("delete_actor"),
|
|
7
|
+
get_actor_details: bp("get_actor_details"),
|
|
8
|
+
move_actor: bp("move_actor"),
|
|
9
|
+
select: bp("select_actors"),
|
|
10
|
+
get_selected: bp("get_selected_actors"),
|
|
11
|
+
add_component: bp("add_component_to_actor"),
|
|
12
|
+
set_component_property: bp("set_component_property"),
|
|
13
|
+
get_current: bp("get_current_level"),
|
|
14
|
+
load: bp("load_level"),
|
|
15
|
+
save: bp("save_current_level"),
|
|
16
|
+
list: bp("list_levels"),
|
|
17
|
+
create: bp("create_new_level"),
|
|
18
|
+
spawn_volume: bp("spawn_volume"),
|
|
19
|
+
list_volumes: bp("list_volumes"),
|
|
20
|
+
set_volume_properties: bp("set_volume_properties"),
|
|
21
|
+
spawn_light: bp("spawn_light"),
|
|
22
|
+
set_light_properties: bp("set_light_properties"),
|
|
23
|
+
build_lighting: bp("build_lighting"),
|
|
24
|
+
get_spline_info: bp("get_spline_info"),
|
|
25
|
+
set_spline_points: bp("set_spline_points"),
|
|
26
|
+
}, `- get_outliner: List actors. Params: classFilter?, nameFilter?
|
|
27
|
+
- place_actor: Spawn actor. Params: actorClass, label?, location?, rotation?, scale?, properties?
|
|
28
|
+
- delete_actor: Remove actor. Params: actorLabel
|
|
29
|
+
- get_actor_details: Inspect actor. Params: actorLabel
|
|
30
|
+
- move_actor: Transform actor. Params: actorLabel, location?, rotation?, scale?
|
|
31
|
+
- select: Select actors. Params: actorLabels[]
|
|
32
|
+
- get_selected: Get selection
|
|
33
|
+
- add_component: Add component to actor. Params: actorLabel, componentClass, componentName?
|
|
34
|
+
- set_component_property: Set component prop. Params: actorLabel, componentName, propertyName, value
|
|
35
|
+
- get_current/load/save/list/create: Level management. Params: levelPath?, templateLevel?
|
|
36
|
+
- spawn_volume: Place volume. Params: volumeType, location?, extent?, label?
|
|
37
|
+
- list_volumes: List volumes. Params: volumeType?
|
|
38
|
+
- set_volume_properties: Edit volume. Params: actorLabel, properties
|
|
39
|
+
- spawn_light: Place light. Params: lightType, location?, rotation?, intensity?, color?, label?
|
|
40
|
+
- set_light_properties: Edit light. Params: actorLabel, intensity?, color?, temperature?, castShadows?, attenuationRadius?
|
|
41
|
+
- build_lighting: Build lights. Params: quality?
|
|
42
|
+
- get_spline_info: Read spline. Params: actorLabel
|
|
43
|
+
- set_spline_points: Set spline points. Params: actorLabel, points[], closedLoop?`, {
|
|
44
|
+
actorLabel: z.string().optional(), actorLabels: z.array(z.string()).optional(),
|
|
45
|
+
actorClass: z.string().optional(), label: z.string().optional(),
|
|
46
|
+
location: z.object({ x: z.number(), y: z.number(), z: z.number() }).optional(),
|
|
47
|
+
rotation: z.object({ pitch: z.number(), yaw: z.number(), roll: z.number() }).optional(),
|
|
48
|
+
scale: z.object({ x: z.number(), y: z.number(), z: z.number() }).optional(),
|
|
49
|
+
properties: z.record(z.unknown()).optional(),
|
|
50
|
+
classFilter: z.string().optional(), nameFilter: z.string().optional(),
|
|
51
|
+
componentClass: z.string().optional(), componentName: z.string().optional(),
|
|
52
|
+
propertyName: z.string().optional(), value: z.unknown().optional(),
|
|
53
|
+
levelPath: z.string().optional(), templateLevel: z.string().optional(),
|
|
54
|
+
directory: z.string().optional(), recursive: z.boolean().optional(),
|
|
55
|
+
volumeType: z.string().optional(),
|
|
56
|
+
extent: z.object({ x: z.number(), y: z.number(), z: z.number() }).optional(),
|
|
57
|
+
lightType: z.string().optional(), intensity: z.number().optional(),
|
|
58
|
+
color: z.object({ r: z.number(), g: z.number(), b: z.number() }).optional(),
|
|
59
|
+
temperature: z.number().optional(), castShadows: z.boolean().optional(),
|
|
60
|
+
attenuationRadius: z.number().optional(),
|
|
61
|
+
innerConeAngle: z.number().optional(), outerConeAngle: z.number().optional(),
|
|
62
|
+
quality: z.string().optional(),
|
|
63
|
+
points: z.array(z.object({ x: z.number(), y: z.number(), z: z.number() })).optional(),
|
|
64
|
+
closedLoop: z.boolean().optional(),
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=level.js.map
|