Another registration overhaul
This commit is contained in:
@@ -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; });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user