rpgmaker-mz-mcp 1.0.0

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 (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +425 -0
  3. package/dist/events/commandBuilders.d.ts +405 -0
  4. package/dist/events/commandBuilders.d.ts.map +1 -0
  5. package/dist/events/commandBuilders.js +554 -0
  6. package/dist/events/commandBuilders.js.map +1 -0
  7. package/dist/index.d.ts +3 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +105 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/registry.d.ts +81 -0
  12. package/dist/registry.d.ts.map +1 -0
  13. package/dist/registry.js +49 -0
  14. package/dist/registry.js.map +1 -0
  15. package/dist/tiles/autotile.d.ts +65 -0
  16. package/dist/tiles/autotile.d.ts.map +1 -0
  17. package/dist/tiles/autotile.js +201 -0
  18. package/dist/tiles/autotile.js.map +1 -0
  19. package/dist/tiles/catalog/dungeon.d.ts +16 -0
  20. package/dist/tiles/catalog/dungeon.d.ts.map +1 -0
  21. package/dist/tiles/catalog/dungeon.js +765 -0
  22. package/dist/tiles/catalog/dungeon.js.map +1 -0
  23. package/dist/tiles/catalog/index.d.ts +78 -0
  24. package/dist/tiles/catalog/index.d.ts.map +1 -0
  25. package/dist/tiles/catalog/index.js +115 -0
  26. package/dist/tiles/catalog/index.js.map +1 -0
  27. package/dist/tiles/catalog/inside.d.ts +16 -0
  28. package/dist/tiles/catalog/inside.d.ts.map +1 -0
  29. package/dist/tiles/catalog/inside.js +765 -0
  30. package/dist/tiles/catalog/inside.js.map +1 -0
  31. package/dist/tiles/catalog/outside.d.ts +16 -0
  32. package/dist/tiles/catalog/outside.d.ts.map +1 -0
  33. package/dist/tiles/catalog/outside.js +799 -0
  34. package/dist/tiles/catalog/outside.js.map +1 -0
  35. package/dist/tiles/catalog/overworld.d.ts +16 -0
  36. package/dist/tiles/catalog/overworld.d.ts.map +1 -0
  37. package/dist/tiles/catalog/overworld.js +585 -0
  38. package/dist/tiles/catalog/overworld.js.map +1 -0
  39. package/dist/tiles/catalog/sf.d.ts +16 -0
  40. package/dist/tiles/catalog/sf.d.ts.map +1 -0
  41. package/dist/tiles/catalog/sf.js +1313 -0
  42. package/dist/tiles/catalog/sf.js.map +1 -0
  43. package/dist/tiles/paint.d.ts +20 -0
  44. package/dist/tiles/paint.d.ts.map +1 -0
  45. package/dist/tiles/paint.js +65 -0
  46. package/dist/tiles/paint.js.map +1 -0
  47. package/dist/tiles/png.d.ts +11 -0
  48. package/dist/tiles/png.d.ts.map +1 -0
  49. package/dist/tiles/png.js +180 -0
  50. package/dist/tiles/png.js.map +1 -0
  51. package/dist/tiles/tileCodec.d.ts +95 -0
  52. package/dist/tiles/tileCodec.d.ts.map +1 -0
  53. package/dist/tiles/tileCodec.js +186 -0
  54. package/dist/tiles/tileCodec.js.map +1 -0
  55. package/dist/tiles/tileFlags.d.ts +98 -0
  56. package/dist/tiles/tileFlags.d.ts.map +1 -0
  57. package/dist/tiles/tileFlags.js +129 -0
  58. package/dist/tiles/tileFlags.js.map +1 -0
  59. package/dist/tiles/tilegeom.d.ts +29 -0
  60. package/dist/tiles/tilegeom.d.ts.map +1 -0
  61. package/dist/tiles/tilegeom.js +111 -0
  62. package/dist/tiles/tilegeom.js.map +1 -0
  63. package/dist/tiles/transparency.d.ts +22 -0
  64. package/dist/tiles/transparency.d.ts.map +1 -0
  65. package/dist/tiles/transparency.js +59 -0
  66. package/dist/tiles/transparency.js.map +1 -0
  67. package/dist/tools/actorTools.d.ts +48 -0
  68. package/dist/tools/actorTools.d.ts.map +1 -0
  69. package/dist/tools/actorTools.js +154 -0
  70. package/dist/tools/actorTools.js.map +1 -0
  71. package/dist/tools/allTools.d.ts +8 -0
  72. package/dist/tools/allTools.d.ts.map +1 -0
  73. package/dist/tools/allTools.js +56 -0
  74. package/dist/tools/allTools.js.map +1 -0
  75. package/dist/tools/assetTools.d.ts +113 -0
  76. package/dist/tools/assetTools.d.ts.map +1 -0
  77. package/dist/tools/assetTools.js +97 -0
  78. package/dist/tools/assetTools.js.map +1 -0
  79. package/dist/tools/batchTools.d.ts +3 -0
  80. package/dist/tools/batchTools.d.ts.map +1 -0
  81. package/dist/tools/batchTools.js +138 -0
  82. package/dist/tools/batchTools.js.map +1 -0
  83. package/dist/tools/battleTools.d.ts +72 -0
  84. package/dist/tools/battleTools.d.ts.map +1 -0
  85. package/dist/tools/battleTools.js +322 -0
  86. package/dist/tools/battleTools.js.map +1 -0
  87. package/dist/tools/catalogTools.d.ts +3 -0
  88. package/dist/tools/catalogTools.d.ts.map +1 -0
  89. package/dist/tools/catalogTools.js +134 -0
  90. package/dist/tools/catalogTools.js.map +1 -0
  91. package/dist/tools/classTools.d.ts +85 -0
  92. package/dist/tools/classTools.d.ts.map +1 -0
  93. package/dist/tools/classTools.js +279 -0
  94. package/dist/tools/classTools.js.map +1 -0
  95. package/dist/tools/commonEventTools.d.ts +32 -0
  96. package/dist/tools/commonEventTools.d.ts.map +1 -0
  97. package/dist/tools/commonEventTools.js +150 -0
  98. package/dist/tools/commonEventTools.js.map +1 -0
  99. package/dist/tools/eventCommandTools.d.ts +37 -0
  100. package/dist/tools/eventCommandTools.d.ts.map +1 -0
  101. package/dist/tools/eventCommandTools.js +893 -0
  102. package/dist/tools/eventCommandTools.js.map +1 -0
  103. package/dist/tools/eventPageTools.d.ts +112 -0
  104. package/dist/tools/eventPageTools.d.ts.map +1 -0
  105. package/dist/tools/eventPageTools.js +597 -0
  106. package/dist/tools/eventPageTools.js.map +1 -0
  107. package/dist/tools/itemTools.d.ts +82 -0
  108. package/dist/tools/itemTools.d.ts.map +1 -0
  109. package/dist/tools/itemTools.js +380 -0
  110. package/dist/tools/itemTools.js.map +1 -0
  111. package/dist/tools/listTools.d.ts +58 -0
  112. package/dist/tools/listTools.d.ts.map +1 -0
  113. package/dist/tools/listTools.js +99 -0
  114. package/dist/tools/listTools.js.map +1 -0
  115. package/dist/tools/mapTools.d.ts +270 -0
  116. package/dist/tools/mapTools.d.ts.map +1 -0
  117. package/dist/tools/mapTools.js +1066 -0
  118. package/dist/tools/mapTools.js.map +1 -0
  119. package/dist/tools/moveTools.d.ts +43 -0
  120. package/dist/tools/moveTools.d.ts.map +1 -0
  121. package/dist/tools/moveTools.js +240 -0
  122. package/dist/tools/moveTools.js.map +1 -0
  123. package/dist/tools/objectTools.d.ts +12 -0
  124. package/dist/tools/objectTools.d.ts.map +1 -0
  125. package/dist/tools/objectTools.js +221 -0
  126. package/dist/tools/objectTools.js.map +1 -0
  127. package/dist/tools/paintTools.d.ts +3 -0
  128. package/dist/tools/paintTools.d.ts.map +1 -0
  129. package/dist/tools/paintTools.js +134 -0
  130. package/dist/tools/paintTools.js.map +1 -0
  131. package/dist/tools/pluginScanTools.d.ts +22 -0
  132. package/dist/tools/pluginScanTools.d.ts.map +1 -0
  133. package/dist/tools/pluginScanTools.js +119 -0
  134. package/dist/tools/pluginScanTools.js.map +1 -0
  135. package/dist/tools/pluginTools.d.ts +11 -0
  136. package/dist/tools/pluginTools.d.ts.map +1 -0
  137. package/dist/tools/pluginTools.js +63 -0
  138. package/dist/tools/pluginTools.js.map +1 -0
  139. package/dist/tools/projectTools.d.ts +11 -0
  140. package/dist/tools/projectTools.d.ts.map +1 -0
  141. package/dist/tools/projectTools.js +74 -0
  142. package/dist/tools/projectTools.js.map +1 -0
  143. package/dist/tools/skillTools.d.ts +83 -0
  144. package/dist/tools/skillTools.d.ts.map +1 -0
  145. package/dist/tools/skillTools.js +369 -0
  146. package/dist/tools/skillTools.js.map +1 -0
  147. package/dist/tools/stateTools.d.ts +28 -0
  148. package/dist/tools/stateTools.d.ts.map +1 -0
  149. package/dist/tools/stateTools.js +161 -0
  150. package/dist/tools/stateTools.js.map +1 -0
  151. package/dist/tools/systemTools.d.ts +86 -0
  152. package/dist/tools/systemTools.d.ts.map +1 -0
  153. package/dist/tools/systemTools.js +342 -0
  154. package/dist/tools/systemTools.js.map +1 -0
  155. package/dist/tools/tileTools.d.ts +9 -0
  156. package/dist/tools/tileTools.d.ts.map +1 -0
  157. package/dist/tools/tileTools.js +34 -0
  158. package/dist/tools/tileTools.js.map +1 -0
  159. package/dist/tools/tileTransparency.d.ts +40 -0
  160. package/dist/tools/tileTransparency.d.ts.map +1 -0
  161. package/dist/tools/tileTransparency.js +156 -0
  162. package/dist/tools/tileTransparency.js.map +1 -0
  163. package/dist/tools/tilesetTools.d.ts +23 -0
  164. package/dist/tools/tilesetTools.d.ts.map +1 -0
  165. package/dist/tools/tilesetTools.js +209 -0
  166. package/dist/tools/tilesetTools.js.map +1 -0
  167. package/dist/tools/validationTools.d.ts +50 -0
  168. package/dist/tools/validationTools.d.ts.map +1 -0
  169. package/dist/tools/validationTools.js +229 -0
  170. package/dist/tools/validationTools.js.map +1 -0
  171. package/dist/utils/commit.d.ts +62 -0
  172. package/dist/utils/commit.d.ts.map +1 -0
  173. package/dist/utils/commit.js +119 -0
  174. package/dist/utils/commit.js.map +1 -0
  175. package/dist/utils/fileHandler.d.ts +49 -0
  176. package/dist/utils/fileHandler.d.ts.map +1 -0
  177. package/dist/utils/fileHandler.js +137 -0
  178. package/dist/utils/fileHandler.js.map +1 -0
  179. package/dist/utils/records.d.ts +8 -0
  180. package/dist/utils/records.d.ts.map +1 -0
  181. package/dist/utils/records.js +10 -0
  182. package/dist/utils/records.js.map +1 -0
  183. package/dist/utils/types.d.ts +465 -0
  184. package/dist/utils/types.d.ts.map +1 -0
  185. package/dist/utils/types.js +5 -0
  186. package/dist/utils/types.js.map +1 -0
  187. package/dist/validation/assets.d.ts +53 -0
  188. package/dist/validation/assets.d.ts.map +1 -0
  189. package/dist/validation/assets.js +198 -0
  190. package/dist/validation/assets.js.map +1 -0
  191. package/dist/validation/createRefs.d.ts +37 -0
  192. package/dist/validation/createRefs.d.ts.map +1 -0
  193. package/dist/validation/createRefs.js +89 -0
  194. package/dist/validation/createRefs.js.map +1 -0
  195. package/dist/validation/eventCommands.d.ts +70 -0
  196. package/dist/validation/eventCommands.d.ts.map +1 -0
  197. package/dist/validation/eventCommands.js +273 -0
  198. package/dist/validation/eventCommands.js.map +1 -0
  199. package/dist/validation/gate.d.ts +56 -0
  200. package/dist/validation/gate.d.ts.map +1 -0
  201. package/dist/validation/gate.js +50 -0
  202. package/dist/validation/gate.js.map +1 -0
  203. package/dist/validation/moveCommands.d.ts +31 -0
  204. package/dist/validation/moveCommands.d.ts.map +1 -0
  205. package/dist/validation/moveCommands.js +123 -0
  206. package/dist/validation/moveCommands.js.map +1 -0
  207. package/dist/validation/pluginCommands.d.ts +83 -0
  208. package/dist/validation/pluginCommands.d.ts.map +1 -0
  209. package/dist/validation/pluginCommands.js +134 -0
  210. package/dist/validation/pluginCommands.js.map +1 -0
  211. package/dist/validation/pluginManifest.d.ts +67 -0
  212. package/dist/validation/pluginManifest.d.ts.map +1 -0
  213. package/dist/validation/pluginManifest.js +199 -0
  214. package/dist/validation/pluginManifest.js.map +1 -0
  215. package/dist/validation/references.d.ts +57 -0
  216. package/dist/validation/references.d.ts.map +1 -0
  217. package/dist/validation/references.js +314 -0
  218. package/dist/validation/references.js.map +1 -0
  219. package/package.json +67 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listTools.js","sourceRoot":"","sources":["../../src/tools/listTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,270 @@
1
+ import { MapData, MapEvent, MapInfo, EventCommand, EventPage, Encounter } from '../utils/types.js';
2
+ import { ToolDefinition } from '../registry.js';
3
+ import { ValidationWarning } from '../validation/eventCommands.js';
4
+ import { PreCommit, writeGate } from '../validation/gate.js';
5
+ /**
6
+ * The pre-commit gate every event-writing tool installs: validate the event that
7
+ * is *about* to be written, refuse the write outright if it is structurally
8
+ * malformed (unless `force`), and keep any advisory findings for the response.
9
+ *
10
+ * Reachability is folded in here rather than checked by the caller afterwards
11
+ * because it, too, is block-worthy — an action-button page that can never fire
12
+ * is a dead event, not a style note.
13
+ */
14
+ export declare function eventWriteGate(projectPath: string, mapId: number, force: boolean | undefined, extra?: ValidationWarning[]): ReturnType<typeof writeGate<MapEvent>>;
15
+ /**
16
+ * Trim a freshly-created event down to a confirmation summary for a tool
17
+ * response. The full event echoes every default field of every page (hundreds
18
+ * of tokens even for a bare NPC), yet the caller already knows what it sent and
19
+ * can re-read specifics with get_map_event — so return just id/name/position and
20
+ * a page count. Validation warnings are still computed from the *full* event by
21
+ * the caller before the event is summarized.
22
+ */
23
+ export declare function summarizeCreatedEvent(event: MapEvent): {
24
+ id: number;
25
+ name: string;
26
+ x: number;
27
+ y: number;
28
+ pageCount: number;
29
+ };
30
+ /**
31
+ * Flag an event with an action-button page drawn with priority "below
32
+ * characters" (0) while the event's tile is impassable. Such a page fires only
33
+ * when the player STANDS ON the tile — impossible on a blocked cell — so the
34
+ * event (a !Door on a wall, an entrance trigger on a solid landmark) can never
35
+ * fire at all. Priority "same as characters" (1) triggers from facing, which is
36
+ * what these events want.
37
+ *
38
+ * Structural (`severity: 'error'`): the event is dead on arrival, which is
39
+ * essentially never intended, so the write is refused unless forced. Still fails
40
+ * soft on any *read* problem (e.g. a bare fixture with no tileset) — an
41
+ * unanswerable check must never block.
42
+ */
43
+ export declare function actionButtonReachabilityWarnings(projectPath: string, mapId: number, event: MapEvent): Promise<ValidationWarning[]>;
44
+ /**
45
+ * Get map data by ID
46
+ */
47
+ export declare function getMap(projectPath: string, mapId: number): Promise<MapData>;
48
+ /**
49
+ * Get all map info
50
+ */
51
+ export declare function getMapInfos(projectPath: string): Promise<(MapInfo | null)[]>;
52
+ /**
53
+ * Build a blank MapData mirroring what the RPG Maker MZ editor writes for a
54
+ * freshly-created map: every tile zeroed (unpainted) across all 6 layers and no
55
+ * events. Field order matches the editor's own output so round-tripped files
56
+ * stay tidy. Kept pure (no I/O) so the template shape can be unit-tested.
57
+ */
58
+ export declare function blankMapData(width: number, height: number, tilesetId: number): MapData;
59
+ /**
60
+ * Create a new map: write a fresh `data/MapNNN.json` and register it in the map
61
+ * tree (`data/MapInfos.json`). Allocates the next unused map id, appends a tree
62
+ * entry, and lays down a blank (all-tiles-zeroed) map of the given size.
63
+ *
64
+ * Both files are written through the commit choke point, so a dry-run previews
65
+ * the new map file *and* the MapInfos entry together. Does not touch
66
+ * `System.json`: the editor's map tree is driven entirely by MapInfos, so a new
67
+ * entry is enough for the editor to see the map (`System.editMapId` only tracks
68
+ * which map is open on launch).
69
+ */
70
+ export declare function createMap(projectPath: string, options: {
71
+ name: string;
72
+ width?: number;
73
+ height?: number;
74
+ parentId?: number;
75
+ tilesetId?: number;
76
+ }): Promise<{
77
+ mapId: number;
78
+ mapInfo: MapInfo;
79
+ map: MapData;
80
+ }>;
81
+ /**
82
+ * Delete a map: remove its entry from the map tree (`data/MapInfos.json`) and
83
+ * delete its `data/MapNNN.json` file. Any child maps are **reparented** to the
84
+ * deleted map's own parent rather than deleted with it — so a whole town/dungeon
85
+ * sub-tree isn't wiped by removing one node. Both the tree rewrite and the file
86
+ * deletion go through the commit choke point, so a dry-run previews the tree
87
+ * change and the file removal together.
88
+ *
89
+ * Does not touch `System.json`; if the deleted map happens to be the editor's
90
+ * open/start map that reference is left dangling (the editor tolerates it), same
91
+ * hands-off stance `create_map` takes toward `System.json`.
92
+ */
93
+ export declare function deleteMap(projectPath: string, mapId: number): Promise<{
94
+ mapId: number;
95
+ reparentedTo: number;
96
+ reparentedChildren: number[];
97
+ warnings?: string[];
98
+ }>;
99
+ /** A single map-tree edit: reparent, reorder, rename, or expand/collapse a map. */
100
+ export interface MapTreeUpdate {
101
+ mapId: number;
102
+ parentId?: number;
103
+ order?: number;
104
+ name?: string;
105
+ expanded?: boolean;
106
+ }
107
+ /**
108
+ * Edit the map tree (`data/MapInfos.json`) without touching any map's tiles or
109
+ * events: reparent (move under a different node / to the top level), reorder
110
+ * siblings, rename, or expand/collapse. Applies a batch of per-map updates, then
111
+ * validates the whole tree stays acyclic before committing. Every referenced map
112
+ * (and any non-zero `parentId`) must already exist.
113
+ */
114
+ export declare function updateMapTree(projectPath: string, updates: MapTreeUpdate[]): Promise<{
115
+ updated: MapInfo[];
116
+ }>;
117
+ /**
118
+ * Update map properties. Refuses a width/height change: those would desync the
119
+ * flat `data` tile array (sized `width*height*6`) without repadding it. Use
120
+ * {@link resizeMap} for that.
121
+ */
122
+ export declare function updateMap(projectPath: string, mapId: number, updates: Partial<MapData>): Promise<MapData>;
123
+ /**
124
+ * Rebuild a map's flat tile `data` array for new dimensions, preserving each
125
+ * z-layer's tiles where the old and new grids overlap and zero-filling any
126
+ * newly-exposed cells (cropping when a dimension shrinks). RPG Maker MZ packs
127
+ * the 6 z-layers contiguously into one `width*height*6` array indexed by
128
+ * `(layer*height + y)*width + x`, so a plain width/height swap misaligns every
129
+ * layer — this copies cell-by-cell into a freshly-sized array. Pure (no I/O) so
130
+ * the repadding math can be unit-tested.
131
+ */
132
+ export declare function resizeMapData(oldData: number[], oldWidth: number, oldHeight: number, newWidth: number, newHeight: number): number[];
133
+ /**
134
+ * Resize an existing map to new width/height, repadding every z-layer of its
135
+ * tile `data` array (see {@link resizeMapData}) so the grid stays in sync — the
136
+ * safe path `update_map` refuses. Existing tiles are kept where the grids
137
+ * overlap; shrinking crops the excess. Warns (warn-by-default, never blocks)
138
+ * about any event now left outside the new bounds so the caller can move or
139
+ * remove it. Writes through the commit choke point (dry-run/diff aware).
140
+ */
141
+ export declare function resizeMap(projectPath: string, mapId: number, width: number, height: number): Promise<{
142
+ mapId: number;
143
+ width: number;
144
+ height: number;
145
+ previousWidth: number;
146
+ previousHeight: number;
147
+ warnings?: string[];
148
+ }>;
149
+ /**
150
+ * Set a map's random-encounter list (and optionally its `encounterStep`, the
151
+ * average number of steps between encounters). Replaces `encounterList` wholesale
152
+ * with the given troops — each entry is `{ troopId, weight?, regionSet? }` where
153
+ * `weight` biases the random pick (editor default 5) and `regionSet` restricts the
154
+ * encounter to those map region ids (empty = anywhere). Every `troopId` is
155
+ * validated to exist in Troops.json (throws otherwise, matching create_troop's
156
+ * enemy check), so a bad troop can't sail through the way it does via update_map's
157
+ * raw field-poking. Writes through the commit choke point (dry-run/diff aware).
158
+ */
159
+ export declare function setEncounters(projectPath: string, mapId: number, encounters: Array<{
160
+ troopId: number;
161
+ weight?: number;
162
+ regionSet?: number[];
163
+ }>, encounterStep?: number): Promise<{
164
+ mapId: number;
165
+ encounterList: Encounter[];
166
+ encounterStep: number;
167
+ }>;
168
+ /**
169
+ * Get events from a specific map
170
+ */
171
+ export declare function getMapEvents(projectPath: string, mapId: number): Promise<(MapEvent | null)[]>;
172
+ /**
173
+ * Get a specific event from a map
174
+ */
175
+ export declare function getMapEvent(projectPath: string, mapId: number, eventId: number): Promise<MapEvent | null>;
176
+ /**
177
+ * Update a map event
178
+ */
179
+ export declare function updateMapEvent(projectPath: string, mapId: number, eventId: number, updates: Partial<MapEvent>, precommit?: PreCommit<MapEvent>): Promise<MapEvent>;
180
+ /**
181
+ * Build a blank event page mirroring what the RPG Maker MZ editor writes for a
182
+ * freshly-created event: no graphic, an empty (code-0-terminated) command list,
183
+ * action-button trigger, priority below characters, and default movement. Field
184
+ * values verified against the editor's own output. Pure so the template can be
185
+ * unit-tested and reused (by `create_npc` and `normalizeEventPage`).
186
+ */
187
+ export declare function blankEventPage(): EventPage;
188
+ /**
189
+ * Merge a partial event page onto a blank page so a caller can specify only the
190
+ * fields that differ from the editor's "New Event" default. Top-level fields
191
+ * overwrite; the nested `image` and `conditions` objects deep-merge (so passing
192
+ * just `image.characterName` keeps the other graphic defaults). `list` and
193
+ * `moveRoute`, when omitted, fall back to the blank page's (a valid code-0
194
+ * terminated list / route). A page passed in full round-trips unchanged, so this
195
+ * is safe for callers like `create_npc` that already build a complete page.
196
+ */
197
+ export declare function normalizeEventPage(partial: Partial<EventPage>): EventPage;
198
+ /**
199
+ * Create a new event on a map. Each supplied page is merged onto a blank page
200
+ * (see {@link normalizeEventPage}), so a caller can pass a partial page — only the
201
+ * fields that differ from the editor's "New Event" default — without needing the
202
+ * full RPG Maker page schema. An event with no pages gets one blank page.
203
+ */
204
+ export declare function createMapEvent(projectPath: string, mapId: number, eventData: Omit<MapEvent, 'id' | 'pages'> & {
205
+ pages?: Partial<EventPage>[];
206
+ }, precommit?: PreCommit<MapEvent>): Promise<MapEvent>;
207
+ /**
208
+ * Scan a map's remaining events for command parameters that reference the given
209
+ * (about-to-be-deleted) event id, so the caller can be warned about pages that
210
+ * will point at a now-gone event. Covers the commands whose parameter carries an
211
+ * event id: Set Event Location (203), Show Animation (212), Show Balloon (213),
212
+ * and forced Set Movement Route (205). For 212/213/205 the character id follows
213
+ * the -1 player / 0 this event / N event id convention, so only a value === the
214
+ * deleted id **and > 0** is a real reference. Pure (no I/O); warn-only.
215
+ */
216
+ export declare function eventReferenceWarnings(events: (MapEvent | null)[], deletedId: number): string[];
217
+ /**
218
+ * Delete an event from a map. Warns (never blocks) when other events' pages still
219
+ * reference the deleted event id via Set Event Location / Show Animation / Show
220
+ * Balloon / forced Set Movement Route (see {@link eventReferenceWarnings}).
221
+ */
222
+ export declare function deleteMapEvent(projectPath: string, mapId: number, eventId: number): Promise<{
223
+ success: boolean;
224
+ warnings?: string[];
225
+ }>;
226
+ /**
227
+ * Search events by name
228
+ */
229
+ export declare function searchMapEvents(projectPath: string, mapId: number, searchTerm: string): Promise<MapEvent[]>;
230
+ /**
231
+ * Add a command to an event page
232
+ */
233
+ export declare function addEventCommand(projectPath: string, mapId: number, eventId: number, pageIndex: number, command: EventCommand, position?: number, precommit?: PreCommit<MapEvent>): Promise<MapEvent>;
234
+ /**
235
+ * Get map dimensions
236
+ */
237
+ export declare function getMapDimensions(projectPath: string, mapId: number): Promise<{
238
+ width: number;
239
+ height: number;
240
+ }>;
241
+ /**
242
+ * Read the raw tile ids in a rectangular window of one z-layer — a token-cheap
243
+ * windowed alternative to {@link getMap} for inspecting part of a big painted map.
244
+ * Returns `tiles` as a 2D array (rows top→bottom, each left→right). The rectangle
245
+ * must lie fully within the map bounds (throws otherwise). Uses the pure
246
+ * {@link tileIndex} helper for the flat-array index math. Read-only.
247
+ */
248
+ export declare function getMapRegion(projectPath: string, mapId: number, x: number, y: number, width: number, height: number, layer?: number): Promise<{
249
+ mapId: number;
250
+ x: number;
251
+ y: number;
252
+ width: number;
253
+ height: number;
254
+ layer: number;
255
+ tiles: number[][];
256
+ }>;
257
+ /**
258
+ * Set map tile at specific position
259
+ */
260
+ export declare function setMapTile(projectPath: string, mapId: number, x: number, y: number, layer: number, tileId: number): Promise<void>;
261
+ /**
262
+ * Compute the flat `data` array index for a tile at (x, y) on a z-layer.
263
+ *
264
+ * RPG Maker MZ stores map tiles in a single 1D array of `width * height * 6`
265
+ * entries (6 stacked layers: 2 lower, 2 upper, shadow pen, region ID). Kept as
266
+ * a pure function so the index math can be unit-tested without file I/O.
267
+ */
268
+ export declare function tileIndex(width: number, height: number, x: number, y: number, layer: number): number;
269
+ export declare const mapToolDefinitions: ToolDefinition[];
270
+ //# sourceMappingURL=mapTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapTools.d.ts","sourceRoot":"","sources":["../../src/tools/mapTools.ts"],"names":[],"mappings":"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"}