Использование ChunkPrimer

Версия Minecraft
1.12.2
3,005
192
592
Создаю кастомный мир.
В классе, наследованным IChunkGenerator юзаю ChunkPrimer для генерации.
Код:
Код:
@Override
public Chunk generateChunk(int x, int z) {
    Chunk chunk = new Chunk(this.world, getChunkPrimer(world, x, z), x, z);
    chunk.generateSkylightMap();
    return chunk;
}
Вопрос: Как из ChunkPrimer'а достать тайл?
В чистом классе есть только get/set BlockState.
 
3,005
192
592
3,005
192
592
Если делать через свои блоки - в тайле писать в апдейте что-то типо?
Иф сервер {
СетАирБлок
СетСундук
ГетТайл.СетСлоты
}
 
7,099
324
1,510
Слишком обобщено
"неудобные, но работающие решения" - уже лучше
В данном случае оба решения имеют недостатки, но работают

Если делать через свои блоки
В методе YourBlock#createNewTileEntity
ГетТайл.СетСлоты
Вместо get просто создаешь новый тайл
 
3,005
192
592
В методе YourBlock#createNewTileEntity
Я могу там только создать тайл.
А блок тогда останется тот же.
~
Точнее там нету pos'а, что бы поставить новый блок.
~
Сделал так..
Код:
@Override
public void update() {
    if (!getWorld().isRemote) {
        getWorld().setBlockState(getPos(), Blocks.CHEST.getDefaultState());
        TileEntityChest te = (TileEntityChest) getWorld().getTileEntity(getPos());
        te.setInventorySlotContents(0, new ItemStack(Items.APPLE));
    }
}
Вроде работает.
~
Так и остaвить?
 
Последнее редактирование:
7,099
324
1,510
3,005
192
592
Мне нужен сундук с предметами.
Был вариант через свой блок, который будет при загрузке делать сундук с предметами.
Но прикол в том, что кроме как через тайл апдейта я не нашел способа.
В методе YourBlock#createNewTileEntity можно только тайл сделать.
Блок нельзя сделать.
А если будет мой блок и тайл ванилы - мне такое не нужно.
 
3,005
192
592
Сделал блок.
Унаследовал от ITileEntityProvider.
Сделал тайл.
Унаследовал от тайла и ITickable.
В update'е прописал сет на новый блок.
Сетаю блок в ChunkPrimer.
В итоге, после генерации - блок есть, а update не тикает...
~
Если вручную поставить блок - тайл тикает.
 
3,005
192
592
Сверху