
KubeJS Immersive Engineering
KubeJS Immersive Engineering - это аддон, который добавляет поддержку рецептов Immersive Engineering в скрипты KubeJS. Теперь ты можешь гибко настраивать крафты для мультиблоков вроде дуговой печи или клоша, не трогая код на Java.
KubeJS Immersive Engineering - это интеграция между KubeJS и популярным техническим модом Immersive Engineering для Майнкрафт.
Зачем это нужно
Immersive Engineering добавляет в игру кучу крутых мультиблочных механизмов: от доменной печи до клоша для автоземледелия. Но если у тебя сборка или сервер, где хочется уникального геймплея - например, убрать двойной прокат руд или сделать новые катализаторы в дуговой печи - то по умолчанию это или невозможно, или требует правки джарников. KubeJS Immersive Engineering решает эту проблему: через привычные ивенты KubeJS ты можешь добавлять, изменять или убирать рецепты для любых механизмов IE.
Поддерживаемые типы рецептов
Список того, что можно кастомизировать через скрипты (формат EventHandlerа - event.recipes`):
-
immersiveengineeringAlloy- сплавление в нагревателеevent.recipes.immersiveengineeringAlloy(output, input1, input2) -
immersiveengineeringBlastFurnace- доменная печь (со шлаком или без)event.recipes.immersiveengineeringBlastFurnace(output, input) event.recipes.immersiveengineeringBlastFurnace(output, input, slag) -
immersiveengineeringBlastFurnaceFuel- топливо для домны (таймер кастомизируется)event.recipes.immersiveengineeringBlastFurnaceFuel(input).time(300) -
immersiveengineeringCokeOven- ✨овая печь (настраивается выход креозота и время)event.recipes.immersiveengineeringCokeOven(output, input).creosote(250).time(900) -
immersiveengineeringCloche- клош (автоматическая ферма). Можно указать блок рендера (формат crop/block)event.recipes.immersiveengineeringCloche([outputs], input, soil) event.recipes.immersiveengineeringCloche([outputs], input, soil, render) // {type: 'crop', block: 'minecraft:wheat'} -
immersiveengineeringFertilizer- модификатор роста для удобренийevent.recipes.immersiveengineeringFertilizer(input).growthModifier(1.5) -
immersiveengineeringMetalPress- пресс-формыevent.recipes.immersiveengineeringMetalPress(output, input, mold) -
immersiveengineeringArcFurnace- дуговая печь (с возможностью добавок и шлака)event.recipes.immersiveengineeringArcFurnace([outputs], input) event.recipes.immersiveengineeringArcFurnace([outputs], input, [additives]) event.recipes.immersiveengineeringArcFurnace([outputs], input, [additives], slag) -
immersiveengineeringCrusher- дробилка (вторичный выход с шансом)event.recipes.immersiveengineeringCrusher(output, input) event.recipes.immersiveengineeringCrusher(output, input, [secondaries]) // {chance: 0.5, output: 'item:id'} -
immersiveengineeringSawmill- пилорама (с опцией strip и stripped-блоком)event.recipes.immersiveengineeringSawmill(output, input) event.recipes.immersiveengineeringSawmill(output, input, [secondaries]) // {stripping: true, output: 'item:id'} event.recipes.immersiveengineeringSawmill(output, input, [secondaries], stripped)
Как это работает
На практике это выглядит так: в своём server_scripts или startup_scripts ты пишешь примерно такое:
onEvent('recipes', event => {
event.recipes.immersiveengineeringCrusher('minecraft:diamond', 'minecraft:coal_block')
})
И вуаля - блок угля в дробилке даёт алмаз. Никаких дополнительных компиляций, просто перезагрузка скриптов. Идеально для сборок на Fabric (с KubeJS Fabric) или Forge.
Нюансы
- Рецепты подчиняются стандартным правилам KubeJS: если нужно удалить ванильный рецепт - сначала
event.remove({id: '...'}). - Вторичные выходы у дробилки или пилорамы задаются через массив объектов с шансом и идентификатором предмета.
- При рендере для клоша можно указать любой блок - не только пшеницу, но и свои кастомные культуры.
Итог
Если ты собираешь техническую сборку на Immersive Engineering и хочешь гибкого контроля над рецептами без возни с JSON или CraftTweaker - KubeJS Immersive Engineering станет отличным инструментом. Всё родное для KubeJS, всё просто и прозрачно.
