Weaponry Assembly System
WAS
Loading...
Searching...
No Matches
UWeaponAsset Class Reference

#include <WeaponAsset.h>

+ Inheritance diagram for UWeaponAsset:
+ Collaboration diagram for UWeaponAsset:

Public Member Functions

 UWeaponAsset (const FObjectInitializer &Initializer)
 
void ClearCache () const
 
void ClearContext () const
 
UWeaponAssetCharacteristicsCreateCharacteristics (UObject *Outer, FName Name=NAME_None) const
 
template<typename T >
T * CreateCharacteristics (UObject *Outer, FName Name=NAME_None) const
 
template<typename T >
T * CreateCharacteristicsChecked (UObject *Outer, FName Name=NAME_None) const
 
UWeaponAssetCharacteristicsCreateTransientCharacteristics (UObject *Outer, const FWeaponModifications &InitialMods, FName Name=NAME_None) const
 
template<typename T >
T * CreateTransientCharacteristics (UObject *Outer, const FWeaponModifications &InitialMods, FName Name=NAME_None) const
 
template<typename T >
T * CreateTransientCharacteristicsChecked (UObject *Outer, const FWeaponModifications &InitialMods, FName Name=NAME_None) const
 
void EnsureHasCharacteristics ()
 
template<typename T >
requires std::is_base_of_v<UWeaponRuntimeNode, T>
void ExecuteFunctionOnNodes (const TArray< T * > &Nodes, const TFunction< void(UWeaponRuntimeNode *)> &InFunct, const TFunction< bool(const UWeaponRuntimeNode *)> &Condition=[](auto){return true;}) const
 Executes a function on nodes of a specific type with optional condition.
 
const TArray< UWeaponRuntimeNode * > & GetAllNodes () const
 
const FModificationArchitectureGetArchitecture () const
 
UWeaponArchitectureGetArchitecturePtr () const
 
decltype(auto) GetCharacteristics ()
 
decltype(auto) GetCharacteristics () const
 Checks if a modification is applied at the specified slot (template version).
 
UClass * GetCharacteristicsClass () const
 
UWeaponRuntimeGraphGetGraph () const
 
FORCEINLINE FWeaponModificationsGetModConfig ()
 
FORCEINLINE const FWeaponModificationsGetModConfig () const
 
FORCEINLINE FWeaponModificationsGetModificationsApplied ()
 
FORCEINLINE const FWeaponModificationsGetModificationsApplied () const
 
FORCEINLINE void GetModificationsApplied (FWeaponModifications &Mods)
 
template<typename T >
void GetNodesByType (TArray< T * > &Arr) const
 Populates an array with all nodes of the specified type.
 
bool HasModAtSlot (FGameplayTag Modification) const
 
bool IsValidCharacteristics (UWeaponAssetCharacteristics *Other) const
 
TArray< USceneComponent * > RunBuildNodes (const FWeaponExecutionContext &InContext, bool bCleanRun=true) const
 Builds visual components by running build nodes in the graph.
 
void RunEndNodes (const FWeaponExecutionContext &InContext) const
 
void RunOperationNodes (const FWeaponExecutionContext &InContext) const
 
bool SetAllModifications (const FWeaponModifications &InModifications)
 Applies all modifications at once, filling missing slots with 0.
 
void SetGraph (UWeaponRuntimeGraph *InGraph)
 
bool SetSingleModification (FGameplayTag Modification)
 Changes the modifier at the specified slot and triggers update.
 

Static Public Member Functions

template<typename T >
requires std::is_base_of_v<UWeaponAsset, T>
static T * CreateWeaponInstance (T *Parent, UObject *Outer)
 Creates an instanced copy of a weapon asset.
 

Public Attributes

FWeaponExecutionContext DefaultExecutionContext
 
UWeaponRuntimeGraphGraph {nullptr}
 

Friends

class UWeaponAssetLibrary
 

Detailed Description

Delegate to notify when the weapon asset is modified UWeaponAsset represents a weapon with runtime graph execution, modification slots, and characteristics.

Constructor & Destructor Documentation

◆ UWeaponAsset()

UWeaponAsset::UWeaponAsset ( const FObjectInitializer & Initializer)

Member Function Documentation

◆ ClearCache()

void UWeaponAsset::ClearCache ( ) const

◆ ClearContext()

void UWeaponAsset::ClearContext ( ) const

◆ CreateCharacteristics() [1/2]

UWeaponAssetCharacteristics * UWeaponAsset::CreateCharacteristics ( UObject * Outer,
FName Name = NAME_None ) const

◆ CreateCharacteristics() [2/2]

template<typename T >
T * UWeaponAsset::CreateCharacteristics ( UObject * Outer,
FName Name = NAME_None ) const

◆ CreateCharacteristicsChecked()

template<typename T >
T * UWeaponAsset::CreateCharacteristicsChecked ( UObject * Outer,
FName Name = NAME_None ) const

◆ CreateTransientCharacteristics() [1/2]

UWeaponAssetCharacteristics * UWeaponAsset::CreateTransientCharacteristics ( UObject * Outer,
const FWeaponModifications & InitialMods,
FName Name = NAME_None ) const

◆ CreateTransientCharacteristics() [2/2]

template<typename T >
T * UWeaponAsset::CreateTransientCharacteristics ( UObject * Outer,
const FWeaponModifications & InitialMods,
FName Name = NAME_None ) const

◆ CreateTransientCharacteristicsChecked()

template<typename T >
T * UWeaponAsset::CreateTransientCharacteristicsChecked ( UObject * Outer,
const FWeaponModifications & InitialMods,
FName Name = NAME_None ) const

◆ CreateWeaponInstance()

template<typename T >
requires std::is_base_of_v<UWeaponAsset, T>
static T * UWeaponAsset::CreateWeaponInstance ( T * Parent,
UObject * Outer )
inlinestatic

Creates an instanced copy of a weapon asset.

Template Parameters
TWeapon asset subclass type.
Parameters
ParentThe parent asset to instantiate from.
OuterThe owner object for the instance.
Returns
The created instance, or nullptr if parent is null or already instanced.

◆ EnsureHasCharacteristics()

void UWeaponAsset::EnsureHasCharacteristics ( )

◆ ExecuteFunctionOnNodes()

template<typename T >
requires std::is_base_of_v<UWeaponRuntimeNode, T>
void UWeaponAsset::ExecuteFunctionOnNodes ( const TArray< T * > & Nodes,
const TFunction< void(UWeaponRuntimeNode *)> & InFunct,
const TFunction< bool(const UWeaponRuntimeNode *)> & Condition = [](auto){return true;} ) const
inline

Executes a function on nodes of a specific type with optional condition.

Template Parameters
TThe node type to process.
Parameters
NodesArray of nodes to process.
InFunctFunction to execute on matching nodes.
ConditionOptional predicate to filter nodes; defaults to accepting all.

◆ GetAllNodes()

const TArray< UWeaponRuntimeNode * > & UWeaponAsset::GetAllNodes ( ) const

◆ GetArchitecture()

const FModificationArchitecture & UWeaponAsset::GetArchitecture ( ) const
inline

◆ GetArchitecturePtr()

UWeaponArchitecture * UWeaponAsset::GetArchitecturePtr ( ) const
inline

◆ GetCharacteristics() [1/2]

decltype(auto) UWeaponAsset::GetCharacteristics ( )
inline

◆ GetCharacteristics() [2/2]

decltype(auto) UWeaponAsset::GetCharacteristics ( ) const
inline

Checks if a modification is applied at the specified slot (template version).

Template Parameters
SlotEnumEnum or integral type for the slot index.
ModificationEnumEnum or integral type for the modification value.

◆ GetCharacteristicsClass()

UClass * UWeaponAsset::GetCharacteristicsClass ( ) const

◆ GetGraph()

UWeaponRuntimeGraph * UWeaponAsset::GetGraph ( ) const
inline

◆ GetModConfig() [1/2]

FORCEINLINE FWeaponModifications & UWeaponAsset::GetModConfig ( )
inline

◆ GetModConfig() [2/2]

FORCEINLINE const FWeaponModifications & UWeaponAsset::GetModConfig ( ) const
inline

◆ GetModificationsApplied() [1/3]

FORCEINLINE FWeaponModifications & UWeaponAsset::GetModificationsApplied ( )
inline

◆ GetModificationsApplied() [2/3]

FORCEINLINE const FWeaponModifications & UWeaponAsset::GetModificationsApplied ( ) const
inline

◆ GetModificationsApplied() [3/3]

FORCEINLINE void UWeaponAsset::GetModificationsApplied ( FWeaponModifications & Mods)
inline

◆ GetNodesByType()

template<typename T >
void UWeaponAsset::GetNodesByType ( TArray< T * > & Arr) const
inline

Populates an array with all nodes of the specified type.

Template Parameters
TThe node type to search for.
Parameters
ArrOutput array of matching nodes.

◆ HasModAtSlot()

bool UWeaponAsset::HasModAtSlot ( FGameplayTag Modification) const

◆ IsValidCharacteristics()

bool UWeaponAsset::IsValidCharacteristics ( UWeaponAssetCharacteristics * Other) const

◆ RunBuildNodes()

TArray< USceneComponent * > UWeaponAsset::RunBuildNodes ( const FWeaponExecutionContext & InContext,
bool bCleanRun = true ) const

Builds visual components by running build nodes in the graph.

Parameters
InContextExecution context for the graph.
bCleanRunIf true, clears the cache before execution.
Returns
Array of built scene components.

◆ RunEndNodes()

void UWeaponAsset::RunEndNodes ( const FWeaponExecutionContext & InContext) const

◆ RunOperationNodes()

void UWeaponAsset::RunOperationNodes ( const FWeaponExecutionContext & InContext) const

◆ SetAllModifications()

bool UWeaponAsset::SetAllModifications ( const FWeaponModifications & InModifications)

Applies all modifications at once, filling missing slots with 0.

Parameters
InModificationsArray of modification values.
Returns
True if any modification changed; false if all remained the same.

◆ SetGraph()

void UWeaponAsset::SetGraph ( UWeaponRuntimeGraph * InGraph)

◆ SetSingleModification()

bool UWeaponAsset::SetSingleModification ( FGameplayTag Modification)

Changes the modifier at the specified slot and triggers update.

Parameters
SlotIndex of the modification slot.
ModificationNew modification value.
Returns
True if the modification changed; false if it was already the same value.

Friends And Related Symbol Documentation

◆ UWeaponAssetLibrary

friend class UWeaponAssetLibrary
friend

Member Data Documentation

◆ DefaultExecutionContext

FWeaponExecutionContext UWeaponAsset::DefaultExecutionContext

◆ Graph

UWeaponRuntimeGraph* UWeaponAsset::Graph {nullptr}