MCPcopy Create free account
hub / github.com/PCGEx/PCGExtendedToolkit / StageOutput

Method StageOutput

Source/PCGExtendedToolkit/Private/PCGExContext.cpp:16–59  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14#define LOCTEXT_NAMESPACE "PCGExContext"
15
16void FPCGExContext::StageOutput(const FName Pin, UPCGData* InData, const TSet<FString>& InTags, const bool bManaged, const bool bIsMutable)
17{
18 TRACE_CPUPROFILER_EVENT_SCOPE(FPCGExContext::StageOutput);
19 if (!IsInGameThread())
20 {
21 FWriteScopeLock WriteScopeLock(StagedOutputLock);
22
23 FPCGTaggedData& Output = StagedOutputs.Emplace_GetRef();
24 Output.Pin = Pin;
25 Output.Data = InData;
26 Output.Tags.Append(InTags);
27 }
28 else
29 {
30 FPCGTaggedData& Output = StagedOutputs.Emplace_GetRef();
31 Output.Pin = Pin;
32 Output.Data = InData;
33 Output.Tags.Append(InTags);
34 }
35
36 if (bManaged) { ManagedObjects->Add(InData); }
37 if (bIsMutable && bCleanupConsumableAttributes)
38 {
39#if PCGEX_ENGINE_VERSION > 503
40 if (UPCGMetadata* Metadata = InData->MutableMetadata())
41 {
42 for (const FName ConsumableName : ConsumableAttributesSet)
43 {
44 if (!Metadata->HasAttribute(ConsumableName) || ProtectedAttributesSet.Contains(ConsumableName)) { continue; }
45 Metadata->DeleteAttribute(ConsumableName);
46 }
47 }
48#else
49 if(const UPCGSpatialData* SpatialData = Cast<UPCGSpatialData>(InData); SpatialData->Metadata)
50 {
51 for (const FName ConsumableName : ConsumableAttributesSet)
52 {
53 if (!SpatialData->Metadata->HasAttribute(ConsumableName) || !ProtectedAttributesSet.Contains(ConsumableName)) { continue; }
54 SpatialData->Metadata->DeleteAttribute(ConsumableName);
55 }
56 }
57#endif
58 }
59}
60
61void FPCGExContext::StageOutput(const FName Pin, UPCGData* InData, const bool bManaged)
62{

Callers 3

ExecuteInternalMethod · 0.45
StageConstantMethod · 0.45
ProcessMethod · 0.45

Calls 5

Emplace_GetRefMethod · 0.80
DeleteAttributeMethod · 0.80
AppendMethod · 0.45
AddMethod · 0.45
ContainsMethod · 0.45

Tested by 1

ProcessMethod · 0.36