| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- //-----------------------------------------------------------------------------
- // Copyright (c) 2012 GarageGames, LLC
- //
- // Permission is hereby granted, free of charge, to any person obtaining a copy
- // of this software and associated documentation files (the "Software"), to
- // deal in the Software without restriction, including without limitation the
- // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- // sell copies of the Software, and to permit persons to whom the Software is
- // furnished to do so, subject to the following conditions:
- //
- // The above copyright notice and this permission notice shall be included in
- // all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- // IN THE SOFTWARE.
- //-----------------------------------------------------------------------------
- // Material Editor Written by Dave Calabrese and Travis Vroman of Gaslight Studios
- function initializeMaterialEditor()
- {
- echo(" % - Initializing Material Editor");
-
- // Load Preview Window
- exec("~/materialEditor/gui/guiMaterialPreviewWindow.ed.gui");
-
- // Load Properties Window
- exec("~/materialEditor/gui/guiMaterialPropertiesWindow.ed.gui");
-
- // Load Client Scripts.
- exec("./scripts/materialEditor.ed.cs");
- exec("./scripts/materialEditorUndo.ed.cs");
- //exec("./gui/profiles.ed.cs");
-
- MaterialEditorPreviewWindow.setVisible( false );
- matEd_cubemapEditor.setVisible( false );
- matEd_addCubemapWindow.setVisible( false );
- MaterialEditorPropertiesWindow.setVisible( false );
-
- EditorGui.add( MaterialEditorPreviewWindow );
- EditorGui.add( matEd_cubemapEditor );
- EditorGui.add( matEd_addCubemapWindow );
- EditorGui.add( MaterialEditorPropertiesWindow );
- }
- function destroyMaterialEditor()
- {
- }
- // Material Editor
- function MaterialEditorPlugin::onWorldEditorStartup( %this )
- {
- // Add ourselves to the window menu.
- %accel = EditorGui.addToEditorsMenu( "Material Editor", "", MaterialEditorPlugin );
-
- // Add ourselves to the ToolsToolbar
- %tooltip = "Material Editor (" @ %accel @ ")";
- EditorGui.addToToolsToolbar( "MaterialEditorPlugin", "MaterialEditorPalette", expandFilename("tools/worldEditor/images/toolbar/matterial-editor"), %tooltip );
- //connect editor windows
- GuiWindowCtrl::attach( MaterialEditorPropertiesWindow, MaterialEditorPreviewWindow);
-
- %map = new ActionMap();
- %map.bindCmd( keyboard, "1", "EWorldEditorNoneModeBtn.performClick();", "" ); // Select
- %map.bindCmd( keyboard, "2", "EWorldEditorMoveModeBtn.performClick();", "" ); // Move
- %map.bindCmd( keyboard, "3", "EWorldEditorRotateModeBtn.performClick();", "" ); // Rotate
- %map.bindCmd( keyboard, "4", "EWorldEditorScaleModeBtn.performClick();", "" ); // Scale
- %map.bindCmd( keyboard, "f", "FitToSelectionBtn.performClick();", "" );// Fit Camera to Selection
- %map.bindCmd( keyboard, "z", "EditorGuiStatusBar.setCamera(\"Standard Camera\");", "" );// Free Camera
- %map.bindCmd( keyboard, "n", "ToggleNodeBar->renderHandleBtn.performClick();", "" );// Render Node
- %map.bindCmd( keyboard, "shift n", "ToggleNodeBar->renderTextBtn.performClick();", "" );// Render Node Text
- %map.bindCmd( keyboard, "alt s", "MaterialEditorGui.save();", "" );// Save Material
- //%map.bindCmd( keyboard, "delete", "ToggleNodeBar->renderTextBtn.performClick();", "" );// delete Material
- %map.bindCmd( keyboard, "g", "ESnapOptions-->GridSnapButton.performClick();" ); // Grid Snappping
- %map.bindCmd( keyboard, "t", "SnapToBar->objectSnapDownBtn.performClick();", "" );// Terrain Snapping
- %map.bindCmd( keyboard, "b", "SnapToBar-->objectSnapBtn.performClick();" ); // Soft Snappping
- %map.bindCmd( keyboard, "v", "EWorldEditorToolbar->boundingBoxColBtn.performClick();", "" );// Bounds Selection
- %map.bindCmd( keyboard, "o", "objectCenterDropdown->objectBoxBtn.performClick(); objectCenterDropdown.toggle();", "" );// Object Center
- %map.bindCmd( keyboard, "p", "objectCenterDropdown->objectBoundsBtn.performClick(); objectCenterDropdown.toggle();", "" );// Bounds Center
- %map.bindCmd( keyboard, "k", "objectTransformDropdown->objectTransformBtn.performClick(); objectTransformDropdown.toggle();", "" );// Object Transform
- %map.bindCmd( keyboard, "l", "objectTransformDropdown->worldTransformBtn.performClick(); objectTransformDropdown.toggle();", "" );// World Transform
-
- MaterialEditorPlugin.map = %map;
-
- MaterialEditorGui.fileSpec = "Torque Material Files (materials.cs)|materials.cs|All Files (*.*)|*.*|";
- MaterialEditorGui.textureFormats = "Image Files (*.png, *.jpg, *.dds, *.bmp, *.gif, *.jng. *.tga)|*.png;*.jpg;*.dds;*.bmp;*.gif;*.jng;*.tga|All Files (*.*)|*.*|";
- MaterialEditorGui.modelFormats = "DTS Files (*.dts)|*.dts";
- MaterialEditorGui.lastTexturePath = "";
- MaterialEditorGui.lastTextureFile = "";
- MaterialEditorGui.lastModelPath = "";
- MaterialEditorGui.lastModelFile = "";
- MaterialEditorGui.currentMaterial = "";
- MaterialEditorGui.lastMaterial = "";
- MaterialEditorGui.currentCubemap = "";
- MaterialEditorGui.currentObject = "";
-
- MaterialEditorGui.livePreview = "1";
- MaterialEditorGui.currentLayer = "0";
- MaterialEditorGui.currentMode = "Material";
- MaterialEditorGui.currentMeshMode = "EditorShape";
-
- new ArrayObject(UnlistedCubemaps);
- UnlistedCubemaps.add( "unlistedCubemaps", matEdCubeMapPreviewMat );
- UnlistedCubemaps.add( "unlistedCubemaps", WarnMatCubeMap );
-
- //MaterialEditor persistence manager
- new PersistenceManager(matEd_PersistMan);
- }
- function MaterialEditorPlugin::onActivated( %this )
- {
- if($gfx::wireframe){
- $wasInWireFrameMode = true;
- $gfx::wireframe = false;
- }else{
- $wasInWireFrameMode = false;
- }
- advancedTextureMapsRollout.Expanded = false;
- materialAnimationPropertiesRollout.Expanded = false;
- materialAdvancedPropertiesRollout.Expanded = false;
- WorldEditorPlugin.onActivated();
- EditorGui-->MatEdPropertiesWindow.setVisible( true );
- EditorGui-->MatEdPreviewWindow.setVisible( true );
- EditorGui-->WorldEditorToolbar.setVisible( true );
-
- MaterialEditorGui.currentObject = $Tools::materialEditorList;
- // Execute the back end scripts that actually do the work.
- MaterialEditorGui.open();
- %this.map.push();
-
- Parent::onActivated(%this);
- }
- function MaterialEditorPlugin::onEditMenuSelect( %this, %editMenu )
- {
- WorldEditorPlugin.onEditMenuSelect( %editMenu );
- }
- function MaterialEditorPlugin::onDeactivated( %this )
- {
- if($wasInWireFrameMode)
- $gfx::wireframe = true;
-
- WorldEditorPlugin.onDeactivated();
- MaterialEditorGui.quit();
-
- EditorGui-->MatEdPropertiesWindow.setVisible( false );
- EditorGui-->MatEdPreviewWindow.setVisible( false );
- EditorGui-->WorldEditorToolbar.setVisible( false );
- %this.map.pop();
-
- Parent::onDeactivated(%this);
- }
|