Типо крафта

Версия Minecraft
1.11+
Как реализовать код если я поставил предмет в новый слой 1 то тогда этот предмет удаляеться и в другом слоте появляеться другой предмет (Типо механики крафта)
 
2,932
44
598
Ну чё! Приват Армянам)) Բարեւ!
Тебе надо что-то типо такого:
file.gif

Это отсюда:
bsmh3yhO51U.jpg

(Это был вопрос)

Простите я армянин и у меня есть права не знать русский язык...
Права знать, не знать, это твоё дело, но желаю поскорее доучить этот язык. ;)
 
Последнее редактирование:

timaxa007

Модератор
5,831
409
672
Но можете дать ответ на мой вопрос?
Всё зависит от того как ты хочешь.
Можно воспользоваться HashMap'ом:
static HashMap<ItemStack, ItemStack> map = new HashMap<ItemStack, ItemStack>();
или ArrayList'ом:
Java:
static class Recept {

Public final ItemStack input, output;

public Recept(ItemStack input, ItemStack output) {
this.input = input;
this.output = output;
}

}
static ArrayList<Recept> list = new ArrayList<Recept>();
Для того чтобы хранить, что должно быть в первом слоте (input) и что должно появиться во втором слоте (output). Проверку делать в update, если в первом слоте будет совпадать с input'ом, не просто "==", а типа:
Java:
input.getItem() == slot.getItem() &&
input.getItemDamage() == slot.getItemDamage() &&
ItemStack.areItemStackTagsEqual(input, slot)
(Может ещё какие-то дополнительные условия сделать)
То во втором слоте появляется результат из output (ItemStack#copy()).
 
Нет я в Армении живу ) Ну знаешь так...Как работает верстак положил предмет если есть такой крафт то предмет в слоте удаляется а в результате появляется новый предмет...типо этого но с 7 слотами (В верстаке 7) и с собственным GUI)))
 
Всё зависит от того как ты хочешь.
Можно воспользоваться HashMap'ом:
static HashMap<ItemStack, ItemStack> map = new HashMap<ItemStack, ItemStack>();
или ArrayList'ом:
Java:
static class Recept {

Public final ItemStack input, output;

public Recept(ItemStack input, ItemStack output) {
this.input = input;
this.output = output;
}

}
static ArrayList<Recept> list = new ArrayList<Recept>();
Для того чтобы хранить, что должно быть в первом слоте (input) и что должно появиться во втором слоте (output). Проверку делать в update, если в первом слоте будет совпадать с input'ом, не просто "==", а типа:
Java:
input.getItem() == slot.getItem() &&
input.getItemDamage() == slot.getItemDamage() &&
ItemStack.areItemStackTagsEqual(input, slot)
(Может ещё какие-то дополнительные условия сделать)
То во втором слоте появляется результат из output (ItemStack#copy()).
а этот второй код где написать
 
Сверху