Document resource depletion persistence
This commit is contained in:
@@ -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
|
and restore through `RestoreSavedItems`, so inventory listeners and derived
|
||||||
carry weight refresh after load.
|
carry weight refresh after load.
|
||||||
- [x] Save placed structures.
|
- [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 world time.
|
||||||
- [ ] Save weather seed/state.
|
- [ ] Save weather seed/state.
|
||||||
- [ ] Save containers.
|
- [ ] Save containers.
|
||||||
|
|||||||
@@ -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
|
nodes from saves, keeping tile-authored resources owned by tile content while
|
||||||
letting persistence remember depletion for active tiles.
|
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
|
## Open Questions
|
||||||
|
|
||||||
- Should the first playable MVP use `USaveGame`, JSON, or a hybrid save
|
- Should the first playable MVP use `USaveGame`, JSON, or a hybrid save
|
||||||
|
|||||||
@@ -46,12 +46,19 @@ EXPECTED = {
|
|||||||
"Resource node persistence is map/tile state",
|
"Resource node persistence is map/tile state",
|
||||||
"captures only resource nodes that exist in the",
|
"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": [
|
ROOT / "Docs" / "Terrain" / "GroundZeroResourcePass.md": [
|
||||||
"Ground Zero resource actors receive stable `PersistenceNodeId` values",
|
"Ground Zero resource actors receive stable `PersistenceNodeId` values",
|
||||||
"resource nodes that exist in the loaded world",
|
"resource nodes that exist in the loaded world",
|
||||||
],
|
],
|
||||||
ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md": [
|
ROOT / "AGRARIAN_DEVELOPMENT_ROADMAP.md": [
|
||||||
"[x] Add resource node persistence.",
|
"[x] Add resource node persistence.",
|
||||||
|
"[x] Save resource depletion state if needed.",
|
||||||
|
"`FAgrarianSavedResourceNode`",
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user