Browse Source

Fixed a bug with builtin resource reimport
Added some more dummy resource icons

Marko Pintera 10 years ago
parent
commit
03060e056f

+ 4 - 0
BansheeCore/Source/BsResourceManifest.cpp

@@ -42,6 +42,10 @@ namespace BansheeEngine
 		}
 		else
 		{
+			auto iterFind2 = mFilePathToUUID.find(filePath);
+			if (iterFind2 != mFilePathToUUID.end())
+				mUUIDToFilePath.erase(iterFind2->second);
+
 			mUUIDToFilePath[uuid] = filePath;
 			mFilePathToUUID[filePath] = uuid;
 		}

+ 7 - 1
BansheeEditor/Include/BsBuiltinEditorResources.h

@@ -12,7 +12,7 @@ namespace BansheeEngine
 	 */
 	enum class ProjectIcon
 	{
-		Folder, Mesh, Font, Texture
+		Folder, Mesh, Font, Texture, PlainText, ScriptCode, SpriteTexture, Shader, ShaderInclude, Material
 	};
 
 	class BS_ED_EXPORT BuiltinEditorResources : public BansheeEngine::Module<BuiltinEditorResources>
@@ -167,6 +167,12 @@ namespace BansheeEngine
 		static const WString MeshIconTex;
 		static const WString TextureIconTex;
 		static const WString FontIconTex;
+		static const WString PlainTextIconTex;
+		static const WString ScriptCodeIconTex;
+		static const WString ShaderIconTex;
+		static const WString ShaderIncludeIconTex;
+		static const WString MaterialIconTex;
+		static const WString SpriteTextureIconTex;
 
 		static const WString WindowBackgroundTexture;
 

+ 33 - 9
BansheeEditor/Source/BsBuiltinEditorResources.cpp

@@ -77,6 +77,12 @@ namespace BansheeEngine
 	const WString BuiltinEditorResources::MeshIconTex = L"MeshIcon.psd";
 	const WString BuiltinEditorResources::TextureIconTex = L"TextureIcon.psd";
 	const WString BuiltinEditorResources::FontIconTex = L"FontIcon.psd";
+	const WString BuiltinEditorResources::PlainTextIconTex = L"TextIcon.psd";
+	const WString BuiltinEditorResources::ScriptCodeIconTex = L"CSharpIcon.psd";
+	const WString BuiltinEditorResources::ShaderIconTex = L"ShaderIcon.psd";
+	const WString BuiltinEditorResources::ShaderIncludeIconTex = L"ShaderIncludeIcon.psd";
+	const WString BuiltinEditorResources::MaterialIconTex = L"MaterialIcon.psd";
+	const WString BuiltinEditorResources::SpriteTextureIconTex = L"SpriteIcon.psd";
 
 	const WString BuiltinEditorResources::WindowBackgroundTexture = L"WindowBgTile.psd";
 
@@ -229,17 +235,12 @@ namespace BansheeEngine
 		Path absoluteDataPath = FileSystem::getWorkingDirectoryPath();
 		absoluteDataPath.append(BuiltinDataFolder);
 
-		if (FileSystem::exists(ResourceManifestPath))
-			mResourceManifest = ResourceManifest::load(ResourceManifestPath, absoluteDataPath);
-
-		if (mResourceManifest == nullptr)
-			mResourceManifest = ResourceManifest::create("BuiltinResources");
-
-		gResources().registerResourceManifest(mResourceManifest);
-
 #if BS_DEBUG_MODE
 		if (BuiltinResourcesHelper::checkForModifications(BuiltinRawDataFolder, BuiltinDataFolder + L"Timestamp.asset"))
 		{
+			mResourceManifest = ResourceManifest::create("BuiltinResources");
+			gResources().registerResourceManifest(mResourceManifest);
+
 			preprocess();
 			BuiltinResourcesHelper::writeTimestamp(BuiltinDataFolder + L"Timestamp.asset");
 
@@ -250,6 +251,17 @@ namespace BansheeEngine
 		}
 #endif
 
+		if (mResourceManifest == nullptr)
+		{
+			if (FileSystem::exists(ResourceManifestPath))
+				mResourceManifest = ResourceManifest::load(ResourceManifestPath, absoluteDataPath);
+
+			if (mResourceManifest == nullptr)
+				mResourceManifest = ResourceManifest::create("BuiltinResources");
+
+			gResources().registerResourceManifest(mResourceManifest);
+		}
+
 		mShaderDockOverlay = getShader(ShaderDockOverlayFile);
 		mShaderSceneGrid = getShader(ShaderSceneGridFile);
 		mShaderPicking[(int)CULL_NONE] = getShader(ShaderPickingCullNoneFile);
@@ -1334,8 +1346,20 @@ namespace BansheeEngine
 			return getGUIIcon(MeshIconTex);
 		case ProjectIcon::Texture:
 			return getGUIIcon(TextureIconTex);
+		case ProjectIcon::PlainText:
+			return getGUIIcon(PlainTextIconTex);
+		case ProjectIcon::ScriptCode:
+			return getGUIIcon(ScriptCodeIconTex);
+		case ProjectIcon::Shader:
+			return getGUIIcon(ShaderIconTex);
+		case ProjectIcon::ShaderInclude:
+			return getGUIIcon(ShaderIncludeIconTex);
+		case ProjectIcon::Material:
+			return getGUIIcon(MaterialIconTex);
+		case ProjectIcon::SpriteTexture:
+			return getGUIIcon(SpriteTextureIconTex);
 		}
 
-		return nullptr;
+		return HSpriteTexture();
 	}
 }

+ 24 - 0
MBansheeEditor/EditorBuiltin.cs

@@ -9,6 +9,12 @@ namespace BansheeEditor
         public static SpriteTexture MeshIcon { get { return Internal_GetMeshIcon(); } }
         public static SpriteTexture FontIcon { get { return Internal_GetFontIcon(); } }
         public static SpriteTexture TextureIcon { get { return Internal_GetTextureIcon(); } }
+        public static SpriteTexture PlainTextIcon { get { return Internal_GetPlainTextIcon(); } }
+        public static SpriteTexture ScriptCodeIcon { get { return Internal_GetScriptCodeIcon(); } }
+        public static SpriteTexture ShaderIcon { get { return Internal_GetShaderIcon(); } }
+        public static SpriteTexture ShaderIncludeIcon { get { return Internal_GetShaderIncludeIcon(); } }
+        public static SpriteTexture MaterialIcon { get { return Internal_GetMaterialIcon(); } }
+        public static SpriteTexture SpriteTextureIcon { get { return Internal_GetSpriteTextureIcon(); } }
 
         [MethodImpl(MethodImplOptions.InternalCall)]
         private static extern SpriteTexture Internal_GetFolderIcon();
@@ -21,5 +27,23 @@ namespace BansheeEditor
 
         [MethodImpl(MethodImplOptions.InternalCall)]
         private static extern SpriteTexture Internal_GetTextureIcon();
+
+        [MethodImpl(MethodImplOptions.InternalCall)]
+        private static extern SpriteTexture Internal_GetPlainTextIcon();
+
+        [MethodImpl(MethodImplOptions.InternalCall)]
+        private static extern SpriteTexture Internal_GetScriptCodeIcon();
+
+        [MethodImpl(MethodImplOptions.InternalCall)]
+        private static extern SpriteTexture Internal_GetShaderIcon();
+
+        [MethodImpl(MethodImplOptions.InternalCall)]
+        private static extern SpriteTexture Internal_GetShaderIncludeIcon();
+
+        [MethodImpl(MethodImplOptions.InternalCall)]
+        private static extern SpriteTexture Internal_GetMaterialIcon();
+
+        [MethodImpl(MethodImplOptions.InternalCall)]
+        private static extern SpriteTexture Internal_GetSpriteTextureIcon();
     }
 }

+ 5 - 5
MBansheeEditor/ProjectWindow.cs

@@ -236,15 +236,15 @@ namespace BansheeEditor
                         case ResourceType.Texture:
                             return EditorBuiltin.TextureIcon;
                         case ResourceType.PlainText:
-                            return null; // TODO
+                            return EditorBuiltin.PlainTextIcon;
                         case ResourceType.ScriptCode:
-                            return null; // TODO
+                            return EditorBuiltin.ScriptCodeIcon;
                         case ResourceType.SpriteTexture:
-                            return null; // TODO
+                            return EditorBuiltin.SpriteTextureIcon;
                         case ResourceType.Shader:
-                            return null; // TODO
+                            return EditorBuiltin.ShaderIcon;
                         case ResourceType.Material:
-                            return null; // TODO
+                            return EditorBuiltin.MaterialIcon;
                     }
                 }
 

+ 6 - 0
SBansheeEditor/Include/BsScriptEditorBuiltin.h

@@ -15,6 +15,12 @@ namespace BansheeEngine
 		static MonoObject* internal_getMeshIcon();
 		static MonoObject* internal_getFontIcon();
 		static MonoObject* internal_getTextureIcon();
+		static MonoObject* internal_getPlainTextIcon();
+		static MonoObject* internal_getScriptCodeIcon();
+		static MonoObject* internal_getShaderIcon();
+		static MonoObject* internal_getShaderIncludeIcon();
+		static MonoObject* internal_getMaterialIcon();
+		static MonoObject* internal_getSpriteTextureIcon();
 
 		ScriptEditorBuiltin(MonoObject* instance);
 	};

+ 48 - 0
SBansheeEditor/Source/BsScriptEditorBuiltin.cpp

@@ -19,6 +19,12 @@ namespace BansheeEngine
 		metaData.scriptClass->addInternalCall("Internal_GetMeshIcon", &ScriptEditorBuiltin::internal_getMeshIcon);
 		metaData.scriptClass->addInternalCall("Internal_GetFontIcon", &ScriptEditorBuiltin::internal_getFontIcon);
 		metaData.scriptClass->addInternalCall("Internal_GetTextureIcon", &ScriptEditorBuiltin::internal_getTextureIcon);
+		metaData.scriptClass->addInternalCall("Internal_GetPlainTextIcon", &ScriptEditorBuiltin::internal_getPlainTextIcon);
+		metaData.scriptClass->addInternalCall("Internal_GetScriptCodeIcon", &ScriptEditorBuiltin::internal_getScriptCodeIcon);
+		metaData.scriptClass->addInternalCall("Internal_GetShaderIcon", &ScriptEditorBuiltin::internal_getShaderIcon);
+		metaData.scriptClass->addInternalCall("Internal_GetShaderIncludeIcon", &ScriptEditorBuiltin::internal_getShaderIncludeIcon);
+		metaData.scriptClass->addInternalCall("Internal_GetMaterialIcon", &ScriptEditorBuiltin::internal_getMaterialIcon);
+		metaData.scriptClass->addInternalCall("Internal_GetSpriteTextureIcon", &ScriptEditorBuiltin::internal_getSpriteTextureIcon);
 	}
 
 	MonoObject* ScriptEditorBuiltin::internal_getFolderIcon()
@@ -48,4 +54,46 @@ namespace BansheeEngine
 
 		return ScriptSpriteTexture::toManaged(tex);
 	}
+
+	MonoObject* ScriptEditorBuiltin::internal_getPlainTextIcon()
+	{
+		HSpriteTexture tex = BuiltinEditorResources::instance().getLibraryIcon(ProjectIcon::PlainText);
+
+		return ScriptSpriteTexture::toManaged(tex);
+	}
+
+	MonoObject* ScriptEditorBuiltin::internal_getScriptCodeIcon()
+	{
+		HSpriteTexture tex = BuiltinEditorResources::instance().getLibraryIcon(ProjectIcon::ScriptCode);
+
+		return ScriptSpriteTexture::toManaged(tex);
+	}
+
+	MonoObject* ScriptEditorBuiltin::internal_getShaderIcon()
+	{
+		HSpriteTexture tex = BuiltinEditorResources::instance().getLibraryIcon(ProjectIcon::Shader);
+
+		return ScriptSpriteTexture::toManaged(tex);
+	}
+
+	MonoObject* ScriptEditorBuiltin::internal_getShaderIncludeIcon()
+	{
+		HSpriteTexture tex = BuiltinEditorResources::instance().getLibraryIcon(ProjectIcon::ShaderInclude);
+
+		return ScriptSpriteTexture::toManaged(tex);
+	}
+
+	MonoObject* ScriptEditorBuiltin::internal_getMaterialIcon()
+	{
+		HSpriteTexture tex = BuiltinEditorResources::instance().getLibraryIcon(ProjectIcon::Material);
+
+		return ScriptSpriteTexture::toManaged(tex);
+	}
+
+	MonoObject* ScriptEditorBuiltin::internal_getSpriteTextureIcon()
+	{
+		HSpriteTexture tex = BuiltinEditorResources::instance().getLibraryIcon(ProjectIcon::ScriptCode);
+
+		return ScriptSpriteTexture::toManaged(tex);
+	}
 }

+ 4 - 0
TODO.txt

@@ -27,6 +27,10 @@ Project window
 
 TODO - When importing/reimporting stuff there should be a progress bar
 TODO - Might need to handle overwritting better when importing/moving 
+TODO - When there's room between the elements, labels should probably make use of it (right now they tend to cut off a lot of text too often)
+
+TODO - GUI element selection outline seems to be slightly wrong now (it was fine before)
+TODO - Horizontal scroll bar seems to show up in GUI
 
 Simple tasks:
  - Hook up scene view drag and drop instantiation