BsScriptSerializableProperty.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334
  1. #pragma once
  2. #include "BsScriptEnginePrerequisites.h"
  3. #include "BsScriptObject.h"
  4. namespace BansheeEngine
  5. {
  6. class BS_SCR_BE_EXPORT ScriptSerializableProperty : public ScriptObject<ScriptSerializableProperty>
  7. {
  8. public:
  9. SCRIPT_OBJ(BansheeEngineAssemblyName, "BansheeEngine", "SerializableProperty")
  10. static ScriptSerializableProperty* create(const ManagedSerializableTypeInfoPtr& typeInfo);
  11. ~ScriptSerializableProperty() {}
  12. private:
  13. static MonoObject* internal_createObject(ScriptSerializableProperty* nativeInstance, MonoObject* object);
  14. static MonoObject* internal_createArray(ScriptSerializableProperty* nativeInstance, MonoObject* object);
  15. static MonoObject* internal_createList(ScriptSerializableProperty* nativeInstance, MonoObject* object);
  16. static MonoObject* internal_createDictionary(ScriptSerializableProperty* nativeInstance, MonoObject* object);
  17. static MonoObject* internal_createManagedObjectInstance(ScriptSerializableProperty* nativeInstance);
  18. static MonoObject* internal_createManagedArrayInstance(ScriptSerializableProperty* nativeInstance, MonoArray* sizes);
  19. static MonoObject* internal_createManagedListInstance(ScriptSerializableProperty* nativeInstance, int size);
  20. static MonoObject* internal_createManagedDictionaryInstance(ScriptSerializableProperty* nativeInstance);
  21. static MonoObject* internal_cloneManagedInstance(ScriptSerializableProperty* nativeInstance, MonoObject* original);
  22. ScriptSerializableProperty(MonoObject* instance, const ManagedSerializableTypeInfoPtr& typeInfo);
  23. ManagedSerializableTypeInfoPtr mTypeInfo;
  24. };
  25. }