Vintage KubeJS: связка KubeJS и Create Vintage Improvements для кастомных рецептов
Если вы собираете модпак на Minecraft с Create и расширением Vintage Improvements, рано или поздно появляется потребность гибко править рецепты: ускорять прогрессию, балансировать жидкости и шансы выхода, добавлять продвинутые цепочки крафта. Именно для этого существует дополнение Vintage KubeJS: оно открывает в скриптах KubeJS поддержку типов рецептов мода Vintage Improvements и позволяет делать это предсказуемо и воспроизводимо на серверах и в одиночной игре.
Зачем это нужно модпакмейкерам
KubeJS уже стал стандартом для «лёгких» правок геймплея без отдельного Java-мода. Vintage KubeJS продолжает эту линию: вместо поиска путей через datagen или правок конфигов вы описываете рецепты событиями сервера и сразу видите результат в мире. Это особенно удобно в связке с механиками Create — там, где важны обороты, время обработки, нагрев и побочные жидкости.
Поддерживаемые типы рецептов
Мод покрывает ключевые производственные операции Vintage Improvements. В скриптах обычно встречаются следующие типы: центрифугирование, намотка пружин (coiling), гибка (curving), ковка молотом (hammering), лазерная резка, шлифование на ленточном станке, прессуризация и вакуумирование, виброобработка, токарная обработка (turning). У прессуризации и вакуумирования дополнительно учитываются режимы нагрева через цепочки heated и superheated, что важно для правильной интеграции с горелками и температурными условиями.
- Центрифугирование: работа с бассейнами, жидкостями, шансовыми выходами, временем и минимальными оборотами.
- Намотка пружин: настройка времени и цвета пружины.
- Гибка: режимы, «голова» пресса и износ головы; предмет головы должен иметь тег для кривления.
- Ковка молотом: число ударов и при желании свой наковальненный блок с соответствующим тегом.
- Лазерная резка: энергозатраты и максимальная скорость заряда.
- Шлифование: время, хрупкость предметов, ограничения скорости.
- Прессуризация и вакуумирование: жидкости, побочные входы и выходы, время обработки.
- Виброобработка и токарка: время и наборы выходов с шансами.
Удобные возможности API: шансы, жидкости, методы-цепочки
Большинство операций допускают несколько выходов и варианты с вероятностью — это полезно, когда нужно смоделировать «сырьё с примесями» или редкие побочные продукты. Для жидкостей типичны конструкции вроде Fluid.of с указанием модификатора и объёма. Параметры вроде processingTime и minimalRPM позволяют точнее вписать рецепт в общую экономику модпака: медленнее — дешевле по входам, быстрее — дороже по инфраструктуре.
Отдельно стоит отметить предметы-типа vintageimprovements:spring: для них доступен метод жёсткости setStiffness(int), что помогает задавать поведение пружин при кастомизации через KubeJS ItemBuilder — удобно, если вы делаете свои ветки прокачки материалов и замены деталей в машинах.
Теги, совместимость и аккуратность в сборке
Некоторые рецепты «цепляются» к инфраструктуре строго по правилам: для кривления нужны корректно промаркированные головы, для кастомных наковален — свои теги блоков. На практике это экономит часы отладки: ошибка почти всегда локализуется в тегах или в несоответствии предмета ожидаемому типу. Перед выкатыванием обновления модпака имеет смысл прогнать минимальный набор проверок в тестовом мире и сверить версии Create, Vintage Improvements и KubeJS — несовпадение билдов часто выглядит как «рецепт есть, а машина молчит».
Когда вы только подбираете набор модов под свою идею, хочется меньше ручной возни с jar-файлами и зависимостями — на этом этапе удобно сосредоточиться на логике прогрессии, а техническую рутину отдать инструментам установки; к слову, такой мод можно быстро подключить и к сборке через лаунчер foxygame.net: это современный и гибкий лаунчер для Minecraft, где моды ставятся прямо из меню без лишних прыжков между сайтами и папками. Дальше всё равно остаётся «магия» KubeJS — но уже над контентом, а не над распаковкой архивов.
С чего начать в скриптах
Типичная точка входа — обработчик рецептов на сервере, где вы вызываете соответствующие фабрики event.recipes.vintageimprovements.* и дополняете цепочками методов под задачу: время, нагрев, вторичные жидкости, энергетика лазера, параметры пружины и т. д. Примеры из документации мода обычно иллюстративные: копировать их «как есть» с конкретными предметами в продакшен-сборке не стоит — лучше адаптировать под собственные теги, жидкости и баланс.
Заключение
Vintage KubeJS — практичный мост между экосистемой скриптинга KubeJS и производственными механиками Create Vintage Improvements. Он даёт модпакмейкеру единый язык для описания сложных станковых процессов: у вас есть шансы, жидкости, температурные режимы и тонкая настройка пружин. Если держать версии синхронными и внимательно относиться к тегам предметов и блоков, поддержка рецептов превращается из головной боли в контролируемый инструмент дизайна — от ранней игры до поздних автоматических цехов.