editorSettingsWindow.ed.cs 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534
  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.cs");
  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("Autosave");
  243. SettingsInspector.addSettingsField("WorldEditor/AutosaveInterval", "Autosave Interval(in minutes)", "int", "");
  244. SettingsInspector.endGroup();
  245. SettingsInspector.startGroup("Paths");
  246. SettingsInspector.addSettingsField("WorldEditor/torsionPath", "Torsion Path", "filename", "");
  247. SettingsInspector.endGroup();
  248. SettingsInspector.startGroup("Theme");
  249. SettingsInspector.addSettingsField("WorldEditor/Theme/backgroundColor", "Background Color", "colorI", "");
  250. SettingsInspector.addSettingsField("WorldEditor/Theme/windowTitleBGColor", "Window Title Color", "colorI", "");
  251. SettingsInspector.addSettingsField("WorldEditor/Theme/windowTitleFontColor", "Window Title Text Color", "colorI", "");
  252. SettingsInspector.addSettingsField("WorldEditor/Theme/mainTextColor", "Main Text Color", "colorI", "");
  253. SettingsInspector.endGroup();
  254. SettingsInspector.startGroup("Layout");
  255. /*SettingsInspector.addSettingsField("WorldEditor/Layout/LayoutMode", "Editor Layout Mode", "list", "This dictates which layout style the editor should use." @
  256. "WARNING - Modern layout is highlight experimental." @
  257. "Updating this requires a restart of the program", "Classic,Modern");*/
  258. SettingsInspector.endGroup();
  259. }
  260. function ESettingsWindow::getCameraSettings(%this)
  261. {
  262. SettingsInspector.startGroup("Mouse Control");
  263. SettingsInspector.addSettingsField("Camera/invertYAxis", "Invert Y Axis", "bool", "");
  264. SettingsInspector.addSettingsField("Camera/invertXAxis", "Invert X Axis", "bool", "");
  265. SettingsInspector.endGroup();
  266. //Based on currently loaded level(rootScene)
  267. SettingsInspector.startGroup(EditorSettings.value("WorldEditor/newLevelFile") @ " Camera");
  268. SettingsInspector.addSettingsField("Camera/cameraMinSpeed", "Camera Speed Min", "float", "");
  269. SettingsInspector.addSettingsField("Camera/cameraMaxSpeed", "Camera Speed Max", "200", "");
  270. SettingsInspector.endGroup();
  271. }
  272. function ESettingsWindow::getNavEditorSettings(%this)
  273. {
  274. SettingsInspector.startGroup("Test Spawn");
  275. SettingsInspector.addSettingsField("NavEditor/SpawnClass", "Spawn Class", "list", "", "AIPlayer");
  276. SettingsInspector.addSettingsField("NavEditor/SpawnDatablock", "Datablock", "string", "");
  277. SettingsInspector.endGroup();
  278. SettingsInspector.startGroup("Colors");
  279. SettingsInspector.addSettingsField("NavEditor/HoverSplineColor", "Hover Spline", "colorI", "");
  280. SettingsInspector.addSettingsField("NavEditor/SelectedSplineColor", "Select Spline", "colorI", "");
  281. SettingsInspector.endGroup();
  282. }
  283. function ESettingsWindow::getSceneEditorSettings(%this)
  284. {
  285. SettingsInspector.startGroup("Render");
  286. SettingsInspector.addSettingsField("WorldEditor/Render/renderObjHandle", "Object Icons", "bool", "");
  287. SettingsInspector.addSettingsField("WorldEditor/Render/renderObjText", "Object Text", "bool", "");
  288. SettingsInspector.addSettingsField("WorldEditor/Render/showMousePopupInfo", "Mouse Popup Info", "bool", "");
  289. SettingsInspector.addSettingsField("WorldEditor/Render/renderPopupBackground", "Popup Menu Background", "bool", "");
  290. SettingsInspector.endGroup();
  291. SettingsInspector.startGroup("Colors");
  292. SettingsInspector.addSettingsField("WorldEditor/Grid/gridColor", "Grid Major", "colorI", "");
  293. SettingsInspector.addSettingsField("WorldEditor/Grid/gridMinorColor", "Grid Minor", "colorI", "");
  294. SettingsInspector.addSettingsField("WorldEditor/Grid/gridOriginColor", "Grid Origin", "colorI", "");
  295. SettingsInspector.addSettingsField("WorldEditor/Color/dragRectColor", "Drag Rect", "colorI", "");
  296. SettingsInspector.addSettingsField("WorldEditor/Color/objectTextColor", "Object Text", "colorI", "");
  297. SettingsInspector.addSettingsField("WorldEditor/Color/popupTextColor", "Popup Text", "colorI", "");
  298. SettingsInspector.addSettingsField("WorldEditor/Color/popupBackgroundColor", "Popup Back", "colorI", "");
  299. SettingsInspector.endGroup();
  300. SettingsInspector.startGroup("Misc");
  301. //SettingsInspector.addSettingsField("WorldEditor/forceLoadDAE", "Force Load DAE", "bool", "");
  302. SettingsInspector.addSettingsField("WorldEditor/forceLoadDAE", "Force Load DAE", "bool", "");
  303. SettingsInspector.endGroup();
  304. SettingsInspector.startGroup("Layout");
  305. SettingsInspector.addSettingsField("WorldEditor/forceSidebarToSide", "Force Sidebar Window(s) to side", "bool", "1");
  306. SettingsInspector.endGroup();
  307. SettingsInspector.startGroup("Behavior");
  308. SettingsInspector.addSettingsField("WorldEditor/Tools/snapGround", "Snap Objects to Ground", "bool", "0");
  309. SettingsInspector.addSettingsField("WorldEditor/Tools/TerrainSnapOffsetZ", "Add Offset of Terrain Snapping on Z Axis", "bool", "0");
  310. SettingsInspector.addSettingsField("WorldEditor/Tools/OffsetZValue", "Offset Z Value", "float", "0.01");
  311. SettingsInspector.addSettingsField("WorldEditor/Tools/snapSoft", "Do Soft Snap", "bool", "0");
  312. SettingsInspector.addSettingsField("WorldEditor/Tools/snapSoftSize", "Soft Snap Size", "bool", "2");
  313. SettingsInspector.addSettingsField("WorldEditor/Tools/boundingBoxCollision", "Use Bounding Box for Collision", "bool", "0");
  314. SettingsInspector.addSettingsField("WorldEditor/Tools/objectsUseBoxCenter", "Objects Use Box Center", "bool", "1");
  315. SettingsInspector.addSettingsField("WorldEditor/Tools/dropAtScreenCenterScalar", "Drop at Sceen Center Scalar", "bool", "1");
  316. SettingsInspector.addSettingsField("WorldEditor/Tools/dropAtScreenCenterMax", "Drop at Screen Center Max Dist.", "float", "100");
  317. SettingsInspector.addSettingsField("WorldEditor/Tools/UseGroupCenter", "Use Group Center when snapping", "bool", "0");
  318. SettingsInspector.endGroup();
  319. SettingsInspector.startGroup("Images");
  320. SettingsInspector.addSettingsField("WorldEditor/Images/defaultHandle", "Default Handle Image", "string", "");
  321. SettingsInspector.addSettingsField("WorldEditor/Images/lockedHandle", "Locked Handle Image", "string", "");
  322. SettingsInspector.addSettingsField("WorldEditor/Images/selectHandle", "Selected Handle Image", "string", "");
  323. SettingsInspector.endGroup();
  324. }
  325. function ESettingsWindow::getShapeEditorSettings(%this)
  326. {
  327. SettingsInspector.startGroup("Colors");
  328. SettingsInspector.addSettingsField("ShapeEditor/SunDiffuseColor", "Sun Diffuse", "colorI", "");
  329. SettingsInspector.addSettingsField("ShapeEditor/SunAmbientColor", "Sun Ambient", "colorI", "");
  330. SettingsInspector.addSettingsField("ShapeEditor/BackgroundColor", "Background", "colorI", "");
  331. SettingsInspector.endGroup();
  332. SettingsInspector.startGroup("Grid");
  333. SettingsInspector.addSettingsField("ShapeEditor/GridSize", "Grid Size", "float", "");
  334. SettingsInspector.addSettingsField("ShapeEditor/GridDimension", "Grid Dimension", "vector2", "");
  335. SettingsInspector.endGroup();
  336. }
  337. function ESettingsWindow::getThemeSettings(%this)
  338. {
  339. SettingsInspector.startGroup("Colors");
  340. SettingsInspector.addSettingsField("Theme/headerColor", "Headerbar Color", "ColorI", "");
  341. SettingsInspector.addSettingsField("Theme/windowBackgroundColor", "Window Background Color", "ColorI", "");
  342. SettingsInspector.addSettingsField("Theme/tabsColor", "Tabs Color", "ColorI", "");
  343. SettingsInspector.addSettingsField("Theme/tabsHLColor", "Tabs Highlight Color", "ColorI", "");
  344. SettingsInspector.addSettingsField("Theme/tabsSELColor", "Tabs Selected Color", "ColorI", "");
  345. SettingsInspector.addSettingsField("Theme/dividerDarkColor", "Divider Dark Color", "ColorI", "");
  346. SettingsInspector.addSettingsField("Theme/dividerMidColor", "Divider Mid Color", "ColorI", "");
  347. SettingsInspector.addSettingsField("Theme/dividerLightColor", "Divider Light Color", "ColorI", "");
  348. SettingsInspector.addSettingsField("Theme/headerTextColor", "Header Text Color", "ColorI", "");
  349. SettingsInspector.addSettingsField("Theme/fieldTextColor", "Field Text Color", "ColorI", "");
  350. SettingsInspector.addSettingsField("Theme/fieldTextHLColor", "Field Text Highlight Color", "ColorI", "");
  351. SettingsInspector.addSettingsField("Theme/fieldTextSELColor", "Field Text Selected Color", "ColorI", "");
  352. SettingsInspector.addSettingsField("Theme/fieldTextNAColor", "Field Text N/A Color", "ColorI", "");
  353. SettingsInspector.addSettingsField("Theme/fieldBGColor", "Field Background Color", "ColorI", "");
  354. SettingsInspector.addSettingsField("Theme/fieldBGHLColor", "Field Background Highlight Color", "ColorI", "");
  355. SettingsInspector.addSettingsField("Theme/fieldBGSELColor", "Field Background Selected Color", "ColorI", "");
  356. SettingsInspector.addSettingsField("Theme/tooltipBGColor", "Tooltip Background Color", "ColorI", "");
  357. SettingsInspector.addSettingsField("Theme/tooltipTextColor", "Tooltip Text Highlight Color", "ColorI", "");
  358. SettingsInspector.addSettingsField("Theme/tooltipDivColor", "Tooltip Divider Color", "ColorI", "");
  359. SettingsInspector.endGroup();
  360. }
  361. function ESettingsWindow::getPostFXSettings(%this)
  362. {
  363. SettingsInspector.startGroup("Post Effects");
  364. SettingsInspector.addField("Edit Default PostFX", "Edit Default PostFX Config", "button", "Edit Default PostFX Config", "", "PostFXEditor.editDefaultPostFXSettings();");
  365. SettingsInspector.endGroup();
  366. }
  367. //
  368. // COMMON GAME SETTINGS
  369. //
  370. function ESettingsWindow::getGameGeneralSettings(%this)
  371. {
  372. SettingsInspector.startGroup("General");
  373. SettingsInspector.addSettingsField("General/ProjectName", "Project Name", "string", "");
  374. SettingsInspector.addSettingsField("General/LightingMode", "Lighting Mode", "list", "Dictates the lighting mode the project uses", "Deferred,Forward");
  375. SettingsInspector.endGroup();
  376. }
  377. function ESettingsWindow::getPathsSettings(%this)
  378. {
  379. SettingsInspector.startGroup("Paths");
  380. SettingsInspector.addSettingsField("Paths/splashImagePath", "Splash Image", "filename", "");
  381. SettingsInspector.addSettingsField("Paths/iconImagePath", "Icon Image", "filename", "");
  382. SettingsInspector.addSettingsField("Paths/missingTexturePath", "Missing Texture Image", "filename", "");
  383. SettingsInspector.addSettingsField("Paths/noMaterialPath", "No Material Image", "filename", "");
  384. SettingsInspector.addSettingsField("Paths/errorMaterialMath", "Error Material Image", "filename", "");
  385. SettingsInspector.endGroup();
  386. }
  387. function ESettingsWindow::getUISettings(%this)
  388. {
  389. SettingsInspector.startGroup("UI");
  390. SettingsInspector.addSettingsField("UI/playGUIName", "Play GUI Name", "string", "");
  391. SettingsInspector.addSettingsField("UI/mainMenuName", "Main Menu GUI Name", "string", "");
  392. SettingsInspector.endGroup();
  393. }
  394. function ESettingsWindow::getAssetManagementSettings(%this)
  395. {
  396. SettingsInspector.startGroup("Modules");
  397. SettingsInspector.addSettingsField("AssetManagement/Modules/coreModulePath", "Core Module Path", "string", "");
  398. SettingsInspector.addSettingsField("AssetManagement/Modules/gameDataModulePath", "Game Data Module Path", "string", "");
  399. SettingsInspector.addSettingsField("AssetManagement/Modules/moduleExtension", "Module Extension", "string", "");
  400. %moduleList = ModuleDatabase.findModules(true);
  401. %moduleList = strreplace(%moduleList, " ", ",");
  402. SettingsInspector.addSettingsField("AssetManagement/Modules/DefaultModule", "Default Module", "list", %moduleList);
  403. SettingsInspector.endGroup();
  404. SettingsInspector.startGroup("Assets");
  405. SettingsInspector.addSettingsField("AssetManagement/Assets/assetExtension", "Asset Extension", "string", "");
  406. SettingsInspector.addSettingsField("AssetManagement/Assets/datablockCaching", "Cache Datablocks", "bool", "");
  407. //SettingsInspector.addSettingsField("AssetManagement/Assets/moduleExtension", "Module Extension", "string", "");
  408. SettingsInspector.endGroup();
  409. }
  410. function ESettingsWindow::getAssetEditingSettings(%this)
  411. {
  412. ImportAssetWindow::reloadImportOptionConfigs();
  413. for(%i=0; %i < ImportAssetWindow.importConfigsList.Count(); %i++)
  414. {
  415. %configName = ImportAssetWindow.importConfigsList.getKey(%i);
  416. %formattedConfigList = %i == 0 ? %configName : %formattedConfigList @ "," @ %configName;
  417. }
  418. SettingsInspector.startGroup("Assets Importing");
  419. SettingsInspector.addField("Edit Asset Configs", "Edit Asset Import Configs", "button", "Open Asset Import Config Editor", "", "Canvas.pushDialog(AssetImportConfigEditor);");
  420. SettingsInspector.addSettingsField("Assets/AssetImporDefaultConfig", "Default Asset Import Config", "list", "", %formattedConfigList);
  421. SettingsInspector.addSettingsField("Assets/AutoImport", "Automatically Import using default config", "bool", "If on, the asset importing process" @
  422. "will attempt to automatically import any inbound assets"@
  423. "using the default config, without prompting the import window."@
  424. "The window will still display if any issues are detected", "");
  425. SettingsInspector.endGroup();
  426. SettingsInspector.startGroup("Asset Browser");
  427. SettingsInspector.addSettingsField("Assets/Browser/showCoreModule", "Show Core Module in Asset Browser", "bool", "");
  428. SettingsInspector.addSettingsField("Assets/Browser/showToolsModule", "Show Tools Module in Asset Browser", "bool", "");
  429. SettingsInspector.addSettingsField("Assets/Browser/showOnlyPopulatedModule", "Show Only Modules with Assets in Asset Browser", "bool", "");
  430. SettingsInspector.addSettingsField("Assets/Browser/showFolders", "Show Folders in Tiles view in Asset Browser", "bool", "");
  431. SettingsInspector.addSettingsField("Assets/Browser/showEmptyFolders", "Show Empty Folders in Tiles view in Asset Browser", "bool", "");
  432. SettingsInspector.addSettingsField("Assets/Browser/showLooseFiles", "Show Loose Files when viewing in Asset Browser", "bool", "");
  433. SettingsInspector.addSettingsField("AssetManagement/Assets/promptOnRename", "Prompt on Rename", "bool", "");
  434. SettingsInspector.endGroup();
  435. }
  436. function ESettingsWindow::getGameplaySettings(%this)
  437. {
  438. SettingsInspector.startGroup("Game Modes");
  439. SettingsInspector.addSettingsField("Gameplay/GameModes/defaultModeName", "Default Gamemode Name", "string", "");
  440. SettingsInspector.endGroup();
  441. }
  442. function ESettingsWindow::getGameOptionsSettings(%this)
  443. {
  444. SettingsInspector.startGroup("Options Settings");
  445. SettingsInspector.addSettingsField("Options/optionsList", "OptionsList", "OptionsSetting", "");
  446. SettingsInspector.endGroup();
  447. }