# BPC_ItemCombineSystem — Item Combine System **Parent Class:** `ActorComponent` **Category:** Inventory **Target UE Version:** 5.5–5.7 **Build Phase:** 3 — Inventory ## 1. Overview `BPC_ItemCombineSystem` handles item combination and crafting — combining two or more inventory items to create new items. Supports recipe-based combinations, ingredient validation, and result generation. ## 2. Enums ### `E_CombineResult` | Value | Description | |-------|-------------| | `Success` | Items combined successfully | | `MissingIngredients` | Not all required items present | | `IncompatibleItems` | Items cannot be combined | | `InventoryFull` | No space for result item | | `RecipeNotFound` | No recipe matches combination | ## 3. Variables | Variable | Type | Description | |----------|------|-------------| | `Recipes` | `TArray` | Loaded recipe data assets | | `CombineCooldown` | `float` | Time between combine operations | | `bConsumeIngredients` | `bool` | Remove ingredients on combine | ## 4. Functions | Function | Description | |----------|-------------| | `CombineItems` | Attempts to combine two items by slot index | | `GetValidRecipes` | Returns all recipes matching current inventory items | | `PreviewResult` | Shows result item without consuming ingredients | | `CanCombine` | Checks if two items have a valid recipe | ## 5. Event Dispatchers | Dispatcher | Payload | Description | |------------|---------|-------------| | `OnCombineSuccess` | `S_InventoryEntry Result` | Items combined | | `OnCombineFailed` | `E_CombineResult Reason` | Combination failed | | `OnRecipeDiscovered` | `DA_RecipeData Recipe` | New recipe found | ## 6. Dependencies | System | Relationship | |--------|--------------| | `BPC_InventorySystem` | Reads and modifies inventory items | | `DA_RecipeData` | Recipe definitions | ## 7. Reuse Notes - Data-driven recipe system; designers add recipes via data assets