diff --git a/README.md b/README.md new file mode 100644 index 0000000..5ed3985 --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +# Math Tasks Generator + +Проект для генерации заданий по математике для детей 7–9 лет. + +## Форматы + +- **PDF** — A4 листы, готовые к распечатке +- **HTML** — промежуточный формат для просмотра всех страниц +- **JSON** — исходный файл с описанием задания + +## Оформление + +Задания оформлены с лаконичной но элегантной графикой. Каждая строка с примером сопровождается небольшой картинкой — ребёнок "собирает" ресурсы, решая примеры. Помимо мелких картинок используются крупные фоновые изображения. + +Для генерации изображений используется сервис **Banatie**. + +## JSON-формат задания + +В JSON-файле указываются: + +- **Формат задания (промпт)** — шаблон вида `A * X + B = `, где A, X, B — переменные с диапазонами значений (например A от 1 до 5, X от 1 до 3, B от 4 до 8) +- **Папка с мелкими картинками** — иконки для каждого примера +- **Пути к крупным картинкам** — фоновые изображения для страниц + +## Рабочий процесс + +Взаимодействие через Claude Code: + +1. Генерация крупных фоновых картинок для задания через Banatie +2. Генерация набора мелких картинок для примеров через Banatie +3. Описание идеи задания → генерация JSON-файла +4. Ревью JSON-файла +5. Генерация HTML с готовым заданием (с указанием количества страниц) +6. Ревью HTML +7. Генерация PDF для печати diff --git a/assets/footers/planet1.jpeg b/assets/footers/planet1.jpeg new file mode 100644 index 0000000..16ceb38 Binary files /dev/null and b/assets/footers/planet1.jpeg differ diff --git a/assets/footers/planet2.jpeg b/assets/footers/planet2.jpeg new file mode 100644 index 0000000..3ae0fe1 Binary files /dev/null and b/assets/footers/planet2.jpeg differ diff --git a/assets/footers/planet3.jpeg b/assets/footers/planet3.jpeg new file mode 100644 index 0000000..dec7ad6 Binary files /dev/null and b/assets/footers/planet3.jpeg differ diff --git a/assets/footers/planet4.jpeg b/assets/footers/planet4.jpeg new file mode 100644 index 0000000..3f379a0 Binary files /dev/null and b/assets/footers/planet4.jpeg differ diff --git a/assets/footers/planet5.jpeg b/assets/footers/planet5.jpeg new file mode 100644 index 0000000..652f00a Binary files /dev/null and b/assets/footers/planet5.jpeg differ diff --git a/assets/footers/planet6.jpeg b/assets/footers/planet6.jpeg new file mode 100644 index 0000000..737fff4 Binary files /dev/null and b/assets/footers/planet6.jpeg differ diff --git a/assets/hero-images/spaceship1.jpeg b/assets/hero-images/spaceship1.jpeg new file mode 100644 index 0000000..c481458 Binary files /dev/null and b/assets/hero-images/spaceship1.jpeg differ diff --git a/assets/hero-images/spaceship2.jpeg b/assets/hero-images/spaceship2.jpeg new file mode 100644 index 0000000..d721436 Binary files /dev/null and b/assets/hero-images/spaceship2.jpeg differ diff --git a/assets/hero-images/spaceship3.jpeg b/assets/hero-images/spaceship3.jpeg new file mode 100644 index 0000000..f3c7c4e Binary files /dev/null and b/assets/hero-images/spaceship3.jpeg differ diff --git a/assets/hero-images/spaceship4.jpeg b/assets/hero-images/spaceship4.jpeg new file mode 100644 index 0000000..97e174e Binary files /dev/null and b/assets/hero-images/spaceship4.jpeg differ diff --git a/assets/hero-images/spaceship5.jpeg b/assets/hero-images/spaceship5.jpeg new file mode 100644 index 0000000..91e5655 Binary files /dev/null and b/assets/hero-images/spaceship5.jpeg differ diff --git a/assets/hero-images/spaceship6.jpeg b/assets/hero-images/spaceship6.jpeg new file mode 100644 index 0000000..5813697 Binary files /dev/null and b/assets/hero-images/spaceship6.jpeg differ diff --git a/assets/icons/pack1/minerals1-0-0.png b/assets/icons/pack1/minerals1-0-0.png new file mode 100644 index 0000000..aad1041 Binary files /dev/null and b/assets/icons/pack1/minerals1-0-0.png differ diff --git a/assets/icons/pack1/minerals1-0-1.png b/assets/icons/pack1/minerals1-0-1.png new file mode 100644 index 0000000..1e3377f Binary files /dev/null and b/assets/icons/pack1/minerals1-0-1.png differ diff --git a/assets/icons/pack1/minerals1-0-2.png b/assets/icons/pack1/minerals1-0-2.png new file mode 100644 index 0000000..c8117f0 Binary files /dev/null and b/assets/icons/pack1/minerals1-0-2.png differ diff --git a/assets/icons/pack1/minerals1-0-3.png b/assets/icons/pack1/minerals1-0-3.png new file mode 100644 index 0000000..725ef8a Binary files /dev/null and b/assets/icons/pack1/minerals1-0-3.png differ diff --git a/assets/icons/pack1/minerals1-1-0.png b/assets/icons/pack1/minerals1-1-0.png new file mode 100644 index 0000000..a274cd9 Binary files /dev/null and b/assets/icons/pack1/minerals1-1-0.png differ diff --git a/assets/icons/pack1/minerals1-1-1.png b/assets/icons/pack1/minerals1-1-1.png new file mode 100644 index 0000000..2ddcab2 Binary files /dev/null and b/assets/icons/pack1/minerals1-1-1.png differ diff --git a/assets/icons/pack1/minerals1-1-2.png b/assets/icons/pack1/minerals1-1-2.png new file mode 100644 index 0000000..c9979b1 Binary files /dev/null and b/assets/icons/pack1/minerals1-1-2.png differ diff --git a/assets/icons/pack1/minerals1-1-3.png b/assets/icons/pack1/minerals1-1-3.png new file mode 100644 index 0000000..31c647f Binary files /dev/null and b/assets/icons/pack1/minerals1-1-3.png differ diff --git a/assets/icons/pack1/minerals1-2-0.png b/assets/icons/pack1/minerals1-2-0.png new file mode 100644 index 0000000..28f929d Binary files /dev/null and b/assets/icons/pack1/minerals1-2-0.png differ diff --git a/assets/icons/pack1/minerals1-2-1.png b/assets/icons/pack1/minerals1-2-1.png new file mode 100644 index 0000000..150ff3b Binary files /dev/null and b/assets/icons/pack1/minerals1-2-1.png differ diff --git a/assets/icons/pack1/minerals1-2-2.png b/assets/icons/pack1/minerals1-2-2.png new file mode 100644 index 0000000..8040462 Binary files /dev/null and b/assets/icons/pack1/minerals1-2-2.png differ diff --git a/assets/icons/pack1/minerals1-2-3.png b/assets/icons/pack1/minerals1-2-3.png new file mode 100644 index 0000000..788b192 Binary files /dev/null and b/assets/icons/pack1/minerals1-2-3.png differ diff --git a/assets/icons/pack1/minerals1-3-0.png b/assets/icons/pack1/minerals1-3-0.png new file mode 100644 index 0000000..8557b01 Binary files /dev/null and b/assets/icons/pack1/minerals1-3-0.png differ diff --git a/assets/icons/pack1/minerals1-3-1.png b/assets/icons/pack1/minerals1-3-1.png new file mode 100644 index 0000000..28be380 Binary files /dev/null and b/assets/icons/pack1/minerals1-3-1.png differ diff --git a/assets/icons/pack1/minerals1-3-2.png b/assets/icons/pack1/minerals1-3-2.png new file mode 100644 index 0000000..21c925d Binary files /dev/null and b/assets/icons/pack1/minerals1-3-2.png differ diff --git a/assets/icons/pack1/minerals1-3-3.png b/assets/icons/pack1/minerals1-3-3.png new file mode 100644 index 0000000..9c002af Binary files /dev/null and b/assets/icons/pack1/minerals1-3-3.png differ diff --git a/assets/icons/pack1/minerals2-0-0.png b/assets/icons/pack1/minerals2-0-0.png new file mode 100644 index 0000000..05b7272 Binary files /dev/null and b/assets/icons/pack1/minerals2-0-0.png differ diff --git a/assets/icons/pack1/minerals2-0-1.png b/assets/icons/pack1/minerals2-0-1.png new file mode 100644 index 0000000..6a85ed6 Binary files /dev/null and b/assets/icons/pack1/minerals2-0-1.png differ diff --git a/assets/icons/pack1/minerals2-0-2.png b/assets/icons/pack1/minerals2-0-2.png new file mode 100644 index 0000000..a76c96c Binary files /dev/null and b/assets/icons/pack1/minerals2-0-2.png differ diff --git a/assets/icons/pack1/minerals2-0-3.png b/assets/icons/pack1/minerals2-0-3.png new file mode 100644 index 0000000..d758e60 Binary files /dev/null and b/assets/icons/pack1/minerals2-0-3.png differ diff --git a/assets/icons/pack1/minerals2-1-0.png b/assets/icons/pack1/minerals2-1-0.png new file mode 100644 index 0000000..11617f2 Binary files /dev/null and b/assets/icons/pack1/minerals2-1-0.png differ diff --git a/assets/icons/pack1/minerals2-1-1.png b/assets/icons/pack1/minerals2-1-1.png new file mode 100644 index 0000000..707747d Binary files /dev/null and b/assets/icons/pack1/minerals2-1-1.png differ diff --git a/assets/icons/pack1/minerals2-1-2.png b/assets/icons/pack1/minerals2-1-2.png new file mode 100644 index 0000000..0b81843 Binary files /dev/null and b/assets/icons/pack1/minerals2-1-2.png differ diff --git a/assets/icons/pack1/minerals2-1-3.png b/assets/icons/pack1/minerals2-1-3.png new file mode 100644 index 0000000..0a56e40 Binary files /dev/null and b/assets/icons/pack1/minerals2-1-3.png differ diff --git a/assets/icons/pack1/minerals2-2-0.png b/assets/icons/pack1/minerals2-2-0.png new file mode 100644 index 0000000..d9806d2 Binary files /dev/null and b/assets/icons/pack1/minerals2-2-0.png differ diff --git a/assets/icons/pack1/minerals2-2-1.png b/assets/icons/pack1/minerals2-2-1.png new file mode 100644 index 0000000..e63e27b Binary files /dev/null and b/assets/icons/pack1/minerals2-2-1.png differ diff --git a/assets/icons/pack1/minerals2-2-2.png b/assets/icons/pack1/minerals2-2-2.png new file mode 100644 index 0000000..2b43b5a Binary files /dev/null and b/assets/icons/pack1/minerals2-2-2.png differ diff --git a/assets/icons/pack1/minerals2-2-3.png b/assets/icons/pack1/minerals2-2-3.png new file mode 100644 index 0000000..95099df Binary files /dev/null and b/assets/icons/pack1/minerals2-2-3.png differ diff --git a/assets/icons/pack1/minerals2-3-0.png b/assets/icons/pack1/minerals2-3-0.png new file mode 100644 index 0000000..e6fd92b Binary files /dev/null and b/assets/icons/pack1/minerals2-3-0.png differ diff --git a/assets/icons/pack1/minerals2-3-1.png b/assets/icons/pack1/minerals2-3-1.png new file mode 100644 index 0000000..9e354d8 Binary files /dev/null and b/assets/icons/pack1/minerals2-3-1.png differ diff --git a/assets/icons/pack1/minerals2-3-2.png b/assets/icons/pack1/minerals2-3-2.png new file mode 100644 index 0000000..7d7453f Binary files /dev/null and b/assets/icons/pack1/minerals2-3-2.png differ diff --git a/assets/icons/pack1/minerals2-3-3.png b/assets/icons/pack1/minerals2-3-3.png new file mode 100644 index 0000000..199544f Binary files /dev/null and b/assets/icons/pack1/minerals2-3-3.png differ diff --git a/assets/icons/pack1/minerals3-0-0.png b/assets/icons/pack1/minerals3-0-0.png new file mode 100644 index 0000000..8b4fb8f Binary files /dev/null and b/assets/icons/pack1/minerals3-0-0.png differ diff --git a/assets/icons/pack1/minerals3-0-1.png b/assets/icons/pack1/minerals3-0-1.png new file mode 100644 index 0000000..64cd2c1 Binary files /dev/null and b/assets/icons/pack1/minerals3-0-1.png differ diff --git a/assets/icons/pack1/minerals3-0-2.png b/assets/icons/pack1/minerals3-0-2.png new file mode 100644 index 0000000..1acf688 Binary files /dev/null and b/assets/icons/pack1/minerals3-0-2.png differ diff --git a/assets/icons/pack1/minerals3-0-3.png b/assets/icons/pack1/minerals3-0-3.png new file mode 100644 index 0000000..8cde18e Binary files /dev/null and b/assets/icons/pack1/minerals3-0-3.png differ diff --git a/assets/icons/pack1/minerals3-1-0.png b/assets/icons/pack1/minerals3-1-0.png new file mode 100644 index 0000000..73d7078 Binary files /dev/null and b/assets/icons/pack1/minerals3-1-0.png differ diff --git a/assets/icons/pack1/minerals3-1-1.png b/assets/icons/pack1/minerals3-1-1.png new file mode 100644 index 0000000..136e918 Binary files /dev/null and b/assets/icons/pack1/minerals3-1-1.png differ diff --git a/assets/icons/pack1/minerals3-1-2.png b/assets/icons/pack1/minerals3-1-2.png new file mode 100644 index 0000000..f986d71 Binary files /dev/null and b/assets/icons/pack1/minerals3-1-2.png differ diff --git a/assets/icons/pack1/minerals3-1-3.png b/assets/icons/pack1/minerals3-1-3.png new file mode 100644 index 0000000..befc1b6 Binary files /dev/null and b/assets/icons/pack1/minerals3-1-3.png differ diff --git a/assets/icons/pack1/minerals3-2-0.png b/assets/icons/pack1/minerals3-2-0.png new file mode 100644 index 0000000..2b80e4a Binary files /dev/null and b/assets/icons/pack1/minerals3-2-0.png differ diff --git a/assets/icons/pack1/minerals3-2-1.png b/assets/icons/pack1/minerals3-2-1.png new file mode 100644 index 0000000..ba40149 Binary files /dev/null and b/assets/icons/pack1/minerals3-2-1.png differ diff --git a/assets/icons/pack1/minerals3-2-2.png b/assets/icons/pack1/minerals3-2-2.png new file mode 100644 index 0000000..c742c1b Binary files /dev/null and b/assets/icons/pack1/minerals3-2-2.png differ diff --git a/assets/icons/pack1/minerals3-2-3.png b/assets/icons/pack1/minerals3-2-3.png new file mode 100644 index 0000000..5688301 Binary files /dev/null and b/assets/icons/pack1/minerals3-2-3.png differ diff --git a/assets/icons/pack1/minerals3-3-0.png b/assets/icons/pack1/minerals3-3-0.png new file mode 100644 index 0000000..535828f Binary files /dev/null and b/assets/icons/pack1/minerals3-3-0.png differ diff --git a/assets/icons/pack1/minerals3-3-1.png b/assets/icons/pack1/minerals3-3-1.png new file mode 100644 index 0000000..6ff9a43 Binary files /dev/null and b/assets/icons/pack1/minerals3-3-1.png differ diff --git a/assets/icons/pack1/minerals3-3-2.png b/assets/icons/pack1/minerals3-3-2.png new file mode 100644 index 0000000..7c419bb Binary files /dev/null and b/assets/icons/pack1/minerals3-3-2.png differ diff --git a/assets/icons/pack1/minerals3-3-3.png b/assets/icons/pack1/minerals3-3-3.png new file mode 100644 index 0000000..9bc358c Binary files /dev/null and b/assets/icons/pack1/minerals3-3-3.png differ diff --git a/assets/icons/pack1/minerals4-0-0.png b/assets/icons/pack1/minerals4-0-0.png new file mode 100644 index 0000000..f28e6fd Binary files /dev/null and b/assets/icons/pack1/minerals4-0-0.png differ diff --git a/assets/icons/pack1/minerals4-0-1.png b/assets/icons/pack1/minerals4-0-1.png new file mode 100644 index 0000000..6a228d9 Binary files /dev/null and b/assets/icons/pack1/minerals4-0-1.png differ diff --git a/assets/icons/pack1/minerals4-0-2.png b/assets/icons/pack1/minerals4-0-2.png new file mode 100644 index 0000000..c129a40 Binary files /dev/null and b/assets/icons/pack1/minerals4-0-2.png differ diff --git a/assets/icons/pack1/minerals4-0-3.png b/assets/icons/pack1/minerals4-0-3.png new file mode 100644 index 0000000..942d4ab Binary files /dev/null and b/assets/icons/pack1/minerals4-0-3.png differ diff --git a/assets/icons/pack1/minerals4-1-0.png b/assets/icons/pack1/minerals4-1-0.png new file mode 100644 index 0000000..057355a Binary files /dev/null and b/assets/icons/pack1/minerals4-1-0.png differ diff --git a/assets/icons/pack1/minerals4-1-1.png b/assets/icons/pack1/minerals4-1-1.png new file mode 100644 index 0000000..4d4b5e5 Binary files /dev/null and b/assets/icons/pack1/minerals4-1-1.png differ diff --git a/assets/icons/pack1/minerals4-1-2.png b/assets/icons/pack1/minerals4-1-2.png new file mode 100644 index 0000000..76afe72 Binary files /dev/null and b/assets/icons/pack1/minerals4-1-2.png differ diff --git a/assets/icons/pack1/minerals4-1-3.png b/assets/icons/pack1/minerals4-1-3.png new file mode 100644 index 0000000..13a1423 Binary files /dev/null and b/assets/icons/pack1/minerals4-1-3.png differ diff --git a/assets/icons/pack1/minerals4-2-0.png b/assets/icons/pack1/minerals4-2-0.png new file mode 100644 index 0000000..23fdb32 Binary files /dev/null and b/assets/icons/pack1/minerals4-2-0.png differ diff --git a/assets/icons/pack1/minerals4-2-1.png b/assets/icons/pack1/minerals4-2-1.png new file mode 100644 index 0000000..dff8956 Binary files /dev/null and b/assets/icons/pack1/minerals4-2-1.png differ diff --git a/assets/icons/pack1/minerals4-2-2.png b/assets/icons/pack1/minerals4-2-2.png new file mode 100644 index 0000000..bccd117 Binary files /dev/null and b/assets/icons/pack1/minerals4-2-2.png differ diff --git a/assets/icons/pack1/minerals4-2-3.png b/assets/icons/pack1/minerals4-2-3.png new file mode 100644 index 0000000..3bb73c8 Binary files /dev/null and b/assets/icons/pack1/minerals4-2-3.png differ diff --git a/assets/icons/pack1/minerals4-3-0.png b/assets/icons/pack1/minerals4-3-0.png new file mode 100644 index 0000000..3a96095 Binary files /dev/null and b/assets/icons/pack1/minerals4-3-0.png differ diff --git a/assets/icons/pack1/minerals4-3-1.png b/assets/icons/pack1/minerals4-3-1.png new file mode 100644 index 0000000..2dee909 Binary files /dev/null and b/assets/icons/pack1/minerals4-3-1.png differ diff --git a/assets/icons/pack1/minerals4-3-2.png b/assets/icons/pack1/minerals4-3-2.png new file mode 100644 index 0000000..03ab45b Binary files /dev/null and b/assets/icons/pack1/minerals4-3-2.png differ diff --git a/assets/icons/pack1/minerals4-3-3.png b/assets/icons/pack1/minerals4-3-3.png new file mode 100644 index 0000000..371ea5e Binary files /dev/null and b/assets/icons/pack1/minerals4-3-3.png differ diff --git a/assets/icons/pack1/minerals5-0-0.png b/assets/icons/pack1/minerals5-0-0.png new file mode 100644 index 0000000..7882914 Binary files /dev/null and b/assets/icons/pack1/minerals5-0-0.png differ diff --git a/assets/icons/pack1/minerals5-0-1.png b/assets/icons/pack1/minerals5-0-1.png new file mode 100644 index 0000000..1f51b2a Binary files /dev/null and b/assets/icons/pack1/minerals5-0-1.png differ diff --git a/assets/icons/pack1/minerals5-0-2.png b/assets/icons/pack1/minerals5-0-2.png new file mode 100644 index 0000000..353c729 Binary files /dev/null and b/assets/icons/pack1/minerals5-0-2.png differ diff --git a/assets/icons/pack1/minerals5-0-3.png b/assets/icons/pack1/minerals5-0-3.png new file mode 100644 index 0000000..407571d Binary files /dev/null and b/assets/icons/pack1/minerals5-0-3.png differ diff --git a/assets/icons/pack1/minerals5-1-0.png b/assets/icons/pack1/minerals5-1-0.png new file mode 100644 index 0000000..262d958 Binary files /dev/null and b/assets/icons/pack1/minerals5-1-0.png differ diff --git a/assets/icons/pack1/minerals5-1-1.png b/assets/icons/pack1/minerals5-1-1.png new file mode 100644 index 0000000..0dd676f Binary files /dev/null and b/assets/icons/pack1/minerals5-1-1.png differ diff --git a/assets/icons/pack1/minerals5-1-2.png b/assets/icons/pack1/minerals5-1-2.png new file mode 100644 index 0000000..53bb8ad Binary files /dev/null and b/assets/icons/pack1/minerals5-1-2.png differ diff --git a/assets/icons/pack1/minerals5-1-3.png b/assets/icons/pack1/minerals5-1-3.png new file mode 100644 index 0000000..f22f023 Binary files /dev/null and b/assets/icons/pack1/minerals5-1-3.png differ diff --git a/assets/icons/pack1/minerals5-2-0.png b/assets/icons/pack1/minerals5-2-0.png new file mode 100644 index 0000000..1c94208 Binary files /dev/null and b/assets/icons/pack1/minerals5-2-0.png differ diff --git a/assets/icons/pack1/minerals5-2-1.png b/assets/icons/pack1/minerals5-2-1.png new file mode 100644 index 0000000..eaf1e88 Binary files /dev/null and b/assets/icons/pack1/minerals5-2-1.png differ diff --git a/assets/icons/pack1/minerals5-2-2.png b/assets/icons/pack1/minerals5-2-2.png new file mode 100644 index 0000000..9f37f5d Binary files /dev/null and b/assets/icons/pack1/minerals5-2-2.png differ diff --git a/assets/icons/pack1/minerals5-2-3.png b/assets/icons/pack1/minerals5-2-3.png new file mode 100644 index 0000000..ba820a5 Binary files /dev/null and b/assets/icons/pack1/minerals5-2-3.png differ diff --git a/assets/icons/pack1/minerals5-3-0.png b/assets/icons/pack1/minerals5-3-0.png new file mode 100644 index 0000000..ec3fc10 Binary files /dev/null and b/assets/icons/pack1/minerals5-3-0.png differ diff --git a/assets/icons/pack1/minerals5-3-1.png b/assets/icons/pack1/minerals5-3-1.png new file mode 100644 index 0000000..2d62c9a Binary files /dev/null and b/assets/icons/pack1/minerals5-3-1.png differ diff --git a/assets/icons/pack1/minerals5-3-2.png b/assets/icons/pack1/minerals5-3-2.png new file mode 100644 index 0000000..3650dd7 Binary files /dev/null and b/assets/icons/pack1/minerals5-3-2.png differ diff --git a/assets/icons/pack1/minerals5-3-3.png b/assets/icons/pack1/minerals5-3-3.png new file mode 100644 index 0000000..3a151b2 Binary files /dev/null and b/assets/icons/pack1/minerals5-3-3.png differ diff --git a/assets/icons/pack1/minerals6-0-0.png b/assets/icons/pack1/minerals6-0-0.png new file mode 100644 index 0000000..a41fd35 Binary files /dev/null and b/assets/icons/pack1/minerals6-0-0.png differ diff --git a/assets/icons/pack1/minerals6-0-1.png b/assets/icons/pack1/minerals6-0-1.png new file mode 100644 index 0000000..7013d1a Binary files /dev/null and b/assets/icons/pack1/minerals6-0-1.png differ diff --git a/assets/icons/pack1/minerals6-0-2.png b/assets/icons/pack1/minerals6-0-2.png new file mode 100644 index 0000000..2d5fe14 Binary files /dev/null and b/assets/icons/pack1/minerals6-0-2.png differ diff --git a/assets/icons/pack1/minerals6-0-3.png b/assets/icons/pack1/minerals6-0-3.png new file mode 100644 index 0000000..c66d3da Binary files /dev/null and b/assets/icons/pack1/minerals6-0-3.png differ diff --git a/assets/icons/pack1/minerals6-1-0.png b/assets/icons/pack1/minerals6-1-0.png new file mode 100644 index 0000000..6a23719 Binary files /dev/null and b/assets/icons/pack1/minerals6-1-0.png differ diff --git a/assets/icons/pack1/minerals6-1-1.png b/assets/icons/pack1/minerals6-1-1.png new file mode 100644 index 0000000..0859f46 Binary files /dev/null and b/assets/icons/pack1/minerals6-1-1.png differ diff --git a/assets/icons/pack1/minerals6-1-2.png b/assets/icons/pack1/minerals6-1-2.png new file mode 100644 index 0000000..2cd9226 Binary files /dev/null and b/assets/icons/pack1/minerals6-1-2.png differ diff --git a/assets/icons/pack1/minerals6-1-3.png b/assets/icons/pack1/minerals6-1-3.png new file mode 100644 index 0000000..4526c80 Binary files /dev/null and b/assets/icons/pack1/minerals6-1-3.png differ diff --git a/assets/icons/pack1/minerals6-2-0.png b/assets/icons/pack1/minerals6-2-0.png new file mode 100644 index 0000000..f4a9f5c Binary files /dev/null and b/assets/icons/pack1/minerals6-2-0.png differ diff --git a/assets/icons/pack1/minerals6-2-1.png b/assets/icons/pack1/minerals6-2-1.png new file mode 100644 index 0000000..4a556b7 Binary files /dev/null and b/assets/icons/pack1/minerals6-2-1.png differ diff --git a/assets/icons/pack1/minerals6-2-2.png b/assets/icons/pack1/minerals6-2-2.png new file mode 100644 index 0000000..d927294 Binary files /dev/null and b/assets/icons/pack1/minerals6-2-2.png differ diff --git a/assets/icons/pack1/minerals6-2-3.png b/assets/icons/pack1/minerals6-2-3.png new file mode 100644 index 0000000..4897bed Binary files /dev/null and b/assets/icons/pack1/minerals6-2-3.png differ diff --git a/assets/icons/pack1/minerals6-3-0.png b/assets/icons/pack1/minerals6-3-0.png new file mode 100644 index 0000000..676d405 Binary files /dev/null and b/assets/icons/pack1/minerals6-3-0.png differ diff --git a/assets/icons/pack1/minerals6-3-1.png b/assets/icons/pack1/minerals6-3-1.png new file mode 100644 index 0000000..3d0e4c6 Binary files /dev/null and b/assets/icons/pack1/minerals6-3-1.png differ diff --git a/assets/icons/pack1/minerals6-3-2.png b/assets/icons/pack1/minerals6-3-2.png new file mode 100644 index 0000000..ddfff87 Binary files /dev/null and b/assets/icons/pack1/minerals6-3-2.png differ diff --git a/assets/icons/pack1/minerals6-3-3.png b/assets/icons/pack1/minerals6-3-3.png new file mode 100644 index 0000000..00ffca7 Binary files /dev/null and b/assets/icons/pack1/minerals6-3-3.png differ diff --git a/assets/icons/pack1/plants1-0-0.png b/assets/icons/pack1/plants1-0-0.png new file mode 100644 index 0000000..425ff47 Binary files /dev/null and b/assets/icons/pack1/plants1-0-0.png differ diff --git a/assets/icons/pack1/plants1-0-1.png b/assets/icons/pack1/plants1-0-1.png new file mode 100644 index 0000000..8d331c7 Binary files /dev/null and b/assets/icons/pack1/plants1-0-1.png differ diff --git a/assets/icons/pack1/plants1-0-2.png b/assets/icons/pack1/plants1-0-2.png new file mode 100644 index 0000000..b29a1d1 Binary files /dev/null and b/assets/icons/pack1/plants1-0-2.png differ diff --git a/assets/icons/pack1/plants1-0-3.png b/assets/icons/pack1/plants1-0-3.png new file mode 100644 index 0000000..6c8bf96 Binary files /dev/null and b/assets/icons/pack1/plants1-0-3.png differ diff --git a/assets/icons/pack1/plants1-1-0.png b/assets/icons/pack1/plants1-1-0.png new file mode 100644 index 0000000..64b1f00 Binary files /dev/null and b/assets/icons/pack1/plants1-1-0.png differ diff --git a/assets/icons/pack1/plants1-1-1.png b/assets/icons/pack1/plants1-1-1.png new file mode 100644 index 0000000..5255a68 Binary files /dev/null and b/assets/icons/pack1/plants1-1-1.png differ diff --git a/assets/icons/pack1/plants1-1-2.png b/assets/icons/pack1/plants1-1-2.png new file mode 100644 index 0000000..ccc0210 Binary files /dev/null and b/assets/icons/pack1/plants1-1-2.png differ diff --git a/assets/icons/pack1/plants1-1-3.png b/assets/icons/pack1/plants1-1-3.png new file mode 100644 index 0000000..51f22d0 Binary files /dev/null and b/assets/icons/pack1/plants1-1-3.png differ diff --git a/assets/icons/pack1/plants1-2-0.png b/assets/icons/pack1/plants1-2-0.png new file mode 100644 index 0000000..3813ff8 Binary files /dev/null and b/assets/icons/pack1/plants1-2-0.png differ diff --git a/assets/icons/pack1/plants1-2-1.png b/assets/icons/pack1/plants1-2-1.png new file mode 100644 index 0000000..7de5eca Binary files /dev/null and b/assets/icons/pack1/plants1-2-1.png differ diff --git a/assets/icons/pack1/plants1-2-2.png b/assets/icons/pack1/plants1-2-2.png new file mode 100644 index 0000000..37670f6 Binary files /dev/null and b/assets/icons/pack1/plants1-2-2.png differ diff --git a/assets/icons/pack1/plants1-2-3.png b/assets/icons/pack1/plants1-2-3.png new file mode 100644 index 0000000..ef18722 Binary files /dev/null and b/assets/icons/pack1/plants1-2-3.png differ diff --git a/assets/icons/pack1/plants1-3-0.png b/assets/icons/pack1/plants1-3-0.png new file mode 100644 index 0000000..139d562 Binary files /dev/null and b/assets/icons/pack1/plants1-3-0.png differ diff --git a/assets/icons/pack1/plants1-3-1.png b/assets/icons/pack1/plants1-3-1.png new file mode 100644 index 0000000..372b5bf Binary files /dev/null and b/assets/icons/pack1/plants1-3-1.png differ diff --git a/assets/icons/pack1/plants1-3-2.png b/assets/icons/pack1/plants1-3-2.png new file mode 100644 index 0000000..fece0f7 Binary files /dev/null and b/assets/icons/pack1/plants1-3-2.png differ diff --git a/assets/icons/pack1/plants1-3-3.png b/assets/icons/pack1/plants1-3-3.png new file mode 100644 index 0000000..cdf3055 Binary files /dev/null and b/assets/icons/pack1/plants1-3-3.png differ diff --git a/assets/icons/pack1/plants2-0-0.png b/assets/icons/pack1/plants2-0-0.png new file mode 100644 index 0000000..6cbf92f Binary files /dev/null and b/assets/icons/pack1/plants2-0-0.png differ diff --git a/assets/icons/pack1/plants2-0-1.png b/assets/icons/pack1/plants2-0-1.png new file mode 100644 index 0000000..591d31f Binary files /dev/null and b/assets/icons/pack1/plants2-0-1.png differ diff --git a/assets/icons/pack1/plants2-0-2.png b/assets/icons/pack1/plants2-0-2.png new file mode 100644 index 0000000..6725f12 Binary files /dev/null and b/assets/icons/pack1/plants2-0-2.png differ diff --git a/assets/icons/pack1/plants2-0-3.png b/assets/icons/pack1/plants2-0-3.png new file mode 100644 index 0000000..e0d6c2f Binary files /dev/null and b/assets/icons/pack1/plants2-0-3.png differ diff --git a/assets/icons/pack1/plants2-1-0.png b/assets/icons/pack1/plants2-1-0.png new file mode 100644 index 0000000..4217974 Binary files /dev/null and b/assets/icons/pack1/plants2-1-0.png differ diff --git a/assets/icons/pack1/plants2-1-1.png b/assets/icons/pack1/plants2-1-1.png new file mode 100644 index 0000000..edd9761 Binary files /dev/null and b/assets/icons/pack1/plants2-1-1.png differ diff --git a/assets/icons/pack1/plants2-1-2.png b/assets/icons/pack1/plants2-1-2.png new file mode 100644 index 0000000..bbf98a6 Binary files /dev/null and b/assets/icons/pack1/plants2-1-2.png differ diff --git a/assets/icons/pack1/plants2-1-3.png b/assets/icons/pack1/plants2-1-3.png new file mode 100644 index 0000000..9e6b608 Binary files /dev/null and b/assets/icons/pack1/plants2-1-3.png differ diff --git a/assets/icons/pack1/plants2-2-0.png b/assets/icons/pack1/plants2-2-0.png new file mode 100644 index 0000000..e17d2bb Binary files /dev/null and b/assets/icons/pack1/plants2-2-0.png differ diff --git a/assets/icons/pack1/plants2-2-1.png b/assets/icons/pack1/plants2-2-1.png new file mode 100644 index 0000000..aae2168 Binary files /dev/null and b/assets/icons/pack1/plants2-2-1.png differ diff --git a/assets/icons/pack1/plants2-2-2.png b/assets/icons/pack1/plants2-2-2.png new file mode 100644 index 0000000..ac724ff Binary files /dev/null and b/assets/icons/pack1/plants2-2-2.png differ diff --git a/assets/icons/pack1/plants2-2-3.png b/assets/icons/pack1/plants2-2-3.png new file mode 100644 index 0000000..62cf29b Binary files /dev/null and b/assets/icons/pack1/plants2-2-3.png differ diff --git a/assets/icons/pack1/plants2-3-0.png b/assets/icons/pack1/plants2-3-0.png new file mode 100644 index 0000000..59b3d40 Binary files /dev/null and b/assets/icons/pack1/plants2-3-0.png differ diff --git a/assets/icons/pack1/plants2-3-1.png b/assets/icons/pack1/plants2-3-1.png new file mode 100644 index 0000000..be3faa8 Binary files /dev/null and b/assets/icons/pack1/plants2-3-1.png differ diff --git a/assets/icons/pack1/plants2-3-2.png b/assets/icons/pack1/plants2-3-2.png new file mode 100644 index 0000000..4c82a0f Binary files /dev/null and b/assets/icons/pack1/plants2-3-2.png differ diff --git a/assets/icons/pack1/plants2-3-3.png b/assets/icons/pack1/plants2-3-3.png new file mode 100644 index 0000000..9c51283 Binary files /dev/null and b/assets/icons/pack1/plants2-3-3.png differ diff --git a/assets/icons/pack1/plants3-0-0.png b/assets/icons/pack1/plants3-0-0.png new file mode 100644 index 0000000..17cb020 Binary files /dev/null and b/assets/icons/pack1/plants3-0-0.png differ diff --git a/assets/icons/pack1/plants3-0-1.png b/assets/icons/pack1/plants3-0-1.png new file mode 100644 index 0000000..c908584 Binary files /dev/null and b/assets/icons/pack1/plants3-0-1.png differ diff --git a/assets/icons/pack1/plants3-0-2.png b/assets/icons/pack1/plants3-0-2.png new file mode 100644 index 0000000..9c96def Binary files /dev/null and b/assets/icons/pack1/plants3-0-2.png differ diff --git a/assets/icons/pack1/plants3-0-3.png b/assets/icons/pack1/plants3-0-3.png new file mode 100644 index 0000000..baca273 Binary files /dev/null and b/assets/icons/pack1/plants3-0-3.png differ diff --git a/assets/icons/pack1/plants3-1-0.png b/assets/icons/pack1/plants3-1-0.png new file mode 100644 index 0000000..399c23e Binary files /dev/null and b/assets/icons/pack1/plants3-1-0.png differ diff --git a/assets/icons/pack1/plants3-1-1.png b/assets/icons/pack1/plants3-1-1.png new file mode 100644 index 0000000..1e76911 Binary files /dev/null and b/assets/icons/pack1/plants3-1-1.png differ diff --git a/assets/icons/pack1/plants3-1-2.png b/assets/icons/pack1/plants3-1-2.png new file mode 100644 index 0000000..9bf9322 Binary files /dev/null and b/assets/icons/pack1/plants3-1-2.png differ diff --git a/assets/icons/pack1/plants3-1-3.png b/assets/icons/pack1/plants3-1-3.png new file mode 100644 index 0000000..a632ea1 Binary files /dev/null and b/assets/icons/pack1/plants3-1-3.png differ diff --git a/assets/icons/pack1/plants3-2-0.png b/assets/icons/pack1/plants3-2-0.png new file mode 100644 index 0000000..57ccf51 Binary files /dev/null and b/assets/icons/pack1/plants3-2-0.png differ diff --git a/assets/icons/pack1/plants3-2-1.png b/assets/icons/pack1/plants3-2-1.png new file mode 100644 index 0000000..b8187a9 Binary files /dev/null and b/assets/icons/pack1/plants3-2-1.png differ diff --git a/assets/icons/pack1/plants3-2-2.png b/assets/icons/pack1/plants3-2-2.png new file mode 100644 index 0000000..6ecc251 Binary files /dev/null and b/assets/icons/pack1/plants3-2-2.png differ diff --git a/assets/icons/pack1/plants3-2-3.png b/assets/icons/pack1/plants3-2-3.png new file mode 100644 index 0000000..2a51a24 Binary files /dev/null and b/assets/icons/pack1/plants3-2-3.png differ diff --git a/assets/icons/pack1/plants3-3-0.png b/assets/icons/pack1/plants3-3-0.png new file mode 100644 index 0000000..1134810 Binary files /dev/null and b/assets/icons/pack1/plants3-3-0.png differ diff --git a/assets/icons/pack1/plants3-3-1.png b/assets/icons/pack1/plants3-3-1.png new file mode 100644 index 0000000..4870d1f Binary files /dev/null and b/assets/icons/pack1/plants3-3-1.png differ diff --git a/assets/icons/pack1/plants3-3-2.png b/assets/icons/pack1/plants3-3-2.png new file mode 100644 index 0000000..56968e3 Binary files /dev/null and b/assets/icons/pack1/plants3-3-2.png differ diff --git a/assets/icons/pack1/plants3-3-3.png b/assets/icons/pack1/plants3-3-3.png new file mode 100644 index 0000000..98721a8 Binary files /dev/null and b/assets/icons/pack1/plants3-3-3.png differ diff --git a/assets/icons/pack1/plants4-0-0.png b/assets/icons/pack1/plants4-0-0.png new file mode 100644 index 0000000..010eeb9 Binary files /dev/null and b/assets/icons/pack1/plants4-0-0.png differ diff --git a/assets/icons/pack1/plants4-0-1.png b/assets/icons/pack1/plants4-0-1.png new file mode 100644 index 0000000..204d259 Binary files /dev/null and b/assets/icons/pack1/plants4-0-1.png differ diff --git a/assets/icons/pack1/plants4-0-2.png b/assets/icons/pack1/plants4-0-2.png new file mode 100644 index 0000000..5717bc0 Binary files /dev/null and b/assets/icons/pack1/plants4-0-2.png differ diff --git a/assets/icons/pack1/plants4-0-3.png b/assets/icons/pack1/plants4-0-3.png new file mode 100644 index 0000000..b063815 Binary files /dev/null and b/assets/icons/pack1/plants4-0-3.png differ diff --git a/assets/icons/pack1/plants4-1-0.png b/assets/icons/pack1/plants4-1-0.png new file mode 100644 index 0000000..25f7069 Binary files /dev/null and b/assets/icons/pack1/plants4-1-0.png differ diff --git a/assets/icons/pack1/plants4-1-1.png b/assets/icons/pack1/plants4-1-1.png new file mode 100644 index 0000000..c2ee548 Binary files /dev/null and b/assets/icons/pack1/plants4-1-1.png differ diff --git a/assets/icons/pack1/plants4-1-2.png b/assets/icons/pack1/plants4-1-2.png new file mode 100644 index 0000000..b829e6c Binary files /dev/null and b/assets/icons/pack1/plants4-1-2.png differ diff --git a/assets/icons/pack1/plants4-1-3.png b/assets/icons/pack1/plants4-1-3.png new file mode 100644 index 0000000..d92bc22 Binary files /dev/null and b/assets/icons/pack1/plants4-1-3.png differ diff --git a/assets/icons/pack1/plants4-2-0.png b/assets/icons/pack1/plants4-2-0.png new file mode 100644 index 0000000..38c961d Binary files /dev/null and b/assets/icons/pack1/plants4-2-0.png differ diff --git a/assets/icons/pack1/plants4-2-1.png b/assets/icons/pack1/plants4-2-1.png new file mode 100644 index 0000000..a817c75 Binary files /dev/null and b/assets/icons/pack1/plants4-2-1.png differ diff --git a/assets/icons/pack1/plants4-2-2.png b/assets/icons/pack1/plants4-2-2.png new file mode 100644 index 0000000..5761eef Binary files /dev/null and b/assets/icons/pack1/plants4-2-2.png differ diff --git a/assets/icons/pack1/plants4-2-3.png b/assets/icons/pack1/plants4-2-3.png new file mode 100644 index 0000000..ca22048 Binary files /dev/null and b/assets/icons/pack1/plants4-2-3.png differ diff --git a/assets/icons/pack1/plants4-3-0.png b/assets/icons/pack1/plants4-3-0.png new file mode 100644 index 0000000..b7f6134 Binary files /dev/null and b/assets/icons/pack1/plants4-3-0.png differ diff --git a/assets/icons/pack1/plants4-3-1.png b/assets/icons/pack1/plants4-3-1.png new file mode 100644 index 0000000..ffc0727 Binary files /dev/null and b/assets/icons/pack1/plants4-3-1.png differ diff --git a/assets/icons/pack1/plants4-3-2.png b/assets/icons/pack1/plants4-3-2.png new file mode 100644 index 0000000..e4e9bd0 Binary files /dev/null and b/assets/icons/pack1/plants4-3-2.png differ diff --git a/assets/icons/pack1/plants4-3-3.png b/assets/icons/pack1/plants4-3-3.png new file mode 100644 index 0000000..be138d6 Binary files /dev/null and b/assets/icons/pack1/plants4-3-3.png differ diff --git a/assets/icons/pack1/plants5-0-0.png b/assets/icons/pack1/plants5-0-0.png new file mode 100644 index 0000000..814ff54 Binary files /dev/null and b/assets/icons/pack1/plants5-0-0.png differ diff --git a/assets/icons/pack1/plants5-0-1.png b/assets/icons/pack1/plants5-0-1.png new file mode 100644 index 0000000..6ab99e7 Binary files /dev/null and b/assets/icons/pack1/plants5-0-1.png differ diff --git a/assets/icons/pack1/plants5-0-2.png b/assets/icons/pack1/plants5-0-2.png new file mode 100644 index 0000000..522e14c Binary files /dev/null and b/assets/icons/pack1/plants5-0-2.png differ diff --git a/assets/icons/pack1/plants5-0-3.png b/assets/icons/pack1/plants5-0-3.png new file mode 100644 index 0000000..189d915 Binary files /dev/null and b/assets/icons/pack1/plants5-0-3.png differ diff --git a/assets/icons/pack1/plants5-1-0.png b/assets/icons/pack1/plants5-1-0.png new file mode 100644 index 0000000..7f9eae1 Binary files /dev/null and b/assets/icons/pack1/plants5-1-0.png differ diff --git a/assets/icons/pack1/plants5-1-1.png b/assets/icons/pack1/plants5-1-1.png new file mode 100644 index 0000000..19003ff Binary files /dev/null and b/assets/icons/pack1/plants5-1-1.png differ diff --git a/assets/icons/pack1/plants5-1-2.png b/assets/icons/pack1/plants5-1-2.png new file mode 100644 index 0000000..b002708 Binary files /dev/null and b/assets/icons/pack1/plants5-1-2.png differ diff --git a/assets/icons/pack1/plants5-1-3.png b/assets/icons/pack1/plants5-1-3.png new file mode 100644 index 0000000..e69b65c Binary files /dev/null and b/assets/icons/pack1/plants5-1-3.png differ diff --git a/assets/icons/pack1/plants5-2-0.png b/assets/icons/pack1/plants5-2-0.png new file mode 100644 index 0000000..5215580 Binary files /dev/null and b/assets/icons/pack1/plants5-2-0.png differ diff --git a/assets/icons/pack1/plants5-2-1.png b/assets/icons/pack1/plants5-2-1.png new file mode 100644 index 0000000..fa980ec Binary files /dev/null and b/assets/icons/pack1/plants5-2-1.png differ diff --git a/assets/icons/pack1/plants5-2-2.png b/assets/icons/pack1/plants5-2-2.png new file mode 100644 index 0000000..f463ffb Binary files /dev/null and b/assets/icons/pack1/plants5-2-2.png differ diff --git a/assets/icons/pack1/plants5-2-3.png b/assets/icons/pack1/plants5-2-3.png new file mode 100644 index 0000000..973125e Binary files /dev/null and b/assets/icons/pack1/plants5-2-3.png differ diff --git a/assets/icons/pack1/plants5-3-0.png b/assets/icons/pack1/plants5-3-0.png new file mode 100644 index 0000000..7c368a0 Binary files /dev/null and b/assets/icons/pack1/plants5-3-0.png differ diff --git a/assets/icons/pack1/plants5-3-1.png b/assets/icons/pack1/plants5-3-1.png new file mode 100644 index 0000000..e25b5a3 Binary files /dev/null and b/assets/icons/pack1/plants5-3-1.png differ diff --git a/assets/icons/pack1/plants5-3-2.png b/assets/icons/pack1/plants5-3-2.png new file mode 100644 index 0000000..10b3e8f Binary files /dev/null and b/assets/icons/pack1/plants5-3-2.png differ diff --git a/assets/icons/pack1/plants5-3-3.png b/assets/icons/pack1/plants5-3-3.png new file mode 100644 index 0000000..312073f Binary files /dev/null and b/assets/icons/pack1/plants5-3-3.png differ diff --git a/assets/icons/pack1/plants6-0-0.png b/assets/icons/pack1/plants6-0-0.png new file mode 100644 index 0000000..47762b4 Binary files /dev/null and b/assets/icons/pack1/plants6-0-0.png differ diff --git a/assets/icons/pack1/plants6-0-1.png b/assets/icons/pack1/plants6-0-1.png new file mode 100644 index 0000000..8eb8383 Binary files /dev/null and b/assets/icons/pack1/plants6-0-1.png differ diff --git a/assets/icons/pack1/plants6-0-2.png b/assets/icons/pack1/plants6-0-2.png new file mode 100644 index 0000000..da9163f Binary files /dev/null and b/assets/icons/pack1/plants6-0-2.png differ diff --git a/assets/icons/pack1/plants6-0-3.png b/assets/icons/pack1/plants6-0-3.png new file mode 100644 index 0000000..2401a89 Binary files /dev/null and b/assets/icons/pack1/plants6-0-3.png differ diff --git a/assets/icons/pack1/plants6-1-0.png b/assets/icons/pack1/plants6-1-0.png new file mode 100644 index 0000000..afe9593 Binary files /dev/null and b/assets/icons/pack1/plants6-1-0.png differ diff --git a/assets/icons/pack1/plants6-1-1.png b/assets/icons/pack1/plants6-1-1.png new file mode 100644 index 0000000..346640d Binary files /dev/null and b/assets/icons/pack1/plants6-1-1.png differ diff --git a/assets/icons/pack1/plants6-1-2.png b/assets/icons/pack1/plants6-1-2.png new file mode 100644 index 0000000..395010e Binary files /dev/null and b/assets/icons/pack1/plants6-1-2.png differ diff --git a/assets/icons/pack1/plants6-1-3.png b/assets/icons/pack1/plants6-1-3.png new file mode 100644 index 0000000..19076fe Binary files /dev/null and b/assets/icons/pack1/plants6-1-3.png differ diff --git a/assets/icons/pack1/plants6-2-0.png b/assets/icons/pack1/plants6-2-0.png new file mode 100644 index 0000000..e2c8f01 Binary files /dev/null and b/assets/icons/pack1/plants6-2-0.png differ diff --git a/assets/icons/pack1/plants6-2-1.png b/assets/icons/pack1/plants6-2-1.png new file mode 100644 index 0000000..2475e64 Binary files /dev/null and b/assets/icons/pack1/plants6-2-1.png differ diff --git a/assets/icons/pack1/plants6-2-2.png b/assets/icons/pack1/plants6-2-2.png new file mode 100644 index 0000000..bee26d3 Binary files /dev/null and b/assets/icons/pack1/plants6-2-2.png differ diff --git a/assets/icons/pack1/plants6-2-3.png b/assets/icons/pack1/plants6-2-3.png new file mode 100644 index 0000000..464710c Binary files /dev/null and b/assets/icons/pack1/plants6-2-3.png differ diff --git a/assets/icons/pack1/plants6-3-0.png b/assets/icons/pack1/plants6-3-0.png new file mode 100644 index 0000000..c267657 Binary files /dev/null and b/assets/icons/pack1/plants6-3-0.png differ diff --git a/assets/icons/pack1/plants6-3-1.png b/assets/icons/pack1/plants6-3-1.png new file mode 100644 index 0000000..33304ae Binary files /dev/null and b/assets/icons/pack1/plants6-3-1.png differ diff --git a/assets/icons/pack1/plants6-3-2.png b/assets/icons/pack1/plants6-3-2.png new file mode 100644 index 0000000..355b00b Binary files /dev/null and b/assets/icons/pack1/plants6-3-2.png differ diff --git a/assets/icons/pack1/plants6-3-3.png b/assets/icons/pack1/plants6-3-3.png new file mode 100644 index 0000000..7167e59 Binary files /dev/null and b/assets/icons/pack1/plants6-3-3.png differ diff --git a/assets/items/minerals1.jpeg b/assets/items/minerals1.jpeg new file mode 100644 index 0000000..197dddf Binary files /dev/null and b/assets/items/minerals1.jpeg differ diff --git a/assets/items/minerals2.jpeg b/assets/items/minerals2.jpeg new file mode 100644 index 0000000..f119a8e Binary files /dev/null and b/assets/items/minerals2.jpeg differ diff --git a/assets/items/minerals3.jpeg b/assets/items/minerals3.jpeg new file mode 100644 index 0000000..379db35 Binary files /dev/null and b/assets/items/minerals3.jpeg differ diff --git a/assets/items/minerals4.jpeg b/assets/items/minerals4.jpeg new file mode 100644 index 0000000..3a32508 Binary files /dev/null and b/assets/items/minerals4.jpeg differ diff --git a/assets/items/minerals5.jpeg b/assets/items/minerals5.jpeg new file mode 100644 index 0000000..4acded4 Binary files /dev/null and b/assets/items/minerals5.jpeg differ diff --git a/assets/items/minerals6.jpeg b/assets/items/minerals6.jpeg new file mode 100644 index 0000000..77955ab Binary files /dev/null and b/assets/items/minerals6.jpeg differ diff --git a/assets/items/plants1.jpeg b/assets/items/plants1.jpeg new file mode 100644 index 0000000..2d4abe9 Binary files /dev/null and b/assets/items/plants1.jpeg differ diff --git a/assets/items/plants2.jpeg b/assets/items/plants2.jpeg new file mode 100644 index 0000000..d3e67ae Binary files /dev/null and b/assets/items/plants2.jpeg differ diff --git a/assets/items/plants3.jpeg b/assets/items/plants3.jpeg new file mode 100644 index 0000000..d93dd17 Binary files /dev/null and b/assets/items/plants3.jpeg differ diff --git a/assets/items/plants4.jpeg b/assets/items/plants4.jpeg new file mode 100644 index 0000000..b3f01cc Binary files /dev/null and b/assets/items/plants4.jpeg differ diff --git a/assets/items/plants5.jpeg b/assets/items/plants5.jpeg new file mode 100644 index 0000000..f7a35e0 Binary files /dev/null and b/assets/items/plants5.jpeg differ diff --git a/assets/items/plants6.jpeg b/assets/items/plants6.jpeg new file mode 100644 index 0000000..ce5f4e8 Binary files /dev/null and b/assets/items/plants6.jpeg differ diff --git a/package-lock.json b/package-lock.json index 55895d5..8561e45 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,8 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "puppeteer": "^24.37.3" + "puppeteer": "^24.37.3", + "sharp": "^0.34.5" }, "devDependencies": { "@tailwindcss/cli": "^4.1.18", @@ -40,6 +41,481 @@ "node": ">=6.9.0" } }, + "node_modules/@emnapi/runtime": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@img/colour": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", + "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -1437,7 +1913,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "dev": true, "license": "Apache-2.0", "engines": { "node": ">=8" @@ -2761,6 +3236,50 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", diff --git a/package.json b/package.json index e9b9397..baeb53b 100644 --- a/package.json +++ b/package.json @@ -9,13 +9,15 @@ "build:css:watch": "npx @tailwindcss/cli -i src/styles/main.css -o output/css/styles.css --watch", "preview": "npx serve output/html --cors -l 3000", "pdf": "node src/scripts/generate-pdf.mjs", - "dev": "concurrently \"npm run build:css:watch\" \"npm run preview\"" + "dev": "concurrently \"npm run build:css:watch\" \"npm run preview\"", + "split-sprites": "node src/scripts/split-sprites.mjs" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { - "puppeteer": "^24.37.3" + "puppeteer": "^24.37.3", + "sharp": "^0.34.5" }, "devDependencies": { "@tailwindcss/cli": "^4.1.18", diff --git a/src/scripts/split-sprites.mjs b/src/scripts/split-sprites.mjs new file mode 100644 index 0000000..43b48ac --- /dev/null +++ b/src/scripts/split-sprites.mjs @@ -0,0 +1,81 @@ +import sharp from 'sharp'; +import { resolve, basename, extname, join, dirname } from 'path'; +import { existsSync, mkdirSync, readdirSync, statSync } from 'fs'; +import { fileURLToPath } from 'url'; + +const PROJECT_ROOT = resolve(fileURLToPath(import.meta.url), '../../..'); +const DEFAULT_INPUT = resolve(PROJECT_ROOT, 'assets/items'); +const DEFAULT_OUTPUT = resolve(PROJECT_ROOT, 'assets/icons'); +const GRID = 4; +const SUPPORTED_EXTENSIONS = /\.(jpe?g|png|webp|tiff?)$/i; + +async function splitSpriteSheet(filePath, outputDir) { + const name = basename(filePath, extname(filePath)); + + const { width, height } = await sharp(filePath).metadata(); + const cellWidth = Math.floor(width / GRID); + const cellHeight = Math.floor(height / GRID); + + const tasks = []; + + for (let row = 0; row < GRID; row++) { + for (let col = 0; col < GRID; col++) { + const left = col * cellWidth; + const top = row * cellHeight; + const outputPath = join(outputDir, `${name}-${row}-${col}.png`); + + tasks.push( + sharp(filePath) + .extract({ left, top, width: cellWidth, height: cellHeight }) + .png() + .toFile(outputPath) + .then(() => outputPath) + ); + } + } + + return Promise.all(tasks); +} + +function collectFiles(input) { + if (statSync(input).isFile()) { + return [input]; + } + return readdirSync(input) + .filter(f => SUPPORTED_EXTENSIONS.test(f)) + .map(f => join(input, f)); +} + +async function main() { + const input = resolve(process.argv[2] || DEFAULT_INPUT); + const outputDir = resolve(process.argv[3] || DEFAULT_OUTPUT); + + if (!existsSync(input)) { + console.error(`Not found: ${input}`); + process.exit(1); + } + + mkdirSync(outputDir, { recursive: true }); + + const files = collectFiles(input); + + if (files.length === 0) { + console.error(`No image files found in: ${input}`); + process.exit(1); + } + + console.log(`Processing ${files.length} sprite sheet(s)...`); + + const allResults = await Promise.all( + files.map(async (filePath) => { + const results = await splitSpriteSheet(filePath, outputDir); + console.log(` ${basename(filePath)} -> ${results.length} images`); + return results; + }) + ); + + const totalImages = allResults.reduce((sum, r) => sum + r.length, 0); + console.log(`Done. ${totalImages} images saved to ${outputDir}`); +} + +main(); diff --git a/src/styles/main.css b/src/styles/main.css index 9c24665..6a23d73 100644 --- a/src/styles/main.css +++ b/src/styles/main.css @@ -60,6 +60,158 @@ margin-left: 0.25rem; } +@utility page-header { + display: flex; + align-items: flex-start; + gap: 1rem; + margin-bottom: 1.5rem; +} + +@utility page-header-reverse { + display: flex; + flex-direction: row-reverse; + align-items: flex-start; + gap: 1rem; + margin-bottom: 1.5rem; +} + +@utility hero-image { + width: 33%; + flex-shrink: 0; + object-fit: contain; +} + +@utility header-text { + flex: 1; + display: flex; + flex-direction: column; + justify-content: center; + padding-top: 0.5rem; +} + +@utility page-title { + font-size: 2rem; + font-weight: 800; + line-height: 1.1; + letter-spacing: -0.02em; + color: #1e1b4b; +} + +@utility page-subtitle { + font-size: 1.1rem; + font-weight: 500; + color: #6366f1; + margin-top: 0.25rem; +} + +@utility page-meta { + display: flex; + gap: 2rem; + margin-top: 0.75rem; + font-size: 0.85rem; + color: #64748b; +} + +@utility problem-card { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 0.6rem 1.2rem; + border: 2px solid #e0e7ff; + border-radius: 999px; + background: linear-gradient(135deg, #fefefe 0%, #f0f0ff 100%); + box-shadow: 0 2px 8px rgba(99, 102, 241, 0.08); + width: fit-content; + max-width: 85%; +} + +@utility problem-card-icon { + width: 48px; + height: 48px; + flex-shrink: 0; + object-fit: contain; +} + +@utility problem-card-text { + font-size: 1.4rem; + font-weight: 600; + color: #1e1b4b; + white-space: nowrap; +} + +@utility problem-card-answer { + display: inline-block; + width: 3.5rem; + border-bottom: 2.5px solid #a5b4fc; + text-align: center; + margin-left: 0.5rem; +} + +@utility problem-align-left { + display: flex; + justify-content: flex-start; + padding: 0.3rem 0; +} + +@utility problem-align-right { + display: flex; + justify-content: flex-end; + padding: 0.3rem 0; +} + +@utility problem-align-center { + display: flex; + justify-content: center; + padding: 0.3rem 0; +} + +@utility problems-area { + display: flex; + flex-direction: column; + gap: 0.2rem; + flex: 1; +} + +@utility page-content-themed { + position: relative; + z-index: 1; + width: 100%; + height: 100%; + padding: 10mm 15mm 85mm 15mm; + box-sizing: border-box; + display: flex; + flex-direction: column; +} + +@utility page-footer { + position: absolute; + bottom: 0; + left: 0; + right: 0; + height: 80mm; + overflow: hidden; + z-index: 0; + pointer-events: none; +} + +@utility page-footer-image { + width: 100%; + height: 100%; + object-fit: cover; + object-position: center top; +} + +@utility page-footer-fade { + position: absolute; + top: 0; + left: 0; + right: 0; + height: 40%; + background: linear-gradient(to bottom, white, transparent); + pointer-events: none; + z-index: 1; +} + @media print { body { margin: 0; diff --git a/tasks.md b/tasks.md index 0dee57d..7814b15 100644 --- a/tasks.md +++ b/tasks.md @@ -49,7 +49,7 @@ - [x] `dev` — CSS watch + preview (concurrent) ## Step 9: Initialize git repo -- [ ] `git init`, initial commit +- [x] `git init`, initial commit ## Step 10: Configure Banatie API integration - [x] `src/scripts/banatie.mjs` — API client for image generation