Document resource depletion persistence

This commit is contained in:
2026-05-18 19:20:45 -07:00
parent 188ef7b509
commit 66f523b3be
3 changed files with 16 additions and 1 deletions
+4 -1
View File
@@ -751,7 +751,10 @@ Target deliverable: A small group can join a server, spawn into one biome, gathe
and restore through `RestoreSavedItems`, so inventory listeners and derived
carry weight refresh after load.
- [x] Save placed structures.
- [ ] Save resource depletion state if needed.
- [x] Save resource depletion state if needed. Active loaded resource nodes
persist stable `ResourceNodeId`, remaining harvest count, and MVP respawn
flag through `FAgrarianSavedResourceNode`, then restore depletion to matching
map-authored nodes on load.
- [ ] Save world time.
- [ ] Save weather seed/state.
- [ ] Save containers.
+5
View File
@@ -485,6 +485,11 @@ restore only matching existing nodes. This deliberately avoids spawning resource
nodes from saves, keeping tile-authored resources owned by tile content while
letting persistence remember depletion for active tiles.
Resource depletion is stored in `FAgrarianSavedResourceNode` records with stable
`ResourceNodeId`, remaining harvest count, and the MVP respawn flag. The
persistence subsystem captures active loaded resource nodes during world save
and applies depletion only to matching map-authored nodes during load.
## Open Questions
- Should the first playable MVP use `USaveGame`, JSON, or a hybrid save
@@ -46,12 +46,19 @@ EXPECTED = {
"Resource node persistence is map/tile state",
"captures only resource nodes that exist in the",
],
ROOT / "Docs" / "PersistenceDesignDocument.md": [
"`FAgrarianSavedResourceNode`",
"`ResourceNodeId`, remaining harvest count, and the MVP respawn flag",
"matching map-authored nodes during load",
],
ROOT / "Docs" / "Terrain" / "GroundZeroResourcePass.md": [
"Ground Zero resource actors receive stable `PersistenceNodeId` values",
"resource nodes that exist in the loaded world",
],
ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md": [
"[x] Add resource node persistence.",
"[x] Save resource depletion state if needed.",
"`FAgrarianSavedResourceNode`",
],
}