add blueprints

This commit is contained in:
Lefteris Notas
2026-05-19 13:22:27 +03:00
parent f71bc678b2
commit 411edea8ce
138 changed files with 23330 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
# BPC_UsableWorldObjectSystem — Usable World Object System
**Parent Class:** `ActorComponent`
**Category:** Interaction
**Target UE Version:** 5.55.7
**Build Phase:** 2 — Interaction
## 1. Overview
`BPC_UsableWorldObjectSystem` powers generic usable objects in the world — switches, buttons, valves, terminals, readable notes, audio logs. Provides a unified interaction interface for any object the player can "use" via the InteractionDetector.
## 2. Enums
### `E_UsableObjectType`
| Value | Description |
|-------|-------------|
| `Switch` | Toggleable switch |
| `Button` | Pressable button |
| `Valve` | Rotatable valve |
| `Terminal` | Interactive screen |
| `Readable` | Note/book |
| `AudioLog` | Audio playback device |
| `Generic` | Custom interaction |
## 3. Variables
| Variable | Type | Description |
|----------|------|-------------|
| `ObjectType` | `E_UsableObjectType` | Type of usable object |
| `InteractionData` | `DA_InteractionData*` | Interaction definition |
| `bIsActive` | `bool` | Object enabled |
| `bSingleUse` | `bool` | Can only be used once |
| `bHasBeenUsed` | `bool` | Tracked if single-use |
| `CooldownSeconds` | `float` | Reuse cooldown |
## 4. Functions
| Function | Description |
|----------|-------------|
| `OnUse` | Executes interaction logic |
| `SetEnabled` | Enable/disable object |
| `ResetObject` | Return to initial state |
## 5. Event Dispatchers
| Dispatcher | Payload | Description |
|------------|---------|-------------|
| `OnObjectUsed` | `AActor* User` | Object successfully used |
| `OnObjectStateChanged` | `bool bIsActive` | State toggled |
## 6. Dependencies
| System | Relationship |
|--------|--------------|
| `BPC_InteractionDetector` | Focus and interaction routing |
| `DA_InteractionData` | Data-driven interaction config |
## 7. Reuse Notes
- Generic base for all "press E to use" world objects
- Can be subclassed for specialized behavior