Повторная генерация / ре-генерация в существющих биомах/чанках

Версия Minecraft
1.7.10
API
Forge

VeniVidiVici

Санта Барбарис
327
15
198
Нужно спавнить в биомах некоторые блоки (на понятном примере - палки из тфк). Я написал новый генератор, наследуемый от IWorldGenerator, зарегистрировал - всё хорошо работает. Но вопрос, как можно реализовать процесс повторного вызова этого генератора для биома/чанка спустя некоторое время или при соблюдении условия? Какие есть пути решения этого дела, и как вообще корректно вызвать вручную мой класс генерации? Необходимо выполнять эту функцию для любых биомов, без создания "специальных".
 
Решение
Запиши в чанк данные - время последней генерации твоих блоков. В ивенте загрузки чанка проверяй что прошло достаточно времени и вызывай свой генератор ручками.

VeniVidiVici

Санта Барбарис
327
15
198
вызывай свой генератор ручками
как вообще корректно вызвать вручную мой класс генерации?

Помнится был мод, регенирирующий новые руды из добавленных модоы, в уже существующем мире
Название не подскажешь?)
 

VeniVidiVici

Санта Барбарис
327
15
198
Вызвать у своего объекта IWorldGenerator метод generate :unsure:
Пример есть в GameRegistry.generateWorld, только там вызываются все генераторы.
Блин, точно, спасибо

Запиши в чанк данные
Посоветуй, пожалуйста, как это лучше сделать? Ивенты загрузки и выгрузки помню. Или может сходу тред нужный подскажешь, я пока не нашёл
---
И сразу вдогонку, есть ли смысл в WSD хранить единый стак чанков со сроком годности обновления, или как-то в них самих писать надо?
 

tox1cozZ

aka Agravaine
8,456
598
2,893
ChunkDataEvent, там в таг пишешь. Странно что этот таг не добавили как поле в классе Chunk.
Ну, тогда наверное нужно юзать WSD, там хранить мапу <ChunkCoordinates, NBTTagCompound>, в генераторе добавлять в мапу данные, а в ChunkDataEvent уже из мапы сохранять в чанк. Можно конечно сейвить прям в WSD, но мне кажется правильнее будет напрямую в чанк писать.
 
Сверху