Compare commits
2 Commits
94e6385f14
...
e17f5417f2
| Author | SHA1 | Date | |
|---|---|---|---|
| e17f5417f2 | |||
| c0848c2670 |
@@ -25,9 +25,16 @@
|
||||
- `Docs/` — Documentation.
|
||||
- `Config/` — Unreal config files
|
||||
- `EnginePatches/` — Custom engine modifications
|
||||
- `Plugins/UEWingman/` - A plugin that gives you control over the unreal editor. Drive it from bash via `python3 Plugins/UEWingman/ue-wingman.py <Command> key=value ...` (values starting with `[` or `{` are parsed as JSON).
|
||||
- `Plugins/UEWingman/` - A plugin that gives you control over the unreal editor.
|
||||
- `../integration.UE/` - the unreal engine source tree
|
||||
|
||||
## Using ue-wingman
|
||||
|
||||
- Drive it from bash using: ue-wingman <Command> <Arg1> <Arg2> ...
|
||||
- ue-wingman Documentation_Manual
|
||||
- ue-wingman Documentation_Commands
|
||||
- ue-wingman Documentation_Command <specific_command>
|
||||
|
||||
## Coding Conventions
|
||||
|
||||
- Prefer early returns and `continue` to reduce nesting (never-nester style).
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Content/Widgets/WB_Menu.uasset
LFS
BIN
Content/Widgets/WB_Menu.uasset
LFS
Binary file not shown.
Binary file not shown.
BIN
Content/Widgets/white-dot.uasset
LFS
BIN
Content/Widgets/white-dot.uasset
LFS
Binary file not shown.
Binary file not shown.
BIN
Content/testing/bp_test.uasset
LFS
BIN
Content/testing/bp_test.uasset
LFS
Binary file not shown.
@@ -12,41 +12,21 @@ class UWing_Documentation_Manual : public UWingHandler
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
UPROPERTY(EditAnywhere, meta=(Description="section of the manual"))
|
||||
FString Section;
|
||||
|
||||
virtual void Register() override
|
||||
{
|
||||
TStringBuilder<128> Docs;
|
||||
Docs.Append(TEXT("Print a section of the manual. Valid sections: "));
|
||||
WingManual::PrintSectionNames(nullptr, WingManual::GetSections(), Docs);
|
||||
UWingServer::AddHandler(this, Docs.ToString());
|
||||
UWingServer::AddHandler(this, TEXT("Print the entire manual."));
|
||||
}
|
||||
virtual void Handle() override
|
||||
{
|
||||
TSet<FName> Sections = WingManual::GetSections();
|
||||
if (Section.IsEmpty())
|
||||
{
|
||||
UWingManualSections::FetcherPaths();
|
||||
UWingManualSections::ExpressingTypes();
|
||||
UWingManualSections::VariableDeclarations();
|
||||
UWingManualSections::EscapeSequencesInFNames();
|
||||
UWingManualSections::MaterialEditing();
|
||||
UWingManualSections::ImportantCommands();
|
||||
}
|
||||
else
|
||||
{
|
||||
FName SectionName(*Section);
|
||||
if (WingManual::PrintSection(SectionName))
|
||||
{
|
||||
WingOut::Stdout.Printf(TEXT("\n"));
|
||||
WingManual::PrintSectionNames(TEXT("Other manual sections:"), Sections, WingOut::Stdout);
|
||||
}
|
||||
else
|
||||
{
|
||||
WingOut::Stdout.Printf(TEXT("Unknown manual section '%s'\n"), *Section);
|
||||
WingManual::PrintSectionNames(TEXT("Valid manual sections:"), Sections, WingOut::Stdout);
|
||||
}
|
||||
}
|
||||
UWingManualSections::FetcherPaths();
|
||||
UWingManualSections::ExpressingTypes();
|
||||
UWingManualSections::VariableDeclarations();
|
||||
UWingManualSections::EscapeSequencesInFNames();
|
||||
UWingManualSections::MaterialEditing();
|
||||
UWingManualSections::NodeContextMenus();
|
||||
UWingManualSections::VariableGettersAndSetters();
|
||||
UWingManualSections::BestPerformance();
|
||||
UWingManualSections::ImportantCommands();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "WingBasics.h"
|
||||
#include "WingManual.h"
|
||||
#include "WingServer.h"
|
||||
#include "Documentation_Section.generated.h"
|
||||
|
||||
UCLASS()
|
||||
class UWing_Documentation_Section : public UWingHandler
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
UPROPERTY(EditAnywhere, meta=(Description="Manual section"))
|
||||
FString Section;
|
||||
|
||||
virtual void Register() override
|
||||
{
|
||||
TStringBuilder<128> Docs;
|
||||
Docs.Append(TEXT("Print a section of the manual. Valid sections: "));
|
||||
WingManual::PrintSectionNames(nullptr, WingManual::GetSections(), Docs);
|
||||
UWingServer::AddHandler(this, Docs.ToString());
|
||||
}
|
||||
virtual void Handle() override
|
||||
{
|
||||
FName SectionName(*Section);
|
||||
if (WingManual::PrintSection(SectionName))
|
||||
{
|
||||
WingOut::Stdout.Printf(TEXT("\n"));
|
||||
WingManual::PrintSectionNames(TEXT("Other manual sections:"), WingManual::GetSections(), WingOut::Stdout);
|
||||
}
|
||||
else
|
||||
{
|
||||
WingOut::Stdout.Printf(TEXT("Unknown manual section '%s'\n"), *Section);
|
||||
WingManual::PrintSectionNames(TEXT("Valid manual sections:"), WingManual::GetSections(), WingOut::Stdout);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -38,7 +38,7 @@ public:
|
||||
MaterialObj->ForceRecompileForRendering();
|
||||
|
||||
// Wait for compilation to finish, then check for errors
|
||||
FMaterialResource* Resource = MaterialObj->GetMaterialResource(GetFeatureLevelShaderPlatform(GMaxRHIFeatureLevel));
|
||||
FMaterialResource* Resource = MaterialObj->GetMaterialResource(GMaxRHIFeatureLevel);
|
||||
TArray<FString> Errors;
|
||||
if (Resource)
|
||||
{
|
||||
|
||||
@@ -119,7 +119,7 @@ public:
|
||||
|
||||
// Register a variable GUID for the new widget. UMG's compiler
|
||||
// ensures every widget in the tree is present in this map.
|
||||
BP->OnVariableAdded(NewWidget->GetFName());
|
||||
// BP->OnVariableAdded(NewWidget->GetFName());
|
||||
|
||||
WingOut::Stdout.Printf(TEXT("Created widget '%s' of type '%s'\n"), *Name, *Type);
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ UEdGraphNode* FWingGraphAction::Execute(const FVector2D &Location) const
|
||||
}
|
||||
else
|
||||
{
|
||||
return Action->PerformAction(Graph, nullptr, UE::Slate::CastToVector2f(Location), /*bSelectNewNode=*/false);
|
||||
return Action->PerformAction(Graph, nullptr, Location, /*bSelectNewNode=*/false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -221,10 +221,11 @@ void UWingManualSections::ImportantCommands()
|
||||
WingOut::Stdout.Print(TEXT(
|
||||
"\n IMPORTANT COMMANDS:"
|
||||
"\n"
|
||||
"\n Documentation_Manual: print manual sections"
|
||||
"\n Documentation_Commands: A concise list of all ue-wingman commands"
|
||||
"\n Documentation_Command: Detailed documentation for a single ue-wingman command"
|
||||
"\n Documentation_CreateAssets: Additional commands that create new assets"
|
||||
"\n Documentation_Manual: print the entire manual"
|
||||
"\n Documentation_Section: print a single section of the manual"
|
||||
"\n Documentation_Commands: print concise list of all ue-wingman commands"
|
||||
"\n Documentation_Command: detailed documentation for a single ue-wingman command"
|
||||
"\n Documentation_CreateAssets: list of commands that create new assets"
|
||||
"\n Blueprint_Dump: a summary of any blueprint"
|
||||
"\n Graph_Dump: a fairly detailed listing of any Graph"
|
||||
"\n Details_Dump: Dump the details panel for a given object"
|
||||
|
||||
@@ -223,15 +223,21 @@ FString UWingServer::PostCallHandler()
|
||||
return Result;
|
||||
}
|
||||
|
||||
void UWingServer::TryCallHandler(const TArray<FString>& Argv)
|
||||
void UWingServer::TryCallHandler(TArrayView<const FString> Argv)
|
||||
{
|
||||
if (Argv.Num() < 1)
|
||||
FString Command = "Documentation_Manual";
|
||||
if (Argv.Num() > 0)
|
||||
{
|
||||
WingOut::Stdout.Print(TEXT("Missing command\n"));
|
||||
return;
|
||||
Command = Argv[0];
|
||||
Argv = Argv.RightChop(1);
|
||||
}
|
||||
|
||||
FString Command = Argv[0];
|
||||
if ((Command.Equals(TEXT("--help"))) ||
|
||||
(Command.Equals(TEXT("-help"))) ||
|
||||
(Command.Equals(TEXT("help"))))
|
||||
{
|
||||
Command = "Documentation_Manual";
|
||||
}
|
||||
|
||||
// Find the handler for the specified command.
|
||||
FWingHandlerConfig* Found = FindHandler(Command);
|
||||
@@ -250,7 +256,7 @@ void UWingServer::TryCallHandler(const TArray<FString>& Argv)
|
||||
|
||||
// Populate the handler object with argv parameters.
|
||||
TArray<FWingProperty> Props = FWingProperty::GetVisible(Handler, true);
|
||||
if (!FWingProperty::PopulateFromArgv(Props, MakeArrayView(Argv).RightChop(1), WingOut::Stdout))
|
||||
if (!FWingProperty::PopulateFromArgv(Props, Argv, WingOut::Stdout))
|
||||
{
|
||||
UWingServer::SuggestHandlerHelp();
|
||||
return;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Materials/MaterialParameters.h"
|
||||
#include "MaterialTypes.h"
|
||||
#include "WingBasics.h"
|
||||
#include "WingParameterEditor.generated.h"
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ private:
|
||||
TArray<uint8> HandleRequest(const TArray<uint8>& RequestBytes);
|
||||
void PreCallHandler();
|
||||
FString PostCallHandler();
|
||||
void TryCallHandler(const TArray<FString>& Argv);
|
||||
void TryCallHandler(TArrayView<const FString> Argv);
|
||||
|
||||
// ----- TCP server -----
|
||||
FSocket* ListenSocket = nullptr;
|
||||
|
||||
@@ -18,9 +18,16 @@ struct FRadialMenuItem
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
UPROPERTY(BlueprintReadOnly)
|
||||
FVector2D Point1 = {0,0};
|
||||
|
||||
UPROPERTY(BlueprintReadOnly)
|
||||
FVector2D Point2 = {0,0};
|
||||
|
||||
UPROPERTY(BlueprintReadOnly)
|
||||
FVector2D Point3 = {0,0};
|
||||
|
||||
UPROPERTY(BlueprintReadOnly)
|
||||
bool RightSide = false;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user