48 lines
2.0 KiB
Markdown
48 lines
2.0 KiB
Markdown
# E3.M1 — ResourceNodeAndGatherLoop
|
||
|
||
## Summary
|
||
|
||
| Field | Value |
|
||
|--------|--------|
|
||
| **Module ID** | E3.M1 |
|
||
| **Epic** | [Epic 3 — Crafting Economy](../epics/epic_03_crafting_economy.md) |
|
||
| **Stage target** | Prototype |
|
||
| **Status** | In Progress (see [dependency register](module_dependency_register.md); prototype gather XP anchor [NEO-41](../../plans/NEO-41-implementation-plan.md)) |
|
||
|
||
## Purpose
|
||
|
||
World resource nodes, gather interactions, and yield outputs feeding inventory ([E3.M3](E3_M3_ItemizationAndInventorySchema.md)) and XP ([E2.M2](E2_M2_XpAwardAndLevelEngine.md)).
|
||
|
||
## Responsibilities
|
||
|
||
- Spawn/manage nodes per `ResourceNodeDef`; resolve `GatherResult` via `ResourceYieldTable`; integrate interaction range via [E1.M3](E1_M3_InteractionAndTargetingLayer.md).
|
||
|
||
## Key contracts
|
||
|
||
| Contract | Role |
|
||
|----------|------|
|
||
| `ResourceNodeDef` | Node type, capacity, regen. |
|
||
| `GatherResult` | Items and depletion state. |
|
||
| `ResourceYieldTable` | Probabilities or fixed yields. |
|
||
|
||
## Module dependencies
|
||
|
||
- **E1.M3** — InteractionAndTargetingLayer.
|
||
- **E2.M2** — XpAwardAndLevelEngine.
|
||
|
||
## Dependents (by design)
|
||
|
||
- **E3.M2** — RefinementAndRecipeExecution (inputs).
|
||
- **E4.M2** — SpawnEcologyController.
|
||
|
||
## Related implementation slices
|
||
|
||
Epic 3 **Slice 2** — 4–6 node types; `resource_gathered`, `gather_node_depleted`.
|
||
|
||
**Prototype implementation anchor (NEO-41):** until **`GatherResult`** / yield tables exist, the repo treats a **successful** **`POST …/interact`** on an entry with **`kind: resource_node`** (`prototype_resource_node_alpha`) as **gather completion** for **skill XP** only — **`salvage`** + **`activity`** via [`SkillProgressionGrantOperations`](../../../server/NeonSprawl.Server/Game/Skills/SkillProgressionGrantOperations.cs) (same rules as NEO-38). Migrate this hook when a dedicated gather pipeline lands.
|
||
|
||
## Source anchors
|
||
|
||
- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Epic 3.
|
||
- [Module dependency register](module_dependency_register.md)
|