EditorApplication.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. using System;
  2. using System.Collections.Generic;
  3. using BansheeEngine;
  4. namespace BansheeEditor
  5. {
  6. public enum SceneViewTool
  7. {
  8. View,
  9. Move,
  10. Rotate,
  11. Scale
  12. }
  13. public enum HandlePositionMode
  14. {
  15. Center,
  16. Pivot
  17. }
  18. public enum HandleCoordinateMode
  19. {
  20. Local,
  21. World
  22. }
  23. public class EditorApplication
  24. {
  25. private static SceneViewTool activeSceneTool = SceneViewTool.Move; // TODO - Actually retrieve this from somewhere
  26. private static HandlePositionMode handlePositionMode = HandlePositionMode.Pivot; // TODO - Actually retrieve this from somewhere
  27. private static HandleCoordinateMode handleCoordinateMode = HandleCoordinateMode.World; // TODO - Actually retrieve this from somewhere
  28. public static SceneViewTool ActiveSceneTool
  29. {
  30. get { return activeSceneTool; }
  31. set { activeSceneTool = value; } // TODO - Will likely need to update active GUI button when this changes
  32. }
  33. public static HandlePositionMode HandlePositionMode
  34. {
  35. get { return handlePositionMode; }
  36. set { handlePositionMode = value; } // TODO - Will likely need to update active GUI button when this changes
  37. }
  38. public static HandleCoordinateMode HandleCoordinateMode
  39. {
  40. get { return handleCoordinateMode; }
  41. set { handleCoordinateMode = value; } // TODO - Will likely need to update active GUI button when this changes
  42. }
  43. public static Camera SceneViewCamera
  44. {
  45. get { return instance.scene.GetCamera(); }
  46. }
  47. private static EditorApplication instance;
  48. private InspectorWindow inspector;
  49. private SceneWindow scene;
  50. private DebugWindow debug;
  51. // DEBUG ONLY
  52. Debug_Component1 dbgComponent;
  53. // END DEBUG ONLY
  54. internal EditorApplication()
  55. {
  56. instance = this;
  57. // Register controls
  58. InputConfiguration inputConfig = VirtualInput.KeyConfig;
  59. inputConfig.RegisterButton(SceneCamera.MoveForwardBinding, ButtonCode.W);
  60. inputConfig.RegisterButton(SceneCamera.MoveBackBinding, ButtonCode.S);
  61. inputConfig.RegisterButton(SceneCamera.MoveLeftBinding, ButtonCode.A);
  62. inputConfig.RegisterButton(SceneCamera.MoveRightBinding, ButtonCode.D);
  63. inputConfig.RegisterButton(SceneCamera.MoveForwardBinding, ButtonCode.Up);
  64. inputConfig.RegisterButton(SceneCamera.MoveBackBinding, ButtonCode.Back);
  65. inputConfig.RegisterButton(SceneCamera.MoveLeftBinding, ButtonCode.Left);
  66. inputConfig.RegisterButton(SceneCamera.MoveRightBinding, ButtonCode.Right);
  67. inputConfig.RegisterButton(SceneCamera.FastMoveBinding, ButtonCode.LeftShift);
  68. inputConfig.RegisterButton(SceneCamera.RotateBinding, ButtonCode.MouseRight);
  69. inputConfig.RegisterAxis(SceneCamera.HorizontalAxisBinding, InputAxis.MouseX);
  70. inputConfig.RegisterAxis(SceneCamera.VerticalAxisBinding, InputAxis.MouseY);
  71. // Open windows
  72. inspector = EditorWindow.OpenWindow<InspectorWindow>();
  73. scene = EditorWindow.OpenWindow<SceneWindow>();
  74. debug = EditorWindow.OpenWindow<DebugWindow>();
  75. // DEBUG ONLY
  76. SceneObject newDbgObject = new SceneObject("NewDbgObject");
  77. dbgComponent = newDbgObject.AddComponent<Debug_Component1>();
  78. newDbgObject.AddComponent<Debug_Component2>();
  79. inspector.SetObjectToInspect(newDbgObject);
  80. SceneObject gizmoDbgObject = new SceneObject("GizmoDebug");
  81. gizmoDbgObject.AddComponent<DbgGizmoComponent>();
  82. // DEBUG ONLY END
  83. }
  84. internal void EditorUpdate()
  85. {
  86. // DEBUG ONLY
  87. if (dbgComponent != null)
  88. dbgComponent.intArray[0] = dbgComponent.intArray[0] + 1;
  89. // DEBUG ONLY END
  90. }
  91. }
  92. }