looseFileAudit.tscript 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. function LooseFileAuditWindow::buildPopupMenus(%this)
  2. {
  3. //
  4. // Import Asset Actions
  5. //
  6. //done with any valid image format file
  7. if( !isObject( ImageLooseFilePopup ) )
  8. {
  9. %this.ImportAssetActions = new PopupMenu( ImageLooseFilePopup )
  10. {
  11. superClass = "MenuBuilder";
  12. class = "EditorWorldMenu";
  13. item[0] = "Make an Image Asset" TAB "" TAB "LooseFileAuditWindow.importImage();";
  14. };
  15. }
  16. //Done with .tscript files
  17. if( !isObject( ScriptLooseFilePopup ) )
  18. {
  19. %this.ImportAssetActions = new PopupMenu( ScriptLooseFilePopup )
  20. {
  21. superClass = "MenuBuilder";
  22. class = "EditorWorldMenu";
  23. item[0] = "Make a Script Asset" TAB "" TAB "LooseFileAuditWindow.importScript();";
  24. item[1] = "Make a PostFX Asset" TAB "" TAB "LooseFileAuditWindow.importPostFX();";
  25. item[2] = "Make a Material Asset" TAB "" TAB "LooseFileAuditWindow.importMaterial();";
  26. item[3] = "Make a Terrain Material Asset" TAB "" TAB "LooseFileAuditWindow.importTerrMat();";
  27. item[4] = "Make a Particle Asset" TAB "" TAB "LooseFileAuditWindow.importParticle();";
  28. item[5] = "Make a Explosion Asset" TAB "" TAB "LooseFileAuditWindow.importExplosion();";
  29. item[6] = "Make a Forest Brush Asset" TAB "" TAB "LooseFileAuditWindow.importForest();";
  30. };
  31. }
  32. ScriptLooseFilePopup.enableItem(4, false);
  33. ScriptLooseFilePopup.enableItem(5, false);
  34. ScriptLooseFilePopup.enableItem(6, false);
  35. if( !isObject( ShapeLooseFilePopup ) )
  36. {
  37. %this.ImportAssetActions = new PopupMenu( ShapeLooseFilePopup )
  38. {
  39. superClass = "MenuBuilder";
  40. class = "EditorWorldMenu";
  41. item[0] = "Make a Shape Asset" TAB "" TAB "LooseFileAuditWindow.importShape();";
  42. item[1] = "Make a Shape Animation Asset" TAB "" TAB "LooseFileAuditWindow.importShapeAnimation();";
  43. };
  44. }
  45. if( !isObject( DecalLooseFilePopup ) )
  46. {
  47. %this.ImportAssetActions = new PopupMenu( DecalLooseFilePopup )
  48. {
  49. superClass = "MenuBuilder";
  50. class = "EditorWorldMenu";
  51. item[0] = "Make a Decal Asset" TAB "" TAB "LooseFileAuditWindow.importDecal();";
  52. };
  53. }
  54. if( !isObject( TerrainLooseFilePopup ) )
  55. {
  56. %this.ImportAssetActions = new PopupMenu( TerrainLooseFilePopup )
  57. {
  58. superClass = "MenuBuilder";
  59. class = "EditorWorldMenu";
  60. item[0] = "Make a Terrain Data Asset" TAB "" TAB "LooseFileAuditWindow.importTerrain();";
  61. };
  62. }
  63. if( !isObject(SoundLooseFilePopup ) )
  64. {
  65. %this.ImportAssetActions = new PopupMenu( SoundLooseFilePopup )
  66. {
  67. superClass = "MenuBuilder";
  68. class = "EditorWorldMenu";
  69. item[0] = "Make a Sound Asset" TAB "" TAB "LooseFileAuditWindow.importSound();";
  70. };
  71. }
  72. if( !isObject(LevelLooseFilePopup ) )
  73. {
  74. %this.ImportAssetActions = new PopupMenu( LevelLooseFilePopup )
  75. {
  76. superClass = "MenuBuilder";
  77. class = "EditorWorldMenu";
  78. item[0] = "Make a Level Asset" TAB "" TAB "LooseFileAuditWindow.importLevel();";
  79. };
  80. }
  81. if( !isObject(GUILooseFilePopup ) )
  82. {
  83. %this.ImportAssetActions = new PopupMenu( GUILooseFilePopup )
  84. {
  85. superClass = "MenuBuilder";
  86. class = "EditorWorldMenu";
  87. item[0] = "Make a GUI Asset" TAB "" TAB "LooseFileAuditWindow.importGUI();";
  88. };
  89. }
  90. }
  91. function LooseFileAuditWindow::showDialog(%this, %address)
  92. {
  93. LooseFileAuditWindow.buildPopupMenus();
  94. Canvas.pushDialog(LooseFileAudit);
  95. %this.currentAddress = %address;
  96. %this.refresh();
  97. }
  98. function LooseFileAuditWindow::refresh(%this)
  99. {
  100. LooseFileList.clear();
  101. LooseFileList.insertItem(0, "Loose Files");
  102. //First, wipe out any files inside the folder first
  103. %file = findFirstFileMultiExpr( %this.currentAddress @ "/*.*", false);
  104. %aq = new AssetQuery();
  105. while( %file !$= "" )
  106. {
  107. if(!endsWith(%file, ".cached.dts"))
  108. {
  109. if(!strIsMatchExpr("*.asset.taml", %file) && !strIsMatchExpr("*.taml", %file))
  110. {
  111. %assetsFound = AssetDatabase.findAssetLooseFile(%aq, %file);
  112. if(%assetsFound == 0)
  113. {
  114. LooseFileList.insertItem(1, %file);
  115. }
  116. }
  117. }
  118. %file = findNextFileMultiExpr( %this.currentAddress @ "/*.*" );
  119. }
  120. LooseFileList.buildVisibleTree(true);
  121. LooseFileList.expandItem(0);
  122. %aq.delete();
  123. }
  124. function LooseFileList::onRightMouseDown(%this, %itemId)
  125. {
  126. LooseFileList.itemPath = %this.getItemText(%itemId);
  127. LooseFileList.selectedItem = %itemId;
  128. %ext = fileExt(LooseFileList.itemPath);
  129. if(isImageFormat(%ext))
  130. {
  131. ImageLooseFilePopup.showPopup(Canvas);
  132. }
  133. else if(%ext $= "." @ $TorqueScriptFileExtension)
  134. {
  135. ScriptLooseFilePopup.showPopup(Canvas);
  136. }
  137. else if(isShapeFormat(%ext))
  138. {
  139. ShapeLooseFilePopup.showPopup(Canvas);
  140. }
  141. else if(%ext $= ".mis")
  142. {
  143. LevelLooseFilePopup.showPopup(Canvas);
  144. }
  145. else if(isSoundFormat(%ext))
  146. {
  147. SoundLooseFilePopup.showPopup(Canvas);
  148. }
  149. else if(%ext $= ".ter")
  150. {
  151. TerrainLooseFilePopup.showPopup(Canvas);
  152. }
  153. else if(%ext $= ".gui")
  154. {
  155. GUILooseFilePopup.showPopup(Canvas);
  156. }
  157. }
  158. //
  159. //
  160. function LooseFileAuditWindow::importImage(%this)
  161. {
  162. if(!ImportAssetWindow.isAwake())
  163. ImportAssetWindow.showDialog();
  164. %assetItem = AssetBrowser.addImportingAsset("ImageAsset", LooseFileList.itemPath, "", "");
  165. ImportAssetItems.add(%assetItem);
  166. LooseFileList.removeItem(LooseFileList.selectedItem, false);
  167. LooseFileList.buildVisibleTree(true);
  168. LooseFileList.expandItem(0);
  169. }
  170. function LooseFileAuditWindow::importScript(%this)
  171. {
  172. if(!ImportAssetWindow.isAwake())
  173. ImportAssetWindow.showDialog();
  174. AssetBrowser.addImportingAsset("ScriptAsset", LooseFileList.itemPath, "", "");
  175. LooseFileList.removeItem(LooseFileList.selectedItem, false);
  176. LooseFileList.buildVisibleTree(true);
  177. LooseFileList.expandItem(0);
  178. }
  179. function LooseFileAuditWindow::importGUI(%this)
  180. {
  181. if(!ImportAssetWindow.isAwake())
  182. ImportAssetWindow.showDialog();
  183. ImportAssetWindow.allowAutoImport = false;
  184. AssetBrowser.addImportingAsset("GUIAsset", LooseFileList.itemPath, "", "");
  185. LooseFileList.removeItem(LooseFileList.selectedItem, false);
  186. LooseFileList.buildVisibleTree(true);
  187. LooseFileList.expandItem(0);
  188. }
  189. function LooseFileAuditWindow::importLevel(%this)
  190. {
  191. if(!ImportAssetWindow.isAwake())
  192. ImportAssetWindow.showDialog();
  193. ImportAssetWindow.allowAutoImport = false;
  194. AssetBrowser.addImportingAsset("LevelAsset", LooseFileList.itemPath, "", "");
  195. LooseFileList.removeItem(LooseFileList.selectedItem, false);
  196. LooseFileList.buildVisibleTree(true);
  197. LooseFileList.expandItem(0);
  198. }
  199. function LooseFileAuditWindow::importSound(%this)
  200. {
  201. if(!ImportAssetWindow.isAwake())
  202. ImportAssetWindow.showDialog();
  203. AssetBrowser.addImportingAsset("SoundAsset", LooseFileList.itemPath, "", "");
  204. LooseFileList.removeItem(LooseFileList.selectedItem, false);
  205. LooseFileList.buildVisibleTree(true);
  206. LooseFileList.expandItem(0);
  207. }
  208. function LooseFileAuditWindow::importTerrain(%this)
  209. {
  210. if(!ImportAssetWindow.isAwake())
  211. ImportAssetWindow.showDialog();
  212. AssetBrowser.addImportingAsset("TerrainAsset", LooseFileList.itemPath, "", "");
  213. LooseFileList.removeItem(LooseFileList.selectedItem, false);
  214. LooseFileList.buildVisibleTree(true);
  215. LooseFileList.expandItem(0);
  216. }
  217. function LooseFileAuditWindow::importTerrMat(%this)
  218. {
  219. if(!ImportAssetWindow.isAwake())
  220. ImportAssetWindow.showDialog();
  221. AssetBrowser.addImportingAsset("TerrainMaterialAsset", LooseFileList.itemPath, "", "");
  222. LooseFileList.removeItem(LooseFileList.selectedItem, false);
  223. LooseFileList.buildVisibleTree(true);
  224. LooseFileList.expandItem(0);
  225. }
  226. function LooseFileAuditWindow::importShape(%this)
  227. {
  228. if(!ImportAssetWindow.isAwake())
  229. ImportAssetWindow.showDialog();
  230. AssetBrowser.addImportingAsset("ShapeAsset", LooseFileList.itemPath, "", "");
  231. LooseFileList.removeItem(LooseFileList.selectedItem, false);
  232. LooseFileList.buildVisibleTree(true);
  233. LooseFileList.expandItem(0);
  234. }
  235. function LooseFileAuditWindow::importShapeAnimation(%this)
  236. {
  237. if(!ImportAssetWindow.isAwake())
  238. ImportAssetWindow.showDialog();
  239. AssetBrowser.addImportingAsset("ShapeAnimationAsset", LooseFileList.itemPath, "", "");
  240. LooseFileList.removeItem(LooseFileList.selectedItem, false);
  241. LooseFileList.buildVisibleTree(true);
  242. LooseFileList.expandItem(0);
  243. }
  244. function LooseFileAuditWindow::importPostFX(%this)
  245. {
  246. if(!ImportAssetWindow.isAwake())
  247. ImportAssetWindow.showDialog();
  248. AssetBrowser.addImportingAsset("PostEffectAsset", LooseFileList.itemPath, "", "");
  249. LooseFileList.removeItem(LooseFileList.selectedItem, false);
  250. LooseFileList.buildVisibleTree(true);
  251. LooseFileList.expandItem(0);
  252. }
  253. function LooseFileAuditWindow::importMaterial(%this)
  254. {
  255. if(!ImportAssetWindow.isAwake())
  256. ImportAssetWindow.showDialog();
  257. AssetBrowser.addImportingAsset("MaterialAsset", LooseFileList.itemPath, "", "");
  258. LooseFileList.removeItem(LooseFileList.selectedItem, false);
  259. LooseFileList.buildVisibleTree(true);
  260. LooseFileList.expandItem(0);
  261. }