Реставрация до былого вида.

Версия Minecraft
1.12.2
586
32
136
Вообщем, сделал что-то похожее на карьер.Хочу, что-бы при разрушении карьера, всё, что находится в радиусе копания, возвратилось в то состояние, которое было до копания карьером.Прошу подсказать, как реализовать:3
 

mod

156
2
12
определяй, что карьер сломал, либо давай им номера?
 

mod

156
2
12
может от номера карьера, данного при создании, давать название мапу, потому что из-за названий одинаковых, они могут накладываться?
 
476
9
39
Делай проще создай мапу аля <BlockPos, HashMap<BlockPos, IBlockState>>
И храни всё в ней.
Как ты понял первый BlockPos для карьера, хэшмап же для pos=state т.е чтобы восстановить блок в ровно в том состоянии котором он был, а не в обычном.
Далее вешаешь мапу в карьер или в ивент разрушения блока карьером(лучше последнее, если есть)
Создаёшь на ивент разрушения блока проверку на карьер
С помощью blockpos карьера получаешь из хэшмапа нужный нам хэшмап
Пробегаешь по всем координатам и восстанавливаешь блоки.
Done.
Можно проще создать объект аля PosNState
В конструктор BlockPos, IBlockState
Ну и getter'ы пихаешь аля getPos(); и getState();
И потом уже создаешь вместо <BlockPos, HashMap<BlockPos, IBlockState>>
Это <BlockPos, Arraylist<PosNState>>
И тогда уже проще так как тупо перебираешь уже 100% существующие блока, а не ищешь по координатам blockState.
Дальше разберёшься.
Fatality.
 
476
9
39
Лол. нбт теги и так привязаны к координатам тайлэнтити, в котором хранятся.
А если tiltentity нету так как карьер его снёс?
Неужто карьер нифига не оптимизирован, что оставляет после себя мусор из tileentit'eй?
 
476
9
39
Что? Карьер прежде чем уничтожить блок, записывает его координаты, блокстейт и желательно тайл(если его нельзя вынуть из блокстейта) в нбт.
 
476
9
39
Что? Карьер прежде чем уничтожить блок, записывает его координаты, блокстейт и желательно тайл(если его нельзя вынуть из блокстейта) в нбт.
Воу круто, я не знал.
Тогда всё проще тупо вытащить всю инфу оттуда и никакой хэшмап не сдался.
 
Сверху