editorSettingsWindow.ed.tscript 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565
  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 ESettingsWindow::startup( %this )
  23. {
  24. new ArrayObject(EditorSettingsPageList);
  25. new ArrayObject(GameSettingsPageList);
  26. %this.addEditorSettingsPage("Axis", "Axis Gizmo");
  27. %this.addEditorSettingsPage("General", "General Settings");
  28. %this.addEditorSettingsPage("Camera", "Camera Settings");
  29. %this.addEditorSettingsPage("SceneEditor", "Scene Editor");
  30. %this.addEditorSettingsPage("ShapeEditor", "Shape Editor");
  31. %this.addEditorSettingsPage("NavEditor", "Navigation Editor");
  32. %this.addEditorSettingsPage("Theme", "Theme");
  33. %this.addEditorSettingsPage("AssetEditing", "Asset Editing");
  34. %this.addEditorSettingsPage("PostFX", "Post Effects");
  35. %this.addGameSettingsPage("GameGeneral", "General");
  36. %this.addGameSettingsPage("Gameplay", "Gameplay");
  37. %this.addGameSettingsPage("Paths", "Paths");
  38. %this.addGameSettingsPage("UI", "UI");
  39. %this.addGameSettingsPage("LevelDefaults", "Level Defaults");
  40. %this.addGameSettingsPage("GameOptions", "Game Options");
  41. %this.addGameSettingsPage("AssetManagement", "Asset Management");
  42. %this.mode = "Editor";
  43. }
  44. function ESettingsWindow::onWake( %this )
  45. {
  46. }
  47. function ESettingsWindow::hideDialog( %this )
  48. {
  49. %this.setVisible(false);
  50. }
  51. function ESettingsWindow::ToggleVisibility()
  52. {
  53. if ( ESettingsWindow.visible )
  54. {
  55. ESettingsWindow.setVisible(false);
  56. }
  57. else
  58. {
  59. ESettingsWindow.setVisible(true);
  60. ESettingsWindow.selectWindow();
  61. ESettingsWindow.setCollapseGroup(false);
  62. ESettingsWindowList.clear();
  63. }
  64. ESettingsWindowList.setSelectedById( 1 );
  65. }
  66. function ESettingsWindow::toggleProjectSettings(%this)
  67. {
  68. %this.ToggleVisibility();
  69. %count = GameSettingsPageList.count();
  70. for(%i=0; %i < %count; %i++)
  71. {
  72. %settingsPageText = GameSettingsPageList.getValue(%i);
  73. ESettingsWindowList.addRow( %i, %settingsPageText );
  74. }
  75. ESettingsWindowList.sort(0);
  76. %this.mode = "Project";
  77. ESettingsWindow.text = "Game Project Settings";
  78. ESettingsWindowList.setSelectedById( 1 );
  79. }
  80. function ESettingsWindow::toggleEditorSettings(%this)
  81. {
  82. %this.ToggleVisibility();
  83. %count = EditorSettingsPageList.count();
  84. for(%i=0; %i < %count; %i++)
  85. {
  86. %settingsPageText = EditorSettingsPageList.getValue(%i);
  87. ESettingsWindowList.addRow( %i, %settingsPageText );
  88. }
  89. ESettingsWindowList.sort(0);
  90. %this.mode = "Editor";
  91. ESettingsWindow.text = "Editor Settings";
  92. ESettingsWindowList.setSelectedById( 1 );
  93. }
  94. function ESettingsWindow::addEditorSettingsPage(%this, %settingsPageName, %settingsPageText)
  95. {
  96. EditorSettingsPageList.add(%settingsPageName, %settingsPageText);
  97. }
  98. function ESettingsWindow::addGameSettingsPage(%this, %settingsPageName, %settingsPageText)
  99. {
  100. GameSettingsPageList.add(%settingsPageName, %settingsPageText);
  101. }
  102. function ESettingsWindow::refresh(%this)
  103. {
  104. if(ESettingsWindow.selectedPageId !$= "")
  105. {
  106. ESettingsWindowList.setSelectedById( ESettingsWindow.selectedPageId );
  107. }
  108. else
  109. {
  110. ESettingsWindowList.setSelectedById( 1 );
  111. }
  112. }
  113. //-----------------------------------------------------------------------------
  114. function ESettingsWindowList::onSelect( %this, %id, %text )
  115. {
  116. SettingsInspector.clearFields();
  117. if(ESettingsWindow.mode $= "Editor")
  118. %pageName = EditorSettingsPageList.getKey(EditorSettingsPageList.getIndexFromValue(%text));
  119. else
  120. %pageName = GameSettingsPageList.getKey(GameSettingsPageList.getIndexFromValue(%text));
  121. eval("ESettingsWindow.get" @ %pageName @ "Settings();");
  122. ESettingsWindow.selectedPageId = %id;
  123. ESettingsWindow.selectedPageText = %text;
  124. }
  125. //Read/write field functions
  126. function SettingsInspector::addSettingsField(%this, %settingsFieldName, %labelText, %fieldType, %tooltip, %fieldData)
  127. {
  128. %moddedSettingsFieldName = strreplace(%settingsFieldName, "/", "-");
  129. if(ESettingsWindow.mode $= "Editor")
  130. %this.addCallbackField(%moddedSettingsFieldName, %labelText, %fieldType, "", EditorSettings.value(%settingsFieldName), %fieldData, "changeEditorSetting");
  131. else
  132. %this.addCallbackField(%moddedSettingsFieldName, %labelText, %fieldType, "", ProjectSettings.value(%settingsFieldName), %fieldData, "changeEditorSetting");
  133. }
  134. function SettingsInspector::changeEditorSetting(%this, %varName, %value)
  135. {
  136. %varName = strreplace(%varName, "-", "/");
  137. if(%value !$= "" && (fileExt(%value) !$= "" || IsDirectory(%value)))
  138. {
  139. %value = makeFullPath(%value);
  140. }
  141. //echo("Set " @ %varName @ " to be " @ %value);
  142. if(ESettingsWindow.mode $= "Editor")
  143. %oldValue = EditorSettings.value(%varName);
  144. else
  145. %oldValue = ProjectSettings.value(%varName);
  146. if(ESettingsWindow.mode $= "Editor")
  147. EditorSettings.setValue(%varName, %value);
  148. else
  149. ProjectSettings.setValue(%varName, %value);
  150. if(ESettingsWindow.mode $= "Editor")
  151. {
  152. %success = EditorSettings.write();
  153. //Bit of a hack, but if we were editing the theme, reexec the profiles for GUI
  154. if(ESettingsWindow.selectedPageText $= "Theme")
  155. exec("tools/gui/profiles.ed." @ $TorqueScriptFileExtension);
  156. }
  157. else
  158. %success = ProjectSettings.write();
  159. if(%oldValue !$= %value)
  160. ESettingsWindow.schedule(15,"refresh");
  161. }
  162. function GuiInspectorVariableGroup::buildOptionsSettingField(%this, %fieldName, %fieldLabel, %fieldDesc, %fieldDefaultVal, %fieldDataVals, %ownerObj)
  163. {
  164. %extent = 200;
  165. %fieldCtrl = %this.createInspectorField();
  166. %fieldCtrl.setHeightOverride(true, 200);
  167. %extent = %this.stack.getExtent();
  168. %width = mRound(%extent/2);
  169. %height = 20;
  170. %inset = 10;
  171. %editControl = new GuiPopUpMenuCtrl() {
  172. class = "guiInspectorListField";
  173. maxPopupHeight = "200";
  174. sbUsesNAColor = "0";
  175. reverseTextList = "0";
  176. bitmapBounds = "16 16";
  177. maxLength = "1024";
  178. Margin = "0 0 0 0";
  179. Padding = "0 0 0 0";
  180. AnchorTop = "1";
  181. AnchorBottom = "0";
  182. AnchorLeft = "1";
  183. AnchorRight = "0";
  184. isContainer = "0";
  185. Profile = "ToolsGuiPopUpMenuProfile";
  186. HorizSizing = "right";
  187. VertSizing = "bottom";
  188. Position = %fieldCtrl.edit.position;
  189. Extent = %fieldCtrl.edit.extent;
  190. MinExtent = "8 2";
  191. canSave = "1";
  192. Visible = "1";
  193. tooltipprofile = "ToolsGuiToolTipProfile";
  194. tooltip = "";//%tooltip;
  195. text = %fieldDefaultVal;
  196. hovertime = "1000";
  197. ownerObject = %ownerObj;
  198. fieldName = %fieldName;
  199. };
  200. //set the field value
  201. if(getSubStr(%this.fieldName, 0, 1) $= "$")
  202. {
  203. if(%fieldName $= "")
  204. %editControl.setText(%fieldName);
  205. }
  206. else
  207. {
  208. //regular variable
  209. %setCommand = %editControl @ ".setText(" @ %ownerObj @ "." @ %fieldName @ ");";
  210. eval(%setCommand);
  211. }
  212. %listCount = getTokenCount(%fieldDataVals, ",");
  213. for(%i=0; %i < %listCount; %i++)
  214. {
  215. %entryText = getToken(%fieldDataVals, ",", %i);
  216. %editControl.add(%entryText);
  217. }
  218. %fieldCtrl.setCaption(%fieldLabel);
  219. %fieldCtrl.setEditControl(%editControl);
  220. %this.addInspectorField(%fieldCtrl);
  221. }
  222. //
  223. // COMMON EDITOR SETTINGS
  224. //
  225. function ESettingsWindow::getAxisSettings(%this)
  226. {
  227. SettingsInspector.startGroup("Gizmo");
  228. SettingsInspector.addSettingsField("AxisGizmo/mouseRotateScalar", "Rotate Scalar", "float", "");
  229. SettingsInspector.addSettingsField("AxisGizmo/mouseScaleScalar", "Scale Scalar", "float", "");
  230. SettingsInspector.addSettingsField("AxisGizmo/renderWhenUsed", "Render When Manipulated", "bool", "");
  231. SettingsInspector.addSettingsField("AxisGizmo/renderInfoText", "Render Tool Text", "bool", "");
  232. SettingsInspector.endGroup();
  233. SettingsInspector.startGroup("Grid");
  234. SettingsInspector.addSettingsField("AxisGizmo/Grid/renderPlane", "Render Plane", "bool", "");
  235. SettingsInspector.addSettingsField("AxisGizmo/Grid/renderPlaneHashes", "Render Plane Hashes", "bool", "");
  236. SettingsInspector.addSettingsField("AxisGizmo/Grid/planeDim", "Plane Size", "float", "");
  237. SettingsInspector.addSettingsField("AxisGizmo/Grid/gridColor", "Plane Color", "colorI", "");
  238. SettingsInspector.endGroup();
  239. }
  240. function ESettingsWindow::getGeneralSettings(%this)
  241. {
  242. SettingsInspector.startGroup("Level Load");
  243. SettingsInspector.addSettingsField("WorldEditor/LevelLoad/LoadMode", "Editor Startup Scene", "list", "When the editor loads, this setting dictates what scene is loaded first",
  244. "Last Edited Level,Editor Default Scene");
  245. SettingsInspector.endGroup();
  246. SettingsInspector.startGroup("Autosave");
  247. SettingsInspector.addSettingsField("WorldEditor/AutosaveInterval", "Autosave Interval(in minutes)", "int", "");
  248. SettingsInspector.endGroup();
  249. SettingsInspector.startGroup("Paths");
  250. SettingsInspector.addSettingsField("WorldEditor/torsionPath", "Torsion Path", "filename", "");
  251. SettingsInspector.endGroup();
  252. SettingsInspector.startGroup("Theme");
  253. SettingsInspector.addSettingsField("WorldEditor/Theme/backgroundColor", "Background Color", "colorI", "");
  254. SettingsInspector.addSettingsField("WorldEditor/Theme/windowTitleBGColor", "Window Title Color", "colorI", "");
  255. SettingsInspector.addSettingsField("WorldEditor/Theme/windowTitleFontColor", "Window Title Text Color", "colorI", "");
  256. SettingsInspector.addSettingsField("WorldEditor/Theme/mainTextColor", "Main Text Color", "colorI", "");
  257. SettingsInspector.endGroup();
  258. SettingsInspector.startGroup("Layout");
  259. /*SettingsInspector.addSettingsField("WorldEditor/Layout/LayoutMode", "Editor Layout Mode", "list", "This dictates which layout style the editor should use." @
  260. "WARNING - Modern layout is highlight experimental." @
  261. "Updating this requires a restart of the program", "Classic,Modern");*/
  262. SettingsInspector.endGroup();
  263. }
  264. function ESettingsWindow::getCameraSettings(%this)
  265. {
  266. SettingsInspector.startGroup("Mouse Control");
  267. SettingsInspector.addSettingsField("Camera/invertYAxis", "Invert Y Axis", "bool", "");
  268. SettingsInspector.addSettingsField("Camera/invertXAxis", "Invert X Axis", "bool", "");
  269. SettingsInspector.endGroup();
  270. //Based on currently loaded level(rootScene)
  271. SettingsInspector.startGroup(EditorSettings.value("WorldEditor/newLevelFile") @ " Camera");
  272. SettingsInspector.addSettingsField("Camera/cameraMinSpeed", "Camera Speed Min", "float", "");
  273. SettingsInspector.addSettingsField("Camera/cameraMaxSpeed", "Camera Speed Max", "200", "");
  274. SettingsInspector.endGroup();
  275. }
  276. function ESettingsWindow::getNavEditorSettings(%this)
  277. {
  278. SettingsInspector.startGroup("Test Spawn");
  279. SettingsInspector.addSettingsField("NavEditor/SpawnClass", "Spawn Class", "list", "", "AIPlayer");
  280. SettingsInspector.addSettingsField("NavEditor/SpawnDatablock", "Datablock", "string", "");
  281. SettingsInspector.endGroup();
  282. SettingsInspector.startGroup("Colors");
  283. SettingsInspector.addSettingsField("NavEditor/HoverSplineColor", "Hover Spline", "colorI", "");
  284. SettingsInspector.addSettingsField("NavEditor/SelectedSplineColor", "Select Spline", "colorI", "");
  285. SettingsInspector.endGroup();
  286. }
  287. function ESettingsWindow::getSceneEditorSettings(%this)
  288. {
  289. SettingsInspector.startGroup("Render");
  290. SettingsInspector.addSettingsField("WorldEditor/Render/renderObjHandle", "Object Icons", "bool", "");
  291. SettingsInspector.addSettingsField("WorldEditor/Render/renderObjText", "Object Text", "bool", "");
  292. SettingsInspector.addSettingsField("WorldEditor/Render/showMousePopupInfo", "Mouse Popup Info", "bool", "");
  293. SettingsInspector.addSettingsField("WorldEditor/Render/renderPopupBackground", "Popup Menu Background", "bool", "");
  294. SettingsInspector.endGroup();
  295. SettingsInspector.startGroup("Colors");
  296. SettingsInspector.addSettingsField("WorldEditor/Grid/gridColor", "Grid Major", "colorI", "");
  297. SettingsInspector.addSettingsField("WorldEditor/Grid/gridMinorColor", "Grid Minor", "colorI", "");
  298. SettingsInspector.addSettingsField("WorldEditor/Grid/gridOriginColor", "Grid Origin", "colorI", "");
  299. SettingsInspector.addSettingsField("WorldEditor/Color/dragRectColor", "Drag Rect", "colorI", "");
  300. SettingsInspector.addSettingsField("WorldEditor/Color/objectTextColor", "Object Text", "colorI", "");
  301. SettingsInspector.addSettingsField("WorldEditor/Color/popupTextColor", "Popup Text", "colorI", "");
  302. SettingsInspector.addSettingsField("WorldEditor/Color/popupBackgroundColor", "Popup Back", "colorI", "");
  303. SettingsInspector.endGroup();
  304. SettingsInspector.startGroup("Misc");
  305. //SettingsInspector.addSettingsField("WorldEditor/forceLoadDAE", "Force Load DAE", "bool", "");
  306. SettingsInspector.addSettingsField("WorldEditor/forceLoadDAE", "Force Load DAE", "bool", "");
  307. SettingsInspector.endGroup();
  308. SettingsInspector.startGroup("Layout");
  309. SettingsInspector.addSettingsField("WorldEditor/forceSidebarToSide", "Force Sidebar Window(s) to side", "bool", "1");
  310. SettingsInspector.endGroup();
  311. SettingsInspector.startGroup("Behavior");
  312. SettingsInspector.addSettingsField("WorldEditor/Tools/snapGround", "Snap Objects to Ground", "bool", "0");
  313. SettingsInspector.addSettingsField("WorldEditor/Tools/TerrainSnapOffsetZ", "Add Offset of Terrain Snapping on Z Axis", "bool", "0");
  314. SettingsInspector.addSettingsField("WorldEditor/Tools/OffsetZValue", "Offset Z Value", "float", "0.01");
  315. SettingsInspector.addSettingsField("WorldEditor/Tools/snapSoft", "Do Soft Snap", "bool", "0");
  316. SettingsInspector.addSettingsField("WorldEditor/Tools/snapSoftSize", "Soft Snap Size", "bool", "2");
  317. SettingsInspector.addSettingsField("WorldEditor/Tools/boundingBoxCollision", "Use Bounding Box for Collision", "bool", "0");
  318. SettingsInspector.addSettingsField("WorldEditor/Tools/objectsUseBoxCenter", "Objects Use Box Center", "bool", "1");
  319. SettingsInspector.addSettingsField("WorldEditor/Tools/dropAtScreenCenterScalar", "Drop at Sceen Center Scalar", "bool", "1");
  320. SettingsInspector.addSettingsField("WorldEditor/Tools/dropAtScreenCenterMax", "Drop at Screen Center Max Dist.", "float", "100");
  321. SettingsInspector.addSettingsField("WorldEditor/Tools/UseGroupCenter", "Use Group Center when snapping", "bool", "0");
  322. SettingsInspector.endGroup();
  323. SettingsInspector.startGroup("Images");
  324. SettingsInspector.addSettingsField("WorldEditor/Images/defaultHandle", "Default Handle Image", "string", "");
  325. SettingsInspector.addSettingsField("WorldEditor/Images/lockedHandle", "Locked Handle Image", "string", "");
  326. SettingsInspector.addSettingsField("WorldEditor/Images/selectHandle", "Selected Handle Image", "string", "");
  327. SettingsInspector.endGroup();
  328. }
  329. function ESettingsWindow::getShapeEditorSettings(%this)
  330. {
  331. SettingsInspector.startGroup("Colors");
  332. SettingsInspector.addSettingsField("ShapeEditor/SunDiffuseColor", "Sun Diffuse", "colorI", "");
  333. SettingsInspector.addSettingsField("ShapeEditor/SunAmbientColor", "Sun Ambient", "colorI", "");
  334. SettingsInspector.addSettingsField("ShapeEditor/BackgroundColor", "Background", "colorI", "");
  335. SettingsInspector.endGroup();
  336. SettingsInspector.startGroup("Grid");
  337. SettingsInspector.addSettingsField("ShapeEditor/GridSize", "Grid Size", "float", "");
  338. SettingsInspector.addSettingsField("ShapeEditor/GridDimension", "Grid Dimension", "vector2", "");
  339. SettingsInspector.endGroup();
  340. }
  341. function ESettingsWindow::getThemeSettings(%this)
  342. {
  343. SettingsInspector.startGroup("Colors");
  344. SettingsInspector.addSettingsField("Theme/headerColor", "Headerbar Color", "ColorI", "");
  345. SettingsInspector.addSettingsField("Theme/windowBackgroundColor", "Window Background Color", "ColorI", "");
  346. SettingsInspector.addSettingsField("Theme/tabsColor", "Tabs Color", "ColorI", "");
  347. SettingsInspector.addSettingsField("Theme/tabsHLColor", "Tabs Highlight Color", "ColorI", "");
  348. SettingsInspector.addSettingsField("Theme/tabsSELColor", "Tabs Selected Color", "ColorI", "");
  349. SettingsInspector.addSettingsField("Theme/dividerDarkColor", "Divider Dark Color", "ColorI", "");
  350. SettingsInspector.addSettingsField("Theme/dividerMidColor", "Divider Mid Color", "ColorI", "");
  351. SettingsInspector.addSettingsField("Theme/dividerLightColor", "Divider Light Color", "ColorI", "");
  352. SettingsInspector.addSettingsField("Theme/headerTextColor", "Header Text Color", "ColorI", "");
  353. SettingsInspector.addSettingsField("Theme/fieldTextColor", "Field Text Color", "ColorI", "");
  354. SettingsInspector.addSettingsField("Theme/fieldTextHLColor", "Field Text Highlight Color", "ColorI", "");
  355. SettingsInspector.addSettingsField("Theme/fieldTextSELColor", "Field Text Selected Color", "ColorI", "");
  356. SettingsInspector.addSettingsField("Theme/fieldTextNAColor", "Field Text N/A Color", "ColorI", "");
  357. SettingsInspector.addSettingsField("Theme/fieldBGColor", "Field Background Color", "ColorI", "");
  358. SettingsInspector.addSettingsField("Theme/fieldBGHLColor", "Field Background Highlight Color", "ColorI", "");
  359. SettingsInspector.addSettingsField("Theme/fieldBGSELColor", "Field Background Selected Color", "ColorI", "");
  360. SettingsInspector.addSettingsField("Theme/tooltipBGColor", "Tooltip Background Color", "ColorI", "");
  361. SettingsInspector.addSettingsField("Theme/tooltipTextColor", "Tooltip Text Highlight Color", "ColorI", "");
  362. SettingsInspector.addSettingsField("Theme/tooltipDivColor", "Tooltip Divider Color", "ColorI", "");
  363. SettingsInspector.endGroup();
  364. }
  365. function ESettingsWindow::getPostFXSettings(%this)
  366. {
  367. SettingsInspector.startGroup("Post Effects");
  368. SettingsInspector.addField("Edit Default PostFX", "Edit Default PostFX Config", "button", "Edit Default PostFX Config", "", "PostFXEditor.editDefaultPostFXSettings();");
  369. SettingsInspector.endGroup();
  370. }
  371. //
  372. // COMMON GAME SETTINGS
  373. //
  374. function ESettingsWindow::getGameGeneralSettings(%this)
  375. {
  376. SettingsInspector.startGroup("General");
  377. SettingsInspector.addSettingsField("General/ProjectName", "Project Name", "string", "");
  378. SettingsInspector.addSettingsField("General/LightingMode", "Lighting Mode", "list", "Dictates the lighting mode the project uses", "Deferred,Forward");
  379. SettingsInspector.endGroup();
  380. }
  381. function ESettingsWindow::getPathsSettings(%this)
  382. {
  383. SettingsInspector.startGroup("Paths");
  384. SettingsInspector.addSettingsField("Paths/splashImagePath", "Splash Image", "filename", "");
  385. SettingsInspector.addSettingsField("Paths/iconImagePath", "Icon Image", "filename", "");
  386. SettingsInspector.addSettingsField("Paths/missingTexturePath", "Missing Texture Image", "filename", "");
  387. SettingsInspector.addSettingsField("Paths/noMaterialPath", "No Material Image", "filename", "");
  388. SettingsInspector.addSettingsField("Paths/errorMaterialMath", "Error Material Image", "filename", "");
  389. SettingsInspector.endGroup();
  390. }
  391. function ESettingsWindow::getUISettings(%this)
  392. {
  393. SettingsInspector.startGroup("UI");
  394. SettingsInspector.addSettingsField("UI/playGUIName", "Play GUI Name", "string", "");
  395. SettingsInspector.addSettingsField("UI/mainMenuName", "Main Menu GUI Name", "string", "");
  396. SettingsInspector.endGroup();
  397. }
  398. function ESettingsWindow::getAssetManagementSettings(%this)
  399. {
  400. SettingsInspector.startGroup("Modules");
  401. SettingsInspector.addSettingsField("AssetManagement/Modules/coreModulePath", "Core Module Path", "string", "");
  402. SettingsInspector.addSettingsField("AssetManagement/Modules/gameDataModulePath", "Game Data Module Path", "string", "");
  403. SettingsInspector.addSettingsField("AssetManagement/Modules/moduleExtension", "Module Extension", "string", "");
  404. %moduleList = ModuleDatabase.findModules(true);
  405. %moduleList = strreplace(%moduleList, " ", ",");
  406. SettingsInspector.addSettingsField("AssetManagement/Modules/DefaultModule", "Default Module", "list", %moduleList);
  407. SettingsInspector.endGroup();
  408. SettingsInspector.startGroup("Assets");
  409. SettingsInspector.addSettingsField("AssetManagement/Assets/assetExtension", "Asset Extension", "string", "");
  410. SettingsInspector.addSettingsField("AssetManagement/Assets/datablockCaching", "Cache Datablocks", "bool", "");
  411. //SettingsInspector.addSettingsField("AssetManagement/Assets/moduleExtension", "Module Extension", "string", "");
  412. SettingsInspector.endGroup();
  413. }
  414. function ESettingsWindow::getAssetEditingSettings(%this)
  415. {
  416. ImportAssetWindow::reloadImportOptionConfigs();
  417. //First, get our list of modules
  418. %moduleList = ModuleDatabase.findModules();
  419. %formattedModuleList = "";
  420. %count = getWordCount(%moduleList);
  421. for(%i=0; %i < %count; %i++)
  422. {
  423. %module = getWord(%moduleList, %i);
  424. if(%module.group !$= "Tools" && %module.group !$= "Core")
  425. {
  426. if(%formattedModuleList $= "")
  427. %formattedModuleList = %module.moduleId;
  428. else
  429. %formattedModuleList = %formattedModuleList @ "," @ %module.moduleId;
  430. }
  431. }
  432. SettingsInspector.startGroup("Asset Creation");
  433. SettingsInspector.addSettingsField("Assets/New/defaultModule", "Default Module", "list", "Default Module for new assets to be created into", %formattedModuleList);
  434. SettingsInspector.addSettingsField("Assets/New/alwaysPromptModuleTarget", "Always Prompt Target Module", "bool", "If off, use the default module");
  435. SettingsInspector.endGroup();
  436. %formattedConfigList = "";
  437. for(%i=0; %i < ImportAssetWindow.importConfigsList.Count(); %i++)
  438. {
  439. %configName = ImportAssetWindow.importConfigsList.getKey(%i);
  440. %formattedConfigList = %i == 0 ? %configName : %formattedConfigList @ "," @ %configName;
  441. }
  442. SettingsInspector.startGroup("Assets Importing");
  443. SettingsInspector.addField("Edit Asset Configs", "Edit Asset Import Configs", "button", "Open Asset Import Config Editor", "", "Canvas.pushDialog(AssetImportConfigEditor);");
  444. SettingsInspector.addSettingsField("Assets/AssetImporDefaultConfig", "Default Asset Import Config", "list", "", %formattedConfigList);
  445. SettingsInspector.addSettingsField("Assets/AutoImport", "Automatically Import using default config", "bool", "If on, the asset importing process" @
  446. "will attempt to automatically import any inbound assets"@
  447. "using the default config, without prompting the import window."@
  448. "The window will still display if any issues are detected", "");
  449. SettingsInspector.addSettingsField("Assets/AutoImportLooseFiles", "Automatically Import Loose Files", "bool", "If on, will automatically import unassociated loose files in assets when navigating the Asset Browser.", "");
  450. SettingsInspector.endGroup();
  451. SettingsInspector.startGroup("Asset Browser");
  452. SettingsInspector.addSettingsField("Assets/Browser/showCoreModule", "Show Core Module in Asset Browser", "bool", "");
  453. SettingsInspector.addSettingsField("Assets/Browser/showToolsModule", "Show Tools Module in Asset Browser", "bool", "");
  454. SettingsInspector.addSettingsField("Assets/Browser/showOnlyPopulatedModule", "Show Only Modules with Assets in Asset Browser", "bool", "");
  455. SettingsInspector.addSettingsField("Assets/Browser/showFolders", "Show Folders in Tiles view in Asset Browser", "bool", "");
  456. SettingsInspector.addSettingsField("Assets/Browser/showEmptyFolders", "Show Empty Folders in Tiles view in Asset Browser", "bool", "");
  457. SettingsInspector.addSettingsField("Assets/Browser/showLooseFiles", "Show Loose Files when viewing in Asset Browser", "bool", "");
  458. SettingsInspector.addSettingsField("AssetManagement/Assets/promptOnRename", "Prompt on Rename", "bool", "");
  459. SettingsInspector.addSettingsField("Assets/Browser/doubleClickAction", "Double Click Action", "list", "Dictates what sort of action double clicking on an asset in the Browser will invoke", "Edit Asset,Spawn Asset");
  460. SettingsInspector.addSettingsField("AssetManagement/Assets/closeBrowserOnDragAction", "Close Browser on Drag Action", "bool", "If on, the Asset Browser will automatically close after dragging an asset from it to the editor interface.");
  461. SettingsInspector.endGroup();
  462. }
  463. function ESettingsWindow::getGameplaySettings(%this)
  464. {
  465. SettingsInspector.startGroup("Game Modes");
  466. SettingsInspector.addSettingsField("Gameplay/GameModes/defaultModeName", "Default Gamemode Name", "string", "");
  467. SettingsInspector.endGroup();
  468. }
  469. function ESettingsWindow::getGameOptionsSettings(%this)
  470. {
  471. SettingsInspector.startGroup("Options Settings");
  472. SettingsInspector.addSettingsField("Options/optionsList", "OptionsList", "OptionsSetting", "");
  473. SettingsInspector.endGroup();
  474. }