unreal-engine-mcp-server 0.5.21 → 0.5.30

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.
Files changed (382) hide show
  1. package/CHANGELOG.md +247 -4
  2. package/README.md +140 -85
  3. package/dist/automation/bridge.d.ts +8 -0
  4. package/dist/automation/bridge.d.ts.map +1 -1
  5. package/dist/automation/bridge.js +94 -14
  6. package/dist/automation/bridge.js.map +1 -1
  7. package/dist/automation/connection-manager.d.ts.map +1 -1
  8. package/dist/automation/connection-manager.js +13 -5
  9. package/dist/automation/connection-manager.js.map +1 -1
  10. package/dist/automation/handshake.d.ts.map +1 -1
  11. package/dist/automation/handshake.js +40 -27
  12. package/dist/automation/handshake.js.map +1 -1
  13. package/dist/automation/index.d.ts +1 -1
  14. package/dist/automation/index.d.ts.map +1 -1
  15. package/dist/automation/index.js +0 -1
  16. package/dist/automation/index.js.map +1 -1
  17. package/dist/automation/message-handler.d.ts.map +1 -1
  18. package/dist/automation/message-handler.js +13 -9
  19. package/dist/automation/message-handler.js.map +1 -1
  20. package/dist/automation/message-schema.d.ts.map +1 -1
  21. package/dist/automation/message-schema.js +19 -18
  22. package/dist/automation/message-schema.js.map +1 -1
  23. package/dist/automation/request-tracker.d.ts +1 -0
  24. package/dist/automation/request-tracker.d.ts.map +1 -1
  25. package/dist/automation/request-tracker.js +30 -31
  26. package/dist/automation/request-tracker.js.map +1 -1
  27. package/dist/automation/types.d.ts +38 -32
  28. package/dist/automation/types.d.ts.map +1 -1
  29. package/dist/cli.js +14 -16
  30. package/dist/cli.js.map +1 -1
  31. package/dist/config/class-aliases.d.ts.map +1 -1
  32. package/dist/config/class-aliases.js +10 -2
  33. package/dist/config/class-aliases.js.map +1 -1
  34. package/dist/config.d.ts +9 -8
  35. package/dist/config.d.ts.map +1 -1
  36. package/dist/config.js +58 -32
  37. package/dist/config.js.map +1 -1
  38. package/dist/handlers/resource-handlers.d.ts +15 -2
  39. package/dist/handlers/resource-handlers.d.ts.map +1 -1
  40. package/dist/handlers/resource-handlers.js +46 -63
  41. package/dist/handlers/resource-handlers.js.map +1 -1
  42. package/dist/index.d.ts +0 -2
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +42 -48
  45. package/dist/index.js.map +1 -1
  46. package/dist/resources/assets.d.ts.map +1 -1
  47. package/dist/resources/assets.js +34 -9
  48. package/dist/resources/assets.js.map +1 -1
  49. package/dist/resources/levels.d.ts +3 -0
  50. package/dist/resources/levels.d.ts.map +1 -1
  51. package/dist/resources/levels.js +33 -17
  52. package/dist/resources/levels.js.map +1 -1
  53. package/dist/server/resource-registry.d.ts +15 -2
  54. package/dist/server/resource-registry.d.ts.map +1 -1
  55. package/dist/server/resource-registry.js +9 -8
  56. package/dist/server/resource-registry.js.map +1 -1
  57. package/dist/server/tool-registry.d.ts +0 -1
  58. package/dist/server/tool-registry.d.ts.map +1 -1
  59. package/dist/server/tool-registry.js +91 -101
  60. package/dist/server/tool-registry.js.map +1 -1
  61. package/dist/server-setup.d.ts +5 -2
  62. package/dist/server-setup.d.ts.map +1 -1
  63. package/dist/server-setup.js +15 -19
  64. package/dist/server-setup.js.map +1 -1
  65. package/dist/services/health-monitor.d.ts +3 -0
  66. package/dist/services/health-monitor.d.ts.map +1 -1
  67. package/dist/services/health-monitor.js +30 -11
  68. package/dist/services/health-monitor.js.map +1 -1
  69. package/dist/services/metrics-server.d.ts +1 -1
  70. package/dist/services/metrics-server.d.ts.map +1 -1
  71. package/dist/services/metrics-server.js +65 -3
  72. package/dist/services/metrics-server.js.map +1 -1
  73. package/dist/tools/base-tool.d.ts.map +1 -1
  74. package/dist/tools/base-tool.js +14 -16
  75. package/dist/tools/base-tool.js.map +1 -1
  76. package/dist/tools/consolidated-tool-definitions.d.ts +16 -1
  77. package/dist/tools/consolidated-tool-definitions.d.ts.map +1 -1
  78. package/dist/tools/consolidated-tool-definitions.js +1479 -2538
  79. package/dist/tools/consolidated-tool-definitions.js.map +1 -1
  80. package/dist/tools/consolidated-tool-handlers.d.ts.map +1 -1
  81. package/dist/tools/consolidated-tool-handlers.js +195 -217
  82. package/dist/tools/consolidated-tool-handlers.js.map +1 -1
  83. package/dist/tools/dynamic-handler-registry.d.ts +1 -0
  84. package/dist/tools/dynamic-handler-registry.d.ts.map +1 -1
  85. package/dist/tools/dynamic-handler-registry.js +15 -7
  86. package/dist/tools/dynamic-handler-registry.js.map +1 -1
  87. package/dist/tools/dynamic-tool-manager.d.ts +1 -1
  88. package/dist/tools/dynamic-tool-manager.d.ts.map +1 -1
  89. package/dist/tools/dynamic-tool-manager.js +30 -18
  90. package/dist/tools/dynamic-tool-manager.js.map +1 -1
  91. package/dist/tools/editor.d.ts +2 -2
  92. package/dist/tools/editor.d.ts.map +1 -1
  93. package/dist/tools/editor.js +4 -4
  94. package/dist/tools/editor.js.map +1 -1
  95. package/dist/tools/handlers/actor-handlers.d.ts.map +1 -1
  96. package/dist/tools/handlers/actor-handlers.js +66 -7
  97. package/dist/tools/handlers/actor-handlers.js.map +1 -1
  98. package/dist/tools/handlers/ai-handlers.d.ts.map +1 -1
  99. package/dist/tools/handlers/ai-handlers.js +24 -13
  100. package/dist/tools/handlers/ai-handlers.js.map +1 -1
  101. package/dist/tools/handlers/animation-authoring-handlers.d.ts.map +1 -1
  102. package/dist/tools/handlers/animation-authoring-handlers.js +285 -218
  103. package/dist/tools/handlers/animation-authoring-handlers.js.map +1 -1
  104. package/dist/tools/handlers/animation-handlers.d.ts.map +1 -1
  105. package/dist/tools/handlers/animation-handlers.js +69 -21
  106. package/dist/tools/handlers/animation-handlers.js.map +1 -1
  107. package/dist/tools/handlers/asset-handlers.d.ts.map +1 -1
  108. package/dist/tools/handlers/asset-handlers.js +75 -16
  109. package/dist/tools/handlers/asset-handlers.js.map +1 -1
  110. package/dist/tools/handlers/audio-authoring-handlers.d.ts.map +1 -1
  111. package/dist/tools/handlers/audio-authoring-handlers.js +102 -9
  112. package/dist/tools/handlers/audio-authoring-handlers.js.map +1 -1
  113. package/dist/tools/handlers/audio-handlers.d.ts.map +1 -1
  114. package/dist/tools/handlers/audio-handlers.js +48 -13
  115. package/dist/tools/handlers/audio-handlers.js.map +1 -1
  116. package/dist/tools/handlers/blueprint-handlers.d.ts.map +1 -1
  117. package/dist/tools/handlers/blueprint-handlers.js +28 -48
  118. package/dist/tools/handlers/blueprint-handlers.js.map +1 -1
  119. package/dist/tools/handlers/character-handlers.d.ts.map +1 -1
  120. package/dist/tools/handlers/character-handlers.js +13 -12
  121. package/dist/tools/handlers/character-handlers.js.map +1 -1
  122. package/dist/tools/handlers/combat-handlers.d.ts.map +1 -1
  123. package/dist/tools/handlers/combat-handlers.js +12 -12
  124. package/dist/tools/handlers/combat-handlers.js.map +1 -1
  125. package/dist/tools/handlers/common-handlers.d.ts +14 -0
  126. package/dist/tools/handlers/common-handlers.d.ts.map +1 -1
  127. package/dist/tools/handlers/common-handlers.js +117 -9
  128. package/dist/tools/handlers/common-handlers.js.map +1 -1
  129. package/dist/tools/handlers/editor-handlers.d.ts.map +1 -1
  130. package/dist/tools/handlers/editor-handlers.js +139 -67
  131. package/dist/tools/handlers/editor-handlers.js.map +1 -1
  132. package/dist/tools/handlers/effect-handlers.d.ts.map +1 -1
  133. package/dist/tools/handlers/effect-handlers.js +324 -36
  134. package/dist/tools/handlers/effect-handlers.js.map +1 -1
  135. package/dist/tools/handlers/environment-handlers.d.ts.map +1 -1
  136. package/dist/tools/handlers/environment-handlers.js +186 -21
  137. package/dist/tools/handlers/environment-handlers.js.map +1 -1
  138. package/dist/tools/handlers/game-framework-handlers.d.ts.map +1 -1
  139. package/dist/tools/handlers/game-framework-handlers.js +10 -12
  140. package/dist/tools/handlers/game-framework-handlers.js.map +1 -1
  141. package/dist/tools/handlers/gas-handlers.d.ts.map +1 -1
  142. package/dist/tools/handlers/gas-handlers.js +136 -20
  143. package/dist/tools/handlers/gas-handlers.js.map +1 -1
  144. package/dist/tools/handlers/geometry-handlers.d.ts.map +1 -1
  145. package/dist/tools/handlers/geometry-handlers.js +130 -7
  146. package/dist/tools/handlers/geometry-handlers.js.map +1 -1
  147. package/dist/tools/handlers/graph-handlers.d.ts.map +1 -1
  148. package/dist/tools/handlers/graph-handlers.js +46 -11
  149. package/dist/tools/handlers/graph-handlers.js.map +1 -1
  150. package/dist/tools/handlers/input-handlers.d.ts.map +1 -1
  151. package/dist/tools/handlers/input-handlers.js +33 -75
  152. package/dist/tools/handlers/input-handlers.js.map +1 -1
  153. package/dist/tools/handlers/inspect-handlers.d.ts.map +1 -1
  154. package/dist/tools/handlers/inspect-handlers.js +136 -39
  155. package/dist/tools/handlers/inspect-handlers.js.map +1 -1
  156. package/dist/tools/handlers/interaction-handlers.d.ts.map +1 -1
  157. package/dist/tools/handlers/interaction-handlers.js +14 -12
  158. package/dist/tools/handlers/interaction-handlers.js.map +1 -1
  159. package/dist/tools/handlers/inventory-handlers.d.ts.map +1 -1
  160. package/dist/tools/handlers/inventory-handlers.js +19 -12
  161. package/dist/tools/handlers/inventory-handlers.js.map +1 -1
  162. package/dist/tools/handlers/level-handlers.d.ts.map +1 -1
  163. package/dist/tools/handlers/level-handlers.js +166 -149
  164. package/dist/tools/handlers/level-handlers.js.map +1 -1
  165. package/dist/tools/handlers/level-structure-handlers.d.ts.map +1 -1
  166. package/dist/tools/handlers/level-structure-handlers.js +18 -34
  167. package/dist/tools/handlers/level-structure-handlers.js.map +1 -1
  168. package/dist/tools/handlers/manage-tools-handlers.js +3 -3
  169. package/dist/tools/handlers/manage-tools-handlers.js.map +1 -1
  170. package/dist/tools/handlers/material-authoring-handlers.d.ts.map +1 -1
  171. package/dist/tools/handlers/material-authoring-handlers.js +382 -41
  172. package/dist/tools/handlers/material-authoring-handlers.js.map +1 -1
  173. package/dist/tools/handlers/navigation-handlers.d.ts.map +1 -1
  174. package/dist/tools/handlers/navigation-handlers.js +11 -36
  175. package/dist/tools/handlers/navigation-handlers.js.map +1 -1
  176. package/dist/tools/handlers/networking-handlers.d.ts.map +1 -1
  177. package/dist/tools/handlers/networking-handlers.js +17 -15
  178. package/dist/tools/handlers/networking-handlers.js.map +1 -1
  179. package/dist/tools/handlers/niagara-authoring-handlers.d.ts.map +1 -1
  180. package/dist/tools/handlers/niagara-authoring-handlers.js +24 -23
  181. package/dist/tools/handlers/niagara-authoring-handlers.js.map +1 -1
  182. package/dist/tools/handlers/pcg-handlers.d.ts +4 -0
  183. package/dist/tools/handlers/pcg-handlers.d.ts.map +1 -0
  184. package/dist/tools/handlers/pcg-handlers.js +77 -0
  185. package/dist/tools/handlers/pcg-handlers.js.map +1 -0
  186. package/dist/tools/handlers/performance-handlers.d.ts.map +1 -1
  187. package/dist/tools/handlers/performance-handlers.js +35 -42
  188. package/dist/tools/handlers/performance-handlers.js.map +1 -1
  189. package/dist/tools/handlers/pipeline-handlers.d.ts.map +1 -1
  190. package/dist/tools/handlers/pipeline-handlers.js +157 -39
  191. package/dist/tools/handlers/pipeline-handlers.js.map +1 -1
  192. package/dist/tools/handlers/sequence-handlers.d.ts.map +1 -1
  193. package/dist/tools/handlers/sequence-handlers.js +6 -4
  194. package/dist/tools/handlers/sequence-handlers.js.map +1 -1
  195. package/dist/tools/handlers/sessions-handlers.d.ts.map +1 -1
  196. package/dist/tools/handlers/sessions-handlers.js +7 -15
  197. package/dist/tools/handlers/sessions-handlers.js.map +1 -1
  198. package/dist/tools/handlers/spline-handlers.d.ts.map +1 -1
  199. package/dist/tools/handlers/spline-handlers.js +8 -35
  200. package/dist/tools/handlers/spline-handlers.js.map +1 -1
  201. package/dist/tools/handlers/system-handlers.d.ts.map +1 -1
  202. package/dist/tools/handlers/system-handlers.js +100 -26
  203. package/dist/tools/handlers/system-handlers.js.map +1 -1
  204. package/dist/tools/handlers/texture-handlers.d.ts.map +1 -1
  205. package/dist/tools/handlers/texture-handlers.js +14 -0
  206. package/dist/tools/handlers/texture-handlers.js.map +1 -1
  207. package/dist/tools/handlers/volume-handlers.d.ts.map +1 -1
  208. package/dist/tools/handlers/volume-handlers.js +6 -33
  209. package/dist/tools/handlers/volume-handlers.js.map +1 -1
  210. package/dist/tools/handlers/widget-authoring-handlers.d.ts.map +1 -1
  211. package/dist/tools/handlers/widget-authoring-handlers.js +26 -20
  212. package/dist/tools/handlers/widget-authoring-handlers.js.map +1 -1
  213. package/dist/tools/level.d.ts +2 -2
  214. package/dist/tools/level.d.ts.map +1 -1
  215. package/dist/tools/level.js +2 -1
  216. package/dist/tools/level.js.map +1 -1
  217. package/dist/tools/property-dictionary.js +1 -1
  218. package/dist/tools/property-dictionary.js.map +1 -1
  219. package/dist/tools/schemas/core-tools.d.ts +1 -1
  220. package/dist/tools/schemas/core-tools.d.ts.map +1 -1
  221. package/dist/tools/schemas/core-tools.js +94 -57
  222. package/dist/tools/schemas/core-tools.js.map +1 -1
  223. package/dist/tools/tool-definition-utils.d.ts +8 -0
  224. package/dist/tools/tool-definition-utils.d.ts.map +1 -1
  225. package/dist/tools/tool-definition-utils.js +20 -0
  226. package/dist/tools/tool-definition-utils.js.map +1 -1
  227. package/dist/types/automation-responses.d.ts +26 -33
  228. package/dist/types/automation-responses.d.ts.map +1 -1
  229. package/dist/types/env.d.ts.map +1 -1
  230. package/dist/types/env.js +7 -6
  231. package/dist/types/env.js.map +1 -1
  232. package/dist/types/handler-types.d.ts +41 -20
  233. package/dist/types/handler-types.d.ts.map +1 -1
  234. package/dist/types/index.d.ts +2 -2
  235. package/dist/types/index.d.ts.map +1 -1
  236. package/dist/types/index.js.map +1 -1
  237. package/dist/types/tool-interfaces.d.ts +5 -873
  238. package/dist/types/tool-interfaces.d.ts.map +1 -1
  239. package/dist/types/tool-types.d.ts +35 -1
  240. package/dist/types/tool-types.d.ts.map +1 -1
  241. package/dist/unreal-bridge.d.ts.map +1 -1
  242. package/dist/unreal-bridge.js +16 -6
  243. package/dist/unreal-bridge.js.map +1 -1
  244. package/dist/utils/action-constants.d.ts +4 -1
  245. package/dist/utils/action-constants.d.ts.map +1 -1
  246. package/dist/utils/action-constants.js +4 -1
  247. package/dist/utils/action-constants.js.map +1 -1
  248. package/dist/utils/command-validator.d.ts.map +1 -1
  249. package/dist/utils/command-validator.js +5 -4
  250. package/dist/utils/command-validator.js.map +1 -1
  251. package/dist/utils/elicitation.d.ts +5 -2
  252. package/dist/utils/elicitation.d.ts.map +1 -1
  253. package/dist/utils/elicitation.js +38 -21
  254. package/dist/utils/elicitation.js.map +1 -1
  255. package/dist/utils/environment-snapshot.d.ts +17 -0
  256. package/dist/utils/environment-snapshot.d.ts.map +1 -0
  257. package/dist/utils/environment-snapshot.js +242 -0
  258. package/dist/utils/environment-snapshot.js.map +1 -0
  259. package/dist/utils/error-handler.d.ts +1 -11
  260. package/dist/utils/error-handler.d.ts.map +1 -1
  261. package/dist/utils/error-handler.js +41 -25
  262. package/dist/utils/error-handler.js.map +1 -1
  263. package/dist/utils/index.d.ts +2 -1
  264. package/dist/utils/index.d.ts.map +1 -1
  265. package/dist/utils/index.js +2 -1
  266. package/dist/utils/index.js.map +1 -1
  267. package/dist/utils/ini-reader.js +4 -4
  268. package/dist/utils/ini-reader.js.map +1 -1
  269. package/dist/utils/log-reader.d.ts +29 -0
  270. package/dist/utils/log-reader.d.ts.map +1 -0
  271. package/dist/utils/log-reader.js +229 -0
  272. package/dist/utils/log-reader.js.map +1 -0
  273. package/dist/utils/log-redaction.d.ts +4 -0
  274. package/dist/utils/log-redaction.d.ts.map +1 -0
  275. package/dist/utils/log-redaction.js +27 -0
  276. package/dist/utils/log-redaction.js.map +1 -0
  277. package/dist/utils/logger.d.ts +1 -0
  278. package/dist/utils/logger.d.ts.map +1 -1
  279. package/dist/utils/logger.js +20 -7
  280. package/dist/utils/logger.js.map +1 -1
  281. package/dist/utils/normalize.d.ts.map +1 -1
  282. package/dist/utils/normalize.js +31 -30
  283. package/dist/utils/normalize.js.map +1 -1
  284. package/dist/utils/path-security.d.ts.map +1 -1
  285. package/dist/utils/path-security.js +20 -11
  286. package/dist/utils/path-security.js.map +1 -1
  287. package/dist/utils/response-factory.d.ts +1 -1
  288. package/dist/utils/response-factory.d.ts.map +1 -1
  289. package/dist/utils/response-factory.js +17 -3
  290. package/dist/utils/response-factory.js.map +1 -1
  291. package/dist/utils/response-validator.d.ts.map +1 -1
  292. package/dist/utils/response-validator.js +114 -47
  293. package/dist/utils/response-validator.js.map +1 -1
  294. package/dist/utils/safe-json.d.ts.map +1 -1
  295. package/dist/utils/safe-json.js +24 -18
  296. package/dist/utils/safe-json.js.map +1 -1
  297. package/dist/utils/type-coercion.d.ts +2 -3
  298. package/dist/utils/type-coercion.d.ts.map +1 -1
  299. package/dist/utils/type-coercion.js +42 -14
  300. package/dist/utils/type-coercion.js.map +1 -1
  301. package/dist/utils/type-guards.d.ts +2 -0
  302. package/dist/utils/type-guards.d.ts.map +1 -0
  303. package/dist/utils/type-guards.js +4 -0
  304. package/dist/utils/type-guards.js.map +1 -0
  305. package/dist/utils/unreal-command-queue.d.ts +2 -0
  306. package/dist/utils/unreal-command-queue.d.ts.map +1 -1
  307. package/dist/utils/unreal-command-queue.js +80 -54
  308. package/dist/utils/unreal-command-queue.js.map +1 -1
  309. package/dist/utils/validation.d.ts +2 -1
  310. package/dist/utils/validation.d.ts.map +1 -1
  311. package/dist/utils/validation.js +44 -34
  312. package/dist/utils/validation.js.map +1 -1
  313. package/package.json +4 -6
  314. package/server.json +3 -3
  315. package/dist/graphql/loaders.d.ts +0 -64
  316. package/dist/graphql/loaders.d.ts.map +0 -1
  317. package/dist/graphql/loaders.js +0 -117
  318. package/dist/graphql/loaders.js.map +0 -1
  319. package/dist/graphql/resolvers.d.ts +0 -373
  320. package/dist/graphql/resolvers.d.ts.map +0 -1
  321. package/dist/graphql/resolvers.js +0 -776
  322. package/dist/graphql/resolvers.js.map +0 -1
  323. package/dist/graphql/schema.d.ts +0 -5
  324. package/dist/graphql/schema.d.ts.map +0 -1
  325. package/dist/graphql/schema.js +0 -437
  326. package/dist/graphql/schema.js.map +0 -1
  327. package/dist/graphql/server.d.ts +0 -25
  328. package/dist/graphql/server.d.ts.map +0 -1
  329. package/dist/graphql/server.js +0 -119
  330. package/dist/graphql/server.js.map +0 -1
  331. package/dist/graphql/types.d.ts +0 -9
  332. package/dist/graphql/types.d.ts.map +0 -1
  333. package/dist/graphql/types.js +0 -2
  334. package/dist/graphql/types.js.map +0 -1
  335. package/dist/tools/actors.d.ts +0 -212
  336. package/dist/tools/actors.d.ts.map +0 -1
  337. package/dist/tools/actors.js +0 -456
  338. package/dist/tools/actors.js.map +0 -1
  339. package/dist/tools/animation.d.ts +0 -274
  340. package/dist/tools/animation.d.ts.map +0 -1
  341. package/dist/tools/animation.js +0 -773
  342. package/dist/tools/animation.js.map +0 -1
  343. package/dist/tools/assets.d.ts +0 -82
  344. package/dist/tools/assets.d.ts.map +0 -1
  345. package/dist/tools/assets.js +0 -383
  346. package/dist/tools/assets.js.map +0 -1
  347. package/dist/tools/blueprint.d.ts +0 -271
  348. package/dist/tools/blueprint.d.ts.map +0 -1
  349. package/dist/tools/blueprint.js +0 -828
  350. package/dist/tools/blueprint.js.map +0 -1
  351. package/dist/tools/environment.d.ts +0 -37
  352. package/dist/tools/environment.d.ts.map +0 -1
  353. package/dist/tools/environment.js +0 -338
  354. package/dist/tools/environment.js.map +0 -1
  355. package/dist/tools/foliage.d.ts +0 -140
  356. package/dist/tools/foliage.d.ts.map +0 -1
  357. package/dist/tools/foliage.js +0 -405
  358. package/dist/tools/foliage.js.map +0 -1
  359. package/dist/tools/landscape.d.ts +0 -120
  360. package/dist/tools/landscape.d.ts.map +0 -1
  361. package/dist/tools/landscape.js +0 -454
  362. package/dist/tools/landscape.js.map +0 -1
  363. package/dist/tools/lighting.d.ts +0 -240
  364. package/dist/tools/lighting.d.ts.map +0 -1
  365. package/dist/tools/lighting.js +0 -856
  366. package/dist/tools/lighting.js.map +0 -1
  367. package/dist/tools/logs.d.ts +0 -45
  368. package/dist/tools/logs.d.ts.map +0 -1
  369. package/dist/tools/logs.js +0 -235
  370. package/dist/tools/logs.js.map +0 -1
  371. package/dist/tools/niagara.d.ts +0 -277
  372. package/dist/tools/niagara.d.ts.map +0 -1
  373. package/dist/tools/niagara.js +0 -325
  374. package/dist/tools/niagara.js.map +0 -1
  375. package/dist/tools/physics.d.ts +0 -191
  376. package/dist/tools/physics.d.ts.map +0 -1
  377. package/dist/tools/physics.js +0 -492
  378. package/dist/tools/physics.js.map +0 -1
  379. package/dist/tools/sequence.d.ts +0 -139
  380. package/dist/tools/sequence.d.ts.map +0 -1
  381. package/dist/tools/sequence.js +0 -261
  382. package/dist/tools/sequence.js.map +0 -1
@@ -1,454 +0,0 @@
1
- import { ensureVector3 } from '../utils/validation.js';
2
- export class LandscapeTools {
3
- bridge;
4
- automationBridge;
5
- constructor(bridge, automationBridge) {
6
- this.bridge = bridge;
7
- this.automationBridge = automationBridge;
8
- }
9
- setAutomationBridge(automationBridge) { this.automationBridge = automationBridge; }
10
- async createLandscape(params) {
11
- const name = params.name?.trim();
12
- if (!name) {
13
- return { success: false, error: 'Landscape name is required' };
14
- }
15
- if (typeof params.sizeX === 'number' && params.sizeX <= 0) {
16
- return {
17
- success: false,
18
- error: 'Landscape sizeX must be a positive number'
19
- };
20
- }
21
- if (typeof params.sizeY === 'number' && params.sizeY <= 0) {
22
- return {
23
- success: false,
24
- error: 'Landscape sizeY must be a positive number'
25
- };
26
- }
27
- if (!this.automationBridge) {
28
- throw new Error('Automation Bridge not available. Landscape operations require plugin support.');
29
- }
30
- const [locX, locY, locZ] = ensureVector3(params.location ?? [0, 0, 0], 'landscape location');
31
- const processedLocation = [locX, locY, locZ];
32
- const sectionsPerComponent = Math.max(1, Math.floor(params.sectionsPerComponent ?? 1));
33
- const quadsPerSection = Math.max(1, Math.floor(params.quadsPerSection ?? 63));
34
- try {
35
- const componentsX = Math.max(1, Math.floor((params.componentCount ?? Math.max(1, Math.floor((params.sizeX ?? 1000) / 1000)))));
36
- const componentsY = Math.max(1, Math.floor((params.componentCount ?? Math.max(1, Math.floor((params.sizeY ?? 1000) / 1000)))));
37
- const quadsPerComponent = quadsPerSection;
38
- const payload = {
39
- name,
40
- x: processedLocation[0],
41
- y: processedLocation[1],
42
- z: processedLocation[2],
43
- componentsX,
44
- componentsY,
45
- quadsPerComponent,
46
- sectionsPerComponent,
47
- materialPath: params.materialPath || ''
48
- };
49
- const response = await this.automationBridge.sendAutomationRequest('create_landscape', payload, {
50
- timeoutMs: 60000
51
- });
52
- if (response.success === false) {
53
- return {
54
- success: false,
55
- error: response.error || response.message || 'Failed to create landscape actor'
56
- };
57
- }
58
- const result = {
59
- success: true,
60
- message: response.message || 'Landscape actor created',
61
- landscapeName: response.landscapeName || name,
62
- worldPartition: response.worldPartition ?? params.enableWorldPartition ?? false
63
- };
64
- if (response.landscapeActor) {
65
- result.landscapeActor = response.landscapeActor;
66
- }
67
- if (response.warnings) {
68
- result.warnings = response.warnings;
69
- }
70
- if (response.details) {
71
- result.details = response.details;
72
- }
73
- if (params.runtimeGrid) {
74
- result.runtimeGrid = params.runtimeGrid;
75
- }
76
- if (typeof params.isSpatiallyLoaded === 'boolean') {
77
- result.spatiallyLoaded = params.isSpatiallyLoaded;
78
- }
79
- return result;
80
- }
81
- catch (error) {
82
- return {
83
- success: false,
84
- error: `Failed to create landscape actor: ${error instanceof Error ? error.message : String(error)}`
85
- };
86
- }
87
- }
88
- async sculptLandscape(params) {
89
- const [x, y, z] = ensureVector3(params.location ?? [0, 0, 0], 'sculpt location');
90
- const tool = (params.tool || '').trim();
91
- const lowerTool = tool.toLowerCase();
92
- const validTools = new Set(['sculpt', 'smooth', 'flatten', 'ramp', 'erosion', 'hydro', 'noise', 'raise', 'lower']);
93
- const isValidTool = lowerTool.length > 0 && validTools.has(lowerTool);
94
- if (!isValidTool) {
95
- return {
96
- success: false,
97
- error: `Invalid sculpt tool: ${params.tool}`
98
- };
99
- }
100
- if (!this.automationBridge) {
101
- throw new Error('Automation Bridge not available. Landscape operations require plugin support.');
102
- }
103
- const payload = {
104
- landscapeName: params.landscapeName?.trim(),
105
- toolMode: tool,
106
- brushRadius: params.brushSize ?? params.radius ?? 1000,
107
- brushFalloff: params.brushFalloff ?? 0.5,
108
- strength: params.strength ?? 0.1,
109
- location: { x, y, z }
110
- };
111
- const response = await this.automationBridge.sendAutomationRequest('sculpt_landscape', payload);
112
- if (!response.success) {
113
- return {
114
- success: false,
115
- error: response.error || 'Failed to sculpt landscape'
116
- };
117
- }
118
- return {
119
- success: true,
120
- message: `Sculpting applied to ${params.landscapeName}`,
121
- details: response
122
- };
123
- }
124
- async paintLandscape(params) {
125
- if (!this.automationBridge) {
126
- throw new Error('Automation Bridge not available.');
127
- }
128
- const [x, y] = ensureVector3(params.position, 'paint position');
129
- const radius = params.brushSize ?? params.radius ?? 1000;
130
- const minX = Math.floor(x - radius);
131
- const maxX = Math.floor(x + radius);
132
- const minY = Math.floor(y - radius);
133
- const maxY = Math.floor(y + radius);
134
- const payload = {
135
- landscapeName: params.landscapeName?.trim(),
136
- layerName: params.layerName?.trim(),
137
- region: { minX, minY, maxX, maxY },
138
- strength: params.strength ?? 1.0
139
- };
140
- const response = await this.automationBridge.sendAutomationRequest('paint_landscape_layer', payload);
141
- if (!response.success) {
142
- return {
143
- success: false,
144
- error: response.error || 'Failed to paint landscape layer'
145
- };
146
- }
147
- return {
148
- success: true,
149
- message: `Painted layer ${params.layerName}`,
150
- details: response
151
- };
152
- }
153
- async createProceduralTerrain(params) {
154
- if (!this.automationBridge) {
155
- throw new Error('Automation Bridge not available. Procedural terrain creation requires plugin support.');
156
- }
157
- try {
158
- const payload = {
159
- name: params.name,
160
- location: params.location || [0, 0, 0],
161
- sizeX: params.sizeX || 2000,
162
- sizeY: params.sizeY || 2000,
163
- subdivisions: params.subdivisions || 50,
164
- heightFunction: params.heightFunction || 'math.sin(x/100) * 50 + math.cos(y/100) * 30',
165
- material: params.material,
166
- ...params.settings
167
- };
168
- const response = await this.automationBridge.sendAutomationRequest('create_procedural_terrain', payload, {
169
- timeoutMs: 120000
170
- });
171
- if (response.success === false) {
172
- return {
173
- success: false,
174
- error: response.error || response.message || 'Failed to create procedural terrain',
175
- message: response.message || 'Failed to create procedural terrain'
176
- };
177
- }
178
- const result = (response.result ?? {});
179
- return {
180
- success: true,
181
- message: response.message || `Created procedural terrain '${params.name}'`,
182
- actorName: result.actor_name,
183
- vertices: result.vertices,
184
- triangles: result.triangles,
185
- size: result.size,
186
- subdivisions: result.subdivisions,
187
- details: result
188
- };
189
- }
190
- catch (error) {
191
- return {
192
- success: false,
193
- error: `Failed to create procedural terrain: ${error instanceof Error ? error.message : String(error)}`
194
- };
195
- }
196
- }
197
- async createLandscapeGrassType(params) {
198
- if (!this.automationBridge) {
199
- throw new Error('Automation Bridge not available. Landscape operations require plugin support.');
200
- }
201
- const name = typeof params.name === 'string' ? params.name.trim() : '';
202
- if (!name) {
203
- return { success: false, error: 'Grass type name is required' };
204
- }
205
- const meshPathRaw = typeof params.meshPath === 'string' && params.meshPath.trim().length > 0
206
- ? params.meshPath.trim()
207
- : (typeof params.path === 'string' && params.path.trim().length > 0
208
- ? params.path.trim()
209
- : (typeof params.staticMesh === 'string' && params.staticMesh.trim().length > 0
210
- ? params.staticMesh.trim()
211
- : ''));
212
- if (!meshPathRaw) {
213
- return { success: false, error: 'meshPath is required to create a landscape grass type' };
214
- }
215
- try {
216
- const response = await this.automationBridge.sendAutomationRequest('create_landscape_grass_type', {
217
- name,
218
- meshPath: meshPathRaw,
219
- density: params.density || 1.0,
220
- minScale: params.minScale || 0.8,
221
- maxScale: params.maxScale || 1.2
222
- }, { timeoutMs: 90000 });
223
- if (response && response.success === false) {
224
- return {
225
- success: false,
226
- error: response.error || response.message || 'Failed to create landscape grass type'
227
- };
228
- }
229
- const result = (response.result ?? {});
230
- return {
231
- success: true,
232
- message: response.message || `Landscape grass type '${name}' created`,
233
- assetPath: result.asset_path || response.assetPath || response.asset_path
234
- };
235
- }
236
- catch (error) {
237
- return {
238
- success: false,
239
- error: `Failed to create landscape grass type: ${error instanceof Error ? error.message : String(error)}`
240
- };
241
- }
242
- }
243
- async setLandscapeMaterial(params) {
244
- const landscapeName = typeof params.landscapeName === 'string' ? params.landscapeName.trim() : '';
245
- const materialPath = typeof params.materialPath === 'string' ? params.materialPath.trim() : '';
246
- if (!landscapeName) {
247
- return { success: false, error: 'Landscape name is required' };
248
- }
249
- if (!materialPath) {
250
- return { success: false, error: 'materialPath is required' };
251
- }
252
- if (!this.automationBridge) {
253
- throw new Error('Automation Bridge not available. Landscape operations require plugin support.');
254
- }
255
- try {
256
- const response = await this.automationBridge.sendAutomationRequest('set_landscape_material', {
257
- landscapeName,
258
- materialPath
259
- }, { timeoutMs: 60000 });
260
- if (response && response.success === false) {
261
- return {
262
- success: false,
263
- error: response.error || response.message || 'Failed to set landscape material'
264
- };
265
- }
266
- return {
267
- success: true,
268
- message: response.message || `Landscape material set on '${landscapeName}'`,
269
- landscapeName: response.landscapeName || landscapeName,
270
- materialPath: response.materialPath || materialPath
271
- };
272
- }
273
- catch (error) {
274
- return {
275
- success: false,
276
- error: `Failed to set landscape material: ${error instanceof Error ? error.message : String(error)}`
277
- };
278
- }
279
- }
280
- async createLandscapeGrass(params) {
281
- const commands = [];
282
- commands.push(`CreateLandscapeGrass ${params.landscapeName} ${params.grassType}`);
283
- if (params.density !== undefined) {
284
- commands.push(`SetGrassDensity ${params.grassType} ${params.density}`);
285
- }
286
- if (params.minScale !== undefined && params.maxScale !== undefined) {
287
- commands.push(`SetGrassScale ${params.grassType} ${params.minScale} ${params.maxScale}`);
288
- }
289
- if (params.randomRotation !== undefined) {
290
- commands.push(`SetGrassRandomRotation ${params.grassType} ${params.randomRotation}`);
291
- }
292
- await this.bridge.executeConsoleCommands(commands);
293
- return { success: true, message: `Grass type ${params.grassType} created on landscape` };
294
- }
295
- async updateLandscapeCollision(params) {
296
- const commands = [];
297
- if (params.collisionMipLevel !== undefined) {
298
- commands.push(`SetLandscapeCollisionMipLevel ${params.landscapeName} ${params.collisionMipLevel}`);
299
- }
300
- if (params.simpleCollision !== undefined) {
301
- commands.push(`SetLandscapeSimpleCollision ${params.landscapeName} ${params.simpleCollision}`);
302
- }
303
- commands.push(`UpdateLandscapeCollision ${params.landscapeName}`);
304
- await this.bridge.executeConsoleCommands(commands);
305
- return { success: true, message: 'Landscape collision updated' };
306
- }
307
- async retopologizeLandscape(params) {
308
- const commands = [];
309
- if (params.targetTriangleCount !== undefined) {
310
- commands.push(`SetRetopologizeTarget ${params.targetTriangleCount}`);
311
- }
312
- if (params.preserveDetails !== undefined) {
313
- commands.push(`SetRetopologizePreserveDetails ${params.preserveDetails}`);
314
- }
315
- commands.push(`RetopologizeLandscape ${params.landscapeName}`);
316
- await this.bridge.executeConsoleCommands(commands);
317
- return { success: true, message: 'Landscape retopologized' };
318
- }
319
- async createWaterBody(params) {
320
- const loc = params.location || [0, 0, 0];
321
- const size = params.size || [1000, 1000];
322
- const depth = params.depth || 100;
323
- const command = `CreateWaterBody ${params.type} ${params.name} ${loc.join(' ')} ${size.join(' ')} ${depth}`;
324
- return this.bridge.executeConsoleCommand(command);
325
- }
326
- async configureWorldPartition(params) {
327
- if (!this.automationBridge) {
328
- throw new Error('Automation Bridge not available. World Partition operations require plugin support.');
329
- }
330
- try {
331
- const response = await this.automationBridge.sendAutomationRequest('configure_landscape_world_partition', {
332
- landscapeName: params.landscapeName,
333
- enableSpatialLoading: params.enableSpatialLoading,
334
- runtimeGrid: params.runtimeGrid || '',
335
- dataLayers: params.dataLayers || [],
336
- streamingDistance: params.streamingDistance
337
- }, {
338
- timeoutMs: 60000
339
- });
340
- if (response.success === false) {
341
- return {
342
- success: false,
343
- error: response.error || response.message || 'World Partition configuration failed'
344
- };
345
- }
346
- return {
347
- success: true,
348
- message: response.message || 'World Partition configured',
349
- changes: response.changes
350
- };
351
- }
352
- catch (err) {
353
- return { success: false, error: `Failed to configure World Partition: ${err instanceof Error ? err.message : String(err)}` };
354
- }
355
- }
356
- async setDataLayers(params) {
357
- try {
358
- const commands = [];
359
- if (params.operation === 'set' || params.operation === 'add') {
360
- for (const layerName of params.dataLayerNames) {
361
- commands.push(`wp.Runtime.SetDataLayerRuntimeState Loaded ${layerName}`);
362
- }
363
- }
364
- else if (params.operation === 'remove') {
365
- for (const layerName of params.dataLayerNames) {
366
- commands.push(`wp.Runtime.SetDataLayerRuntimeState Unloaded ${layerName}`);
367
- }
368
- }
369
- await this.bridge.executeConsoleCommands(commands);
370
- return {
371
- success: true,
372
- message: `Data layers ${params.operation === 'add' ? 'added' : params.operation === 'remove' ? 'removed' : 'set'} for landscape`,
373
- layers: params.dataLayerNames
374
- };
375
- }
376
- catch (err) {
377
- return { success: false, error: `Failed to manage data layers: ${err}` };
378
- }
379
- }
380
- async configureStreamingCells(params) {
381
- const commands = [];
382
- if (params.loadingRange !== undefined) {
383
- commands.push(`wp.Runtime.OverrideRuntimeSpatialHashLoadingRange -grid=0 -range=${params.loadingRange}`);
384
- }
385
- if (params.enableHLOD !== undefined) {
386
- commands.push(`wp.Runtime.HLOD ${params.enableHLOD ? '1' : '0'}`);
387
- }
388
- commands.push('wp.Runtime.ToggleDrawRuntimeHash2D');
389
- try {
390
- await this.bridge.executeConsoleCommands(commands);
391
- return {
392
- success: true,
393
- message: 'Streaming cells configured for World Partition',
394
- settings: {
395
- cellSize: params.cellSize,
396
- loadingRange: params.loadingRange,
397
- hlod: params.enableHLOD
398
- }
399
- };
400
- }
401
- catch (err) {
402
- return { success: false, error: `Failed to configure streaming cells: ${err}` };
403
- }
404
- }
405
- async modifyHeightmap(params) {
406
- if (!this.automationBridge) {
407
- throw new Error('Automation Bridge not available. Landscape operations require plugin support.');
408
- }
409
- const { landscapeName, heightData, minX, minY, maxX, maxY } = params;
410
- if (!landscapeName) {
411
- return { success: false, error: 'Landscape name is required' };
412
- }
413
- if (!heightData || !Array.isArray(heightData) || heightData.length === 0) {
414
- return { success: false, error: 'heightData array is required' };
415
- }
416
- const width = maxX - minX + 1;
417
- const height = maxY - minY + 1;
418
- if (heightData.length !== width * height) {
419
- return {
420
- success: false,
421
- error: `Height data length (${heightData.length}) does not match region dimensions (${width}x${height} = ${width * height})`
422
- };
423
- }
424
- const timeoutMs = params.timeoutMs ?? 90000;
425
- try {
426
- const response = await this.automationBridge.sendAutomationRequest('modify_heightmap', {
427
- landscapeName,
428
- heightData,
429
- minX,
430
- minY,
431
- maxX,
432
- maxY,
433
- updateNormals: params.updateNormals ?? true,
434
- skipFlush: params.skipFlush ?? false
435
- }, {
436
- timeoutMs
437
- });
438
- if (response.success === false) {
439
- return {
440
- success: false,
441
- error: response.error || response.message || 'Failed to modify heightmap'
442
- };
443
- }
444
- return {
445
- success: true,
446
- message: response.message || 'Heightmap modified successfully'
447
- };
448
- }
449
- catch (err) {
450
- return { success: false, error: `Failed to modify heightmap: ${err instanceof Error ? err.message : String(err)}` };
451
- }
452
- }
453
- }
454
- //# sourceMappingURL=landscape.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"landscape.js","sourceRoot":"","sources":["../../src/tools/landscape.ts"],"names":[],"mappings":"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"}