|
|
@@ -23,61 +23,11 @@ namespace bs
|
|
|
|
|
|
void ScriptSerializedObject::initRuntimeData()
|
|
|
{
|
|
|
- metaData.scriptClass->addInternalCall("Internal_CreateComponent", (void*)&ScriptSerializedObject::internal_CreateComponent);
|
|
|
- metaData.scriptClass->addInternalCall("Internal_CreateResource", (void*)&ScriptSerializedObject::internal_CreateResource);
|
|
|
- metaData.scriptClass->addInternalCall("Internal_CreateGeneric", (void*)&ScriptSerializedObject::internal_CreateGeneric);
|
|
|
+ metaData.scriptClass->addInternalCall("Internal_Create", (void*)&ScriptSerializedObject::internal_Create);
|
|
|
metaData.scriptClass->addInternalCall("Internal_Deserialize", (void*)&ScriptSerializedObject::internal_Deserialize);
|
|
|
}
|
|
|
|
|
|
- MonoObject* ScriptSerializedObject::internal_CreateComponent(ScriptComponentBase* componentPtr)
|
|
|
- {
|
|
|
- HComponent component = componentPtr->getComponent();
|
|
|
- if (component.isDestroyed())
|
|
|
- return nullptr;
|
|
|
-
|
|
|
- SPtr<IReflectable> serializedObject;
|
|
|
- if (rtti_is_of_type<ManagedComponent>(component.get()))
|
|
|
- {
|
|
|
- ManagedComponent* managedComponent = static_cast<ManagedComponent*>(component.get());
|
|
|
- MonoObject* managedInstance = managedComponent->getManagedInstance();
|
|
|
-
|
|
|
- SPtr<ManagedSerializableObject> managedSerializedObject = ManagedSerializableObject::createFromExisting(managedInstance);
|
|
|
- if (managedSerializedObject == nullptr)
|
|
|
- return nullptr;
|
|
|
-
|
|
|
- managedSerializedObject->serialize();
|
|
|
- serializedObject = managedSerializedObject;
|
|
|
- }
|
|
|
- else
|
|
|
- serializedObject = SerializedObject::create(*component.get());
|
|
|
-
|
|
|
-
|
|
|
- MonoObject* instance = metaData.scriptClass->createInstance();
|
|
|
- new (bs_alloc<ScriptSerializedObject>()) ScriptSerializedObject(instance, serializedObject);
|
|
|
-
|
|
|
- return instance;
|
|
|
- }
|
|
|
-
|
|
|
- MonoObject* ScriptSerializedObject::internal_CreateResource(ScriptManagedResource* resourcePtr)
|
|
|
- {
|
|
|
- HManagedResource resource = resourcePtr->getHandle();
|
|
|
- if (!resource.isLoaded())
|
|
|
- return nullptr;
|
|
|
-
|
|
|
- MonoObject* managedInstance = resource->getManagedInstance();
|
|
|
- SPtr<ManagedSerializableObject> serializedObject = ManagedSerializableObject::createFromExisting(managedInstance);
|
|
|
- if (serializedObject == nullptr)
|
|
|
- return nullptr;
|
|
|
-
|
|
|
- serializedObject->serialize();
|
|
|
-
|
|
|
- MonoObject* instance = metaData.scriptClass->createInstance();
|
|
|
- new (bs_alloc<ScriptSerializedObject>()) ScriptSerializedObject(instance, serializedObject);
|
|
|
-
|
|
|
- return instance;
|
|
|
- }
|
|
|
-
|
|
|
- MonoObject* ScriptSerializedObject::internal_CreateGeneric(MonoObject* obj)
|
|
|
+ MonoObject* ScriptSerializedObject::internal_Create(MonoObject* obj)
|
|
|
{
|
|
|
if (obj == nullptr)
|
|
|
return nullptr;
|