API em C++
Outros plugins e módulos de projeto podem chamar o organizador diretamente em vez de passar pela UI do editor. Toda a superfície pública vive em um único header, e é estável ao longo da série 1.x.
Dependência
Adicione UeaboCore a PublicDependencyModuleNames (ou PrivateDependencyModuleNames) do seu
módulo, no arquivo Build.cs.
Header
#include "IUeaboOrganizer.h"
Obtendo o módulo
IUeaboOrganizer& Organizer = IUeaboOrganizer::Get();
Opções
FUeaboOrganizeOptions Options = FUeaboOrganizeOptions::FromSettings();
FromSettings() constrói uma struct de opções a partir das
Configurações salvas pelo usuário, então uma organização disparada por um plugin
se comporta como o atalho do editor. Você também pode construir e popular FUeaboOrganizeOptions
manualmente para sobrescrever qualquer campo.
Organizando
FUeaboOrganizeResult OrganizeGraph(UEdGraph* Graph, const FUeaboOrganizeOptions& Options);
FUeaboOrganizeResult OrganizeBlueprint(UBlueprint* Blueprint, const FUeaboOrganizeOptions& Options);
OrganizeGraph organiza um único grafo; OrganizeBlueprint organiza todos os grafos de um
Blueprint, além dos membros. Ambos rodam como uma única transação desfazível, igual aos atalhos do
editor.
Resultado
FUeaboOrganizeResult relata o que aconteceu:
| Campo | Tipo | Significado |
|---|---|---|
bSuccess | bool | Se a passagem foi concluída. |
Error | FString | Preenchido quando bSuccess é false. |
Before / After | struct | Contagens de Nodes, Crossings, Comments, antes e depois da passagem. |
OrphansRemoved | int32 | Nós órfãos removidos. |
RerouteRemoved | int32 | Reroutes inúteis removidos. |
CastsMerged | int32 | Casts duplicados mesclados. |
VariablesRenamed | int32 | Variáveis renomeadas por regras de prefixo bool/PascalCase. |
Suggestions | TArray<FString> | Sugestões legíveis (candidatas a extração de função, branches profundos). |
Estabilidade
Esta API é estável na série 1.x: assinaturas em IUeaboOrganizer.h não quebram entre releases
1.x. Ela permanece em um único header para facilitar o acompanhamento.