BsScriptSerializableProperty.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536
  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(ENGINE_ASSEMBLY, "BansheeEngine", "SerializableProperty")
  10. static ScriptSerializableProperty* create(const ManagedSerializableTypeInfoPtr& typeInfo);
  11. ManagedSerializableTypeInfoPtr getTypeInfo() const { return mTypeInfo; }
  12. ~ScriptSerializableProperty() {}
  13. private:
  14. static MonoObject* internal_createObject(ScriptSerializableProperty* nativeInstance);
  15. static MonoObject* internal_createArray(ScriptSerializableProperty* nativeInstance);
  16. static MonoObject* internal_createList(ScriptSerializableProperty* nativeInstance);
  17. static MonoObject* internal_createDictionary(ScriptSerializableProperty* nativeInstance);
  18. static MonoObject* internal_createManagedObjectInstance(ScriptSerializableProperty* nativeInstance);
  19. static MonoObject* internal_createManagedArrayInstance(ScriptSerializableProperty* nativeInstance, MonoArray* sizes);
  20. static MonoObject* internal_createManagedListInstance(ScriptSerializableProperty* nativeInstance, int size);
  21. static MonoObject* internal_createManagedDictionaryInstance(ScriptSerializableProperty* nativeInstance);
  22. static MonoObject* internal_cloneManagedInstance(ScriptSerializableProperty* nativeInstance, MonoObject* original);
  23. ScriptSerializableProperty(MonoObject* instance, const ManagedSerializableTypeInfoPtr& typeInfo);
  24. ManagedSerializableTypeInfoPtr mTypeInfo;
  25. };
  26. }