Trying to add a combo graph editor.

This commit is contained in:
Jamie Greunbaum
2023-09-27 00:21:59 -04:00
parent bf43acf0dc
commit ea4dd54ec9
43 changed files with 6809 additions and 1 deletions
@@ -0,0 +1,86 @@
// ©2023 Batty Bovine Productions, LLC. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Ed/EdComboActionGraphNode.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "Nodes/ComboActionGraphNode.h"
#include "Nodes/ComboActionGraphNode_ActionNodeBase.h"
#include "Settings/ComboActionGraphEditorSettings.h"
#include "ComboActionEditorBFC.generated.h"
/**
* Editor Only helper functions.
*/
UCLASS()
class UComboActionEditorBFC : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
public:
#if WITH_EDITOR
static FText GetNodeTitle(UComboActionGraphNode *Node)
{
if (!Node) return FText::FromString("Invalid Node");
const UComboActionGraphEditorSettings *Settings = GetDefault<UComboActionGraphEditorSettings>();
if (Settings)
{
if (Settings->ShowAutomaticNames())
{
if (const UComboActionGraphNode_ActionNodeBase *DialogueNodeBase = Cast<UComboActionGraphNode_ActionNodeBase>(Node))
{
if (DialogueNodeBase->GetDataTable())
{
FString ReturnString;
DialogueNodeBase->GetRowName().ToString(ReturnString);
return FText::FromString(ReturnString);
}
}
return Node->GetInternalName();
}
}
return Node->GetNodeTitle();
}
static EComboActionNodeTheme GetNodeTheme()
{
const UComboActionGraphEditorSettings *Settings = GetDefault<UComboActionGraphEditorSettings>();
if (Settings != nullptr)
{
return Settings->GetNodeTheme();
}
return EComboActionNodeTheme::DarkTheme;
}
static void TriggerPreviewRefresh(TArray<UObject*> NodeObjects)
{
for (auto Itr : NodeObjects)
{
UEdComboActionGraphNode *SelectedNode = Cast<UEdComboActionGraphNode>(Itr);
if (!SelectedNode || !SelectedNode->ComboActionGraphNode)
{
continue;
}
UComboActionGraphNode_ActionNodeBase *DialogueNodeBase = Cast<UComboActionGraphNode_ActionNodeBase>(SelectedNode->ComboActionGraphNode);
if (!DialogueNodeBase)
{
continue;
}
DialogueNodeBase->UpdatePreviews();
}
}
#endif
};
@@ -0,0 +1,92 @@
#pragma once
#include "CoreMinimal.h"
namespace ComboActionGraphColors
{
namespace NodeBody
{
constexpr FLinearColor Default(0.1f, 0.1f, 0.1f);
constexpr FLinearColor Root(0.5f, 0.5f, 0.5f, 0.1f);
constexpr FLinearColor Error(1.0f, 0.0f, 0.0f);
}
namespace DecoratorsBody
{
constexpr FLinearColor Default(0.1f, 0.1f, 0.1f);
}
namespace NodeBorder
{
constexpr FLinearColor Inactive(0.08f, 0.08f, 0.08f);
constexpr FLinearColor Root(0.2f, 0.2f, 0.2f, 0.2f);
constexpr FLinearColor Selected(1.00f, 0.08f, 0.08f);
constexpr FLinearColor ActiveDebugging(1.0f, 1.0f, 0.0f);
constexpr FLinearColor InactiveDebugging(0.4f, 0.4f, 0.0f);
constexpr FLinearColor HighlightAbortRange0(0.0f, 0.22f, 0.4f);
constexpr FLinearColor HighlightAbortRange1(0.0f, 0.4f, 0.22f);
constexpr FLinearColor Disconnected(0.f, 0.f, 0.f);
constexpr FLinearColor BrokenWithParent(1.f, 0.f, 1.f);
constexpr FLinearColor QuickFind(0.f, 0.8f, 0.f);
}
namespace Pin
{
constexpr FLinearColor Diff(0.9f, 0.2f, 0.15f);
constexpr FLinearColor Hover(1.0f, 0.7f, 0.0f);
constexpr FLinearColor Default(0.02f, 0.02f, 0.02f);
constexpr FLinearColor SingleNode(0.02f, 0.02f, 0.02f);
}
namespace Connection
{
constexpr FLinearColor Default(1.0f, 1.0f, 1.0f);
}
namespace Action
{
constexpr FLinearColor DragMarker(1.0f, 1.0f, 0.2f);
}
namespace Overlay
{
constexpr FLinearColor LightTheme(1.f, 1.f, 1.f, 0.45f);
constexpr FLinearColor DarkTheme(0.f, 0.f, 0.f, 0.9f);
}
namespace PinsDock
{
constexpr FLinearColor DarkTheme(0.075f, 0.075f, 0.075f, 1.f);
constexpr FLinearColor LightTheme(0.075f, 0.075f, 0.075f, 1.f);
}
namespace ValidationGraph
{
constexpr FLinearColor LightTheme(0.1f, 0.1f, 0.1f, 1.f);
constexpr FLinearColor DarkTheme(0.05f, 0.05f, 0.05f, 1.f);
}
namespace IndexBorder
{
constexpr FLinearColor NormalState(0.05f, 0.05f, 0.05f, 1.f);
constexpr FLinearColor HoveredState(0.05f, 0.05f, 0.05f, 1.f);
}
namespace BulletPointsColors
{
constexpr FLinearColor Normal(0.8f, 0.8f, 0.8f, 1.f);
constexpr FLinearColor Disabled(0.8f, 0.8f, 0.8f, 0.2f);
}
namespace TextColors
{
constexpr FLinearColor Normal(0.8f, 0.8f, 0.8f, 1.f);
constexpr FLinearColor Disabled(0.8f, 0.8f, 0.8f, 0.2f);
}
namespace Previews
{
constexpr FLinearColor Normal(0.8f, 0.8f, 0.8f, 0.05f);
constexpr FLinearColor Invalid(0.8f, 0.8f, 0.8f, 0.2f);
}
}