TauCetiClassic
TauCetiClassic copied to clipboard
[Bug] Гонки в генерации пещер
Описание
После обновления сервера до 630 стала рантаймить генерация пещер на сервере, пример ошибки:
[06:40:49] Runtime in code/modules/mining/mine_turfs.dm:57 : undefined proc or verb /turf/simulated/floor/plating/airless/asteroid/cave/MineralSpread().
proc name: atom init late (/turf/simulated/mineral/atom_init_late)
src: Asteroid (122,39,6) (/turf/simulated/floor/plating/airless/asteroid/cave)
call stack:
Asteroid (122,39,6) (/turf/simulated/floor/plating/airless/asteroid/cave): atom init late()
Asteroid (122,39,6) (/turf/simulated/floor/plating/airless/asteroid/cave): atom init late()
Atoms (/datum/controller/subsystem/atoms): InitializeAtoms(null)
Atoms (/datum/controller/subsystem/atoms): Initialize(132404)
Master (/datum/controller/master): Initialize(null, null)
Похоже CaveSpread()
теперь успевает отработать раньше поздней инициализации, из-за чего init_late багует ибо тип турфа уже не тот.
Шаги воспроизведения
No response
Дополнительная информация:
No response
Всё что я знаю, это то что систему пещер никто не допиливал на ТГ, а сразу на раст перенесли. А на бее её и не было, добавляли только как генератор рандомных карт, но я так и не понял как он работает и что надо тащить.
Надо думать и вникать
Похоже
CaveSpread()
теперь успевает отработать раньше поздней инициализации
CaveSpread()
находится тоже в поздней инициализации и срабатывает раньше (не всегда из-за prob(mineralChance)
и prob(2)
), чем MineralSpread()
проблема была всегда, просто рантайм почему-то не появлялся...
https://github.com/TauCetiStation/TauCetiClassic/blob/f45d3cae525313da3d4aaaec67f3527a33f95dd8/code/modules/mining/mine_turfs.dm#L446-L457
https://github.com/TauCetiStation/TauCetiClassic/blob/f45d3cae525313da3d4aaaec67f3527a33f95dd8/code/modules/mining/mine_turfs.dm#L149-L158
https://github.com/TauCetiStation/TauCetiClassic/blob/f45d3cae525313da3d4aaaec67f3527a33f95dd8/code/modules/mining/mine_turfs.dm#L55-L57