Удаление и возврат рецептов

Удаление и возврат рецептов

1,195
28
279
will0376 добавил(а) новый ресурс:

Удаление и возврат рецептов - Нужно удалить рецепт крафта, но ты не знаешь как? Тогда тебе сюда

Всем добра-бобра. Решил выложить свой вариант того, как удалять и возвращать рецепты в кубаче.
1.Ну-с, Удаление рецепта:
Для начала стоит завести отдельный класс для всего этого. Я обозвал его CraftManager.
Вторым делом заведем метод, который будет искать рецепт в общем массиве ForgeRegistries.
Java:
public static ArrayList<CraftPOJO> removedRecipe = new ArrayList<>(); //Завожу лист, куда буду класть удалённые рецепты.
//Если не собираешься делать возврат крафта -...

Узнать больше об этом ресурсе...
 

tox1cozZ

aka Agravaine
Модератор
7,536
486
2,348
Пару нюансов:
Во-первых, зачем оборачивать рецепты в лист, если там и так возвращается новый неизменяемый лист? ArrayList<IRecipe> recipes = Lists.newArrayList(recipeRegistry.getValues());
Во-вторых, мы удаляем все рецепты для конкретного стака. То есть если у ведра, например, есть два разных рецепта, то удалим мы оба. Не годится. У IRecipe есть метод matches, я бы юзал его для сверки рецепта. Там первый параметр InventoryCrafting, создаем новый объект и заполняем его слоты в виде рецепта, который нужно удалить. Второй параметр мир, у нас его нет, можно осторожно передать нулл, вроде мало кто юзает его там... Только рецепты клонирования карт, вроде. Тогда мы удалим только ток рецепт, который реально хотим, а не все рецепты для ведра.
 
1,195
28
279
зачем оборачивать рецепты в лист, если там и так возвращается новый неизменяемый лист?
где-то на форуме форджа такое видел, вот и взял.
все рецепты для конкретного стака
первый попавшийся рецепт для стака если я не ошибаюсь.

Всяко лучше того, что я нашел за 18 год :D закончу с текущим модом - поправлю тут
 
1,195
28
279
Там первый параметр InventoryCrafting, создаем новый объект и заполняем его слоты в виде рецепта, который нужно удалить.
Честно говоря- лишние телодвижения. Если вдруг понадобилось убрать один крафт - можно и MT поставить...(Я сужу по концепту OpenBlocker'а, где на 1 айтем надо убрать все возможные рецепты.)
 
Сверху