MenuItems.cs 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using BansheeEngine;
  7. namespace BansheeEditor
  8. {
  9. /// <summary>
  10. /// Contains various menu item callbacks for the main editor menu bar.
  11. /// </summary>
  12. static class MenuItems
  13. {
  14. /// <summary>
  15. /// Adds a camera component to the currently selected scene object.
  16. /// </summary>
  17. [MenuItem("Components/Camera", 7050)]
  18. private static void AddCamera()
  19. {
  20. SceneObject so = Selection.SceneObject;
  21. if (so == null)
  22. return;
  23. UndoRedo.RecordSO(so, "Added a Camera component");
  24. so.AddComponent<Camera>();
  25. }
  26. /// <summary>
  27. /// Adds a renderable component to the currently selected scene object.
  28. /// </summary>
  29. [MenuItem("Components/Renderable", 7049)]
  30. private static void AddRenderable()
  31. {
  32. SceneObject so = Selection.SceneObject;
  33. if (so == null)
  34. return;
  35. UndoRedo.RecordSO(so, "Added a Renderable component");
  36. so.AddComponent<Renderable>();
  37. }
  38. /// <summary>
  39. /// Adds a point light component to the currently selected scene object.
  40. /// </summary>
  41. [MenuItem("Components/Point light", 7048)]
  42. private static void AddPointLight()
  43. {
  44. SceneObject so = Selection.SceneObject;
  45. if (so == null)
  46. return;
  47. UndoRedo.RecordSO(so, "Added a Light component");
  48. Light light = so.AddComponent<Light>();
  49. light.Type = LightType.Point;
  50. }
  51. /// <summary>
  52. /// Adds a spot light component to the currently selected scene object.
  53. /// </summary>
  54. [MenuItem("Components/Spot light", 7047)]
  55. private static void AddSpotLight()
  56. {
  57. SceneObject so = Selection.SceneObject;
  58. if (so == null)
  59. return;
  60. UndoRedo.RecordSO(so, "Added a Light component");
  61. Light light = so.AddComponent<Light>();
  62. light.Type = LightType.Spot;
  63. }
  64. /// <summary>
  65. /// Adds a directional light component to the currently selected scene object.
  66. /// </summary>
  67. [MenuItem("Components/Directional light", 7046)]
  68. private static void AddDirectionalLight()
  69. {
  70. SceneObject so = Selection.SceneObject;
  71. if (so == null)
  72. return;
  73. UndoRedo.RecordSO(so, "Added a Light component");
  74. Light light = so.AddComponent<Light>();
  75. light.Type = LightType.Directional;
  76. }
  77. /// <summary>
  78. /// Creates a new scene object with a camera component.
  79. /// </summary>
  80. [MenuItem("Scene Objects/Camera", 8050)]
  81. [ToolbarItem("Camera", ToolbarIcon.NewCamera, "", 1600, true)]
  82. private static void AddCameraSO()
  83. {
  84. SceneObject so = UndoRedo.CreateSO("Camera", "Created a Camera");
  85. so.AddComponent<Camera>();
  86. Selection.SceneObject = so;
  87. }
  88. /// <summary>
  89. /// Creates a new scene object with a renderable component.
  90. /// </summary>
  91. [MenuItem("Scene Objects/Renderable", 8049)]
  92. [ToolbarItem("Renderable", ToolbarIcon.NewRenderable, "", 1599)]
  93. private static void AddRenderableSO()
  94. {
  95. SceneObject so = UndoRedo.CreateSO("Renderable", "Created a Renderable");
  96. so.AddComponent<Renderable>();
  97. Selection.SceneObject = so;
  98. }
  99. /// <summary>
  100. /// Creates a new scene object with a point light component.
  101. /// </summary>
  102. [MenuItem("Scene Objects/Point light", 8048)]
  103. [ToolbarItem("Point light", ToolbarIcon.NewPointLight, "", 1598)]
  104. private static void AddPointLightSO()
  105. {
  106. SceneObject so = UndoRedo.CreateSO("Point light", "Created a Light");
  107. Light light = so.AddComponent<Light>();
  108. light.Type = LightType.Point;
  109. Selection.SceneObject = so;
  110. }
  111. /// <summary>
  112. /// Creates a new scene object with a spot light component.
  113. /// </summary>
  114. [MenuItem("Scene Objects/Spot light", 8047)]
  115. [ToolbarItem("Spot light", ToolbarIcon.NewSpotLight, "", 1597)]
  116. private static void AddSpotLightSO()
  117. {
  118. SceneObject so = UndoRedo.CreateSO("Spot light", "Created a Light");
  119. Light light = so.AddComponent<Light>();
  120. light.Type = LightType.Spot;
  121. Selection.SceneObject = so;
  122. }
  123. /// <summary>
  124. /// Creates a new scene object with a directional light component.
  125. /// </summary>
  126. [MenuItem("Scene Objects/Directional light", 8046)]
  127. [ToolbarItem("Directional light", ToolbarIcon.NewDirLight, "", 1596)]
  128. private static void AddDirectionalLightSO()
  129. {
  130. SceneObject so = UndoRedo.CreateSO("Directional light", "Created a Light");
  131. Light light = so.AddComponent<Light>();
  132. light.Type = LightType.Directional;
  133. Selection.SceneObject = so;
  134. }
  135. /// <summary>
  136. /// Creates a new scene object with a box primitive.
  137. /// </summary>
  138. [MenuItem("Scene Objects/3D primitives/Box", 8100)]
  139. [ToolbarItem("Cube", ToolbarIcon.NewCube, "", 1700, true)]
  140. private static void Add3DBox()
  141. {
  142. SceneObject so = UndoRedo.CreateSO("Box", "Created a box");
  143. Renderable renderable = so.AddComponent<Renderable>();
  144. renderable.Mesh = Builtin.Box;
  145. Selection.SceneObject = so;
  146. }
  147. /// <summary>
  148. /// Creates a new scene object with a sphere primitive.
  149. /// </summary>
  150. [MenuItem("Scene Objects/3D primitives/Sphere", 8099)]
  151. [ToolbarItem("Sphere", ToolbarIcon.NewSphere, "", 1699)]
  152. private static void Add3DSphere()
  153. {
  154. SceneObject so = UndoRedo.CreateSO("Sphere", "Created a sphere");
  155. Renderable renderable = so.AddComponent<Renderable>();
  156. renderable.Mesh = Builtin.Sphere;
  157. Selection.SceneObject = so;
  158. }
  159. /// <summary>
  160. /// Creates a new scene object with a cone primitive.
  161. /// </summary>
  162. [MenuItem("Scene Objects/3D primitives/Cone", 8098)]
  163. [ToolbarItem("Cone", ToolbarIcon.NewCone, "", 1698)]
  164. private static void Add3DCone()
  165. {
  166. SceneObject so = UndoRedo.CreateSO("Cone", "Created a cone");
  167. Renderable renderable = so.AddComponent<Renderable>();
  168. renderable.Mesh = Builtin.Cone;
  169. Selection.SceneObject = so;
  170. }
  171. /// <summary>
  172. /// Creates a new scene object with a quad primitive.
  173. /// </summary>
  174. [MenuItem("Scene Objects/3D primitives/Quad", 8097)]
  175. [ToolbarItem("Quad", ToolbarIcon.NewQuad, "", 1697)]
  176. private static void Add3DQuad()
  177. {
  178. SceneObject so = UndoRedo.CreateSO("Quad", "Created a quad");
  179. Renderable renderable = so.AddComponent<Renderable>();
  180. renderable.Mesh = Builtin.Quad;
  181. Selection.SceneObject = so;
  182. }
  183. /// <summary>
  184. /// Creates a new scene object with a disc primitive.
  185. /// </summary>
  186. [MenuItem("Scene Objects/3D primitives/Disc", 8096)]
  187. private static void Add3DDisc()
  188. {
  189. SceneObject so = UndoRedo.CreateSO("Disc", "Created a disc");
  190. Renderable renderable = so.AddComponent<Renderable>();
  191. renderable.Mesh = Builtin.Disc;
  192. Selection.SceneObject = so;
  193. }
  194. }
  195. }