NamespaceRegistry.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. using System.Collections.Generic;
  2. namespace SharpieBinder
  3. {
  4. static class NamespaceRegistry
  5. {
  6. static readonly Dictionary<string, string> TypeNamespaces = new Dictionary<string, string>
  7. {
  8. // The Urho.UI ones
  9. { "BorderImage", "Urho.Gui" },
  10. { "Button", "Urho.Gui" },
  11. { "CheckBox", "Urho.Gui" },
  12. { "Cursor", "Urho.Gui" },
  13. { "DropDownList", "Urho.Gui" },
  14. { "FileSelector", "Urho.Gui" },
  15. { "Font", "Urho.Gui" },
  16. { "FontFace", "Urho.Gui" },
  17. { "FontFaceBitmap", "Urho.Gui" },
  18. { "FontFaceFreeType", "Urho.Gui" },
  19. { "LineEdit", "Urho.Gui" },
  20. { "ListView", "Urho.Gui" },
  21. { "Menu", "Urho.Gui" },
  22. { "MessageBox", "Urho.Gui" },
  23. { "ScrollBar", "Urho.Gui" },
  24. { "ScrollView", "Urho.Gui" },
  25. { "Slider", "Urho.Gui" },
  26. { "Sprite", "Urho.Gui" },
  27. { "Text", "Urho.Gui" },
  28. { "Text3D", "Urho.Gui" },
  29. { "ToolTip", "Urho.Gui" },
  30. { "UI", "Urho.Gui" },
  31. { "UIBatch", "Urho.Gui" },
  32. { "UIElement", "Urho.Gui" },
  33. { "View3D", "Urho.Gui" },
  34. { "Window", "Urho.Gui" },
  35. // Enums
  36. { "CursorShape", "Urho.Gui" },
  37. //{ "FONT_TYPE", "Urho.Gui" },
  38. { "HighlightMode", "Urho.Gui" },
  39. { "TextEffect", "Urho.Gui" },
  40. { "HorizontalAlignment", "Urho.Gui" },
  41. { "VerticalAlignment", "Urho.Gui" },
  42. { "Corner", "Urho.Gui" },
  43. { "Orientation", "Urho.Gui" },
  44. { "FocusMode", "Urho.Gui" },
  45. { "LayoutMode", "Urho.Gui" },
  46. { "TraversalMode", "Urho.Gui" },
  47. { "WindowDragMode", "Urho.Gui" },
  48. // Audio
  49. { "Audio", "Urho.Audio" },
  50. { "BufferedSoundStream", "Urho.Audio" },
  51. { "OggVorbisSoundStream", "Urho.Audio" },
  52. { "Sound", "Urho.Audio" },
  53. { "SoundListener", "Urho.Audio" },
  54. { "SoundSource", "Urho.Audio" },
  55. { "SoundSource3D", "Urho.Audio" },
  56. { "SoundStream", "Urho.Audio" },
  57. // Physics
  58. { "CollisionShape", "Urho.Physics" },
  59. { "Constraint", "Urho.Physics" },
  60. { "PhysicsWorld", "Urho.Physics" },
  61. { "RigidBody", "Urho.Physics" },
  62. // enums
  63. { "ShapeType", "Urho.Physics" },
  64. { "ConstraintType", "Urho.Physics" },
  65. { "CollisionEventMode", "Urho.Physics" },
  66. // Network
  67. { "Connection", "Urho.Network" },
  68. { "HttpRequest", "Urho.Network" },
  69. { "Network", "Urho.Network" },
  70. { "NetworkPriority", "Urho.Network" },
  71. // enums
  72. { "ObserverPositionSendMode", "Urho.Network" },
  73. { "HttpRequestState", "Urho.Network" },
  74. // Navigation
  75. { "CrowdAgent", "Urho.Navigation" },
  76. { "CrowdManager", "Urho.Navigation" },
  77. { "DynamicNavigationMesh", "Urho.Navigation" },
  78. { "NavArea", "Urho.Navigation" },
  79. { "NavBuildData", "Urho.Navigation" },
  80. { "Navigable", "Urho.Navigation" },
  81. { "NavigationMesh", "Urho.Navigation" },
  82. { "Obstacle", "Urho.Navigation" },
  83. { "OffMeshConnection", "Urho.Navigation" },
  84. // enums
  85. { "CrowdAgentRequestedTarget", "Urho.Navigation" },
  86. { "CrowdAgentTargetState", "Urho.Navigation" },
  87. { "CrowdAgentState", "Urho.Navigation" },
  88. { "NavigationQuality", "Urho.Navigation" },
  89. { "NavigationPushiness", "Urho.Navigation" },
  90. { "NavmeshPartitionType", "Urho.Navigation" },
  91. // IO
  92. { "Compression", "Urho.IO" },
  93. { "Deserializer", "Urho.IO" },
  94. { "File", "Urho.IO" },
  95. { "FileSystem", "Urho.IO" },
  96. { "FileWatcher", "Urho.IO" },
  97. { "Log", "Urho.IO" },
  98. { "MemoryBuffer", "Urho.IO" },
  99. { "PackageFile", "Urho.IO" },
  100. { "Serializer", "Urho.IO" },
  101. { "VectorBuffer", "Urho.IO" },
  102. // enums
  103. { "FileMode", "Urho.IO" },
  104. // Resources
  105. { "BackgroundLoader", "Urho.Resources" },
  106. { "Decompress", "Urho.Resources" },
  107. { "Image", "Urho.Resources" },
  108. { "JsonFile", "Urho.Resources" },
  109. { "JsonValue", "Urho.Resources" },
  110. { "Localization", "Urho.Resources" },
  111. { "PListFile", "Urho.Resources" },
  112. { "Resource", "Urho.Resources" },
  113. { "ResourceCache", "Urho.Resources" },
  114. { "XmlElement", "Urho.Resources" },
  115. { "XmlFile", "Urho.Resources" },
  116. // enum
  117. { "CompressedFormat", "Urho.Resources" },
  118. { "JsonValueType", "Urho.Resources" },
  119. { "JsonNumberType", "Urho.Resources" },
  120. { "PListValueType", "Urho.Resources" },
  121. { "AsyncLoadState", "Urho.Resources" },
  122. { "ResourceRequest", "Urho.Resources" },
  123. // Urho2D
  124. { "AnimatedSprite2D", "Urho.Urho2D" },
  125. { "AnimationSet2D", "Urho.Urho2D" },
  126. { "CollisionBox2D", "Urho.Urho2D" },
  127. { "CollisionChain2D", "Urho.Urho2D" },
  128. { "CollisionCircle2D", "Urho.Urho2D" },
  129. { "CollisionEdge2D", "Urho.Urho2D" },
  130. { "CollisionPolygon2D", "Urho.Urho2D" },
  131. { "CollisionShape2D", "Urho.Urho2D" },
  132. { "Constraint2D", "Urho.Urho2D" },
  133. { "ConstraintDistance2D", "Urho.Urho2D" },
  134. { "ConstraintFriction2D", "Urho.Urho2D" },
  135. { "ConstraintGear2D", "Urho.Urho2D" },
  136. { "ConstraintMotor2D", "Urho.Urho2D" },
  137. { "ConstraintMouse2D", "Urho.Urho2D" },
  138. { "ConstraintPrismatic2D", "Urho.Urho2D" },
  139. { "ConstraintPulley2D", "Urho.Urho2D" },
  140. { "ConstraintRevolute2D", "Urho.Urho2D" },
  141. { "ConstraintRope2D", "Urho.Urho2D" },
  142. { "ConstraintWeld2D", "Urho.Urho2D" },
  143. { "ConstraintWheel2D", "Urho.Urho2D" },
  144. { "Drawable2D", "Urho.Urho2D" },
  145. { "ParticleEffect2D", "Urho.Urho2D" },
  146. { "ParticleEmitter2D", "Urho.Urho2D" },
  147. { "PhysicsWorld2D", "Urho.Urho2D" },
  148. { "Renderer2D", "Urho.Urho2D" },
  149. { "RigidBody2D", "Urho.Urho2D" },
  150. { "Sprite2D", "Urho.Urho2D" },
  151. { "SpriteSheet2D", "Urho.Urho2D" },
  152. { "SpriterData2D", "Urho.Urho2D" },
  153. { "SpriterInstance2D", "Urho.Urho2D" },
  154. { "StaticSprite2D", "Urho.Urho2D" },
  155. { "TileMap2D", "Urho.Urho2D" },
  156. { "TileMapDefs2D", "Urho.Urho2D" },
  157. { "TileMapLayer2D", "Urho.Urho2D" },
  158. { "TmxFile2D", "Urho.Urho2D" },
  159. { "Urho2D", "Urho.Urho2D" },
  160. { "PropertySet2D", "Urho.Urho2D" },
  161. { "Texture2D", "Urho.Urho2D" },
  162. { "Tile2D", "Urho.Urho2D" },
  163. { "TileMapObject2D", "Urho.Urho2D" },
  164. { "TmxImageLayer2D", "Urho.Urho2D" },
  165. { "TmxLayer2D", "Urho.Urho2D" },
  166. { "TmxObjectGroup2D", "Urho.Urho2D" },
  167. { "TmxTileLayer2D", "Urho.Urho2D" },
  168. { "TileMapInfo2D", "Urho.Urho2D" },
  169. // enum
  170. { "LoopMode2D", "Urho.Urho2D" },
  171. { "EmitterType2D", "Urho.Urho2D" },
  172. { "BodyType2D", "Urho.Urho2D" },
  173. { "ObjectType", "Urho.Urho2D" },
  174. { "CurveType", "Urho.Urho2D" },
  175. { "LoopMode", "Urho.Urho2D" },
  176. { "Orientation2D", "Urho.Urho2D" },
  177. { "TileMapLayerType2D", "Urho.Urho2D" },
  178. { "TileMapObjectType2D", "Urho.Urho2D" },
  179. };
  180. public static string DetermineNamespace(string typename)
  181. {
  182. string ns;
  183. if (TypeNamespaces.TryGetValue(typename, out ns))
  184. return ns;
  185. return "Urho";
  186. }
  187. public static string RemapTypeToNamespace(string typename)
  188. {
  189. return DetermineNamespace(typename) + "." + typename;
  190. }
  191. }
  192. }