Снять копию ItemStack для тайла

Версия Minecraft
1.7.10
API
Forge
192
2
9
Всем привет. Появилась необходимость сделать из тайла itemstack со всеми вытекающими, включая NBT. Возможно ли это?
Может быть есть вариант проще? Мне нужно дропнуть тайл в виде айтема, сохранив при этом, к примеру, энергию.
Пытаюсь сделать что-то такое, но в итоге получаю айтем без тегов (с дефолтными), то есть та же энергия не сохраняется:
Code:
ItemStack is = new ItemStack(block);
is.setItemDamage(md);
TileEntity tile = world.getTileEntity(x, y, z);
if (tile != null) {
    NBTTagCompound nbt = new NBTTagCompound();
    tile.writeToNBT(nbt);
    is.setTagCompound(nbt);
}
 
1,074
72
372
В какой метод блока пихаешь данный код? Теги переноси вручную туда-сюда или реализуй у тайла отдельные методы для записи его доп. свойств, которые можно вызывать внутри read/writeToNBT(). Потому что writeToNBT крайне избыточен для предмета - xyz и id свой-ва точно не нужны предмету.
 
192
2
9
Разве имеет значение, где и как я использую данный код? Важно, как я думал, что у меня есть переменная world для извлечения из него тайла, а всё остальное я могу создать в виде новых экземпляров и не важно где.
Теги переноси вручную туда-сюда
Вот это не понял. Типо получить тег и его значение, затем записать этот тег со значением в айтем?
А по поводу тайлов. Я не могу знать наверняка, что за тайл в мире будет находиться. Я пробегаюсь по территории циклом.

По сути мне нужен самый стандартный дроп тайла, как если бы его сломал игрок. В таком случае у тайла, на котором я провожу тесты сейчас, та же энергия сохраняется и если поставить блок обратно в мир, я получу тайл полностью идентичный тому, что стоял до поломки.
 
1,074
72
372
Разве имеет значение, где и как я использую данный код?
Имеет конечно. Когда сохранения должен отработать до того как тайл будет уничтожен.

Вот это не понял. Типо получить тег и его значение, затем записать этот тег со значением в айтем?
Определи в тайле свои методы read/writeCustomNBT, в них реализуй запись своих свойств вроде энергии. Их используйте при работе с NBT предмета. Также их вызывай из стандартных read/writeToNBT(). Это позволит чётко разграничить NBT теги майна и свои.
 
Сверху