fix: update split into parts max params

This commit is contained in:
2026-10-05 09:12:19 +05:00
parent a9327eaa27
commit 2a282b48f8
5 changed files with 21 additions and 10 deletions
+9 -2
View File
@@ -70,8 +70,8 @@
- [ ] qr code to text, text to qr code - [ ] qr code to text, text to qr code
- [ ] bar code to text, text to bar code - [ ] bar code to text, text to bar code
- [ ] split-into-parts-png - увеличить максимальные значения, плохо работает для - [ ] split-into-parts-png - в результате надо выводить размеры получившихся
нарезки ассетов файлов
- [ ] split-into-parts-png — режим «по размеру тайла»: указываешь размер тайла - [ ] split-into-parts-png — режим «по размеру тайла»: указываешь размер тайла
(16×16, 32×32…, список `SIZE_PRESETS`), инструмент сам считает сетку — (16×16, 32×32…, список `SIZE_PRESETS`), инструмент сам считает сетку —
сценарий «режу спрайтшит, знаю размер тайла, не знаю сетку» (новый режим: сценарий «режу спрайтшит, знаю размер тайла, не знаю сетку» (новый режим:
@@ -154,6 +154,13 @@
схемой (FA-E1), либо удалить ключ из обеих локалей схемой (FA-E1), либо удалить ключ из обеих локалей
- [ ] неудобно настраивать ползунками, некоторые инструменты удобнее настроить - [ ] неудобно настраивать ползунками, некоторые инструменты удобнее настроить
через drag-n-drop. звучит сложно, но надо придумать процесс через drag-n-drop. звучит сложно, но надо придумать процесс
- [ ] не работает drag-n-drop на полях с range slider, похоже включается
drag-n-drop для всей карточки настроек инструмента
- [ ] результат "split-into-parts" может занимать очень много место вертикально,
возможно стоит придумать максимальную высоту и скролл\сворачивание
- [ ] просмотр картинки в оригинальном размере, и возможно с зумом отдельных
областей, чтобы просмотреть мелкие артефакты, выбор разных подложек -
черная\белая\цветные\серая для проверки прозрачных картинок
- [ ] обдумать объединение пар `inputMode + source` и `resultKind + result` в - [ ] обдумать объединение пар `inputMode + source` и `resultKind + result` в
единую структуру, позволит упростить некоторые вещи - например единую структуру, позволит упростить некоторые вещи - например
`sourceValue` \ `resultValue` в `SchemaPreview.svelte` `sourceValue` \ `resultValue` в `SchemaPreview.svelte`
@@ -102,6 +102,10 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
/* Вложен в PreviewTile.canvas: без растяжения сжимался по контенту и
ломал parts-grid в одну колонку. */
width: 100%;
align-self: stretch;
min-height: clamp(var(--space-brand), 30vh, 60vh); min-height: clamp(var(--space-brand), 30vh, 60vh);
border: var(--size-border) solid var(--color-border); border: var(--size-border) solid var(--color-border);
border-radius: var(--radius-s); border-radius: var(--radius-s);
@@ -309,7 +309,7 @@
const base = toDisplayError(e); const base = toDisplayError(e);
const msg = base.kind === "i18n" ? t(base.key, base.vars) : base.text; const msg = base.kind === "i18n" ? t(base.key, base.vars) : base.text;
throw new Error( throw new Error(
t("chain.stepError", { t("steps.stepError", {
n: i + 1, n: i + 1,
title: stepTitle(stepTool.id), title: stepTitle(stepTool.id),
msg, msg,
+4 -4
View File
@@ -699,18 +699,18 @@ describe("split-into-parts", () => {
} }
}); });
it("работает максимум 6x6 = 36 частей", async () => { it("принимает максимальную сетку 32x32 = 1024 части (потолок стража)", async () => {
const tool = TOOLS.find((t) => t.id === "split-into-parts")!; const tool = TOOLS.find((t) => t.id === "split-into-parts")!;
const files = asFiles( const files = asFiles(
await tool.run({ await tool.run({
source: solid(120, 120), source: solid(120, 120),
params: sanitizeSchemaParams(tool.schema, { params: sanitizeSchemaParams(tool.schema, {
columns: 6, columns: 32,
rows: 6, rows: 32,
}), }),
}), }),
).files; ).files;
expect(files).toHaveLength(36); expect(files).toHaveLength(1024);
}); });
it("выбрасывает errors.tooManyParts при переполнении", () => { it("выбрасывает errors.tooManyParts при переполнении", () => {
+3 -3
View File
@@ -402,7 +402,7 @@ const tileTool: Tool<TileParams> = {
run: imgTool((img, p) => tile(img, p.columns, p.rows)), run: imgTool((img, p) => tile(img, p.columns, p.rows)),
}; };
const MAX_SPLIT_PARTS = 1000; const MAX_SPLIT_PARTS = 1024;
interface SplitPartsParams { interface SplitPartsParams {
columns: number; columns: number;
@@ -413,14 +413,14 @@ export const splitPartsSchema = toolSchema<SplitPartsParams>({
columns: field.number({ columns: field.number({
label: "fields.columns", label: "fields.columns",
min: 1, min: 1,
max: 6, max: 32,
step: 1, step: 1,
default: 2, default: 2,
}), }),
rows: field.number({ rows: field.number({
label: "fields.rows", label: "fields.rows",
min: 1, min: 1,
max: 6, max: 32,
step: 1, step: 1,
default: 2, default: 2,
}), }),