SelectionGUI Crafting - Continued
Активный0.0
Установок
Последнее обновление
SelectionGUI Crafting - Continued
Этот проект представляет собой существенную переработку мода Selection GUI Crafting, созданного Gliese_832_c. Изначально планировалось просто адаптировать существующее решение, но в процессе разработки стало понятно, что оригинальная система крафта слишком громоздкая и неудобная для пользователей.
Полная переработка системы
Новая версия предлагает совершенно переосмысленный подход к крафту через интерфейс выбора. Система стала значительно понятнее и удобнее в использовании. Разработчики сборок теперь могут настраивать её под свои нужды с гораздо большей гибкостью. Важным улучшением стала поддержка GroovyScript, а также обновлённая интеграция с CraftTweaker, полностью учитывающая новые возможности мода.
Как это работает?
SelectionGUI Crafting позволяет создателям модификаций добавлять специальные рецепты крафта, активируемые кликом правой кнопкой мыши с определёнными предметами в руках. Это открывает множество интересных возможностей.
Например, для работы с глиной: вместо стандартного расположения шариков глины на верстаке, достаточно взять в одну руку лопатку, в другую - глину, и выбрать нужный готовый предмет из появившегося списка. Другой сценарий - кузнечное дело: держите молот и слиток металла, затем выбирайте головку инструмента, которую хотите изготовить.
Интеграция со скриптами
Система поддерживает два популярных инструмента модификации игрового процесса. Рассмотрим примеры их использования.
CraftTweaker
val test = mods.selectionguicrafting.category.categoryBuilder();
test.id("test");
test.displayName("Test");
test.register();
val myRecipe = mods.selectionguicrafting.recipe.recipeBuilder();
myRecipe.category("test");
myRecipe.output(<minecraft:sand> 2);
myRecipe.tool(<minecraft:stick> 5);
myRecipe.input(<minecraft:snow> 3);
myRecipe.register();
mods.selectionguicrafting.recipe.recipeBuilder().category("test").output(<minecraft:sand> 5).tool(<minecraft:stick> 10).input(<minecraft:snow> 2).register();
GroovyScript
// Создание категории крафта:
// Все рецепты разделены по категориям. Каждая категория имеет свой набор текстур для фона, рамки, украшений и индикатора прогресса. Также можно настроить звуковые эффекты, частицы и способ получения готовых предметов.
mods.selectionguicrafting.category.removeByName('dummy_category_1')
mods.selectionguicrafting.category.categoryBuilder()
.id('dummy_category')
.displayName('Ваша первая категория')
.background('selectionguicrafting:textures/gui/background/wood.png')
.register()
// Создание рецепта:
// Каждый рецепт требует наличие входного предмета (вторая рука), инструмента (основная рука) и результата. Также можно указать необязательный катализатор (в инвентаре). Для рецепта настраивается время изготовления, потребление прочности инструмента, получение опыта и параметры звуков.
mods.selectionguicrafting.recipe.removeByInput(item('minecraft:cobblestone'))
mods.selectionguicrafting.recipe.recipeBuilder()
.category('dummy_category')
.input(item('minecraft:stone') 3)
.output(item('minecraft:cobblestone') 2, 0.5f)
.tool(item('minecraft:wooden_pickaxe'), 1.0f)
.time(200)
.xp(1)
.sound('minecraft:block.anvil.land', 1.0f, 1.0f)
.register()