G1R AngelScript
Scripting reference for the Gothic 1 Remake
Loading...
Searching...
No Matches
UBudgetSystem Class Reference

Public Member Functions

Functions
int ProcessAllPendingWork (const UObject ContextObject=nullptr)
 Executes enqueued work for all workloads for the given ContextObject. If that is null everything is processed.
void EnqueueOrUpdateWork (FName WorkloadName, FBudgetSystemScriptWorkDelegate Fn=FBudgetSystemScriptWorkDelegate(), FName Key=NAME_None)
 Enqueues or updates a piece of work for the given workload and object. Each Object can only enqueue a single piece of work for each workload/key for this to work.
float GetTimeSecondsLeftForWorkloadThisFrame (FName WorkloadName) const
 How many seconds of budget are left in the current frame for the given workload?
bool HasAnyPendingWork (FName WorkloadName) const
 Returns true if there is any work enqueued for the given workload.
bool IsInBudget (FName WorkloadName, float TimeLeftSecondsMin=0.000000) const
 Returns true if there is time left for the given Workload in the current frame.
void EnqueueOrUpdateHighPriorityWork (FName WorkloadName, FBudgetSystemScriptWorkDelegate Fn=FBudgetSystemScriptWorkDelegate(), FName Key=NAME_None)
 Enqueues or updates a piece of work for the given workload and object. Each Object can only enqueue a single piece of work for each workload/key for this to work.
int ProcessAllPendingWorkForContext (FName WorkloadName, const UObject ContextObject=nullptr)
 Calls any pending work for the given context, for all Keys. If ContextObject is null everything of the given workload is processed.
int ProcessPendingWorkUntilBudgetIsReached (FName WorkloadName)
 Executes enqueued work for the given workload as long as there is budget to do so.
void ReportWorkDone (FName WorkloadName, const UObject ContextObject, float SecondsSpentOnWorkload, int NumInvokes=1)
 Report work being done for the given workload. Adds the time to the Workloads budget.
Public Member Functions inherited from UObject
bool MarkPackageDirty () const
void RemoveFromRoot ()
bool GetIsRooted () const
bool IsTransient () const
bool Modify (bool bAlwaysMarkDirty=true)
void SetTransactional (bool bTransactional)
bool IsSupportedForNetworking () const
UClass GetClass () const
UObject GetOuter () const
UObject GetTypedOuter (TSubclassOf< UObject > Target) const
 Traverses the outer chain searching for the next object of a certain type.
UPackage GetOutermost () const
UPackage GetPackage () const
void AddToRoot ()
UWorld GetWorld () const
FName GetName () const
FString GetFullName (const UObject StopOuter=nullptr) const
FString GetPathName (const UObject StopOuter=nullptr) const
bool IsA (const UClass Class) const
 Returns true if this object is of the specified type, or a child of that type.
void SaveConfig ()
void LoadConfig ()
void ReloadConfig ()
void CopyScriptPropertiesFrom (const UObject OtherObject)
void opCast (?&Address) const
FString ToString () const

Static Public Member Functions

Static Functions
static UBudgetSystem Get ()
static UClass StaticClass ()
Static Public Member Functions inherited from UEngineSubsystem
static UClass StaticClass ()
Static Public Member Functions inherited from UDynamicSubsystem
static UClass StaticClass ()
Static Public Member Functions inherited from USubsystem
static UClass StaticClass ()
Static Public Member Functions inherited from UObject
static UClass StaticClass ()

Additional Inherited Members

Public Attributes inherited from UObject
const UClass Class
const UObject Outer
const UPackage Outermost
const UPackage Package
const UWorld World
const FName Name
const bool IsRooted

Member Function Documentation

◆ EnqueueOrUpdateHighPriorityWork()

void EnqueueOrUpdateHighPriorityWork ( FName WorkloadName,
FBudgetSystemScriptWorkDelegate Fn = FBudgetSystemScriptWorkDelegate ( ),
FName Key = NAME_None )

Enqueues or updates a piece of work for the given workload and object. Each Object can only enqueue a single piece of work for each workload/key for this to work.

◆ EnqueueOrUpdateWork()

void EnqueueOrUpdateWork ( FName WorkloadName,
FBudgetSystemScriptWorkDelegate Fn = FBudgetSystemScriptWorkDelegate ( ),
FName Key = NAME_None )

Enqueues or updates a piece of work for the given workload and object. Each Object can only enqueue a single piece of work for each workload/key for this to work.

Note: The given TFunction is only called if ContextObject is valid. No need to check it again.

◆ Get()

UBudgetSystem Get ( )
static

◆ GetTimeSecondsLeftForWorkloadThisFrame()

float GetTimeSecondsLeftForWorkloadThisFrame ( FName WorkloadName) const

How many seconds of budget are left in the current frame for the given workload?

◆ HasAnyPendingWork()

bool HasAnyPendingWork ( FName WorkloadName) const

Returns true if there is any work enqueued for the given workload.

◆ IsInBudget()

bool IsInBudget ( FName WorkloadName,
float TimeLeftSecondsMin = 0.000000 ) const

Returns true if there is time left for the given Workload in the current frame.

◆ ProcessAllPendingWork()

int ProcessAllPendingWork ( const UObject ContextObject = nullptr)

Executes enqueued work for all workloads for the given ContextObject. If that is null everything is processed.

◆ ProcessAllPendingWorkForContext()

int ProcessAllPendingWorkForContext ( FName WorkloadName,
const UObject ContextObject = nullptr )

Calls any pending work for the given context, for all Keys. If ContextObject is null everything of the given workload is processed.

◆ ProcessPendingWorkUntilBudgetIsReached()

int ProcessPendingWorkUntilBudgetIsReached ( FName WorkloadName)

Executes enqueued work for the given workload as long as there is budget to do so.

Note: All workloads automatically do this at the end of the frame. Use this function if you want to trigger this behavior manually at a certain place in the code. This is useful if you want to have some tasks be processed immediately if possible.

Returns
How many enqueued tasks were done.

◆ ReportWorkDone()

void ReportWorkDone ( FName WorkloadName,
const UObject ContextObject,
float SecondsSpentOnWorkload,
int NumInvokes = 1 )

Report work being done for the given workload. Adds the time to the Workloads budget.

◆ StaticClass()

UClass StaticClass ( )
static