BsScriptSerializedSceneObject.generated.cpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //************** Copyright (c) 2016-2019 Marko Pintera ([email protected]). All rights reserved. *******************//
  3. #include "BsScriptSerializedSceneObject.generated.h"
  4. #include "BsMonoMethod.h"
  5. #include "BsMonoClass.h"
  6. #include "BsMonoUtil.h"
  7. #include "../../EditorCore/Scene/BsSerializedSceneObject.h"
  8. #include "BsScriptGameObjectManager.h"
  9. #include "Wrappers/BsScriptSceneObject.h"
  10. namespace bs
  11. {
  12. ScriptSerializedSceneObject::ScriptSerializedSceneObject(MonoObject* managedInstance, const SPtr<SerializedSceneObject>& value)
  13. :ScriptObject(managedInstance), mInternal(value)
  14. {
  15. }
  16. void ScriptSerializedSceneObject::initRuntimeData()
  17. {
  18. metaData.scriptClass->addInternalCall("Internal_SerializedSceneObject", (void*)&ScriptSerializedSceneObject::Internal_SerializedSceneObject);
  19. metaData.scriptClass->addInternalCall("Internal_restore", (void*)&ScriptSerializedSceneObject::Internal_restore);
  20. }
  21. MonoObject* ScriptSerializedSceneObject::create(const SPtr<SerializedSceneObject>& value)
  22. {
  23. if(value == nullptr) return nullptr;
  24. bool dummy = false;
  25. void* ctorParams[1] = { &dummy };
  26. MonoObject* managedInstance = metaData.scriptClass->createInstance("bool", ctorParams);
  27. new (bs_alloc<ScriptSerializedSceneObject>()) ScriptSerializedSceneObject(managedInstance, value);
  28. return managedInstance;
  29. }
  30. void ScriptSerializedSceneObject::Internal_SerializedSceneObject(MonoObject* managedInstance, MonoObject* sceneObject, bool hierarchy)
  31. {
  32. GameObjectHandle<SceneObject> tmpsceneObject;
  33. ScriptSceneObject* scriptsceneObject;
  34. scriptsceneObject = ScriptSceneObject::toNative(sceneObject);
  35. if(scriptsceneObject != nullptr)
  36. tmpsceneObject = scriptsceneObject->getHandle();
  37. SPtr<SerializedSceneObject> instance = bs_shared_ptr_new<SerializedSceneObject>(tmpsceneObject, hierarchy);
  38. new (bs_alloc<ScriptSerializedSceneObject>())ScriptSerializedSceneObject(managedInstance, instance);
  39. }
  40. void ScriptSerializedSceneObject::Internal_restore(ScriptSerializedSceneObject* thisPtr)
  41. {
  42. thisPtr->getInternal()->restore();
  43. }
  44. }