K2Node_JsonLibraryFromStruct.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // Copyright 2022 Tracer Interactive, LLC. All Rights Reserved.
  2. #pragma once
  3. #include "CoreMinimal.h"
  4. #include "EdGraph/EdGraphNodeUtils.h"
  5. #include "UObject/ObjectMacros.h"
  6. #include "Textures/SlateIcon.h"
  7. #include "K2Node.h"
  8. #include "K2Node_JsonLibraryFromStruct.generated.h"
  9. class FBlueprintActionDatabaseRegistrar;
  10. class UEdGraph;
  11. UCLASS()
  12. class JSONLIBRARYBLUEPRINTSUPPORT_API UK2Node_JsonLibraryFromStruct : public UK2Node
  13. {
  14. GENERATED_UCLASS_BODY()
  15. virtual void AllocateDefaultPins() override;
  16. virtual FText GetNodeTitle( ENodeTitleType::Type TitleType ) const override;
  17. virtual FText GetTooltipText() const override;
  18. virtual void ExpandNode( class FKismetCompilerContext& CompilerContext, UEdGraph* SourceGraph ) override;
  19. virtual FSlateIcon GetIconAndTint( FLinearColor& OutColor ) const override;
  20. virtual void PostReconstructNode() override;
  21. virtual bool IsNodeSafeToIgnore() const override { return true; }
  22. virtual void GetMenuActions( FBlueprintActionDatabaseRegistrar& ActionRegistrar ) const override;
  23. virtual FText GetMenuCategory() const override;
  24. virtual bool IsConnectionDisallowed( const UEdGraphPin* MyPin, const UEdGraphPin* OtherPin, FString& OutReason ) const override;
  25. virtual void EarlyValidation( class FCompilerResultsLog& MessageLog ) const override;
  26. virtual void NotifyPinConnectionListChanged( UEdGraphPin* Pin ) override;
  27. UScriptStruct* GetPropertyTypeForStruct() const;
  28. UEdGraphPin* GetThenPin() const;
  29. UEdGraphPin* GetDataPin() const;
  30. UEdGraphPin* GetFailedPin() const;
  31. UEdGraphPin* GetResultPin() const;
  32. private:
  33. void SetPinToolTip( UEdGraphPin& MutatablePin, const FText& PinDescription ) const;
  34. void SetPropertyTypeForStruct( UScriptStruct* InClass );
  35. void RefreshInputPinType();
  36. FText NodeTooltip;
  37. FNodeTextCache CachedNodeTitle;
  38. };