Projekt for SPIE - Avatar for safety briefing / managment event
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

170 lines
5.9 KiB

// Copyright 2019 yangxiangyun
// All Rights Reserved
#pragma once
#include "NodeGraphAssistantConfig.generated.h"
UENUM()
enum class ECutOffMouseButton : uint8
{
Middle UMETA(DisplayName = "Middle"),
Left UMETA(DisplayName = "Left"),
None UMETA(DisplayName = "Disabled")
};
UENUM()
enum class EAutoConnectModifier : uint8
{
Alt UMETA(DisplayName = "Alt"),
None UMETA(DisplayName = "None")
};
UCLASS(config = EditorSettings)
class UNodeGraphAssistantConfig : public UObject
{
GENERATED_BODY()
public:
UNodeGraphAssistantConfig()
{
InsertNodeShowDeletedWireAsRed = false;
}
/** Keep connection wire alive after making pin connection.*/
UPROPERTY(EditAnywhere, config, Category = Features)
bool EnableLeftClickMultiConnect = true;
/** When dragging a wire over a node,wire automatically align to closest connectible pin*/
UPROPERTY(EditAnywhere, config, Category = Features)
bool EnableLazyConnect = true;
/** Drag mouse to cut off wire along its way. */
UPROPERTY(EditAnywhere, config, Category = Features)
bool EnableCutoffWire = true;
/** Select nodes that are connected to middle mouse double clicked node.*/
UPROPERTY(EditAnywhere, config, Category = Features)
bool EnableSelectStream = true;
/** Right click on wire to insert new node*/
UPROPERTY(EditAnywhere, config, Category = Features)
bool EnableCreateNodeOnWire = true;
/** When dragging a node, auto display surrounding connectible pin,release mouse to make connection*/
UPROPERTY(EditAnywhere, config, Category = Features)
bool EnableAutoConnect = false;
/** Quickly swing node 3 times to break node off wire.*/
UPROPERTY(EditAnywhere, config, Category = Features)
bool EnableShakeNodeOffWire = true;
/** Drag and insert node on wire*/
UPROPERTY(EditAnywhere, config, Category = Features)
bool EnableInsertNodeOnWire = false;
/** When moving mouse with alt and this mouse button down will cut off wires under cursor, not affect alt+left click cut off wire feature. */
UPROPERTY(config, EditAnywhere, Category = Settings)
ECutOffMouseButton DragCutOffWireMouseButton = ECutOffMouseButton::Middle;
/** How much distance between two nodes next to each other after rearranging nodes. */
UPROPERTY(EditAnywhere, config, Category = Settings)
FIntPoint NodesRearrangeSpacing = FIntPoint(20,20);
/** How much distance between two nodes next to each other after rearranging nodes,for behavior tree graph and EQS graph. */
UPROPERTY(EditAnywhere, config, Category = Settings)
FIntPoint NodesRearrangeSpacingAIGraph = FIntPoint(20, 100);
//UPROPERTY(EditAnywhere, config, Category = Default)
FIntPoint RearrangeNodesSpacingFar = FIntPoint(20, 20);
/** Offset node a little if this node is connected to a lot wires so wires can be seen more clearly. */
UPROPERTY(EditAnywhere, config, Category = Settings)
float NodesRearrangeSpacingRelaxFactor = 0.5;
/** if checked,when wire under mouse is not selected(just been clicked) when add new node, new node wont get inserted into wire. */
UPROPERTY(EditAnywhere, config, Category = Settings)
bool CreateNodeOnlyOnSelectedWire = false;
/** remove node even if can not fully bypass node's all pins. */
UPROPERTY(EditAnywhere, config, Category = Settings)
bool BypassNodeAnyway = true;
/** if you swing a node 3 times in this time period,will break off this node from wire.*/
UPROPERTY(EditAnywhere, config, Category = Settings)
float ShakeNodeOffWireTimeWindow = 0.3;
/** remove node even if can not fully bypass node's all pins. */
UPROPERTY(EditAnywhere, config, Category = Settings)
float AutoConnectRadius = 80;
/** when dragging a node and this button down will enable auto connect */
UPROPERTY(config, EditAnywhere, Category = Settings)
EAutoConnectModifier AutoConnectModifier = EAutoConnectModifier::None;
/** copy nodes to clipboard after successful bypass. */
UPROPERTY(EditAnywhere, config, Category = Settings)
bool BypassAndCopyNodes = false;
/** show button in toolbar,need to restart editor */
UPROPERTY(config, EditAnywhere, Category = Settings)
bool ToolBarButton = true;
/**should override auto connect preview wire color */
UPROPERTY(config, EditAnywhere, Category = Settings)
bool OverrideAutoConnectPreviewWireColor = true;
UPROPERTY(config, EditAnywhere, Category = Settings)
FLinearColor AutoConnectPreviewWireColor = FColor::Orange;
/** When dragging node can be inserted into hovered wire,mark hovered wire as red */
UPROPERTY(config, EditAnywhere, Category = Settings)
bool InsertNodeShowDeletedWireAsRed = false;
/** */
UPROPERTY(EditAnywhere, config, Category = Other)
bool HideToolTipWhenDraggingNode = true;
UPROPERTY(EditAnywhere, config, Category = Settings)
bool SelectDownStreamNodeForBothDirection = true;
UPROPERTY(EditAnywhere, config, Category = Settings)
float SelectStreamCutoffDistance = 300;
/** */
UPROPERTY(config/*, EditAnywhere, Category = WireStyle*/)
bool OverrideMaterialGraphPinColor = false;
/** */
UPROPERTY(config/*, EditAnywhere, Category = WireStyle*/)
FLinearColor Float1PinWireColor = FLinearColor(0.22, 0.5, 0, 1);
/** */
UPROPERTY(config/*, EditAnywhere, Category = WireStyle*/)
FLinearColor Float2PinWireColor = FLinearColor(0.2, 0.2, 1, 1);
/** */
UPROPERTY(config/*, EditAnywhere, Category = WireStyle*/)
FLinearColor Float3PinWireColor = FLinearColor(0.8, 0.65, 0, 1);
/** */
UPROPERTY(config/*, EditAnywhere, Category = WireStyle*/)
FLinearColor Float4PinWireColor = FLinearColor(1, 0.25, 0.1, 1);
/** */
UPROPERTY(config/*, EditAnywhere, Category = WireStyle*/)
FLinearColor BoolPinWireColor = FLinearColor(.9, 0.09, 0.09, 1);
/** */
UPROPERTY(config/*, EditAnywhere, Category = WireStyle*/)
FLinearColor TexturePinWireColor = FLinearColor(0.09, 0.52, 0.9, 1);
/** */
UPROPERTY(config/*, EditAnywhere, Category = WireStyle*/)
FLinearColor MaterialAttributesPinWireColor = FLinearColor(1, 1, 1, 1);
UPROPERTY(config/*, EditAnywhere, Category = WireStyle*/)
bool WireStyleStraight = false;
};