Another registration overhaul
This commit is contained in:
@@ -37,12 +37,12 @@ public:
|
||||
UPROPERTY(meta=(Description="Name of the parent component to attach to"))
|
||||
FString Parent;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Add a component to a Blueprint's SimpleConstructionScript. "
|
||||
"Optionally attach it to an existing parent component.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Add a component to a Blueprint's SimpleConstructionScript. "
|
||||
"Optionally attach it to an existing parent component."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -21,11 +21,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Path to the component (e.g. '/Game/MyBP,component:MyComp')"))
|
||||
FString Component;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Remove a component from a Blueprint's SimpleConstructionScript.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Remove a component from a Blueprint's SimpleConstructionScript."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -28,11 +28,11 @@ public:
|
||||
UPROPERTY(meta=(Description="New parent component name."))
|
||||
FString Parent;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Change the parent of a component in a Blueprint's SimpleConstructionScript.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Change the parent of a component in a Blueprint's SimpleConstructionScript."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -23,11 +23,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Asset to back up"))
|
||||
FString Asset;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Copy an asset's .uasset file to a .uasset.bak backup.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Copy an asset's .uasset file to a .uasset.bak backup."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
FString Filename = FPaths::ConvertRelativePathToFull(
|
||||
|
||||
@@ -23,11 +23,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Content browser path to list, e.g. /Game or /Game/Maps"))
|
||||
FString Path;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("List the subfolders and assets inside a content browser folder.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("List the subfolders and assets inside a content browser folder."));
|
||||
}
|
||||
|
||||
static FString GetExtraInfoString(const FAssetData& Data)
|
||||
{
|
||||
FString ParentClassName;
|
||||
|
||||
@@ -29,12 +29,12 @@ public:
|
||||
UPROPERTY(meta=(Optional, Description="If true, skip reference check and force delete"))
|
||||
bool Force = false;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Delete a .uasset after verifying no references. "
|
||||
"Use force=true to skip the reference check.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Delete a .uasset after verifying no references. "
|
||||
"Use force=true to skip the reference check."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
// Verify the asset file exists on disk
|
||||
|
||||
@@ -22,11 +22,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Asset to find references for"))
|
||||
FString Asset;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Find all assets that reference a given asset.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Find all assets that reference a given asset."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
IAssetRegistry& Registry = *IAssetRegistry::Get();
|
||||
|
||||
@@ -26,11 +26,11 @@ public:
|
||||
UPROPERTY(meta=(Description="New package path or just a new name"))
|
||||
FString NewPath;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Rename or move an asset with reference fixup.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Rename or move an asset with reference fixup."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
// Load the asset
|
||||
|
||||
@@ -24,11 +24,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Asset to restore"))
|
||||
FString Asset;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Restore a .uasset file from its .uasset.bak backup, reloading it in the editor.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Restore a .uasset file from its .uasset.bak backup, reloading it in the editor."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
FString Filename = FPaths::ConvertRelativePathToFull(
|
||||
|
||||
@@ -30,11 +30,11 @@ public:
|
||||
UPROPERTY(meta=(Optional, Description="Maximum number of results (default 50)"))
|
||||
int32 Limit = 50;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Search for assets by name and/or type. At least one of Query or Type must be specified.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Search for assets by name and/or type. At least one of Query or Type must be specified."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
if (Query.IsEmpty() && Type.IsEmpty())
|
||||
|
||||
@@ -38,11 +38,11 @@ public:
|
||||
UPROPERTY(meta=(Optional, Description="Output variables, one per line"))
|
||||
FString OutputVariables;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Create a new function or macro graph in a Blueprint.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Create a new function or macro graph in a Blueprint."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
if (GraphType != TEXT("function") && GraphType != TEXT("macro"))
|
||||
|
||||
@@ -24,11 +24,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Path to the graph, e.g. /Game/MyBP,graph:MyFunction"))
|
||||
FString Graph;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Delete a function or macro graph from a Blueprint.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Delete a function or macro graph from a Blueprint."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -27,11 +27,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Native UInterface class name or Blueprint Interface package path"))
|
||||
FString Interface;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Add an interface to a blueprint");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Add an interface to a blueprint"));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -30,12 +30,12 @@ public:
|
||||
UPROPERTY(meta=(Optional, Description="If true, keep the function graphs as regular functions"))
|
||||
bool PreserveFunctions = false;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Remove a Blueprint Interface implementation from a Blueprint. "
|
||||
"Optionally preserve the function graphs as regular functions.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Remove a Blueprint Interface implementation from a Blueprint. "
|
||||
"Optionally preserve the function graphs as regular functions."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -24,12 +24,12 @@ public:
|
||||
UPROPERTY(meta=(Description="Blueprint to compile"))
|
||||
FString Blueprint;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Compile a blueprint. "
|
||||
"Reports compiler warnings and errors.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Compile a blueprint. "
|
||||
"Reports compiler warnings and errors."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -32,11 +32,11 @@ public:
|
||||
UPROPERTY(meta=(Optional, Description="Normal, Interface, FunctionLibrary, or MacroLibrary"))
|
||||
TEnumAsByte<EBlueprintType> BlueprintType = BPTYPE_Normal;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Create a new Blueprint asset with a specified parent class and type.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Create a new Blueprint asset with a specified parent class and type."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingPackageMaker Maker(AssetPath);
|
||||
|
||||
@@ -34,12 +34,12 @@ public:
|
||||
UPROPERTY(meta=(Description="Blueprint path"))
|
||||
FString Blueprint;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Dump a Blueprint's structure: variables, interfaces, components, "
|
||||
"and graph names. Does not include graph contents (use Graph_Dump for that).");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Dump a Blueprint's structure: variables, interfaces, components, "
|
||||
"and graph names. Does not include graph contents (use Graph_Dump for that)."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -28,11 +28,11 @@ public:
|
||||
UPROPERTY(meta=(Description="New parent class"))
|
||||
FString Parent;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Change a Blueprint's parent class.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Change a Blueprint's parent class."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
// Load Blueprint
|
||||
|
||||
@@ -17,12 +17,7 @@ public:
|
||||
UPROPERTY(meta=(Description="Full asset path for the new asset (e.g. '/Game/MyFolder/MyAsset')"))
|
||||
FString AssetPath;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
{
|
||||
return TEXT("Create a new asset using a factory.");
|
||||
}
|
||||
|
||||
virtual void Register(UWingServer* Server) override
|
||||
virtual void Register() override
|
||||
{
|
||||
TArray<UClass*> FactoryClasses;
|
||||
GetDerivedClasses(UFactory::StaticClass(), FactoryClasses);
|
||||
@@ -37,8 +32,10 @@ public:
|
||||
TArray<FName> ConfigProps = FWingProperty::GetNames(Class, CPF_Edit);
|
||||
if (ConfigProps.Num() > 0) continue;
|
||||
|
||||
FString CommandName = FString::Printf(TEXT("Create_%s"), *UWingFactories::DeriveFactoryName(Class));
|
||||
Server->AddHandler(CommandName, GetClass(), Class, EWingHandlerKind::Create);
|
||||
FString FactoryName = UWingFactories::DeriveFactoryName(Class);
|
||||
FString CommandName = FString::Printf(TEXT("Create_%s"), *FactoryName);
|
||||
FString Doc = FString::Printf(TEXT("Create a new %s asset."), *FactoryName);
|
||||
UWingServer::AddHandler(this, CommandName, Doc, Class, EWingHandlerKind::Create);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,11 +18,11 @@ class UWing_Editor_ListOpenAssets : public UWingHandler
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("List all currently open asset editors, showing which has focus and whether they have unsaved changes.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("List all currently open asset editors, showing which has focus and whether they have unsaved changes."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
UAssetEditorSubsystem* Sub = GEditor->GetEditorSubsystem<UAssetEditorSubsystem>();
|
||||
|
||||
@@ -22,11 +22,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Asset to open"))
|
||||
FString Asset;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Open an asset in its editor and bring it to focus.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Open an asset in its editor and bring it to focus."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -30,11 +30,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Input Variables, one per line, expressed as: type var = value"))
|
||||
FString InputVariables;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Add a new event dispatcher to a Blueprint.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Add a new event dispatcher to a Blueprint."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -26,11 +26,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Name of the event dispatcher to delete"))
|
||||
FString Dispatcher;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Delete an event dispatcher from a Blueprint.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Delete an event dispatcher from a Blueprint."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -25,13 +25,13 @@ public:
|
||||
UPROPERTY(meta=(Description="Menu item as shown by GraphNode_ShowMenu"))
|
||||
FString Item;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Execute a context menu action on a node or pin. "
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Execute a context menu action on a node or pin. "
|
||||
"Supports SplitStructPin, AddPin, AddArrayElementPin, etc. "
|
||||
"Use GraphNode_ShowMenu to see available actions. ");
|
||||
"Use GraphNode_ShowMenu to see available actions. "));
|
||||
}
|
||||
|
||||
private:
|
||||
virtual void Handle() override
|
||||
{
|
||||
|
||||
@@ -45,12 +45,12 @@ public:
|
||||
UPROPERTY(meta=(Description="Array of {Type, posX, posY} objects. Use GraphNode_SearchTypes to find types."))
|
||||
FWingJsonArray Nodes;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Create nodes using the editor's action database. "
|
||||
"Use GraphNode_SearchTypes to find types.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Create nodes using the editor's action database. "
|
||||
"Use GraphNode_SearchTypes to find types."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -26,12 +26,12 @@ public:
|
||||
UPROPERTY(meta=(Description="Node to delete"))
|
||||
FString Node;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Delete a node from a graph. "
|
||||
"Cannot delete undeletable nodes (entry points, root nodes, etc).");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Delete a node from a graph. "
|
||||
"Cannot delete undeletable nodes (entry points, root nodes, etc)."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -21,11 +21,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Target node"))
|
||||
FString Node;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Dump a single node as readable text, including all pins and connections.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Dump a single node as readable text, including all pins and connections."));
|
||||
}
|
||||
|
||||
private:
|
||||
virtual void Handle() override
|
||||
{
|
||||
|
||||
@@ -22,11 +22,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Target node"))
|
||||
FString Node;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Get the comment text and bubble visibility of a node.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Get the comment text and bubble visibility of a node."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -25,12 +25,12 @@ public:
|
||||
UPROPERTY(meta=(Description="New name for the node"))
|
||||
FString Name;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Rename a graph node. Works on custom events, timelines, "
|
||||
"composite nodes, comment nodes, and other renameable node types.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Rename a graph node. Works on custom events, timelines, "
|
||||
"composite nodes, comment nodes, and other renameable node types."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -30,13 +30,13 @@ public:
|
||||
UPROPERTY(meta=(Description="Target graph"))
|
||||
FString Graph;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Search the action database for node types that can be spawned in a graph. "
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Search the action database for node types that can be spawned in a graph. "
|
||||
"Works with any graph type (Blueprint, Material, etc.). "
|
||||
"Returns full action names for use with GraphNode_Create.");
|
||||
"Returns full action names for use with GraphNode_Create."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -25,12 +25,12 @@ public:
|
||||
UPROPERTY(meta=(Description="Comment text to set"))
|
||||
FString Comment;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Set a node's comment text, and make the comment visible. "
|
||||
"Setting empty text will cause the comment to vanish.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Set a node's comment text, and make the comment visible. "
|
||||
"Setting empty text will cause the comment to vanish."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -44,11 +44,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Array of {node, name, value} objects"))
|
||||
FWingJsonArray Pins;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Set the default value of input pins or material expression properties on nodes.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Set the default value of input pins or material expression properties on nodes."));
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// K2 graphs: set pin default values.
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
@@ -42,11 +42,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Array of {node, x, y} objects"))
|
||||
FWingJsonArray Nodes;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Reposition one or more nodes in a Blueprint graph.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Reposition one or more nodes in a Blueprint graph."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -23,11 +23,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Target node"))
|
||||
FString Node;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Show context menu actions available for a node and its pins.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Show context menu actions available for a node and its pins."));
|
||||
}
|
||||
|
||||
private:
|
||||
virtual void Handle() override
|
||||
{
|
||||
|
||||
@@ -42,11 +42,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Array of {sourcePin, targetPin} objects"))
|
||||
FWingJsonArray Connections;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Connect pins between nodes in a graph (Blueprint or Material).");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Connect pins between nodes in a graph (Blueprint or Material)."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -41,12 +41,12 @@ public:
|
||||
UPROPERTY(meta=(Description="Array of {pin, targetPin?} objects. If targetPin is omitted, all connections on the pin are broken."))
|
||||
FWingJsonArray Disconnections;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Disconnect pins in a graph (Blueprint or Material). "
|
||||
"Can disconnect a specific link or all links on a pin.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Disconnect pins in a graph (Blueprint or Material). "
|
||||
"Can disconnect a specific link or all links on a pin."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -29,11 +29,11 @@ public:
|
||||
UPROPERTY(meta=(Optional, Description="True to include less-significant details"))
|
||||
bool IncludeDetails;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Dump blueprint or material graphs as readable text. ");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Dump blueprint or material graphs as readable text. "));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -33,11 +33,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Layer/blend index (0-based). Only used when ParameterAssociation is 'Layer' or 'Blend'", Optional))
|
||||
int32 ParameterLayer = INDEX_NONE;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Remove a parameter override from a Material Instance, reverting it to the parent material's value.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Remove a parameter override from a Material Instance, reverting it to the parent material's value."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -29,11 +29,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Parent material package path (Material or Material Instance)"))
|
||||
FString ParentMaterial;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Create a new Material Instance Constant asset with a specified parent material.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Create a new Material Instance Constant asset with a specified parent material."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingPackageMaker Maker(AssetPath);
|
||||
|
||||
@@ -24,11 +24,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Target material instance"))
|
||||
FString MaterialInstance;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("List all parameters on a Material Instance, showing current values and which are overridden.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("List all parameters on a Material Instance, showing current values and which are overridden."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -37,11 +37,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Value to set (uses Unreal text format, e.g. '0.5' for scalar, '(R=1,G=0,B=0,A=1)' for vector)"))
|
||||
FString Value;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Set a parameter override on a Material Instance.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Set a parameter override on a Material Instance."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -22,11 +22,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Material name or package path"))
|
||||
FString Material;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Force recompile a material and check for compilation errors.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Force recompile a material and check for compilation errors."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
// Load material
|
||||
|
||||
@@ -24,11 +24,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Full asset path for the new material"))
|
||||
FString Material;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Create a new UMaterial asset");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Create a new UMaterial asset"));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingPackageMaker Maker(Material);
|
||||
|
||||
@@ -23,11 +23,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Material path"))
|
||||
FString Material;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("List all parameters on a Material, showing their default values.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("List all parameters on a Material, showing their default values."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -29,11 +29,11 @@ public:
|
||||
UPROPERTY(meta=(Optional, Description="Only show properties declared on the object's own class, not inherited ones"))
|
||||
bool Local = false;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("List all blueprint-visible properties, showing current values and which are editable.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("List all blueprint-visible properties, showing current values and which are editable."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
// Resolve the path to an object and get its editable template.
|
||||
|
||||
@@ -25,11 +25,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Property name"))
|
||||
FString Property;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Get the value of a single property.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Get the value of a single property."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -25,11 +25,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Object mapping property names to new values in Unreal text format"))
|
||||
FWingJsonObject Properties;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Set one or more editable properties. Values use Unreal text format.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Set one or more editable properties. Values use Unreal text format."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
// Resolve the path to an object and get its editable template.
|
||||
|
||||
@@ -24,11 +24,11 @@ public:
|
||||
UPROPERTY(meta=(Optional, Description="Kind of command: Normal, or Create"))
|
||||
EWingHandlerKind Kind = EWingHandlerKind::Normal;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("List all available commands with their descriptions.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("List all available commands with their descriptions."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
FString QueryLower = Query.ToLower();
|
||||
@@ -64,8 +64,7 @@ public:
|
||||
{
|
||||
UWingServer::Printf(TEXT(
|
||||
"\n"
|
||||
"You can also use ShowCommands with Kind=Create to see\n"
|
||||
"commands that create new assets.\n"
|
||||
"You can also use ShowCommands with Kind=Create to see commands that create new assets.\n"
|
||||
"\n"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,13 +17,13 @@ class UWing_SysInfo_Factories : public UWingHandler
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Sysinfo commands are intended for the human who "
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Sysinfo commands are intended for the human who "
|
||||
"is developing this plugin, they help him to understand. "
|
||||
"unreal's internals better.");
|
||||
"unreal's internals better."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
const TArray<UWingFactories::Info>& All = UWingFactories::AllFactories();
|
||||
|
||||
@@ -20,11 +20,11 @@ public:
|
||||
UPROPERTY(meta=(Description="The string to sanitize"))
|
||||
FString Input;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Test the sanitizer by sanitizing a string and printing the result.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Test the sanitizer by sanitizing a string and printing the result."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
UWingServer::Printf(TEXT("%s\n"), *WingTokenizer::ExternalizeID(FName(Input)));
|
||||
|
||||
@@ -20,11 +20,11 @@ public:
|
||||
UPROPERTY(meta=(Description="The string to tokenize"))
|
||||
FString Input;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Test the tokenizer by tokenizing a string and printing the result.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Test the tokenizer by tokenizing a string and printing the result."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingTokenizer T(Input);
|
||||
|
||||
@@ -20,11 +20,11 @@ public:
|
||||
UPROPERTY(meta=(Description="The type name to parse, e.g. 'Array<Vector>'"))
|
||||
FString Input;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Test the type parser by parsing a type name and dumping the resulting FEdGraphPinType.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Test the type parser by parsing a type name and dumping the resulting FEdGraphPinType."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
FEdGraphPinType PinType;
|
||||
|
||||
@@ -20,11 +20,11 @@ public:
|
||||
UPROPERTY(meta=(Description="The sanitized identifier to unsanitize"))
|
||||
FString Input;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Test the unsanitizer by unsanitizing a string and printing the result.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Test the unsanitizer by unsanitizing a string and printing the result."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
FString Error;
|
||||
|
||||
@@ -32,12 +32,12 @@ public:
|
||||
UPROPERTY(meta=(Optional, Description="If true, include all types, not just BlueprintType/Blueprintable ones"))
|
||||
bool Exhaustive = false;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Search for type names usable in pin type specifications. "
|
||||
"Returns short names that can be used with commands like Blueprint_ChangeVariableType.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Search for type names usable in pin type specifications. "
|
||||
"Returns short names that can be used with commands like Blueprint_ChangeVariableType."));
|
||||
}
|
||||
|
||||
static bool IsProjectDefined(const UWingTypes::Info& Info)
|
||||
{
|
||||
return Info.IsUserDefined && Info.PinSubCategoryObject.StartsWith(TEXT("/Game/"));
|
||||
|
||||
@@ -11,11 +11,11 @@ class UWing_UserManual : public UWingHandler
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Print the user manual.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Print the user manual."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingManual::PrintManual({WingManual::Section::All}, nullptr, false);
|
||||
|
||||
@@ -33,11 +33,11 @@ public:
|
||||
UPROPERTY(meta=(Optional, Description="Local variables, one per line"))
|
||||
FString LocalVariables;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Add new variables. Format: 'type name (flags) = default', one per line.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Add new variables. Format: 'type name (flags) = default', one per line."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -21,12 +21,12 @@ public:
|
||||
UPROPERTY(meta=(Description="Path to a blueprint, graph, or custom event node"))
|
||||
FString Object;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("List all variables of a blueprint, function graph,"
|
||||
"macro graph, event dispatcher graph, or custom event node");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("List all variables of a blueprint, function graph,"
|
||||
"macro graph, event dispatcher graph, or custom event node"));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -33,12 +33,12 @@ public:
|
||||
UPROPERTY(meta=(Optional, Description="Local variables, one per line"))
|
||||
FString LocalVariables;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Modify variables of a blueprint, function graph, "
|
||||
"macro graph, event dispatcher graph, or custom event node. ");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Modify variables of a blueprint, function graph, "
|
||||
"macro graph, event dispatcher graph, or custom event node. "));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -33,11 +33,11 @@ public:
|
||||
UPROPERTY(meta=(Optional, Description="Local variable names to remove, comma-separated"))
|
||||
FString LocalVariables;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Remove variables from a blueprint, graph, or custom event node.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Remove variables from a blueprint, graph, or custom event node."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingFetcher F;
|
||||
|
||||
@@ -39,12 +39,12 @@ public:
|
||||
UPROPERTY(meta=(Optional, Description="Whether to expose the widget as a variable in the blueprint (default false)"))
|
||||
bool IsVariable = false;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Add a widget to a Widget Blueprint's widget tree. "
|
||||
"Use Widget_SearchTypes to find available widget types.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Add a widget to a Widget Blueprint's widget tree. "
|
||||
"Use Widget_SearchTypes to find available widget types."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
// Fetch the widget blueprint.
|
||||
|
||||
@@ -25,12 +25,12 @@ public:
|
||||
UPROPERTY(meta=(Description="Path to the widget, eg /Game/Widgets/WB_Test,widget:MyButton"))
|
||||
FString Widget;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Delete a widget from a Widget Blueprint's widget tree. "
|
||||
"The widget must not have any children.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Delete a widget from a Widget Blueprint's widget tree. "
|
||||
"The widget must not have any children."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
// Walk to the widget.
|
||||
|
||||
@@ -28,11 +28,11 @@ public:
|
||||
UPROPERTY(meta=(Description="Name of the new parent widget. Must be a panel."))
|
||||
FString Parent;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Move a widget to a different parent in a Widget Blueprint's widget tree.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Move a widget to a different parent in a Widget Blueprint's widget tree."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
// Walk to the widget.
|
||||
|
||||
@@ -23,12 +23,12 @@ public:
|
||||
UPROPERTY(meta=(Optional, Description="Maximum number of results (default 50)"))
|
||||
int32 MaxResults = 50;
|
||||
|
||||
virtual FString GetDescription() const override
|
||||
virtual void Register() override
|
||||
{
|
||||
return TEXT("Search for widget types that can be added to a Widget Blueprint. "
|
||||
"Returns names for use with Widget_Create.");
|
||||
UWingServer::AddHandler(this,
|
||||
TEXT("Search for widget types that can be added to a Widget Blueprint. "
|
||||
"Returns names for use with Widget_Create."));
|
||||
}
|
||||
|
||||
virtual void Handle() override
|
||||
{
|
||||
WingWidgets Widgets;
|
||||
|
||||
@@ -44,9 +44,8 @@ void WingManual::PrintHandlerArguments(const FWingHandlerConfig& Handler)
|
||||
|
||||
void WingManual::PrintHandlerDescription(const FWingHandlerConfig& Handler)
|
||||
{
|
||||
const UWingHandler* HandlerCDO = Cast<UWingHandler>(Handler.Class->GetDefaultObject());
|
||||
if (!HandlerCDO) return;
|
||||
UWingServer::Print(WingUtils::WrapText(HandlerCDO->GetDescription(), 80, TEXT(" // ")));
|
||||
if (Handler.Documentation.IsEmpty()) return;
|
||||
UWingServer::Print(WingUtils::WrapText(Handler.Documentation, 80, TEXT(" // ")));
|
||||
}
|
||||
|
||||
void WingManual::PrintHandlerHelp(const FWingHandlerConfig& Handler)
|
||||
|
||||
@@ -452,21 +452,21 @@ void UWingServer::ClientThreadFunc(UWingServer* Server, TSharedPtr<FClientConnec
|
||||
// BuildWingHandlerRegistry
|
||||
// ============================================================
|
||||
|
||||
void UWingHandler::Register(UWingServer* Server)
|
||||
void UWingServer::AddHandler(UObject* Obj, const FString& Documentation)
|
||||
{
|
||||
UClass* Class = GetClass();
|
||||
Server->AddHandler(WingUtils::GetHandlerName(Class), Class, nullptr, EWingHandlerKind::Normal);
|
||||
AddHandler(Obj, WingUtils::GetHandlerName(Obj->GetClass()), Documentation, nullptr, EWingHandlerKind::Normal);
|
||||
}
|
||||
|
||||
void UWingServer::AddHandler(const FString& Name, UClass* Class, UObject* Config, EWingHandlerKind Kind)
|
||||
void UWingServer::AddHandler(UObject* Obj, const FString& Name, const FString& Documentation, UObject* Config, EWingHandlerKind Kind)
|
||||
{
|
||||
FWingHandlerConfig H;
|
||||
H.Name = Name;
|
||||
H.Class = TStrongObjectPtr<UClass>(Class);
|
||||
H.Documentation = Documentation;
|
||||
H.Class = TStrongObjectPtr<UClass>(Obj->GetClass());
|
||||
H.Config = TStrongObjectPtr<UObject>(Config);
|
||||
H.Kind = Kind;
|
||||
|
||||
WingHandlerRegistry.Add(MoveTemp(H));
|
||||
GWingServer->WingHandlerRegistry.Add(MoveTemp(H));
|
||||
}
|
||||
|
||||
void UWingServer::BuildWingHandlerRegistry()
|
||||
@@ -474,7 +474,7 @@ void UWingServer::BuildWingHandlerRegistry()
|
||||
for (UClass* Class : WingUtils::CollectHandlerClasses())
|
||||
{
|
||||
UWingHandler* CDO = Cast<UWingHandler>(Class->GetDefaultObject());
|
||||
CDO->Register(this);
|
||||
CDO->Register();
|
||||
}
|
||||
WingHandlerRegistry.Sort([](const FWingHandlerConfig& A, const FWingHandlerConfig& B) { return A.Name < B.Name; });
|
||||
}
|
||||
|
||||
@@ -24,8 +24,6 @@ struct FWingJsonArray
|
||||
TArray<TSharedPtr<FJsonValue>> Array;
|
||||
};
|
||||
|
||||
class UWingServer;
|
||||
|
||||
UENUM()
|
||||
enum class EWingHandlerKind
|
||||
{
|
||||
@@ -38,6 +36,7 @@ struct FWingHandlerConfig
|
||||
{
|
||||
GENERATED_BODY()
|
||||
FString Name;
|
||||
FString Documentation;
|
||||
TStrongObjectPtr<UClass> Class;
|
||||
TStrongObjectPtr<UObject> Config;
|
||||
EWingHandlerKind Kind = EWingHandlerKind::Normal;
|
||||
@@ -49,11 +48,8 @@ class UEWINGMAN_API UWingHandler : public UObject
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// Human-readable tool description for MCP tools/list.
|
||||
virtual FString GetDescription() const PURE_VIRTUAL(UWingHandler::GetDescription, return FString(););
|
||||
|
||||
// Register this handler's commands with the server.
|
||||
virtual void Register(UWingServer* Server);
|
||||
virtual void Register() PURE_VIRTUAL(UWingHandler::Register);
|
||||
|
||||
// Called after parameter fields have been populated from JSON.
|
||||
virtual void Handle() {}
|
||||
|
||||
@@ -74,7 +74,8 @@ public:
|
||||
int32 GetPort() const { return Port; }
|
||||
|
||||
// ----- Tool dispatch -----
|
||||
void AddHandler(const FString& Name, UClass* Class, UObject* Config, EWingHandlerKind Kind);
|
||||
static void AddHandler(UObject* Obj, const FString& Documentation);
|
||||
static void AddHandler(UObject* Obj, const FString& Name, const FString& Documentation, UObject* Config, EWingHandlerKind Kind);
|
||||
static const TArray<FWingHandlerConfig>& AllHandlers() { return GWingServer->WingHandlerRegistry; }
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user