2
0

BsScriptSerializableObjectInfo.cpp 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. #include "BsScriptSerializableObjectInfo.h"
  2. #include "BsScriptSerializableObjectInfoRTTI.h"
  3. #include "BsMonoUtil.h"
  4. #include "BsMonoField.h"
  5. #include "BsMonoClass.h"
  6. #include "BsMonoManager.h"
  7. #include "BsScriptResourceManager.h"
  8. #include "BsScriptGameObjectManager.h"
  9. #include "BsScriptTexture2D.h"
  10. #include "BsScriptSpriteTexture.h"
  11. #include "BsScriptComponent.h"
  12. #include "BsScriptSceneObject.h"
  13. using namespace CamelotFramework;
  14. namespace BansheeEngine
  15. {
  16. RTTITypeBase* ScriptSerializableAssemblyInfo::getRTTIStatic()
  17. {
  18. return ScriptSerializableAssemblyInfoRTTI::instance();
  19. }
  20. RTTITypeBase* ScriptSerializableAssemblyInfo::getRTTI() const
  21. {
  22. return ScriptSerializableAssemblyInfo::getRTTIStatic();
  23. }
  24. ScriptSerializableObjectInfo::ScriptSerializableObjectInfo()
  25. :mMonoClass(nullptr), mTypeId(0)
  26. {
  27. }
  28. RTTITypeBase* ScriptSerializableObjectInfo::getRTTIStatic()
  29. {
  30. return ScriptSerializableObjectInfoRTTI::instance();
  31. }
  32. RTTITypeBase* ScriptSerializableObjectInfo::getRTTI() const
  33. {
  34. return ScriptSerializableObjectInfo::getRTTIStatic();
  35. }
  36. ScriptSerializableFieldInfo::ScriptSerializableFieldInfo()
  37. :mMonoField(nullptr), mFlags((ScriptFieldFlags)0), mFieldId(0)
  38. {
  39. }
  40. RTTITypeBase* ScriptSerializableFieldInfo::getRTTIStatic()
  41. {
  42. return ScriptSerializableFieldInfoRTTI::instance();
  43. }
  44. RTTITypeBase* ScriptSerializableFieldInfo::getRTTI() const
  45. {
  46. return ScriptSerializableFieldInfo::getRTTIStatic();
  47. }
  48. RTTITypeBase* ScriptSerializableTypeInfo::getRTTIStatic()
  49. {
  50. return ScriptSerializableTypeInfoRTTI::instance();
  51. }
  52. RTTITypeBase* ScriptSerializableTypeInfo::getRTTI() const
  53. {
  54. return ScriptSerializableTypeInfo::getRTTIStatic();
  55. }
  56. bool ScriptSerializableTypeInfoPrimitive::matches(const ScriptSerializableTypeInfoPtr& typeInfo) const
  57. {
  58. if(!rtti_is_of_type<ScriptSerializableTypeInfoPrimitive>(typeInfo))
  59. return false;
  60. auto primTypeInfo = std::static_pointer_cast<ScriptSerializableTypeInfoPrimitive>(typeInfo);
  61. return primTypeInfo->mType == mType;
  62. }
  63. RTTITypeBase* ScriptSerializableTypeInfoPrimitive::getRTTIStatic()
  64. {
  65. return ScriptSerializableTypeInfoPrimitiveRTTI::instance();
  66. }
  67. RTTITypeBase* ScriptSerializableTypeInfoPrimitive::getRTTI() const
  68. {
  69. return ScriptSerializableTypeInfoPrimitive::getRTTIStatic();
  70. }
  71. bool ScriptSerializableTypeInfoObject::matches(const ScriptSerializableTypeInfoPtr& typeInfo) const
  72. {
  73. if(!rtti_is_of_type<ScriptSerializableTypeInfoObject>(typeInfo))
  74. return false;
  75. auto objTypeInfo = std::static_pointer_cast<ScriptSerializableTypeInfoObject>(typeInfo);
  76. return objTypeInfo->mTypeNamespace == mTypeNamespace && objTypeInfo->mTypeName == mTypeName;
  77. }
  78. RTTITypeBase* ScriptSerializableTypeInfoObject::getRTTIStatic()
  79. {
  80. return ScriptSerializableTypeInfoObjectRTTI::instance();
  81. }
  82. RTTITypeBase* ScriptSerializableTypeInfoObject::getRTTI() const
  83. {
  84. return ScriptSerializableTypeInfoObject::getRTTIStatic();
  85. }
  86. bool ScriptSerializableTypeInfoArray::matches(const ScriptSerializableTypeInfoPtr& typeInfo) const
  87. {
  88. if(!rtti_is_of_type<ScriptSerializableTypeInfoArray>(typeInfo))
  89. return false;
  90. auto arrayTypeInfo = std::static_pointer_cast<ScriptSerializableTypeInfoArray>(typeInfo);
  91. return arrayTypeInfo->mRank == mRank && arrayTypeInfo->mElementType->matches(mElementType);
  92. }
  93. RTTITypeBase* ScriptSerializableTypeInfoArray::getRTTIStatic()
  94. {
  95. return ScriptSerializableTypeInfoArrayRTTI::instance();
  96. }
  97. RTTITypeBase* ScriptSerializableTypeInfoArray::getRTTI() const
  98. {
  99. return ScriptSerializableTypeInfoArray::getRTTIStatic();
  100. }
  101. }