Ver Fonte

Merge pull request #673 from Areloch/useImagePreviews

Shifts utilization of gui elements in editors that point to 'normal' image assets to utilize generated previews instead.
Brian Roberts há 3 anos atrás
pai
commit
b5bd242e23

+ 14 - 1
Engine/source/T3D/assets/ImageAsset.cpp

@@ -549,7 +549,20 @@ bool GuiInspectorTypeImageAssetPtr::renderTooltip(const Point2I& hoverPos, const
    if (!filename || !filename[0])
       return false;
 
-   GFXTexHandle texture(filename, &GFXStaticTextureSRGBProfile, avar("%s() - tooltip texture (line %d)", __FUNCTION__, __LINE__));
+   StringTableEntry previewFilename = filename;
+   if (Con::isFunction("getAssetPreviewImage"))
+   {
+      ConsoleValue consoleRet = Con::executef("getAssetPreviewImage", filename);
+      previewFilename = StringTable->insert(consoleRet.getString());
+
+      if (AssetDatabase.isDeclaredAsset(previewFilename))
+      {
+         ImageAsset* previewAsset = AssetDatabase.acquireAsset<ImageAsset>(previewFilename);
+         previewFilename = previewAsset->getImagePath();
+      }
+   }
+
+   GFXTexHandle texture(previewFilename, &GFXStaticTextureSRGBProfile, avar("%s() - tooltip texture (line %d)", __FUNCTION__, __LINE__));
    if (texture.isNull())
       return false;
 

+ 47 - 0
Templates/BaseGame/game/tools/assetBrowser/scripts/assetBrowser.tscript

@@ -2488,3 +2488,50 @@ function AssetBrowser::importLooseFiles(%this)
    echo("Adding loose files at directory " @ %this.dirHandler.currentAddress);
    LooseFileAuditWindow.showDialog(%this.dirHandler.currentAddress);  
 }
+
+//
+function getAssetPreviewImage(%asset)
+{
+   if(isFile(%asset))
+   {
+      %aq = new AssetQuery();
+      %assetsFound = AssetDatabase.findAssetLooseFile(%aq, %asset);
+      if(%assetsFound != 0)
+      {
+         %asset = %aq.getAsset(0);
+      }
+      else
+      {
+         %previewPath = %asset;
+      }
+      
+      %aq.delete();
+   }
+   
+   if(AssetDatabase.isDeclaredAsset(%asset))
+   {
+      %moduleName = AssetDatabase.getAssetModule(%asset).ModuleId;
+      %assetName = AssetDatabase.getAssetName(%asset);
+      %previewAssetName = "ToolsModule:" @ %moduleName @ "_" @ %assetName @ "_PreviewImage";
+      
+      if(AssetDatabase.isDeclaredAsset(%previewAssetName))
+      {
+         %previewDef = AssetDatabase.acquireAsset(%previewAssetName);  
+         %previewPath = %previewDef.getImagePath();
+         AssetDatabase.releaseAsset(%previewAssetName);
+      }
+      else
+      {
+         %previewPath = %asset;  
+      }
+   }
+   else
+   {
+      %previewPath = %asset;
+   }
+   
+   if(%previewPath $= "")
+      %previewPath = "ToolsModule:unknownImage_image";
+   
+   return %previewPath;
+}

+ 5 - 5
Templates/BaseGame/game/tools/convexEditor/convexEditorGui.tscript

@@ -38,7 +38,7 @@ function ConvexEditorGui::onWake( %this )
 		   %mat = %matName;
 		}
 		
-		ConvexEditorOptionsWindow-->matPreviewBtn.setBitmap(%mat.getDiffuseMap(0));
+		ConvexEditorOptionsWindow-->matPreviewBtn.setBitmap( getAssetPreviewImage(%mat.getDiffuseMap(0)));
 		
 		ConvexEditorOptionsWindow.activeMaterial = %mat;
 	}
@@ -76,7 +76,7 @@ function ConvexEditorGui::onSelectionChanged( %this, %shape, %face )
 
    ConvexEditorOptionsWindow-->defMatPreviewBtn.setText("");
    %shapeMat = %shape.getMaterial();
-   ConvexEditorOptionsWindow-->defMatPreviewBtn.setBitmap(%shapeMat.getDiffuseMap(0));
+   ConvexEditorOptionsWindow-->defMatPreviewBtn.setBitmap(getAssetPreviewImage(%shapeMat.getDiffuseMap(0)));
 
    ConvexEditorOptionsWindow.activeShape = %shape;
       
@@ -175,7 +175,7 @@ function ConvexEditorMaterialBtn::gotMaterialName(%this, %name)
       }
    }
 
-   ConvexEditorOptionsWindow-->matPreviewBtn.setBitmap(%diffusemap);
+   ConvexEditorOptionsWindow-->matPreviewBtn.setBitmap(getAssetPreviewImage(%diffusemap));
 
    ConvexEditorOptionsWindow.activeMaterial = %materialAsset.materialDefinitionName;
 }
@@ -191,7 +191,7 @@ function ConvexEditorMaterialLiftBtn::onClick(%this)
 {
    %mat = ConvexEditorGui.getSelectedFaceMaterial();
    ConvexEditorOptionsWindow.activeMaterial = %mat;
-   ConvexEditorOptionsWindow-->matPreviewBtn.setBitmap(%mat.getDiffuseMap(0));
+   ConvexEditorOptionsWindow-->matPreviewBtn.setBitmap(getAssetPreviewImage(%mat.getDiffuseMap(0)));
 }
 
 function ConvexEditorMaterialResetBtn::onClick(%this)
@@ -240,7 +240,7 @@ function ConvexEditorDefaultMaterialBtn::gotMaterialName(%this, %name)
       }
    }
 
-   ConvexEditorOptionsWindow-->defMatPreviewBtn.setBitmap(%diffusemap);
+   ConvexEditorOptionsWindow-->defMatPreviewBtn.setBitmap(getAssetPreviewImage(%diffusemap));
 
    ConvexEditorOptionsWindow.activeShape.setMaterial(%name);
 

+ 11 - 22
Templates/BaseGame/game/tools/decalEditor/decalEditorGui.tscript

@@ -326,51 +326,40 @@ function DecalInspector::removeDirty()
 
 function DecalEditorGui::updateDecalPreview( %this, %material )
 {
+   %previewImage = "";
+   
    if( isObject( %material ) )
    {
-      DecalPreviewWindow-->decalPreview.setBitmap( %material.getDiffuseMap(0) );
+      %previewImage = %material.getDiffuseMap(0);
    }
    else
    {
       if(AssetDatabase.isDeclaredAsset(%material))
       {
-         %assetDef = AssetDatabase.acquireAsset(%material);
-         %difMap = %assetDef.materialDefinitionName.getDiffuseMap(0);
-         AssetDatabase.acquireAsset(%material);
-         
-         if(%difMap !$= "" && %difMap !$= "Core_Rendering:missingTexture")
-         {
-            DecalPreviewWindow-->decalPreview.setBitmap( %difMap );
-            return;
+         %previewImage = %material;
          }
       }
-      DecalPreviewWindow-->decalPreview.setBitmap("ToolsModule:unknownImage_image");
+   
+   DecalPreviewWindow-->decalPreview.setBitmap( getAssetPreviewImage(%previewImage) );
    }
-}
 
 function DecalEditorGui::updateInstancePreview( %this, %material )
 {
+   %previewImage = "";
+   
    if( isObject( %material ) )
    {
-      DecalPreviewWindow-->instancePreview.setBitmap( %material.getDiffuseMap(0) );      
+      %previewImage = %material.getDiffuseMap(0);
    }
    else
    {
       if(AssetDatabase.isDeclaredAsset(%material))
       {
-         %assetDef = AssetDatabase.acquireAsset(%material);
-         %difMap = %assetDef.materialDefinitionName.getDiffuseMap(0);
-         AssetDatabase.acquireAsset(%material);
-         
-         if(%difMap !$= "" && %difMap !$= "Core_Rendering:missingTexture")
-         {
-            DecalPreviewWindow-->instancePreview.setBitmap( %difMap );
-            return;
+         %previewImage = %material;
          }
       }
       
-      DecalPreviewWindow-->instancePreview.setBitmap("ToolsModule:unknownImage_image");   
-}
+   DecalPreviewWindow-->instancePreview.setBitmap( getAssetPreviewImage(%previewImage) ); 
 }
 
 function DecalEditorGui::rebuildInstanceTree( %this )

+ 2 - 1
Templates/BaseGame/game/tools/gui/uvEditor.ed.gui

@@ -512,7 +512,8 @@ function UVEditor::showDialog( %this, %applyCallback, %obj, %uv)
       else if( %material.cubemap.cubeFace[0] !$= "" )
          %previewImage = %material.cubemap.cubeFace[0];
          }
-   UVEditor-->bitmapPreview.setBitmap(%previewImage);
+   
+   UVEditor-->bitmapPreview.setBitmap(getAssetPreviewImage(%previewImage));
    
    // Set up the color popup
    %popup = UVEditor-->colorPopup;

+ 63 - 148
Templates/BaseGame/game/tools/materialEditor/scripts/materialEditor.ed.tscript

@@ -804,174 +804,92 @@ function MaterialEditorGui::guiSync( %this, %material )
    %layer = MaterialEditorGui.currentLayer;
    
    //Diffuse
-   if((%material).getDiffuseMap(%layer) !$= "" && (%material).getDiffuseMapAsset(%layer) !$= $MaterialEditor::emptyMaterialImage) 
-   {
-      %difAsset = (%material).getDiffuseMapAsset(%layer);
-      MaterialEditorPropertiesWindow-->diffuseMapNameText.setText( (%material).getDiffuseMapAsset(%layer) );      
-      MaterialEditorPropertiesWindow-->diffuseMapDisplayBitmap.setBitmap( (%material).getDiffuseMap(%layer) );
-   }
-   else
-   {
-      MaterialEditorPropertiesWindow-->diffuseMapNameText.setText( "None" );
-      MaterialEditorPropertiesWindow-->diffuseMapDisplayBitmap.setBitmap( $MaterialEditor::emptyMaterialImage );
-   }
+   %diffuseMap = (%material).getDiffuseMap(%layer);
+   %diffuseMapText = %diffuseMap !$= "" && %diffuseMap !$=$MaterialEditor::emptyMaterialImage ? (%material).getDiffuseMapAsset(%layer) : "None";
+   MaterialEditorPropertiesWindow-->diffuseMapNameText.setText( %diffuseMapText );      
+   MaterialEditorPropertiesWindow-->diffuseMapDisplayBitmap.setBitmap( getAssetPreviewImage(%diffuseMap) );
  
    //Normal
-   if((%material).getNormalMap(%layer) !$= "" && (%material).getNormalMap(%layer) !$= $MaterialEditor::emptyMaterialImage) 
-   {
-      MaterialEditorPropertiesWindow-->normalMapNameText.setText( (%material).getNormalMapAsset(%layer) );      
-      MaterialEditorPropertiesWindow-->normalMapDisplayBitmap.setBitmap( (%material).getNormalMap(%layer) );
-   }
-   else
-   {
-      MaterialEditorPropertiesWindow-->normalMapNameText.setText( "None" );
-      MaterialEditorPropertiesWindow-->normalMapDisplayBitmap.setBitmap( $MaterialEditor::emptyMaterialImage );
-   }
+   %normalMap = (%material).getNormalMap(%layer);
+   %normalMapText = %normalMap !$= "" && %normalMap !$=$MaterialEditor::emptyMaterialImage ? (%material).getNormalMapAsset(%layer) : "None";
+   MaterialEditorPropertiesWindow-->normalMapNameText.setText( %normalMapText );      
+   MaterialEditorPropertiesWindow-->normalMapDisplayBitmap.setBitmap( getAssetPreviewImage(%normalMap) );
    
    //ORM Config
-   if((%material).getORMConfigMap(%layer) !$= "" && (%material).getORMConfigMap(%layer) !$= $MaterialEditor::emptyMaterialImage) 
-   {
-      MaterialEditorPropertiesWindow-->ORMConfigMapNameText.setText( (%material).getORMConfigMapAsset(%layer) );      
-      MaterialEditorPropertiesWindow-->ORMConfigMapDisplayBitmap.setBitmap( (%material).getORMConfigMap(%layer) );
-      //hide unused
-      MaterialEditorPropertiesWindow-->RoughnessTextEdit.setVisible(false);
-      MaterialEditorPropertiesWindow-->RoughnessSlider.setVisible(false);
-      MaterialEditorPropertiesWindow-->MetalnessTextEdit.setVisible(false);
-      MaterialEditorPropertiesWindow-->MetalnessSlider.setVisible(false);
-      
+   %ormMap = (%material).getNormalMap(%layer);
+   %hasOrmMap = (%ormMap !$= "" && %ormMap !$=$MaterialEditor::emptyMaterialImage);
+   %ormMapText = %hasOrmMap ? (%material).getNormalMapAsset(%layer) : "None";
+   MaterialEditorPropertiesWindow-->ORMConfigMapNameText.setText(%ormMapText );      
+   MaterialEditorPropertiesWindow-->ORMConfigMapDisplayBitmap.setBitmap( getAssetPreviewImage(%ormMap) );
+
+   //show or hide depending on if we have a map assigned here
+   MaterialEditorPropertiesWindow-->RoughnessTextEdit.setVisible(!%hasOrmMap);
+   MaterialEditorPropertiesWindow-->RoughnessSlider.setVisible(!%hasOrmMap);
+   MaterialEditorPropertiesWindow-->MetalnessTextEdit.setVisible(!%hasOrmMap);
+   MaterialEditorPropertiesWindow-->MetalnessSlider.setVisible(!%hasOrmMap);
+   
+   if(%hasOrmMap)
+   {
       MaterialEditorPropertiesWindow-->isSRGBCheckbox.setValue((%material).isSRGB[%layer]);
       MaterialEditorPropertiesWindow-->invertRoughnessCheckbox.setValue((%material).invertRoughness[%layer]);
-      //show used
-      MaterialEditorPropertiesWindow-->isSRGBCheckbox.setVisible(true);
-      MaterialEditorPropertiesWindow-->invertRoughnessCheckbox.setVisible(true);
-
    }
-   else
-   {
-      MaterialEditorPropertiesWindow-->ORMConfigMapNameText.setText( "None" );
-      MaterialEditorPropertiesWindow-->ORMConfigMapDisplayBitmap.setBitmap( $MaterialEditor::emptyMaterialImage );
       
-      MaterialEditorPropertiesWindow-->RoughnessTextEdit.setText((%material).Roughness[%layer]);
-      MaterialEditorPropertiesWindow-->RoughnessSlider.setValue((%material).Roughness[%layer]);
-      MaterialEditorPropertiesWindow-->MetalnessTextEdit.setText((%material).Metalness[%layer]);
-      MaterialEditorPropertiesWindow-->MetalnessSlider.setValue((%material).Metalness[%layer]);   
-      //show used   
-      MaterialEditorPropertiesWindow-->RoughnessTextEdit.setVisible(true);
-      MaterialEditorPropertiesWindow-->RoughnessSlider.setVisible(true);
-      MaterialEditorPropertiesWindow-->MetalnessTextEdit.setVisible(true);
-      MaterialEditorPropertiesWindow-->MetalnessSlider.setVisible(true);
-      
-      //hide unused
-      MaterialEditorPropertiesWindow-->isSRGBCheckbox.setVisible(false);
-      MaterialEditorPropertiesWindow-->invertRoughnessCheckbox.setVisible(false);
-   }
+   MaterialEditorPropertiesWindow-->isSRGBCheckbox.setVisible(%hasOrmMap);
+   MaterialEditorPropertiesWindow-->invertRoughnessCheckbox.setVisible(%hasOrmMap);
    
    //AOMap
-   if((%material).getAOMap(%layer) !$= "" && (%material).getAOMap(%layer) !$= $MaterialEditor::emptyMaterialImage) 
-   {
-      MaterialEditorPropertiesWindow-->aoMapNameText.setText( (%material).getAOMapAsset(%layer) );      
-      MaterialEditorPropertiesWindow-->aoMapDisplayBitmap.setBitmap( (%material).getAOMap(%layer) );
-   }
-   else
-   {
-      MaterialEditorPropertiesWindow-->aoMapNameText.setText( "None" );
-      MaterialEditorPropertiesWindow-->aoMapDisplayBitmap.setBitmap( $MaterialEditor::emptyMaterialImage );
-   }
+   %aoMap = (%material).getAOMap(%layer);
+   %aoMapText = %aoMap !$= "" && %aoMap !$=$MaterialEditor::emptyMaterialImage ? (%material).getAOMapAsset(%layer) : "None";
+   MaterialEditorPropertiesWindow-->aoMapNameText.setText( %aoMapText );      
+   MaterialEditorPropertiesWindow-->aoMapDisplayBitmap.setBitmap( getAssetPreviewImage(%aoMap) );
+   
    //RoughMap
-   if((%material).getRoughMap(%layer) !$= "" && (%material).getRoughMap(%layer) !$= $MaterialEditor::emptyMaterialImage) 
-   {
-      MaterialEditorPropertiesWindow-->roughMapNameText.setText( (%material).getRoughMapAsset(%layer) );      
-      MaterialEditorPropertiesWindow-->roughMapDisplayBitmap.setBitmap( (%material).getRoughMap(%layer) );
-   }
-   else
-   {
-      MaterialEditorPropertiesWindow-->roughMapNameText.setText( "None" );
-      MaterialEditorPropertiesWindow-->roughMapDisplayBitmap.setBitmap( $MaterialEditor::emptyMaterialImage );
-   }
+   %roughMap = (%material).getRoughMap(%layer);
+   %roughMapText = %roughMap !$= "" && %roughMap !$=$MaterialEditor::emptyMaterialImage ? (%material).getRoughMapAsset(%layer) : "None";
+   MaterialEditorPropertiesWindow-->roughMapNameText.setText( %roughMapText );      
+   MaterialEditorPropertiesWindow-->roughMapDisplayBitmap.setBitmap( getAssetPreviewImage(%roughMap) );
    
    //MetalMap
-   if((%material).getMetalMap(%layer) !$= "" && (%material).getMetalMap(%layer) !$= $MaterialEditor::emptyMaterialImage) 
-   {
-      MaterialEditorPropertiesWindow-->metalMapNameText.setText( (%material).getMetalMapAsset(%layer) );      
-      MaterialEditorPropertiesWindow-->metalMapDisplayBitmap.setBitmap( (%material).getMetalMap(%layer) );
-   }
-   else
-   {
-      MaterialEditorPropertiesWindow-->metalMapNameText.setText( "None" );
-      MaterialEditorPropertiesWindow-->metalMapDisplayBitmap.setBitmap( $MaterialEditor::emptyMaterialImage );
-   }
+   %metalMap = (%material).getMetalMap(%layer);
+   %metalMapText = %metalMap !$= "" && %metalMap !$=$MaterialEditor::emptyMaterialImage ? (%material).getMetalMapAsset(%layer) : "None";
+   MaterialEditorPropertiesWindow-->metalMapNameText.setText( %metalMapText );      
+   MaterialEditorPropertiesWindow-->metalMapDisplayBitmap.setBitmap( getAssetPreviewImage(%metalMap) );
    
    //GlowMap
-   if((%material).getGlowMap(%layer) !$= "" && (%material).getGlowMap(%layer) !$= $MaterialEditor::emptyMaterialImage) 
-   {
-      MaterialEditorPropertiesWindow-->glowMapNameText.setText( (%material).getGlowMapAsset(%layer) );      
-      MaterialEditorPropertiesWindow-->glowMapDisplayBitmap.setBitmap( (%material).getGlowMap(%layer) );
-   }
-   else
-   {
-      MaterialEditorPropertiesWindow-->glowMapNameText.setText( "None" );
-      MaterialEditorPropertiesWindow-->glowMapDisplayBitmap.setBitmap( $MaterialEditor::emptyMaterialImage );
-   }
+   %glowMap = (%material).getGlowMap(%layer);
+   %glowMapText = %glowMap !$= "" && %glowMap !$=$MaterialEditor::emptyMaterialImage ? (%material).getGlowMapAsset(%layer) : "None";
+   MaterialEditorPropertiesWindow-->glowMapNameText.setText( %glowMapText );      
+   MaterialEditorPropertiesWindow-->glowMapDisplayBitmap.setBitmap( getAssetPreviewImage(%glowMap) );
       
    //Overlay
-   if((%material).getOverlayMap(%layer) !$= "" && (%material).getOverlayMap(%layer) !$= $MaterialEditor::emptyMaterialImage) 
-   {
-      MaterialEditorPropertiesWindow-->overlayMapNameText.setText( (%material).getOverlayMapAsset(%layer) );      
-      MaterialEditorPropertiesWindow-->overlayMapDisplayBitmap.setBitmap( (%material).getOverlayMap(%layer) );
-   }
-   else
-   {
-      MaterialEditorPropertiesWindow-->overlayMapNameText.setText( "None" );
-      MaterialEditorPropertiesWindow-->overlayMapDisplayBitmap.setBitmap( $MaterialEditor::emptyMaterialImage );
-   }
+   %overlayMap = (%material).getOverlayMap(%layer);
+   %overlayMapText = %overlayMap !$= "" && %overlayMap !$=$MaterialEditor::emptyMaterialImage ? (%material).getOverlayMapAsset(%layer) : "None";
+   MaterialEditorPropertiesWindow-->overlayMapNameText.setText( %overlayMapText );      
+   MaterialEditorPropertiesWindow-->overlayMapDisplayBitmap.setBitmap( getAssetPreviewImage(%overlayMap) );
    
    //Detail
-   if((%material).getDetailMap(%layer) !$= "" && (%material).getDetailMap(%layer) !$= $MaterialEditor::emptyMaterialImage) 
-   {
-      MaterialEditorPropertiesWindow-->detailMapNameText.setText( (%material).getDetailMapAsset(%layer) );      
-      MaterialEditorPropertiesWindow-->detailMapDisplayBitmap.setBitmap( (%material).getDetailMap(%layer) );
-   }
-   else
-   {
-      MaterialEditorPropertiesWindow-->detailMapNameText.setText( "None" );
-      MaterialEditorPropertiesWindow-->detailMapDisplayBitmap.setBitmap( $MaterialEditor::emptyMaterialImage );
-   }
+   %detailMap = (%material).getDetailMap(%layer);
+   %detailMapText = %detailMap !$= "" && %detailMap !$=$MaterialEditor::emptyMaterialImage ? (%material).getDetailMapAsset(%layer) : "None";
+   MaterialEditorPropertiesWindow-->detailMapNameText.setText( %detailMapText );      
+   MaterialEditorPropertiesWindow-->detailMapDisplayBitmap.setBitmap( getAssetPreviewImage(%detailMap) );
    
    //Detail Normal
-   if((%material).getDetailNormalMap(%layer) !$= "" && (%material).getDetailNormalMap(%layer) !$= $MaterialEditor::emptyMaterialImage) 
-   {
-      MaterialEditorPropertiesWindow-->detailNormalMapNameText.setText( (%material).getDetailNormalMapAsset(%layer) );      
-      MaterialEditorPropertiesWindow-->detailNormalMapDisplayBitmap.setBitmap( (%material).getDetailNormalMap(%layer) );
-   }
-   else
-   {
-      MaterialEditorPropertiesWindow-->detailNormalMapNameText.setText( "None" );
-      MaterialEditorPropertiesWindow-->detailNormalMapDisplayBitmap.setBitmap( $MaterialEditor::emptyMaterialImage );
-   }
+   %detailNormalMap = (%material).getDetailNormalMap(%layer);
+   %detailNormalMapText = %detailNormalMap !$= "" && %detailNormalMap !$=$MaterialEditor::emptyMaterialImage ? (%material).getDetailNormalMapAsset(%layer) : "None";
+   MaterialEditorPropertiesWindow-->detailNormalMapNameText.setText( %detailNormalMapText );      
+   MaterialEditorPropertiesWindow-->detailNormalMapDisplayBitmap.setBitmap( getAssetPreviewImage(%detailNormalMap) );
    
    //Light
-   if((%material).getLightMap(%layer) !$= "" && (%material).getLightMap(%layer) !$= $MaterialEditor::emptyMaterialImage) 
-   {
-      MaterialEditorPropertiesWindow-->lightMapNameText.setText( (%material).getLightMapAsset(%layer) );      
-      MaterialEditorPropertiesWindow-->lightMapDisplayBitmap.setBitmap( (%material).getLightMap(%layer) );
-   }
-   else
-   {
-      MaterialEditorPropertiesWindow-->lightMapNameText.setText( "None" );
-      MaterialEditorPropertiesWindow-->lightMapDisplayBitmap.setBitmap( $MaterialEditor::emptyMaterialImage );
-   }
+   %lightMap = (%material).getLightMap(%layer);
+   %lightMapText = %lightMap !$= "" && %lightMap !$=$MaterialEditor::emptyMaterialImage ? (%material).getLightMapAsset(%layer) : "None";
+   MaterialEditorPropertiesWindow-->lightMapNameText.setText( %lightMapText );      
+   MaterialEditorPropertiesWindow-->lightMapDisplayBitmap.setBitmap( getAssetPreviewImage(%lightMap) );
    
    //Tone
-   if((%material).getToneMap(%layer) !$= "" && (%material).getToneMap(%layer) !$= $MaterialEditor::emptyMaterialImage) 
-   {
-      MaterialEditorPropertiesWindow-->toneMapNameText.setText( (%material).getToneMapAsset(%layer) );      
-      MaterialEditorPropertiesWindow-->toneMapDisplayBitmap.setBitmap( (%material).getToneMap(%layer) );
-   }
-   else
-   {
-      MaterialEditorPropertiesWindow-->toneMapNameText.setText( "None" );
-      MaterialEditorPropertiesWindow-->toneMapDisplayBitmap.setBitmap( $MaterialEditor::emptyMaterialImage );
-   }
+   %toneMap = (%material).getToneMap(%layer);
+   %toneMapText = %toneMap !$= "" && %toneMap !$=$MaterialEditor::emptyMaterialImage ? (%material).getToneMapAsset(%layer) : "None";
+   MaterialEditorPropertiesWindow-->toneMapNameText.setText( %toneMapText );      
+   MaterialEditorPropertiesWindow-->toneMapDisplayBitmap.setBitmap( getAssetPreviewImage(%toneMap) );
    
    MaterialEditorPropertiesWindow-->accuScaleTextEdit.setText((%material).accuScale[%layer]);
    MaterialEditorPropertiesWindow-->accuScaleTextEdit.setText((%material).accuScale[%layer]);
@@ -1254,12 +1172,9 @@ function MaterialEditorGui::doUpdateTextureMap( %this, %assetId )
       %bitmapCtrl = MaterialEditorPropertiesWindow.findObjectByInternalName( %type @ "MapDisplayBitmap", true );
       %textCtrl = MaterialEditorPropertiesWindow.findObjectByInternalName( %type @ "MapNameText", true );
    
-      %assetDef = AssetDatabase.acquireAsset(%assetId);
-
-      %texture = %assetDef.getImagePath();
+      %texture = getAssetPreviewImage(%assetId);
    
-      //%texture = MaterialEditorGui.openFile("texture");
-      if( %texture !$= "" )
+      if( %texture !$= "" && %texture !$= $MaterialEditor::emptyMaterialImage)
       {         
          %bitmapCtrl.setBitmap(%texture);
       

+ 8 - 18
Templates/BaseGame/game/tools/particleEditor/particleParticleEditor.ed.tscript

@@ -57,24 +57,11 @@ function PE_ParticleEditor::guiSync( %this )
    %popup.sort();
    %popup.setSelected( %data );
          
-   %bitmap = %data.getTexture();//MaterialEditorGui.searchForTexture( %data.getName(), %data.getTexture() );
-   if( %bitmap !$= "" )
-   {
-      PE_ParticleEditor-->PEP_previewImage.setBitmap( %bitmap );
-      
-      %text = %data.getTextureAsset();
-      if(%text $= "")
-         %text = %bitmap;
-         
-      PE_ParticleEditor-->PEP_previewImageName.setText( %text );
-      PE_ParticleEditor-->PEP_previewImageName.tooltip = %bitmap;
-   }
-   else
-   {
-      PE_ParticleEditor-->PEP_previewImage.setBitmap( "" );
-      PE_ParticleEditor-->PEP_previewImageName.setText( "None" );
-      PE_ParticleEditor-->PEP_previewImageName.tooltip = "None";
-   }
+   %bitmap = %data.getTexture();
+   %bitmapText = %bitmap !$= "" && %bitmap !$= $MaterialEditor::emptyMaterialImage ? %data.getTextureAsset() : "None";
+   PE_ParticleEditor-->PEP_previewImageName.setText( %bitmapText );    
+   PE_ParticleEditor-->PEP_previewImageName.tooltip = %bitmapText;  
+   PE_ParticleEditor-->PEP_previewImage.setBitmap( getAssetPreviewImage(%bitmap) );
    
    PE_ParticleEditor-->PEP_inverseAlpha.setValue( %data.useInvAlpha );
    
@@ -396,6 +383,9 @@ function PE_ParticleEditor::loadNewParticle( %this, %particle )
    else
       %particle = PEP_ParticleSelector.getSelected();
       
+   if( !isObject( %particle ) )
+      return;
+      
    PE_ParticleEditor.currParticle = %particle;
    
    error("PE_ParticleEditor::loadNewParticle() - Loading particle: " @ %particle.getName());

+ 2 - 2
Templates/BaseGame/game/tools/worldEditor/scripts/editors/terrainEditor.ed.tscript

@@ -62,7 +62,7 @@ function TerrainEditor::setPaintMaterial( %this, %matIndex, %terrainMat )
    ETerrainMaterialSelected.selectedMatIndex = %matIndex;
    ETerrainMaterialSelected.selectedMat = %terrainMat;
    
-   ETerrainMaterialSelected.setBitmap(%terrainMat.getDiffuseMap());
+   ETerrainMaterialSelected.setBitmap(getAssetPreviewImage(%terrainMat.getDiffuseMap()));
 
    ETerrainMaterialSelectedEdit.Visible = isObject(%terrainMat);
    TerrainTextureText.text = %terrainMat.getInternalName();
@@ -141,7 +141,7 @@ function EPainter::updateLayers( %this, %matIndex )
       };
 
       %ctrl.setText( %matInternalName );
-      %ctrl.setBitmap( %mat.getDiffuseMap() );
+      %ctrl.setBitmap( getAssetPreviewImage(%mat.getDiffuseMap()) );
 
       %tooltip = %matInternalName;
       if(%i < 9)

+ 17 - 81
Templates/BaseGame/game/tools/worldEditor/scripts/interfaces/terrainMaterialDlg.ed.tscript

@@ -296,7 +296,7 @@ function TerrainMaterialDlg::changeTerrainMatMapAsset(%this)
       %image = $TerrainMaterialEditor::emptyMaterialImage;
    }
 
-   %targetMap.setBitmap( %image );  
+   %targetMap.setBitmap( getAssetPreviewImage(%image) );  
 
    %targetMapName = %targetMap @ "AssetId";
    %targetMapName.setText(%imgAsset);
@@ -420,99 +420,35 @@ function TerrainMaterialDlg::setActiveMaterial( %this, %mat )
 
       //
       %imgPath = %mat.getDiffuseMap();
-      if(%imgPath $= "")
-         %imgPath = $TerrainMaterialEditor::emptyMaterialImage;
-
-      %this-->texBaseMap.setBitmap( %imgPath );
-      
-      if(%imgPath !$= $TerrainMaterialEditor::emptyMaterialImage)
-      {
-         %imgAsset = %mat.getDiffuseMapAsset();
-         if(%imgAsset $= "")
-            %imgAsset = %imgPath;
-         %this-->diffuseMapAssetId.setText( %imgAsset );
-      }
-      else
-      {
-         %this-->diffuseMapAssetId.setText( "None" );  
-      }
+      %imgPathText = %imgPath !$= "" && %imgPath !$= $TerrainMaterialEditor::emptyMaterialImage ? %mat.getDiffuseMapAsset() : "None";
+      %this-->diffuseMapAssetId.setText( %imgPathText );
+      %this-->texBaseMap.setBitmap( getAssetPreviewImage(%imgPath) );
 
       //
       %imgPath = %mat.getNormalMap();
-      if(%imgPath $= "")
-         %imgPath = $TerrainMaterialEditor::emptyMaterialImage;
-
-      %this-->texNormalMap.setBitmap( %imgPath );
-      
-      if(%imgPath !$= $TerrainMaterialEditor::emptyMaterialImage)
-      {
-         %imgAsset = %mat.getNormalMapAsset();
-         if(%imgAsset $= "")
-            %imgAsset = %imgPath;
-         %this-->normalMapAssetId.setText( %imgAsset );
-      }
-      else
-      {
-         %this-->normalMapAssetId.setText( "None" );  
-      }
+      %imgPathText = %imgPath !$= "" && %imgPath !$= $TerrainMaterialEditor::emptyMaterialImage ? %mat.getNormalMapAsset() : "None";
+      %this-->normalMapAssetId.setText( %imgPathText );
+      %this-->texNormalMap.setBitmap( getAssetPreviewImage(%imgPath) );
 
       //
       %imgPath = %mat.getORMConfigMap();
-      if(%imgPath $= "")
-         %imgPath = $TerrainMaterialEditor::emptyMaterialImage;
-
-      %this-->texORMConfigMap.setBitmap( %imgPath );
-      
-      if(%imgPath !$= $TerrainMaterialEditor::emptyMaterialImage)
-      {
-         %imgAsset = %mat.getORMConfigMapAsset();
-         if(%imgAsset $= "")
-            %imgAsset = %imgPath;
-         %this-->ORMMapAssetId.setText( %imgAsset );
-      }
-      else
-      {
-         %this-->ORMMapAssetId.setText( "None" );  
-      }
+      %imgPathText = %imgPath !$= "" && %imgPath !$= $TerrainMaterialEditor::emptyMaterialImage ? %mat.getORMConfigMapAsset() : "None";
+      %this-->ORMMapAssetId.setText( %imgPathText );
+      %this-->texORMConfigMap.setBitmap( getAssetPreviewImage(%imgPath) );
        
       //
       %imgPath = %mat.getDetailMap();
-      if(%imgPath $= "")
-         %imgPath = $TerrainMaterialEditor::emptyMaterialImage;
-
-      %this-->texDetailMap.setBitmap( %imgPath );
-      
-      if(%imgPath !$= $TerrainMaterialEditor::emptyMaterialImage)
-      {
-         %imgAsset = %mat.getDetailMapAsset();
-         if(%imgAsset $= "")
-            %imgAsset = %imgPath;
-         %this-->detailMapAssetId.setText( %imgAsset );
-      }
-      else
-      {
-         %this-->detailMapAssetId.setText( "None" );  
-      }
+      %imgPathText = %imgPath !$= "" && %imgPath !$= $TerrainMaterialEditor::emptyMaterialImage ? %mat.getDetailMapAsset() : "None";
+      %this-->detailMapAssetId.setText( %imgPathText );
+      %this-->texDetailMap.setBitmap( getAssetPreviewImage(%imgPath) );
       
       //
       %imgPath = %mat.getMacroMap();
-      if(%imgPath $= "")
-         %imgPath = $TerrainMaterialEditor::emptyMaterialImage;
-
-      %this-->texMacroMap.setBitmap( %imgPath );
-
-      if(%imgPath !$= $TerrainMaterialEditor::emptyMaterialImage)
-      {
-         %imgAsset = %mat.getMacroMapAsset();
-         if(%imgAsset $= "")
-            %imgAsset = %imgPath;
-         %this-->macroMapAssetId.setText( %imgAsset );
-      }
-      else
-      {
-         %this-->macroMapAssetId.setText( "None" );  
-      }      
+      %imgPathText = %imgPath !$= "" && %imgPath !$= $TerrainMaterialEditor::emptyMaterialImage ? %mat.getMacroMapAsset() : "None";
+      %this-->macroMapAssetId.setText( %imgPathText );
+      %this-->texMacroMap.setBitmap( getAssetPreviewImage(%imgPath) );
       
+      //
       %this-->detSizeCtrl.setText( %mat.detailSize );
       %this-->baseSizeCtrl.setText( %mat.diffuseSize );
       %this-->detStrengthCtrl.setText( %mat.detailStrength );