Lots of refactoring in LuaCallNode

This commit is contained in:
2026-03-04 02:56:15 -05:00
parent b81a2a8685
commit 1728386f5c
6 changed files with 127 additions and 170 deletions

View File

@@ -0,0 +1,34 @@
#pragma once
#include "K2Node.h"
#include "LuprexK2Node.generated.h"
//
// Base class for Luprex K2 nodes, adding common utility functions.
//
UCLASS(Abstract, MinimalAPI)
class UlxK2Node : public UK2Node
{
GENERATED_BODY()
protected:
/** Add a single-char prefix to a pin name, e.g. AddPrefix("foo", 'A') -> "A:foo" */
static FName AddPrefix(const FString &Name, char Prefix);
/** Strip a single-char prefix from a pin name, returning the original name if no prefix is found. */
static FName RemovePrefix(FName Name);
/** Convert a UFunction property to a pin type. Returns a default (wildcard) pin type on failure. */
static FEdGraphPinType PropertyToPinType(const FProperty *Property);
/** Set a fatal error message on this node. */
void SetErrorMsg(const FString &Msg);
/** Spawn an intermediate UK2Node_CallFunction during node expansion. */
class UK2Node_CallFunction* MakeCallFunctionNode(class FKismetCompilerContext &CompilerContext, UEdGraph *SourceGraph, UFunction *Func);
/** Link ExecOut to NextNode's exec pin, return NextNode's output exec pin (by name). */
static UEdGraphPin* ChainExecPin(UEdGraphPin *ExecOut, UK2Node *NextNode, const TCHAR *OutputPinName);
};