Skip to content

Commit d1ce64f

Browse files
Benxidoszszabob
andauthored
Replace AssetTypeActions for AssetDefinition (POTENTIALLY BREAKING CHANGE) (#245)
Added UAssetDefinition_FlowNodeBlueprint & UAssetDefinition_FlowNodeAddOnBlueprint just like Krzysztof Justyński added UAssetDefinition_FlowAsset in commit: "5ef45f328809213024c99e9aba883ace7a104c58". This is a direct replacement for FAssetTypeActions_FlowNodeBlueprint/FAssetTypeActions_FlowNodeAddOnBlueprint. (cherry picked from commit 07f3616eca03c2e57332e58ff318cec62f586b7b) Co-authored-by: szabob <[email protected]>
1 parent 2a19a1b commit d1ce64f

9 files changed

+83
-68
lines changed

Flow.uplugin

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030
"Name": "AssetSearch",
3131
"Enabled": true
3232
},
33+
{
34+
"Name": "EngineAssetDefinitions",
35+
"Enabled": true
36+
},
3337
{
3438
"Name": "EditorScriptingUtilities",
3539
"Enabled": true

Source/FlowEditor/FlowEditor.Build.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public FlowEditor(ReadOnlyTargetRules target) : base(target)
2020
"Flow",
2121
"MessageLog",
2222
"AIModule", // For BlueprintNodeHelpers::DescribeProperty (could be copy/pasted out to remove editor-only dependency)
23+
"EngineAssetDefinitions", // For UAssetDefinition_Blueprint
2324
});
2425

2526
PrivateDependencyModuleNames.AddRange(new[]

Source/FlowEditor/Private/FlowEditorModule.cpp

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
#include "Graph/FlowGraphSettings.h"
1111
#include "Utils/SLevelEditorFlow.h"
1212
#include "MovieScene/FlowTrackEditor.h"
13-
#include "Nodes/AssetTypeActions_FlowNodeBlueprint.h"
14-
#include "Nodes/AssetTypeActions_FlowNodeAddOnBlueprint.h"
1513
#include "Pins/SFlowInputPinHandle.h"
1614
#include "Pins/SFlowOutputPinHandle.h"
1715

@@ -164,14 +162,6 @@ void FFlowEditorModule::RegisterAssets()
164162
FlowAssetCategory = AssetTools.RegisterAdvancedAssetCategory(FName(TEXT("Flow")), AssetCategoryText);
165163
}
166164
}
167-
168-
const TSharedRef<IAssetTypeActions> FlowNodeActions = MakeShareable(new FAssetTypeActions_FlowNodeBlueprint());
169-
RegisteredAssetActions.Add(FlowNodeActions);
170-
AssetTools.RegisterAssetTypeActions(FlowNodeActions);
171-
172-
const TSharedRef<IAssetTypeActions> FlowNodeAddOnActions = MakeShareable(new FAssetTypeActions_FlowNodeAddOnBlueprint());
173-
RegisteredAssetActions.Add(FlowNodeAddOnActions);
174-
AssetTools.RegisterAssetTypeActions(FlowNodeAddOnActions);
175165
}
176166

177167
void FFlowEditorModule::UnregisterAssets()

Source/FlowEditor/Private/Nodes/AssetTypeActions_FlowNodeAddOnBlueprint.cpp renamed to Source/FlowEditor/Private/Nodes/AssetDefinition_FlowNodeAddOnBlueprint.cpp

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Copyright https://github.com/MothCocoon/FlowGraph/graphs/contributors
22

3-
#include "Nodes/AssetTypeActions_FlowNodeAddOnBlueprint.h"
3+
#include "Nodes/AssetDefinition_FlowNodeAddOnBlueprint.h"
44
#include "Nodes/FlowNodeBlueprintFactory.h"
55
#include "Nodes/FlowNodeAddOnBlueprint.h"
66
#include "AddOns/FlowNodeAddOn.h"
@@ -9,22 +9,28 @@
99

1010
#define LOCTEXT_NAMESPACE "AssetTypeActions_FlowNodeAddOnBlueprint"
1111

12-
FText FAssetTypeActions_FlowNodeAddOnBlueprint::GetName() const
12+
TSoftClassPtr<UObject> UAssetDefinition_FlowNodeAddOnBlueprint::GetAssetClass() const
1313
{
14-
return LOCTEXT("AssetTypeActions_FlowNodeBlueprint", "Flow Node AddOn Blueprint");
14+
return UFlowNodeAddOnBlueprint::StaticClass();
1515
}
1616

17-
uint32 FAssetTypeActions_FlowNodeAddOnBlueprint::GetCategories()
17+
FText UAssetDefinition_FlowNodeAddOnBlueprint::GetAssetDisplayName() const
1818
{
19-
return UFlowGraphSettings::Get()->bExposeFlowNodeCreation ? FFlowEditorModule::FlowAssetCategory : 0;
19+
return LOCTEXT("AssetTypeActions_FlowNodeBlueprint", "Flow Node AddOn Blueprint");
2020
}
2121

22-
UClass* FAssetTypeActions_FlowNodeAddOnBlueprint::GetSupportedClass() const
22+
TConstArrayView<FAssetCategoryPath> UAssetDefinition_FlowNodeAddOnBlueprint::GetAssetCategories() const
2323
{
24-
return UFlowNodeAddOnBlueprint::StaticClass();
24+
if (UFlowGraphSettings::Get()->bExposeFlowAssetCreation)
25+
{
26+
static const auto Categories = {FFLowAssetCategoryPaths::Flow};
27+
return Categories;
28+
}
29+
30+
return {};
2531
}
2632

27-
UFactory* FAssetTypeActions_FlowNodeAddOnBlueprint::GetFactoryForBlueprintType(UBlueprint* InBlueprint) const
33+
UFactory* UAssetDefinition_FlowNodeAddOnBlueprint::GetFactoryForBlueprintType(UBlueprint* InBlueprint) const
2834
{
2935
UFlowNodeAddOnBlueprintFactory* FlowNodeAddOnBlueprintFactory = NewObject<UFlowNodeAddOnBlueprintFactory>();
3036
FlowNodeAddOnBlueprintFactory->ParentClass = TSubclassOf<UFlowNodeAddOn>(*InBlueprint->GeneratedClass);

Source/FlowEditor/Private/Nodes/AssetTypeActions_FlowNodeBlueprint.cpp renamed to Source/FlowEditor/Private/Nodes/AssetDefinition_FlowNodeBlueprint.cpp

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Copyright https://github.com/MothCocoon/FlowGraph/graphs/contributors
22

3-
#include "Nodes/AssetTypeActions_FlowNodeBlueprint.h"
3+
#include "Nodes/AssetDefinition_FlowNodeBlueprint.h"
44
#include "Nodes/FlowNodeBlueprintFactory.h"
55
#include "Nodes/FlowNodeBlueprint.h"
66
#include "Nodes/FlowNode.h"
@@ -10,22 +10,28 @@
1010

1111
#define LOCTEXT_NAMESPACE "AssetTypeActions_FlowNodeBlueprint"
1212

13-
FText FAssetTypeActions_FlowNodeBlueprint::GetName() const
13+
TSoftClassPtr<UObject> UAssetDefinition_FlowNodeBlueprint::GetAssetClass() const
1414
{
15-
return LOCTEXT("AssetTypeActions_FlowNodeBlueprint", "Flow Node Blueprint");
15+
return UFlowNodeBlueprint::StaticClass();
1616
}
1717

18-
uint32 FAssetTypeActions_FlowNodeBlueprint::GetCategories()
18+
FText UAssetDefinition_FlowNodeBlueprint::GetAssetDisplayName() const
1919
{
20-
return UFlowGraphSettings::Get()->bExposeFlowNodeCreation ? FFlowEditorModule::FlowAssetCategory : 0;
20+
return LOCTEXT("AssetTypeActions_FlowNodeBlueprint", "Flow Node Blueprint");
2121
}
2222

23-
UClass* FAssetTypeActions_FlowNodeBlueprint::GetSupportedClass() const
23+
TConstArrayView<FAssetCategoryPath> UAssetDefinition_FlowNodeBlueprint::GetAssetCategories() const
2424
{
25-
return UFlowNodeBlueprint::StaticClass();
25+
if (UFlowGraphSettings::Get()->bExposeFlowAssetCreation)
26+
{
27+
static const auto Categories = {FFLowAssetCategoryPaths::Flow};
28+
return Categories;
29+
}
30+
31+
return {};
2632
}
2733

28-
UFactory* FAssetTypeActions_FlowNodeBlueprint::GetFactoryForBlueprintType(UBlueprint* InBlueprint) const
34+
UFactory* UAssetDefinition_FlowNodeBlueprint::GetFactoryForBlueprintType(UBlueprint* InBlueprint) const
2935
{
3036
UFlowNodeBlueprintFactory* FlowNodeBlueprintFactory = NewObject<UFlowNodeBlueprintFactory>();
3137
FlowNodeBlueprintFactory->ParentClass = TSubclassOf<UFlowNode>(*InBlueprint->GeneratedClass);
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// Copyright https://github.com/MothCocoon/FlowGraph/graphs/contributors
2+
3+
#pragma once
4+
5+
#include "Script/AssetDefinition_Blueprint.h"
6+
#include "AssetDefinition_FlowNodeAddOnBlueprint.generated.h"
7+
8+
UCLASS()
9+
class FLOWEDITOR_API UAssetDefinition_FlowNodeAddOnBlueprint : public UAssetDefinition_Blueprint
10+
{
11+
GENERATED_BODY()
12+
public:
13+
// UAssetDefinition
14+
virtual TSoftClassPtr<UObject> GetAssetClass() const override;
15+
virtual FLinearColor GetAssetColor() const override { return FColor(255, 196, 128); }
16+
virtual FText GetAssetDisplayName() const override;
17+
virtual TConstArrayView<FAssetCategoryPath> GetAssetCategories() const override;
18+
// --
19+
20+
protected:
21+
// FAssetTypeActions_Blueprint
22+
//virtual bool CanCreateNewDerivedBlueprint() const override { return false; }
23+
virtual UFactory* GetFactoryForBlueprintType(UBlueprint* InBlueprint) const override;
24+
// --
25+
};
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// Copyright https://github.com/MothCocoon/FlowGraph/graphs/contributors
2+
3+
#pragma once
4+
5+
#include "Script/AssetDefinition_Blueprint.h"
6+
#include "AssetDefinition_FlowNodeBlueprint.generated.h"
7+
8+
UCLASS()
9+
class FLOWEDITOR_API UAssetDefinition_FlowNodeBlueprint : public UAssetDefinition_Blueprint
10+
{
11+
GENERATED_BODY()
12+
13+
public:
14+
// UAssetDefinition
15+
virtual TSoftClassPtr<UObject> GetAssetClass() const override;
16+
virtual FLinearColor GetAssetColor() const override { return FColor(255, 196, 128); }
17+
virtual FText GetAssetDisplayName() const override;
18+
virtual TConstArrayView<FAssetCategoryPath> GetAssetCategories() const override;
19+
// --
20+
21+
protected:
22+
// UAssetDefinition_Blueprint
23+
virtual UFactory* GetFactoryForBlueprintType(UBlueprint* InBlueprint) const override;
24+
// --
25+
};

Source/FlowEditor/Public/Nodes/AssetTypeActions_FlowNodeAddOnBlueprint.h

Lines changed: 0 additions & 21 deletions
This file was deleted.

Source/FlowEditor/Public/Nodes/AssetTypeActions_FlowNodeBlueprint.h

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)