feat(grid): именованные шаблоны сетки кампании
Несколько шаблонов в проекте с ручным сохранением и применением (включает сетку); без автоподстановки. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -38,7 +38,9 @@ import type {
|
||||
SceneMarkerEvent,
|
||||
SceneMarkerState,
|
||||
SceneGrid,
|
||||
SceneGridTemplate,
|
||||
SceneId,
|
||||
GridTemplateId,
|
||||
SceneNpcToken,
|
||||
NpcMapSpawnDragState,
|
||||
SceneNpcTokensSessionEvent,
|
||||
@@ -99,6 +101,10 @@ export const ipcChannels = {
|
||||
deleteMaterial: 'project.deleteMaterial',
|
||||
setMaterialsOrder: 'project.setMaterialsOrder',
|
||||
pickMaterialImage: 'project.pickMaterialImage',
|
||||
addGridTemplate: 'project.addGridTemplate',
|
||||
renameGridTemplate: 'project.renameGridTemplate',
|
||||
deleteGridTemplate: 'project.deleteGridTemplate',
|
||||
applyGridTemplate: 'project.applyGridTemplate',
|
||||
upsertNpc: 'project.upsertNpc',
|
||||
updateNpcFields: 'project.updateNpcFields',
|
||||
updateNpcPosition: 'project.updateNpcPosition',
|
||||
@@ -477,6 +483,27 @@ export type IpcInvokeMap = {
|
||||
| { canceled: true }
|
||||
| { canceled: false; filePath: string; previewDataUrl: string };
|
||||
};
|
||||
[ipcChannels.project.addGridTemplate]: {
|
||||
req: {
|
||||
name: string;
|
||||
type: SceneGridTemplate['type'];
|
||||
sizeN: number;
|
||||
color: string;
|
||||
};
|
||||
res: { project: Project };
|
||||
};
|
||||
[ipcChannels.project.renameGridTemplate]: {
|
||||
req: { templateId: GridTemplateId; name: string };
|
||||
res: { project: Project };
|
||||
};
|
||||
[ipcChannels.project.deleteGridTemplate]: {
|
||||
req: { templateId: GridTemplateId };
|
||||
res: { project: Project };
|
||||
};
|
||||
[ipcChannels.project.applyGridTemplate]: {
|
||||
req: { sceneId: SceneId; templateId: GridTemplateId };
|
||||
res: { scene: Scene };
|
||||
};
|
||||
[ipcChannels.project.upsertNpc]: {
|
||||
req: {
|
||||
npcId?: NpcId;
|
||||
|
||||
Reference in New Issue
Block a user