main.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. //-----------------------------------------------------------------------------
  2. // Copyright (c) 2012 GarageGames, LLC
  3. //
  4. // Permission is hereby granted, free of charge, to any person obtaining a copy
  5. // of this software and associated documentation files (the "Software"), to
  6. // deal in the Software without restriction, including without limitation the
  7. // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
  8. // sell copies of the Software, and to permit persons to whom the Software is
  9. // furnished to do so, subject to the following conditions:
  10. //
  11. // The above copyright notice and this permission notice shall be included in
  12. // all copies or substantial portions of the Software.
  13. //
  14. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  17. // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18. // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  19. // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
  20. // IN THE SOFTWARE.
  21. //-----------------------------------------------------------------------------
  22. function initializeMissionAreaEditor()
  23. {
  24. echo(" % - Initializing Mission Area Editor");
  25. exec( "./missionAreaEditor.ed.cs" );
  26. exec( "./missionAreaEditorGui.ed.gui" );
  27. exec( "./missionAreaEditorGui.ed.cs" );
  28. // Add ourselves to EditorGui, where all the other tools reside
  29. MissionAreaEditorGui.setVisible( false );
  30. MissionAreaEditorTerrainWindow.setVisible( false );
  31. MissionAreaEditorPropertiesWindow.setVisible( false );
  32. EditorGui.add( MissionAreaEditorGui );
  33. EditorGui.add( MissionAreaEditorTerrainWindow );
  34. EditorGui.add( MissionAreaEditorPropertiesWindow );
  35. new ScriptObject( MissionAreaEditorPlugin )
  36. {
  37. superClass = "EditorPlugin";
  38. editorGui = MissionAreaEditorGui;
  39. };
  40. MissionAreaEditorPlugin.initSettings();
  41. }
  42. function destroyMissionAreaEditor()
  43. {
  44. }
  45. function MissionAreaEditorPlugin::onWorldEditorStartup( %this )
  46. {
  47. // Add ourselves to the window menu.
  48. %accel = EditorGui.addToEditorsMenu( "Mission Area Editor", "", MissionAreaEditorPlugin );
  49. // Add ourselves to the ToolsToolbar
  50. %tooltip = "Mission Area Editor (" @ %accel @ ")";
  51. EditorGui.addToToolsToolbar( "MissionAreaEditorPlugin", "MissionAreaEditorPalette", expandFilename("tools/missionAreaEditor/images/mission-area"), %tooltip );
  52. //connect editor windows
  53. GuiWindowCtrl::attach( MissionAreaEditorPropertiesWindow, MissionAreaEditorTerrainWindow);
  54. }
  55. function MissionAreaEditorPlugin::onActivated( %this )
  56. {
  57. %this.readSettings();
  58. EditorGui.bringToFront( MissionAreaEditorGui );
  59. MissionAreaEditorGui.setVisible(true);
  60. MissionAreaEditorGui.makeFirstResponder( true );
  61. MissionAreaEditorTerrainWindow.setVisible( true );
  62. MissionAreaEditorPropertiesWindow.setVisible( true );
  63. // Set the status bar here until all tool have been hooked up
  64. EditorGuiStatusBar.setInfo("Mission Area Editor.");
  65. EditorGuiStatusBar.setSelection("");
  66. // Allow the Gui to setup.
  67. MissionAreaEditorGui.onEditorActivated();
  68. Parent::onActivated(%this);
  69. }
  70. function MissionAreaEditorPlugin::onDeactivated( %this )
  71. {
  72. %this.writeSettings();
  73. MissionAreaEditorGui.setVisible(false);
  74. MissionAreaEditorTerrainWindow.setVisible( false );
  75. MissionAreaEditorPropertiesWindow.setVisible( false );
  76. // Allow the Gui to cleanup.
  77. MissionAreaEditorGui.onEditorDeactivated();
  78. Parent::onDeactivated(%this);
  79. }
  80. function MissionAreaEditorPlugin::setEditorFunction( %this )
  81. {
  82. %missionAreaExists = isObject(getMissionAreaServerObject());
  83. if( %missionAreaExists == false )
  84. MessageBoxYesNoCancel("No Mission Area","Would you like to create a New Mission Area?", "MissionAreaEditorPlugin.createNewMissionArea();");
  85. return %missionAreaExists;
  86. }
  87. function MissionAreaEditorPlugin::createNewMissionArea(%this)
  88. {
  89. %newMissionArea = new MissionArea();
  90. %newMissionArea.area = "-256 -256 512 512";
  91. MissionGroup.add(%newMissionArea);
  92. EditorGui.setEditor(MissionAreaEditorPlugin);
  93. EWorldEditor.isDirty = true;
  94. }
  95. //-----------------------------------------------------------------------------
  96. // Settings
  97. //-----------------------------------------------------------------------------
  98. function MissionAreaEditorPlugin::initSettings( %this )
  99. {
  100. EditorSettings.beginGroup( "MissionAreaEditor", true );
  101. EditorSettings.setDefaultValue( "MissionBoundsColor", "255 255 255" );
  102. EditorSettings.endGroup();
  103. }
  104. function MissionAreaEditorPlugin::readSettings( %this )
  105. {
  106. EditorSettings.beginGroup( "MissionAreaEditor", true );
  107. MissionAreaEditorTerrainEditor.missionBoundsColor = EditorSettings.value("MissionBoundsColor");
  108. EditorSettings.endGroup();
  109. }
  110. function MissionAreaEditorPlugin::writeSettings( %this )
  111. {
  112. EditorSettings.beginGroup( "MissionAreaEditor", true );
  113. EditorSettings.setValue( "MissionBoundsColor", MissionAreaEditorTerrainEditor.missionBoundsColor );
  114. EditorSettings.endGroup();
  115. }