Add method to retrieve player Pawn from actor
This commit is contained in:
@@ -30,6 +30,17 @@ SDK::APawn* GetPawnFromWorld(SDK::UWorld* world) {
|
||||
|
||||
return pawn;
|
||||
}
|
||||
|
||||
SDK::APawn* GetPawnFromObject(SDK::UObject* object) {
|
||||
auto* actor = static_cast<SDK::AActor*> (object);
|
||||
if (!actor || !actor->Class || !actor->IsA(SDK::APawn::StaticClass())) return nullptr;
|
||||
auto* pawn = static_cast<SDK::APawn*>(actor);
|
||||
if (!pawn) return nullptr;
|
||||
auto* controller = pawn->Controller;
|
||||
if (!controller || !controller->IsA(SDK::APlayerController::StaticClass())) return nullptr;
|
||||
|
||||
return pawn;
|
||||
}
|
||||
// Console
|
||||
void ReactivateDevConsole(std::shared_ptr<spdlog::logger> logger) {
|
||||
g_logger = logger;
|
||||
|
||||
@@ -9,6 +9,7 @@ namespace SDK {
|
||||
class UObject;
|
||||
class UWorld;
|
||||
class UWidget;
|
||||
class AActor;
|
||||
class APawn;
|
||||
class UGameplayStatics;
|
||||
class UConsole;
|
||||
@@ -35,6 +36,13 @@ void GetResolution(int& outWidth, int& outHeight, float& outAspectRatio);
|
||||
*/
|
||||
SDK::APawn* GetPawnFromWorld(SDK::UWorld* world = nullptr);
|
||||
|
||||
/**
|
||||
* @brief Gets the current player Pawn from an actor object.
|
||||
* @param object pointer (must be an UObject at least).
|
||||
* @return Player Pawn or nullptr.
|
||||
*/
|
||||
SDK::APawn* GetPawnFromObject(SDK::UObject* object);
|
||||
|
||||
/**
|
||||
* @brief Reactivate the development console.
|
||||
* @param logger spdlog.
|
||||
|
||||
Reference in New Issue
Block a user