SpawnActor stuff

This commit is contained in:
AeonLucid
2022-01-18 03:13:56 +01:00
parent 458bae0523
commit 16ab2aeb48
11 changed files with 262 additions and 9 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
namespace Prospect.Unreal.Core.Math;
public ref struct FTransform
public class FTransform
{
public FVector Location { get; set; }
public FRotator Rotation { get; set; }
@@ -0,0 +1,6 @@
namespace Prospect.Unreal.Core.Objects;
public struct FObjectInstancingGraph
{
}
@@ -13,6 +13,6 @@ public class GUClassArray
public static UClass StaticClass(Type type)
{
// TODO: Implement
return new UClass();
return new UClass(type);
}
}
@@ -4,5 +4,30 @@ namespace Prospect.Unreal.Core.Objects;
public class UClass : UStruct
{
public UClass(Type type)
{
Type = type;
}
public Type Type { get; }
public UObject GetDefaultObject<T>() where T : UObject
{
// TODO: Implement
var obj = (UObject) Activator.CreateInstance<T>();
obj.SetFlags(EObjectFlags.RF_Public | EObjectFlags.RF_ClassDefaultObject | EObjectFlags.RF_ArchetypeObject);
return obj;
}
public UObject GetDefaultObject(bool bCreateIfNeeded = true)
{
throw new NotImplementedException();
}
public UObject CreateDefaultObject()
{
throw new NotImplementedException();
}
}
+5 -1
View File
@@ -2,5 +2,9 @@
public class UObject : UObjectBaseUtility
{
public bool CheckDefaultSubobjects(bool bForceCheck = false)
{
// TODO: Implement
return true;
}
}
@@ -39,6 +39,12 @@ public class UObjectBaseUtility : UObjectBase
// TODO: GUObjectArray
return false;
}
public bool IsPendingKill()
{
// TODO: GUObjectArray
return false;
}
/*
* Outer & Package
@@ -0,0 +1,34 @@
using Prospect.Unreal.Core.Names;
using Prospect.Unreal.Exceptions;
namespace Prospect.Unreal.Core.Objects;
public class UObjectGlobals
{
public static T? NewObject<T>(UObject outer,
UClass clazz,
FName? name = null,
EObjectFlags flags = EObjectFlags.RF_NoFlags,
UObject? template = null,
bool bCopyTransientsFromClassDefaults = false,
FObjectInstancingGraph? inInstanceGraph = null,
UPackage? externalPackage = null)
{
if (name == null)
{
name = EName.None;
}
// NewObject
// StaticConstructObject_Internal
// StaticAllocateObject
var obj = Activator.CreateInstance(clazz.Type);
if (obj == null)
{
throw new UnrealException("Failed to create object.");
}
return (T?) obj;
}
}