ULimenArchive
Overview
ULimenArchive is a subclass of ULimenStorageItem designed to manage and provide access to archived content. It includes properties for storing text paragraphs, an image, and a display widget class. The class also provides functionality to track whether the archive has been read and to retrieve various forms of the stored content.
Properties
Type | Name | Access | Description |
|---|---|---|---|
| OnArchiveRead | BlueprintAssignable | A delegate that is broadcast when the archive is read. |
| bHasBeenRead | SaveGame, Private | Tracks whether the archive has been read. |
| Paragraphs | EditAnywhere, Public | An array of text paragraphs stored in the archive. |
| ImageTexture | EditAnywhere, Public | A soft pointer to an image texture associated with the archive. |
| DisplayWidgetClass | EditAnywhere, Public | A soft class pointer to a display widget class used for rendering the archive content. |
Functions
Return Type | Signature | Description |
|---|---|---|
| HasBeenRead() const | Returns whether the archive has been read. |
| SetHasBeenRead() | Marks the archive as having been read and broadcasts the |
| GetParagraphs() const | Returns an array of text paragraphs stored in the archive. |
| GetFullText() const | Returns a concatenated string of all paragraphs, with each paragraph separated by two newlines. The result is cached for performance. |
| GetImage() const | Loads and returns the image texture associated with the archive synchronously. |
| GetDisplayWidgetClass() const | Loads and returns the display widget class associated with the archive synchronously. |
Usage & Implementation Notes
Threading Constraints: The
GetFullTextfunction is thread-safe as it uses a mutable optional to cache the result.Replication Requirements: The
bHasBeenReadproperty is marked withSaveGame, indicating that its state should be saved and replicated across networked instances if applicable.Memory Lifetime Management: The
ImageTextureandDisplayWidgetClassuse soft pointers, which manage memory more efficiently by not loading the objects until they are actually needed.