80 lines
1.7 KiB
C++
80 lines
1.7 KiB
C++
////////////////////////////////////////////////////////////
|
|
//
|
|
// ConsoleOutput.h
|
|
//
|
|
// Optional helper for the console window. The
|
|
// GameMode blueprint can use this class to store
|
|
// console text as one big string with newlines.
|
|
//
|
|
// A dirty bit is set whenever text is appended,
|
|
// so the blueprint only needs to update the widget
|
|
// when the text has actually changed.
|
|
//
|
|
////////////////////////////////////////////////////////////
|
|
|
|
#pragma once
|
|
|
|
#include "Containers/UnrealString.h"
|
|
|
|
#include "ConsoleOutput.generated.h"
|
|
|
|
////////////////////////////////////////////////////////////
|
|
//
|
|
// UlxConsoleOutput
|
|
//
|
|
////////////////////////////////////////////////////////////
|
|
|
|
UCLASS(BlueprintType)
|
|
class UlxConsoleOutput : public UObject
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
private:
|
|
FString Content;
|
|
bool Dirty;
|
|
|
|
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 text to the console.
|
|
//
|
|
UFUNCTION(BlueprintCallable)
|
|
void Append(const FString& text);
|
|
|
|
// Append text on a line by itself.
|
|
//
|
|
UFUNCTION(BlueprintCallable)
|
|
void AppendLine(const FString& text);
|
|
|
|
// Get the console text as a string.
|
|
//
|
|
UFUNCTION(BlueprintCallable)
|
|
const FString& Get() const { return Content; }
|
|
|
|
// Return if the dirty flag is set.
|
|
//
|
|
UFUNCTION(BlueprintCallable)
|
|
bool IsDirty() const { return Dirty; }
|
|
|
|
// Clear the dirty flag.
|
|
//
|
|
UFUNCTION(BlueprintCallable)
|
|
void ClearDirty() { Dirty = false; }
|
|
};
|