# Agrarian MVP Implementation Notes This first implementation creates the C++ foundation for the Phase 1 survival MVP. It is intentionally small and system-oriented: the goal is to make the first playable loop possible without creating throwaway prototype logic that will have to be replaced later. ## Added C++ Systems - `AgrarianTypes` - Shared item, survival, and weather data types. - `AgrarianInteractable` - Interface for anything the player can use/gather/activate. - `AgrarianSurvivalComponent` - Replicated health, stamina, hunger, thirst, body temperature, and injury state. - Server-authoritative decay and survival damage. - Basic ambient temperature exposure from `AgrarianGameState`. - `AgrarianInventoryComponent` - Replicated inventory item stacks. - Server-authoritative add/remove helpers. - `AgrarianGameState` - Replicated world time, weather state, and ambient temperature. - `AgrarianResourceNode` - Interactable gatherable actor that grants inventory items and depletes. - `AgrarianCampfire` - Interactable fire actor using wood as fuel. - Applies warmth to nearby characters. - `AgrarianShelterActor` - Primitive replicated shelter actor with a protection volume placeholder. - `AgrarianGameCharacter` - Now owns survival and inventory components. - Has a server-authoritative interaction trace flow. - `AgrarianGameGameMode` - Now uses `AgrarianGameState`. ## What This Enables Immediately With simple Blueprint children and placeholder meshes, the project can now support: - A player with replicated survival stats. - A player inventory. - Gathering resource nodes into inventory. - Lighting/feeding a campfire with gathered wood. - Warmth from the campfire affecting body temperature. - Replicated day/night/weather state. - Primitive shelter placement as a world actor once a placement UI is added. ## Required Editor Setup These C++ classes need Blueprint/content setup inside Unreal: - Create or update a player Blueprint derived from `AgrarianGameCharacter`. - Assign the existing movement/look/jump input actions as before. - Create an `IA_Interact` input action. - Add `IA_Interact` to the active input mapping context, suggested key `E` / gamepad face button. - Assign `IA_Interact` to the character's `InteractAction` property. - Create Blueprint children: - `BP_AGR_Resource_Wood` from `AgrarianResourceNode` - `BP_AGR_Campfire` from `AgrarianCampfire` - `BP_AGR_PrimitiveShelter` from `AgrarianShelterActor` - Assign placeholder meshes to each Blueprint. - Place several resource nodes and at least one campfire in the test map. - Confirm the active GameMode derives from `AgrarianGameGameMode`. ## First Playable Test The first playable test should verify: - Start the map as one player. - Look at a resource node and press interact. - Wood appears in the player's inventory component. - Interact with the campfire. - One wood is removed and the campfire lights. - Standing near the lit campfire raises/maintains body temperature. - Hunger and thirst decay over time. - Server authority is respected in multiplayer. ## Known Limits - No visual HUD has been added yet. - No crafting UI has been added yet. - No building placement flow has been added yet. - No save/load persistence has been added yet. - No wildlife has been added yet. - No packaged build was compiled in this environment. These are the next MVP tasks, not blockers for this foundation.