Simplified serialization/deserialization of EngineObjects + added support for Assets (actually any EngineObject!)

This commit is contained in:
Simon Lübeß
2025-03-01 00:48:31 +01:00
parent b5088329f5
commit 10e8b3c282
6 changed files with 41 additions and 42 deletions
+2 -6
View File
@@ -316,13 +316,9 @@ public class SerializedObject
public void SerializeClass(string fieldName, object? fieldValue, Type fieldType)
{
if (typeof(Entity).IsAssignableFrom(fieldType))
if (fieldType.IsSubclassOf(typeof(EngineObject)))
{
AddField(fieldName, SerializationType.EntityReference, ((Entity?)fieldValue)?.UUID ?? UUID.Zero, fieldValue?.GetType().FullName);
}
else if (fieldType.IsSubclassOf(typeof(Component)))
{
AddField(fieldName, SerializationType.ComponentReference, ((Component?)fieldValue)?.UUID ?? UUID.Zero, fieldValue?.GetType().FullName);
AddField(fieldName, SerializationType.EngineObjectReference, ((EngineObject?)fieldValue)?.UUID ?? UUID.Zero, fieldValue?.GetType().FullName);
}
else
{