mirror of
https://github.com/Milxnor/Project-Reboot-3.0.git
synced 2026-01-13 02:42:22 +01:00
49 lines
1.2 KiB
C++
49 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "EngineTypes.h"
|
|
#include "Transform.h"
|
|
#include "Object.h"
|
|
|
|
struct FNetworkNotify
|
|
{
|
|
|
|
};
|
|
|
|
struct FActorSpawnParameters
|
|
{
|
|
FName Name;
|
|
UObject* Template;
|
|
UObject* Owner;
|
|
UObject** Instigator;
|
|
UObject* OverrideLevel;
|
|
ESpawnActorCollisionHandlingMethod SpawnCollisionHandlingOverride;
|
|
uint16 bRemoteOwned : 1;
|
|
uint16 bNoFail : 1;
|
|
uint16 bDeferConstruction : 1;
|
|
uint16 bAllowDuringConstructionScript : 1;
|
|
#if WITH_EDITOR
|
|
uint16 bTemporaryEditorActor : 1;
|
|
#endif
|
|
EObjectFlags ObjectFlags;
|
|
};
|
|
|
|
class UWorld : public UObject, public FNetworkNotify
|
|
{
|
|
public:
|
|
static inline UObject* (*SpawnActorOriginal)(UWorld* World, UClass* Class, FTransform const* UserTransformPtr, const FActorSpawnParameters& SpawnParameters);
|
|
|
|
template <typename T = AActor>
|
|
T* GetGameMode()
|
|
{
|
|
static auto AuthorityGameModeOffset = GetOffset("AuthorityGameMode");
|
|
return this->Get<T*>(AuthorityGameModeOffset);
|
|
}
|
|
|
|
template <typename ActorType>
|
|
ActorType* SpawnActor(UClass* Class, FTransform UserTransformPtr = FTransform(), const FActorSpawnParameters& SpawnParameters = FActorSpawnParameters())
|
|
{
|
|
return (ActorType*)SpawnActorOriginal(this, Class, &UserTransformPtr, SpawnParameters);
|
|
}
|
|
|
|
void Listen();
|
|
}; |