[1.7.10] Предмет с нбт.

29
0
Помогите получше разобраться как сделать предмет с нбт, а для примера приведу то что мне нужно:
Представим что у меня есть 3 разных дробилки, и при дробление руды мы получаем кластер. Нужно что бы этот кластер можно было засунуть в другую дробилку и увеличить некий множитель на 1, и потом засунув этот кластер в печку мы получим число слитков равное множителю. То есть с 1 кластера мы можем получить от 2 до 4 слитков.
А теперь вопрос: как мне это реализовать ? желательно более подробно, т.к. иногда я могу сильно тупить.


п.с. подкиньте инфу как отрендерить предмет над блоком. (как у пьедестала в таумкрафте).
 
1. Метадата уже не подходит, вроде 32к метадаты в предмете хватает с лишком. Нет, так нет. Сейчас поищу за тебя инструкцию работы с НБТ

Код:
if(!stack.hasTagCompound()){
        stack.setTagCompound(new NBTTagCompound());
}
        stack.getTagCompound().setString("key", "value");
        stack.getTagCompound().setBoolean("key2",true);
С получением - аналогично, только не сет, а гет смотреть.
2. Попробуй декомпилировать мод. Для простоты можно взять не сам таум, а библиокрафт - там тоже есть рендер предмете в блоке
 
1) А разве есть стаковые рецепты для печки? Только мета, только хардкор. К тому же нбт-предметы нистакаются.
2) Алюдель. Там и свечение равное свечению блока внутре есть.
 
dark32 написал(а):
1. Метадата уже не подходит, вроде 32к метадаты в предмете хватает с лишком. Нет, так нет. Сейчас поищу за тебя инструкцию работы с НБТ
Ну я просто предположил что для этого используется нбт. хотя да соглашусь что для данного предмета проще будет использовать метадату. А вот если делать например броню в которую можно впихнуть апгрейды (как в эндерИо) то уже потребуется нбт, всё таки броня имеет свойство ломаться а значит метадата нам уже не подходит, я ведь правильно понял ?

п.с. а что используется для предметов которые хранят энергию ?
 
laz2727 написал(а):
1) А разве есть стаковые рецепты для печки? Только мета, только хардкор. К тому же нбт-предметы нистакаются.
2) Алюдель. Там и свечение равное свечению блока внутре есть.
а как же пчёлы из форестри ? дроны же стакаются если у них одинаковый геном.
 
Ну да. Только вот это пилить сложновато, шифткликом будет трансформироваться. И, по-моему, у пчел и мета тоже.
 
Эм... Если я не ошибаюсь предметы (и даже блоки) с НБТ стакаються, просто есть такая особенность ItemStack'а, которую я не могу понять. Иногда некоторые предметы у которого идентичный по параметрам (включая ид) другого предмета, они могут стакаться, но если они появились в инверторе разными путями, то они какое-то время не смогут стакаться. Иногда помогает перезаход на карту, если они находились в инверторе (в сундуках и прочих контейнерах, вроде тоже помогает).
[merge_posts_bbcode]Добавлено:[/merge_posts_bbcode]
Для уточнения: НБТ с одинаковыми тегами и их значениями стакаються, (если предмет так-же одинаков с другим).
 
Новый вопрос: как мне получить в результате крафта/обжарки предмет с другими значениями нбт тегов ?
и отсюда же вытекает следующий вопрос, как использовать в крафте предмет с определёнными значениями нбт тегов.
 
Рецепты верстака возвращают итемстак, поэтому дополнительных действий для крафта предмета с нбт не потребуется.
Примерно так:

Код:
NBTTagCompound nbt = new NBTTagCompound();
nbt.setInteger("test", 0x55);
ItemStack outputItemStack = new ItemStack(itemForthROM);
outputItemStack.setTagCompound(nbt);
// Далее используем outputItemStack в рецепте.

Для использования предметов с нбт в крафте, скорее всего потребуется создать свой класс рецепта, реализующий интерфейс IRecipe.
 
Назад
Сверху