main.tscript 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. //-----------------------------------------------------------------------------
  2. // Verve
  3. // Copyright (C) - Violent Tulip
  4. //-----------------------------------------------------------------------------
  5. function InitializeVerveEditor()
  6. {
  7. $Verve::UseSeparateWindow = ($pref::Video::deviceMode == 0); //can't do separate window atm if you're in fullscreen or borderless full
  8. // Preferences.
  9. exec( "./DefaultPrefs." @ $TorqueScriptFileExtension );
  10. // GUI.
  11. exec( "./GUI/GuiProfiles." @ $TorqueScriptFileExtension );
  12. exec( "./GUI/VerveEditorGroupBuilder.gui" );
  13. exec( "./GUI/VerveEditorImportPathNodes.gui" );
  14. // Scripts.
  15. exec( "./Scripts/Plugin." @ $TorqueScriptFileExtension );
  16. exec( "./Scripts/Utility." @ $TorqueScriptFileExtension );
  17. exec( "./Scripts/EditorControls." @ $TorqueScriptFileExtension );
  18. exec( "./Scripts/EditorHistory." @ $TorqueScriptFileExtension );
  19. exec( "./Scripts/EditorMenu." @ $TorqueScriptFileExtension );
  20. exec( "./Scripts/EditorPreferences." @ $TorqueScriptFileExtension );
  21. exec( "./Scripts/EditorWindow." @ $TorqueScriptFileExtension );
  22. exec( "./Scripts/Persistence." @ $TorqueScriptFileExtension );
  23. exec( "./Scripts/ScrollNotify." @ $TorqueScriptFileExtension );
  24. exec( "./Scripts/VObject." @ $TorqueScriptFileExtension );
  25. exec( "./Scripts/Inspector/main." @ $TorqueScriptFileExtension );
  26. exec( "./Scripts/Controller/main." @ $TorqueScriptFileExtension );
  27. exec( "./Scripts/Groups/main." @ $TorqueScriptFileExtension );
  28. exec( "./Scripts/Tracks/main." @ $TorqueScriptFileExtension );
  29. exec( "./Scripts/Events/main." @ $TorqueScriptFileExtension );
  30. exec( "./Torque/main." @ $TorqueScriptFileExtension );
  31. // Register Events.
  32. VerveEditor::RegisterEvent( "VGroupObjectUpdate" );
  33. }
  34. function DestroyVerveEditor()
  35. {
  36. // Ensure the Editor has Shutdown.
  37. if ( isObject( VerveEditorWindow ) )
  38. {
  39. // Prompt for Save.
  40. VerveEditor::SavePrompt();
  41. // Reset.
  42. VerveEditor::Reset();
  43. // Delete the Window.
  44. VerveEditorWindow.delete();
  45. }
  46. }
  47. function ToggleVerveEditor( %value )
  48. {
  49. if ( %value)
  50. {
  51. if ( !isObject( VerveEditorWindow ) )
  52. {
  53. VerveEditor::LaunchEditor();
  54. }
  55. else
  56. {
  57. VerveEditorWindow.onWindowClose();
  58. }
  59. }
  60. }
  61. function VerveEditor::LaunchEditor()
  62. {
  63. // Launch Window.
  64. %mainScreen = VerveEditorWindow::Open();
  65. if ( !isObject( VerveEditorGui ) )
  66. {
  67. // Load the GUI.
  68. exec ( "./GUI/VerveEditor.gui" );
  69. }
  70. // Apply GUI.
  71. if($Verve::UseSeparateWindow)
  72. %mainScreen.setContent( VerveEditorGUI );
  73. else
  74. {
  75. %mainScreen.add(VerveEditorGUI);
  76. VerveEditorGUI.position.y = VerveEditorGUI.Position.y + 20;
  77. EditorGUI.add(%mainScreen);
  78. }
  79. // Clear History.
  80. VerveEditor::ClearHistory();
  81. // Update Window Title.
  82. VerveEditorWindow.UpdateWindowTitle();
  83. // Update Selection.
  84. VerveEditor::OnSelectionUpdate();
  85. // Update Sizes.
  86. VerveEditor::UpdateSizes();
  87. }
  88. function VerveEditor::ResetController()
  89. {
  90. // Delete.
  91. VerveEditor::DeleteController();
  92. // Create.
  93. return VerveEditor::CreateController();
  94. }
  95. function VerveEditor::DeleteController()
  96. {
  97. // Current Controller?
  98. if ( isObject( $VerveEditor::Controller ) )
  99. {
  100. // Stop but do not Reset.
  101. $VerveEditor::Controller.stop( false );
  102. // Delete the Controller.
  103. $VerveEditor::Controller.delete();
  104. // Deleted?
  105. return !isObject( $VerveEditor::Controller );
  106. }
  107. // No Deletion.
  108. return false;
  109. }
  110. function VerveEditor::CreateController()
  111. {
  112. // Current Controller?
  113. if ( !isObject( VerveEditorController ) )
  114. {
  115. // Create Controller.
  116. $VerveEditor::Controller = new VController( VerveEditorController );
  117. }
  118. // Return ID.
  119. return $VerveEditor::Controller;
  120. }
  121. function VerveEditor::Refresh()
  122. {
  123. if ( !isObject( $VerveEditor::Controller ) )
  124. {
  125. return;
  126. }
  127. // Clear Selection.
  128. VerveEditor::ClearSelection();
  129. // Delete Existing Controls.
  130. VerveEditor::DeleteControls();
  131. // Sort Groups & Tracks.
  132. $VerveEditor::Controller.sortGroups();
  133. $VerveEditor::Controller.sortTracks();
  134. %groupSet = $VerveEditor::Controller;
  135. %groupCount = %groupSet.getCount();
  136. for ( %i = 0; %i < %groupCount; %i++ )
  137. {
  138. // Update Controls.
  139. %groupSet.getObject( %i ).Refresh();
  140. }
  141. // Update Window Title.
  142. VerveEditorWindow.UpdateWindowTitle();
  143. // Update Duration.
  144. VerveEditor::UpdateDuration();
  145. // Update Sizes.
  146. VerveEditor::UpdateSizes();
  147. // Update Selection.
  148. VerveEditor::OnSelectionUpdate();
  149. }
  150. function VerveEditor::UpdateSizes()
  151. {
  152. VerveEditorGroupNotify.UpdateSize();
  153. VerveEditorTrackNotify.UpdateSize();
  154. VerveEditorTimeNotify.UpdateSize();
  155. }
  156. function VerveEditor::UpdateDuration( %duration )
  157. {
  158. if ( %duration !$= "" )
  159. {
  160. // Update Duration.
  161. $VerveEditor::Controller.setFieldValue( "Duration", %duration );
  162. }
  163. // Update Duration.
  164. VerveEditorTimeLine.updateDuration();
  165. VerveEditorTrackTimeLine.updateDuration();
  166. // Update Sizes.
  167. VerveEditorGroupNotify.UpdateSize();
  168. VerveEditorTrackNotify.UpdateSize();
  169. VerveEditorTimeNotify.UpdateSize();
  170. }
  171. package VerveEditorSaveIntercept
  172. {
  173. function EditorSaveMission()
  174. {
  175. // Reset.
  176. VerveEditor::Reset();
  177. // Perform the Save.
  178. Parent::EditorSaveMission();
  179. }
  180. };
  181. function VerveEditor::Reset()
  182. {
  183. // Valid Controller?
  184. if ( isObject( $VerveEditor::Controller ) )
  185. {
  186. // Reset.
  187. $VerveEditor::Controller.Reset();
  188. // Stop.
  189. $VerveEditor::Controller.Stop();
  190. }
  191. }