Животные: сериализация — сейв/лоад популяции и трупов

Закрывает сквозное требование плана (сейв/лоад данных каждой фазы). WorldSave получил Animals (AnimalSave: геном+пол, поколение, стадия/возраст, нужды, здоровье — кровь/HP частей/хедифы, настроение+мысли, беременность+геном отца) и Corpses (CorpseSave). SaveAnimals снимает популяцию (Health/Mood/Pregnant через entity); RestoreAnimals/RestoreAnimalState собирают особь фабрикой из генома + накладывают состояние (ref-правки до AddComponent(Pregnant); труп пере-тинтится через Stage=-1). Corpse получил Species; CreateCorpse принимает индекс вида + HealthState.AddHediff(def,severity,immunity). На загрузке стадо не пересыпается при наличии животных в сейве; старый/пустой сейв регенерируется из сида. Сборка + --check-content чистые.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Leonid Pershin
2026-06-14 06:59:26 +03:00
co-authored by Claude Opus 4.8
parent 003f235440
commit 4b53eb8984
6 changed files with 382 additions and 10 deletions
+4 -2
View File
@@ -994,7 +994,8 @@ public sealed class AnimalMortalitySystem : BaseSystem
var position = dead.GetComponent<Transform2D>().Position;
AnimalFactory.CreateCorpse(
_store,
_animals[org.Species],
_animals,
org.Species,
position,
org.Traits.BodySize,
_cellSize
@@ -1317,7 +1318,8 @@ public sealed class AnimalHealthSystem : BaseSystem
var position = dead.GetComponent<Transform2D>().Position;
AnimalFactory.CreateCorpse(
_store,
_animals[org.Species],
_animals,
org.Species,
position,
org.Traits.BodySize,
_cellSize