Files
UnrealEngine/Engine/Source/Editor/AIGraph/Classes/AIGraph.h
2025-05-18 13:04:45 +08:00

68 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Containers/Set.h"
#include "Containers/UnrealString.h"
#include "EdGraph/EdGraph.h"
#include "EdGraph/EdGraphNode.h"
#include "HAL/Platform.h"
#include "UObject/UObjectGlobals.h"
#include "AIGraph.generated.h"
class FArchive;
class UEdGraphPin;
class UObject;
UCLASS()
class AIGRAPH_API UAIGraph : public UEdGraph
{
GENERATED_UCLASS_BODY()
UPROPERTY()
int32 GraphVersion;
virtual void OnCreated();
virtual void OnLoaded();
virtual void Initialize();
virtual void UpdateAsset(int32 UpdateFlags = 0);
virtual void UpdateVersion();
virtual void MarkVersion();
virtual void OnSubNodeDropped();
virtual void OnNodesPasted(const FString& ImportStr);
bool UpdateUnknownNodeClasses();
UE_DEPRECATED(5.6, "This method was only used to fetch error messages and log them. It has been renamed to better fit its purpose. Use UpdateErrorMessages instead.")
void UpdateDeprecatedClasses();
/** Sets error messages and logs errors about nodes. */
void UpdateErrorMessages();
void RemoveOrphanedNodes();
void UpdateClassData();
bool IsLocked() const;
void LockUpdates();
void UnlockUpdates();
//~ Begin UObject Interface.
virtual void Serialize(FArchive& Ar) override;
//~ End UObject Interface.
protected:
/** if set, graph modifications won't cause updates in internal tree structure
* flag allows freezing update during heavy changes like pasting new nodes
*/
uint32 bLockUpdates : 1;
virtual void CollectAllNodeInstances(TSet<UObject*>& NodeInstances);
virtual bool CanRemoveNestedObject(UObject* TestObject) const;
virtual void OnNodeInstanceRemoved(UObject* NodeInstance);
UEdGraphPin* FindGraphNodePin(UEdGraphNode* Node, EEdGraphPinDirection Dir);
};