Files
integration/Source/Integration/ConsoleOutput.h

74 lines
2.0 KiB
C
Raw Normal View History

//////////////////////////////////////////////////////////////
//
// ConsoleOutput
//
// This class can optionally be used by the GameMode
// blueprint to help implement the console window. There is
// no requirement that the blueprint use this class, it can
// implement the console window any way it wants, this is
// just here in case it is desired.
//
// This class stores the text that's in the unreal console.
// It stores it as one great big string, which contains
// newlines to denote line breaks.
//
// This class also contains a 'dirty' bit. Each time
// somebody appends a line of text to the console, the dirty
// bit is automatically set. The bit can be checked using
// 'IsDirty' and cleared using 'ClearDirty'. This makes it
// so that you don't have to update the unreal widget unless
// the text has actually changed.
//
//////////////////////////////////////////////////////////////
#pragma once
#include "Containers/UnrealString.h"
#include "ConsoleOutput.generated.h"
2025-12-09 02:42:13 -05:00
UCLASS(BlueprintType)
class UlxConsoleOutput : public UObject
{
GENERATED_BODY()
private:
FString Content;
bool Dirty;
2025-12-09 02:42:13 -05:00
private:
// Truncate the console to a reasonable number of
// lines. The length is hardwired.
void Truncate();
// Add a newline if there isn't one. Returns true if it changed anything.
bool MaybeAppendNewline();
// Append text. Returns true if it changed anything.
bool MaybeAppendText(const FString& text);
public:
// Append a line of text to the console.
2025-12-09 02:42:13 -05:00
UFUNCTION(BlueprintCallable)
void Append(const FString& text);
// Append a line of text to the console on a line by itself.
2025-12-09 02:42:13 -05:00
UFUNCTION(BlueprintCallable)
void AppendLine(const FString& text);
// Get the console text as a string.
2025-12-09 02:42:13 -05:00
UFUNCTION(BlueprintCallable)
const FString& Get() const { return Content; }
// Return if the dirty flag is set.
2025-12-09 02:42:13 -05:00
UFUNCTION(BlueprintCallable)
bool IsDirty() const { return Dirty; }
// Clear the dirty flag.
2025-12-09 02:42:13 -05:00
UFUNCTION(BlueprintCallable)
void ClearDirty() { Dirty = false; }
};