You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- First pass at consolidating editor code for API members/vertices where possible
- Make Variables & Output now use default literal for input value (so user doesn't have to hunt down literal box in graph)
Various bug fixes:
- Fixes crash in post undo after updating a variable default
- Fixes ':Array' flavor showing up in new SearchableComboBox when selecting `Is Array` for literal type
- Synchronize variable setter default literal with variable interface default literal
- Provide default literal field for outputs & variables for consistency
- Added win is widget support for single input/output types (i.e. floats for now)
- Don't show trigger simulate option on non-transmissible inputs (ex. OnPlay)
- Set simulate button visibility to only show when parameter transmission is supported by input
- Make simulate buttons in graph only visible when sound plays
- Start sounds automatically when clicking simulate in inspector
- Fixed initial condition "holding" trigger state for trigger routing now that Transmission System is only used inter-MetaSound (not intra-MetaSound) and we are deprecating Send/Receives
#rb phil.popp
#rnx
#jira UE-135813
#jira UE-132900
#jira UE-135844
#jira UE-116867
#jira UE-135366
#jira UE-137310
#preflight 61b7afe4fc570891338fea08
#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 18450046 in //UE5/Release-5.0/... via CL 18450065
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18450072 by rob gay in ue5-release-engine-test branch]
85 lines
3.0 KiB
C++
85 lines
3.0 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
#pragma once
|
|
|
|
|
|
#include "Input/Reply.h"
|
|
#include "Layout/Visibility.h"
|
|
#include "Misc/Attribute.h"
|
|
#include "SGraphNode.h"
|
|
#include "Widgets/DeclarativeSyntaxSupport.h"
|
|
#include "Widgets/SOverlay.h"
|
|
|
|
|
|
// Forward Declarations
|
|
class SAudioInputWidget;
|
|
class SGraphPin;
|
|
class SVerticalBox;
|
|
class UMetasoundEditorGraphMember;
|
|
class UMetasoundEditorGraphMemberDefaultLiteral;
|
|
class UMetasoundEditorGraphMemberNode;
|
|
class UMetasoundEditorGraphNode;
|
|
|
|
|
|
namespace Metasound
|
|
{
|
|
namespace Editor
|
|
{
|
|
class SMetaSoundGraphNode : public SGraphNode
|
|
{
|
|
public:
|
|
SLATE_BEGIN_ARGS(SMetaSoundGraphNode)
|
|
{
|
|
}
|
|
|
|
SLATE_END_ARGS()
|
|
virtual ~SMetaSoundGraphNode();
|
|
|
|
void Construct(const FArguments& InArgs, class UEdGraphNode* InNode);
|
|
|
|
protected:
|
|
|
|
// SGraphNode Interface
|
|
virtual void CreateInputSideAddButton(TSharedPtr<SVerticalBox> InputBox) override;
|
|
virtual void CreateOutputSideAddButton(TSharedPtr<SVerticalBox> OutputBox) override;
|
|
virtual TSharedPtr<SGraphPin> CreatePinWidget(UEdGraphPin* InPin) const override;
|
|
virtual void CreateStandardPinWidget(UEdGraphPin* InPin) override;
|
|
virtual TSharedRef<SWidget> CreateNodeContentArea() override;
|
|
virtual TSharedRef<SWidget> CreateTitleWidget(TSharedPtr<SNodeTitle> NodeTitle) override;
|
|
virtual const FSlateBrush* GetNodeBodyBrush() const override;
|
|
virtual TSharedRef<SWidget> CreateTitleRightWidget() override;
|
|
virtual EVisibility IsAddPinButtonVisible() const override;
|
|
virtual FReply OnAddPin() override;
|
|
virtual void MoveTo(const FVector2D& NewPosition, FNodeSet& NodeFilter, bool bMarkDirty = true) override;
|
|
virtual void SetDefaultTitleAreaWidget(TSharedRef<SOverlay> DefaultTitleAreaWidget) override;
|
|
|
|
FLinearColor GetNodeTitleColorOverride() const;
|
|
|
|
FName GetLiteralDataType() const;
|
|
UMetasoundEditorGraphNode& GetMetaSoundNode();
|
|
const UMetasoundEditorGraphNode& GetMetaSoundNode() const;
|
|
|
|
public:
|
|
static void ExecuteTrigger(UMetasoundEditorGraphMemberDefaultLiteral& Literal);
|
|
static TSharedRef<SWidget> CreateTriggerSimulationWidget(UMetasoundEditorGraphMemberDefaultLiteral& Literal, TAttribute<EVisibility>&& InVisibility, TAttribute<bool>&& InEnablement, const FText* InToolTip = nullptr);
|
|
|
|
private:
|
|
// If this node represents a graph member node, returns corresponding member.
|
|
UMetasoundEditorGraphMember* GetMetaSoundMember();
|
|
|
|
// If this node represents a graph member node, returns cast node.
|
|
UMetasoundEditorGraphMemberNode* GetMetaSoundMemberNode();
|
|
|
|
TAttribute<EVisibility> GetSimulationVisibilityAttribute() const;
|
|
|
|
FText GetPinTooltip(UEdGraphPin* InPin) const;
|
|
|
|
// Slider widget for float input
|
|
TSharedPtr<SAudioInputWidget> InputWidget;
|
|
// Handle for on value changed delegate for input slider
|
|
FDelegateHandle InputSliderOnValueChangedDelegateHandle;
|
|
// Handle for on input slider range changed
|
|
FDelegateHandle InputSliderOnRangeChangedDelegateHandle;
|
|
};
|
|
} // namespace Editor
|
|
} // namespace Metasound
|