Apparatus Version 1.0.0
ECS-like data-driven workflow for Unreal Engine.
BPNode_MakeFingerprint.h
1 /*
2  * ░▒▓ APPARATUS ▓▒░
3  *
4  * File: BPNode_MakeFingerprint.h
5  * Created: Friday, 23rd October 2020 7:00:48 pm
6  * Author: Vladislav Dmitrievich Turbanov (vladislav@turbanov.ru)
7  * ───────────────────────────────────────────────────────────────────
8  * Last Modified: Friday, 19th March 2021 3:09:20 pm
9  * Modified By: Vladislav Dmitrievich Turbanov (vladislav@turbanov.ru)
10  * ───────────────────────────────────────────────────────────────────
11  *
12  * The Apparatus source code is for your internal usage only.
13  * Redistribution of this file is strictly prohibited.
14  *
15  * Community forums: https://talk.turbanov.ru
16  *
17  * Copyright 2020 - 2021, SP Vladislav Dmitrievich Turbanov
18  * Made in Russia, Moscow City, Chekhov City
19  */
20 
21 #pragma once
22 
23 #include "K2Node.h"
24 #include "K2Node_AddPinInterface.h"
25 
26 #include "BPNode_MakeFingerprint.generated.h"
27 
28 UCLASS(BlueprintType, Blueprintable)
29 class APPARATUSUNCOOKED_API UBPNode_MakeFingerprint final
30  : public UK2Node,
31  public IK2Node_AddPinInterface
32 {
33  GENERATED_UCLASS_BODY()
34 
35  UPROPERTY()
36  int32 NumTypes = 0;
37 
42  UPROPERTY()
43  int32 TypesCount = 0;
44 
48  static const FString TypePinNamePrefix;
49 
53  static const FName FingerprintPinName;
54 
58  static const FName BootFilterPinName;
59 
60  // BEGIN - UEdGraphNode
61  virtual void AllocateDefaultPins() override;
62 
63  virtual FLinearColor GetNodeTitleColor() const override;
64 
65  virtual void
66  EarlyValidation(class FCompilerResultsLog &MessageLog) const override;
67 
68  virtual void ExpandNode(class FKismetCompilerContext &CompilerContext,
69  UEdGraph *SourceGraph) override;
70 
71  virtual FText GetNodeTitle(ENodeTitleType::Type TitleType) const override;
72 
73  virtual FText GetTooltipText() const override;
74 
75  virtual void PinConnectionListChanged(UEdGraphPin *ChangedPin) override;
76 
77  virtual void PinDefaultValueChanged(UEdGraphPin *ChangedPin) override;
78 
79  virtual void PostReconstructNode() override;
80  // END - UEdGraphNode.
81 
82  // BEGIN - UK2Node interface
83  virtual FText GetMenuCategory() const override;
84 
85  virtual void GetMenuActions(
86  FBlueprintActionDatabaseRegistrar &ActionRegistrar) const override;
87 
88  virtual void GetNodeContextMenuActions(
89  class UToolMenu *Menu,
90  class UGraphNodeContextMenuContext *Context) const override;
91 
92  virtual bool IsNodePure() const override;
93  // END - UK2Node interface.
94 
95  // BEGIN - IK2Node_AddPinInterface
96  virtual void AddInputPin() override;
97  // END - IK2Node_AddPinInterface
98 
99  virtual void InteractiveAddInputPin();
100 
101  virtual void RemoveTypePin(const int32 Index);
102 
103  virtual void RemoveTypePin(UEdGraphPin *Pin);
104 
105  virtual void InteractiveRemoveTypePin(UEdGraphPin *TypePin);
106 
110  virtual UEdGraphPin *GetFingerprintPin() const;
111 
112  virtual UEdGraphPin *GetBootFilterPin() const;
113 
114  virtual UEdGraphPin *GetTypePinGivenIndex(const int32 Index) const;
115 
116  virtual UClass *GetTypePinType(UEdGraphPin *Pin) const;
117 
118  virtual FName GetDetailTypePinName(const int32 Index) const;
119 
120  virtual int32 GetTypePinIndex(const UEdGraphPin *Pin) const;
121 
122  virtual bool IsTypePin(const UEdGraphPin *Pin) const;
123 
124  virtual void OnTypePinChanged(UEdGraphPin *ChangedPin);
125 
131  virtual bool SyncPinNames();
132 
133  virtual void UpdateTypePinUI(UEdGraphPin *Pin);
134 }; // UCLASS UBPNode_MakeFingerprint
Definition: BPNode_MakeFingerprint.h:32