TauCetiClassic icon indicating copy to clipboard operation
TauCetiClassic copied to clipboard

[Bug] Гонки в генерации пещер

Open volas opened this issue 1 year ago • 2 comments

Описание

После обновления сервера до 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

volas avatar Feb 13 '24 03:02 volas

Всё что я знаю, это то что систему пещер никто не допиливал на ТГ, а сразу на раст перенесли. А на бее её и не было, добавляли только как генератор рандомных карт, но я так и не понял как он работает и что надо тащить.

Надо думать и вникать

Deahaka avatar Feb 13 '24 04:02 Deahaka

Похоже 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

NinjaPikachuska avatar Feb 13 '24 08:02 NinjaPikachuska